51单片机数码管倒计时实验汇编代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORG 0000H
LJMP START
ORG 000BH
LJMP TIME0
ORG 001BH
LJMP TIME1
ORG 0030H
START:MOV TMOD,#11H MOV TH0,HIGH(65536-9216) MOV TL0,#LOW(65536-9216) MOV TH1,HIGH(65536-9216) MOV TL1,#LOW(65536-9216) MOV IE,#8AH
MOV R0,#30
MOV R1,#00
MOV R2,#02
MOV R4,#06
MOV 30H,#0
MOV 31H,#2
MOV 32H,#0
MOV 33H,#0
CLR 20H.1
CLR 21H.1
CLR PSW.5
SETB TR0
MAIN:LCALL DISPLAY
JB 20H.1,SOUND
AJMP MAIN
SOUND:MOV SP,#60
SETB TR1
LOOP:CALL MUSIC
JB 21H.1,STOP
AJMP LOOP
STOP:AJMP $
DISPLAY:MOV DPTR,#TAB MOV A,33H
MOVC A,@A+DPTR
MOV P0,A
CLR P1.0
LCALL DL2MS
SETB P1.0
MOV A,32H
MOVC A,@A+DPTR
MOV P0,A
CLR P1.1
LCALL DL2MS
SETB P1.1
MOV A,31H
MOVC A,@A+DPTR
MOV P0,A
CLR P1.2
LCALL DL2MS
SETB P1.2
MOV A,30H
MOVC A,@A+DPTR
MOV P0,A
CLR P1.3
LCALL DL2MS
SETB P1.3
RET
TIME0:MOV TH0,HIGH(65536-9216) MOV TL0,#LOW(65536-9216) DJNZ R0,TIMEOUT
MOV R0,#30
CJNE R1,#00,TIMECOUNT
MOV A,R2
DEC A
MOV R2,A
MOV R1,#59
CJNE R2,#00,TIMECOUNT TIMECOUNT:MOV A,R2
MOV B,#10
DIV AB
MOV 30H,A
MOV 31H,B
MOV A,R1
MOV B,#10
DIV AB
MOV 32H,A
MOV 33H,B
DEC R1
CJNE R1,#00,TIMEOUT
JNB PSW.5,MIAO
SETB 20H.1
CLR TR0
CLR ET0
MOV A,R2
MOV B,#10
DIV AB
MOV 30H,A
MOV 31H,B
MOV A,R1
MOV B,#10
DIV AB
MOV 32H,A
MOV 33H,B
AJMP TIMEOUT
MIAO:MOV R1,#59
DEC R2
SETB PSW.5
TIMEOUT:RETI
DL2MS:MOV 34H,#20H
DL1:MOV 35H,#30
DL2:DJNZ 35H,DL2
DJNZ 34H,DL1
RET
MUSIC:MOV R5,#20H
MIC:CPL P3.2
ACALL DELAY5MS
DJNZ R5,MIC
RET
DELAY5MS:MOV R7,#3H
DELAY0:MOV R6,#20H
DELAY1:DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
TIME1:MOV TH1,HIGH(65536-9216) MOV TL1,#LOW(65536-9216) DJNZ R0,TIMEOUT
MOV R0,#30
DJNZ R4,TIME1OUT
CLR TR1
CLR ET1
SETB 21H.1
TIME1OUT:RETI
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END