📄 时钟.asm
字号:
AAMBUFF1 EQU 66H
AAHBUFF1 EQU 65H
AAMBUFF11 EQU 64H
AAMBUFF12 EQU 63H
AAHBUFF11 EQU 62H
AAHBUFF12 EQU 61H
AAMBUFF2 EQU 60H
AAHBUFF2 EQU 5FH
AAMBUFF21 EQU 5EH
AAMBUFF22 EQU 5DH
AAHBUFF21 EQU 5CH
AAHBUFF22 EQU 5BH
DDD EQU 11H
FLAG01 EQU 12H
AHBUFF2 EQU 77H
AHBUFF1 EQU 76H
AMBUFF2 EQU 75H
AMBUFF1 EQU 74H
HBUFF2 EQU 73H
HBUFF1 EQU 72H
MBUFF2 EQU 71H
MBUFF1 EQU 70H
DP EQU 10H
NUM EQU 78H
SBUFF EQU 79H
MBUFF EQU 7AH
HBUFF EQU 7BH
AMBUFF EQU 7CH
AHBUFF EQU 7DH
NUMT1 EQU 67H
NUMT2 EQU 68H
KEYNUMT1 EQU 69H
KEYNUMT2 EQU 6AH
STOREKEYNUMT2 EQU 6BH
STOREKEYNUMT1 EQU 6CH
ORG 0000H
AJMP START
ORG 000BH
MOV TH0,#0BH
MOV TL0,R4
AJMP INTERT0
ORG 001BH
JMP INTERT1
ORG 0040H
START: MOV NUMT1,#00H
MOV NUMT2,#00H
MOV SP, #30H
MOV KEYNUMT1,#00H
MOV KEYNUMT2,#0
MOV NUM,#8
MOV DPTR,#TAB
MOV AAHBUFF1 ,#18H ;置闹铃1时间初始值
MOV AAMBUFF1 ,#55H
MOV AAHBUFF12 ,#01H
MOV AAHBUFF11 ,#08H
MOV AAMBUFF12 ,#05H
MOV AAMBUFF11 ,#05H
MOV AAHBUFF2 ,#12H ;置闹铃2时间初始值
MOV AAMBUFF2 ,#34H
MOV AAHBUFF22 ,#01H
MOV AAHBUFF21 ,#02H
MOV AAMBUFF22 ,#03H
MOV AAMBUFF21 ,#04H
CLR FLAG01
MOV HBUFF2 ,#01H ;置闹钟时间初始值
MOV HBUFF1 ,#02H
MOV MBUFF2 ,#05H
MOV MBUFF1 ,#02H
MOV HBUFF ,#12H
MOV MBUFF ,#52H
MOV SBUFF ,#3CH
MOV 52H,#00 ;温度值十位
MOV 53H,#00 ;温度值个位
MOV TCON ,#05H
MOV TMOD ,#11H
MOV TH0 ,#0BH
MOV TL0 , #0DBH
MOV TH1 , #3CH
MOV TL1 , #0B0H
MOV IE , #82H
SETB PT0
SETB TR0
SETB P3.2
SETB P3.3
SETB P3.7
CLR DP
CLR DDD
CLR P3.7
START1: MOV A, HBUFF
SUBB A , #7H
JC START2
SUBB A, #21H
JNC START2
MOV A,SBUFF
CJNE A,#50,WENDU ;每个十秒钟时采集温度
LCALL RDTMP
JMP WENDU1
WENDU: ACALL DISPLAY
WENDU1: ACALL ZDBS
JMP START3
START2: ACALL NIGHTDISPLAY
START3: MOV A , AAHBUFF1
CJNE A,HBUFF,START5
MOV A,AAMBUFF1
CJNE A,MBUFF,START5
JMP START6
START5: MOV A , AAHBUFF2
CJNE A,HBUFF,START4
MOV A,AAMBUFF2
CJNE A,MBUFF,START4
START6: MOV C,DP
MOV P3.3,C
MOV A,SBUFF
JNZ START1
SETB P3.3
START4: JNB P3.2,ADJUSTTIME1
JNB P3.3,FFFFF
AJMP START1
FFFFF:JMP ADJUSTTIME2
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;*******int0的中断子程序*
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ADJUSTTIME1: NOP
MOV KEYNUMT1,#00H
MOV TH1,#3CH
MOV TL1,#0B0H
SETB ET1
SETB PT1
SETB TR1
MOV STOREKEYNUMT1,KEYNUMT1
TIME1_1: ACALL DISPLAY
MOV A, KEYNUMT1
CJNE A, STOREKEYNUMT1,TIME1_2
AJMP TIME1_3
TIME1_2: MOV STOREKEYNUMT1,KEYNUMT1
ACALL ADDBUFF0
SETB P3.7
CLR P3.7
MOV R2,#120
SSS: CPL DP
MOV C,DP
MOV P1.7,C
LCALL D1MS
DJNZ R2,SSS
SETB P3.7
CLR P3.7
MOV SBUFF,#3CH
TIME1_3: JNB P3.2,TIME1_1
CLR ET1
CLR PT1
CLR TR1
AJMP START1
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;***时间增1分****
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ADDBUFF0: MOV A,MBUFF
ADD A,#1
DA A
MOV MBUFF,A
ANL A,#0FH
MOV MBUFF1,A
MOV A,MBUFF
SWAP A
ANL A,#0FH
MOV MBUFF2,A
MOV A,MBUFF
CJNE A,#60H,ADDBUFF1
MOV MBUFF,#00H
MOV MBUFF2,#00H
MOV MBUFF1,#00H
MOV A,HBUFF
ADD A,#1
DA A
MOV HBUFF,A
ANL A , #0FH
MOV HBUFF1,A
MOV A,HBUFF
SWAP A
ANL A,#0FH
MOV HBUFF2,A
MOV A,HBUFF
CJNE A,#24H,ADDBUFF1
MOV HBUFF,#00H
MOV HBUFF2,#00H
MOV HBUFF1,#00H
ADDBUFF1: RET
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; int1中断子程序
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ADJUSTTIME2:LCALL DL1MS
aaa: MOV R0,#61H
LCALL SHIPLAY
jnb p3.3,aaa
DING001: MOV R0,#61H
LCALL SHIPLAY
JNB P3.2 , ZENGSHI1
CCC01: JNB P3.3 , FENG1
JMP DING001
ZENGSHI1: LCALL DL1MS
JNB P3.2,$
MOV A,AAHBUFF1
ADD A,#1
DA A
MOV AAHBUFF1,A
ANL A,#0FH
MOV AAHBUFF11,A
MOV A,AAHBUFF1
SWAP A
ANL A,#0FH
MOV AAHBUFF12,A
MOV A,AAHBUFF1
CJNE A,#24H,CCC01
MOV AAHBUFF1,#00H
MOV AAHBUFF12,#00H
MOV AAHBUFF11,#00H
JMP CCC01
FENG1: LCALL DL1MS
aaa1: MOV R0,#61H
LCALL FENGPLAY
jnb p3.3,aaa1
;JNB P3.3,$
FENG01: MOV R0,#61H
LCALL FENGPLAY
JNB P3.2 , ZHENGFENG1
JNB P3.3 , SHI2
JMP FENG01
ZHENGFENG1:LCALL DL1MS
JNB P3.2,$
MOV A,AAMBUFF1
ADD A,#1
DA A
MOV AAMBUFF1,A
ANL A,#0FH
MOV AAMBUFF11,A
MOV A,AAMBUFF1
SWAP A
ANL A,#0FH
MOV AAMBUFF12,A
MOV A,AAMBUFF1
CJNE A,#60H,hui1
MOV AAMBUFF1,#00H
MOV AAMBUFF12,#00H
MOV AAMBUFF11,#00H
hui1: JMP FENG1
SHI2: LCALL DL1MS
aaa2: MOV R0,#5bH
LCALL SHIPLAY
jnb p3.3,aaa2
; JNB P3.3,$
SHI02: MOV R0,#5BH
LCALL SHIPLAY
JNB P3.2 ,ZENGSHI2
CCC02: JNB P3.3 ,FENG2
JMP SHI02
ZENGSHI2: LCALL DL1MS
JNB P3.2,$
MOV A,AAHBUFF2
ADD A,#1
DA A
MOV AAHBUFF2,A
ANL A,#0FH
MOV AAHBUFF21,A
MOV A,AAHBUFF2
SWAP A
ANL A,#0FH
MOV AAHBUFF22,A
MOV A,AAHBUFF2
CJNE A,#24H,CCC02
MOV AAHBUFF2,#00H
MOV AAHBUFF22,#00H
MOV AAHBUFF21,#00H
JMP CCC02
FENG2: LCALL DL1MS
aaa3: MOV R0,#5bH
LCALL SHIPLAY
jnb p3.3,aaa3
; JNB P3.3,$
FENG02: MOV R0,#5BH
LCALL FENGPLAY
JNB P3.2 ,ZENGFENG2
JNB P3.3 , CHU
JMP FENG02
ZENGFENG2:LCALL DL1MS
JNB P3.2,$
MOV A,AAMBUFF2
ADD A,#1
DA A
MOV AAMBUFF2,A
ANL A,#0FH
MOV AAMBUFF21,A
MOV A,AAMBUFF2
SWAP A
ANL A,#0FH
MOV AAMBUFF22,A
MOV A,AAMBUFF2
CJNE A,#60H, HUI2
MOV AAMBUFF2,#00H
MOV AAMBUFF22,#00H
MOV AAMBUFF21,#00H
HUI2:JMP FENG2
CHU:
LCALL DL1MS
JNB P3.3,$
JMP START1
SHIPLAY: JB FLAG01,SHAI01 ;时显示
MOV A,@R0
INC R0
MOVC A,@A+DPTR
MOV C,DP
MOV ACC.7,C
MOV P1,A
CLR P3.0
ACALL DL01MS
SETB P3.0
MOV A,@R0
INC R0
MOVC A,@A+DPTR
MOV C,DP
MOV ACC.7,C
MOV P1,A
CLR P3.1
ACALL DL01MS
SETB P3.1
SETB FLAG01
JMP SHAI02
SHAI01: MOV A,@R0
INC R0
MOVC A,@A+DPTR
MOV C,DP
MOV ACC.7,C
MOV P1,A
ACALL DL01MS
SETB P3.0
MOV A,@R0
INC R0
MOVC A,@A+DPTR
MOV C,DP
MOV ACC.7,C
MOV P1,A
ACALL DL01MS
SETB P3.1
CLR FLAG01
SHAI02: MOV A,@R0
INC R0
ADD A,#0AH
MOVC A,@A+DPTR
MOV C,DP
MOV ACC.7,C
MOV P1,A
CLR P3.4
ACALL DL01MS
SETB P3.4
MOV A,@R0
INC R0
MOVC A,@A+DPTR
MOV C,DP
MOV ACC.7,C
MOV P1,A
CLR P3.5
ACALL DL01MS
SETB P3.5
RET
FENGPLAY:MOV A,@R0 ;分显示
INC R0
MOVC A,@A+DPTR
MOV C,DP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -