电子秒表 课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子秒表
设计一个可任意启动/停止的电子秒表,要求用6位LED数码显示,计时单位为1/100秒。

利用功能键进行启/停控制。

其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。

第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。

可用开关控制,也可用按键控制。

(开关控制☆)(按键控制★)

系统连线图

设计程序
P8255_A EQU 200H
P8255_B EQU 202H
P8255_C EQU 204H
P8255_CT EQU 206H
P8253_0 EQU 400H
P8253_1 EQU 402H
P8253_2 EQU 404H
P8253_CT EQU 406H
CODE SEGMENT 'CODE' ;L10 ASSUME CS:CODE,DS:DATA,SS:STACK
main proc
START:
MOV AX,DA TA
MOV DS,AX
MOV AX,0
MOV ES,AX
MOV BX,02H*4
LEA AX,INT0
MOV ES:[BX],AX
MOV AX,SEG INT0
MOV ES:[BX+2],Ax
MOV AL,81H
MOV DX,P8255_CT
OUT DX,AL ;8255A初始化
MOV AL,36H
MOV DX,P8253_CT
OUT DX,AL ;定时器0初始化,方式3 MOV AX,1000
MOV DX,P8253_0
OUT DX,AL
MOV AL,AH
MOV DX,P8253_0
OUT DX,AL ;8253初始化完毕
next15:
mov s1,0
mov s2,0
mov m1,0
mov m2,0
mov h1,0
mov h2,0
MOV CX,06H
MOV bp,0
LEA SI,S1
LEDDISP3:
MOV AX,BP
LEA BX,LEDWE
XLAT
MOV DX,P8255_B
OUT DX,AL
MOV AL,[SI] ;输出位码LEA BX,LEDTAB
XLAT
cmp cx,4
jnz next14
or al,80h
next14:MOV DX,P8255_A
OUT DX ,AL
INC SI
INC bp
CALL DELA Y_1MS1 ;输出段码LOOP LEDDISP3
mov dx,p8255_c
in al,dx
AND AL,1 ;109
Jnz next15
W3: MOV DX,P8255_C
IN AL,DX
AND AL,01H
JZ W3 ;循环直到按键松开
LOP1: CALL DISP
JMP LOP1
RET
MAIN ENDP
DISP PROC ;输出子程序
MOV CX,06H
MOV bp,0
LEA SI,S1
LEDDISP:
MOV AX,BP
LEA BX,LEDWE
XLAT
MOV DX,P8255_B
OUT DX,AL
MOV AL,[SI] ;输出位码
LEA BX,LEDTAB
XLAT
cmp cx,4
jnz next11
or al,80h
next11:MOV DX,P8255_A
OUT DX ,AL
INC SI
INC bp
CALL DELA Y_1MS ;输出段码LOOP LEDDISP
RET
DISP ENDP
DELA Y_1MS PROC ;1ms延时子程序
push cx
MOV CX,500
CALL KEY
LOOP $
pop cx
RET
DELA Y_1MS ENDP
DELA Y_1MS1 PROC ;1ms延时子程序push cx
MOV CX,500
LOOP $
pop cx
RET
DELA Y_1MS1 ENDP
KEY PROC
MOV DX,P8255_C
IN AL,DX
AND AL,01H
jnz exit1
MOV BL,S1
MOV TEMP_1,BL
MOV BL,S2
MOV TEMP_2,BL
MOV BL,M1
MOV TEMP_3,BL
MOV BL,M2
MOV TEMP_4,BL
MOV AL,H1
MOV TEMP_5,BL
MOV BL,H2
MOV TEMP_6,BL
MOV DX,P8255_C
IN AL,DX
AND AL,01H
JZ W1 ;循环直到按键松开
next12:
MOV CX,06H
MOV bp,0
LEA SI,TEMP_1
LEDDISP1:
MOV AX,BP
LEA BX,LEDWE
XLAT
MOV DX,P8255_B
OUT DX,AL
MOV AL,[SI] ;输出位码
LEA BX,LEDTAB
XLAT
cmp cx,4
jnz next13
or al,80h
next13:MOV DX,P8255_A
OUT DX ,AL
INC SI
INC bp
CALL DELA Y_1MS1 ;输出段码LOOP LEDDISP1
mov dx,p8255_c
in al,dx
AND AL,1 ;109
Jnz next12
W2: MOV DX,P8255_C
IN AL,DX
AND AL,01H
mov s1,0
mov s2,0
mov m1,0
mov m2,0
mov h1,0
mov h2,0
JZ W2 ;循环直到按键松开
EXIT1: RET
KEY ENDP
INT0 PROC FAR
INC S1
CMP S1,10
JNZ EXIT
MOV S1,0
INC S2
CMP S2,10
JNZ EXIT
MOV S2,0
INC M1
CMP M1,10
JNZ EXIT
MOV M1,0
INC M2
CMP M2,6
JNZ EXIT
MOV M2,0
INC H1
CMP H1,10
JNZ EXIT
MOV H1,0
INC H2
CMP H2,6
JNZ EXIT
MOV H2,0 EXIT:
IRET
INT0 ENDP
CODE ENDS
STACK SEGMENT STACK DB 200 DUP(0)
STACK ENDS
DA TA SEGMENT
digit db 0
S1 DB 0
S2 DB 0
M1 DB 0
M2 DB 0
H1 DB 0
H2 DB 0
TEMP_1 DB 0
TEMP_2 DB 0
TEMP_3 DB 0
TEMP_4 DB 0
TEMP_5 DB 0
TEMP_6 DB 0
;显示值,10为时分秒中间的横杠
LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;段码表LEDWE DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH ,0bfh,7fh ;位码表
DA TA ENDS
END START

设计心得
通过本次课程设计,对微机接口的认识有了更一步的提高。

对8255、8253、8259三个芯片,有了一定了解。

忙了几天,终于有了成果,心里特别高兴。

不过在设计过程中也暴露出许多的问题,例如对实验设备的不熟悉,汇编语言掌握不够等等。

正是由于这些问题,使自己的编程能力提高了。

希望自己在期末考试中,微机接口有更大的收获。

相关文档
最新文档