作业帮 > 综合 > 作业

6位数码管的MCS51单片机秒表设计实验

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/25 15:14:47
6位数码管的MCS51单片机秒表设计实验
利用51单片机,6个数码管设计一个秒表,要求在数码管上显示的数据从0开始每0.1秒加1,有启动,暂停,清零键 要个完整的程序!满分
用哪个显示都成!不考虑什么数码管,也不考虑什么外围电路,能运行就成,学校的课设 要交拉 急
6位数码管的MCS51单片机秒表设计实验
HD7279A.
ORG 0000H
lJMP WAIT0
ORG 001BH
LJMP BRT
ORG 0030H
WAIT0:LCALL DISP
MOV C,P1.4
JC WAIT0
LCALL READ
MOV A,28H
CJNE A,#01H,WAIT0
MIAOBIAO:MOV 79H,#00H ;1键开始
MOV 7AH,#00H ; 2键停止
MOV 7BH,#00H ; 再按3键清零
MOV 7CH,#00H ; 再按1键重新开始
MOV 7DH,#00H
MOV 7EH,#00H
MOV TMOD,#10H
MOV TH1,#0D8H
MOV 1,#0F0H
MOV IE,#88H
SETB PT1; 中断优先级
SETB TR1 ;开启定时器T1
;
MAIN:ACALL DISP
MOV C,P1.4
JC MAIN ; 等按键,按2停止
ACALL READ
MOV A,28H
CJNE A,#02H,MAIN
CLR TR1
WAIT1:LCALL DISP
MOV C,P1.4
JC WAIT1 ;按3键清零
LCALL READ
MOV A,28H
CLR 28H
CJNE A,#03H,WAIT1
MOV 79H,#00H
MOV 7AH,#00H
MOV 7BH,#00H
MOV 7CH,#00H
MOV 7DH,#00H
MOV 7EH,#00H
WAIT2:LCALL DISP
MOV C,P1.4 ;第三次按1键重新开始
JC WAIT2
LCALL READ
MOV A,28H
CLR 28H
CJNE A,#01H,EXIT
LJMP MIAOBIAO
EXIT:LJMP WAIT0
; EXIT:POP PSW
; POP ACC
; RET
DISP:MOV R0,#79H
MOV R1,#0C8H
MOV R2,#06H
DISP_LOOP:MOV 29H,R1
ACALL SEND
MOV 29H,@R0
ACALL SEND
INC R1
INC R0
DJNZ R2,DISP_LOOP
RET
SEND:CLR P1.7
MOV R3,#08H
lCALL LONG
SEND_LOOP:MOV C,29H.7
MOV P1.6,C
SETB P1.5
ACALL SHORT
CLR P1.5
ACALL SHORT
MOV A,29H
RL A
MOV 29H,A
DJNZ R3,SEND_LOOP
CLR P1.6
RET
LONG:MOV R5,#28H
LLP:DJNZ R5,LLP
SHORT:MOV R6,#08H
SLP:DJNZ R6,SLP
RET
BRT:MOV TL1,#0F0H
MOV TH1,#0D8H
PUSH PSW
PUSH ACC
INC 79H
MOV A,79H
CJNE A,#0AH,FH
MOV 79H,#00H
INC 7AH
MOV A,7AH
CJNE A,#0AH,FH
MOV 7AH,#00H
INC 7BH
MOV A,7BH
CJNE A,#0AH,FH
MOV 7BH,#00H
INC 7CH
MOV A,7CH
CJNE A,#06H,FH
MOV 7CH,#00H
INC 7DH
MOV A,7DH
CJNE A,#0AH,FH
MOV 7DH,#00H
INC 7EH
MOV A,7EH
CJNE A,#06H,FH
MOV 7EH,#00H
FH:POP ACC
POP PSW
RETI
READ:MOV 29H,#15H
ACALL SEND
LCALL RESE
RET
RESE:MOV 71H,#8 ; =8
SETB P1.6 ; P1.2(DATA)
CALL LONG ;
RECEIVE_LOOP:SETB P1.5 ; CLK
CALL SHORT ;
MOV A,28H ;
RL A
MOV 28H,A
MOV C,P1.6 ;
MOV 28H.0,C
CLR P1.5 ; CLK
CALL SHORT
DJNZ 71H,RECEIVE_LOOP; 8
CLR P1.6 ; DAT
RET