📄 move_ɨ
字号:
HOUR EQU 40H;小时缓冲区
MIN EQU 41H;分钟缓冲区
DP EQU 42H;小数点显示
SECOND EQU 43H;
MIAOJIA EQU 45H;
MIAO EQU 49H;
HOUR_A EQU 4AH;闹铃的小时
MIN_A EQU 4BH;闹铃的分钟
SAOMIAO EQU 44H;秒计数
SHAN_Y EQU 50H
YAN_A1 EQU 51H
YAN_A2 EQU 52H
YAN_A3 EQU 53H
SET_F EQU 46H
LED_F EQU 47H
KEY_F EQU 48H
LATCH BIT P3.5
ALARM BIT P3.4;喇叭
KEY_SET BIT P3.3;功能键
KEY_ADD BIT P3.2;加设置
DP_F BIT F0
H_XIAN BIT 20H
L_XIAN BIT 21H
H_A BIT 22H
L_A BIT 23H
LED_KEY BIT 24H
LED_SET BIT 25H
SPEEKER BIT 26H
ORG 0
JMP MAIN
ORG 0BH
JMP INT_T0
ORG 1BH
JMP INT_T1
MAIN:
MOV TMOD,#11H
MOV TH0,#0ECH
MOV TL0,#078H;5ms
MOV TH1,#0FCH
MOV TL1,#18H;500us*/
MOV HOUR,#0;小时显示
MOV MIN,#0;分钟显示
MOV HOUR_A,#0;
MOV MIN_A,#1
MOV SECOND,#60;分钟计数
MOV MIAOJIA,#60;秒中计数
MOV SHAN_Y,#25;设置时灯闪延时计数
MOV SET_F,#0
MOV DP,#0;小数点计数
MOV MIAO,#200
MOV DP,#100
MOV YAN_A1,#0
MOV YAN_A2,#0
MOV YAN_A3,#0
MOV R5,#250
MOV R4,#4
MOV R3,#8
MOV SAOMIAO,#0EEH
MOV DPTR,#TAB
SETB EA
SETB ET0
SETB ET1
SETB LATCH
CLR ALARM
SETB TR0
SETB SPEEKER
START: MOV A,HOUR
CJNE A,HOUR_A,JIXU
MOV A,MIN
CJNE A,MIN_A,JIXU
SETB TR1
JIXU:
MOV A,P3
ANL A,#0DH
MOV KEY_F,A
CJNE A,#0DH,LOOP5
JMP START
LOOP5: CALL DELAY
MOV A,P3
CJNE A,KEY_F,START
JNB KEY_SET,SET_USE;CHOOSE键,是功能键就调去处理
MOV A,SET_F;
CJNE A,#3,NEXT_3;跳到下一个验证
SETB H_A
SETB LED_KEY
MOV A,HOUR_A
ADD A,#1
DA A
CJNE A,#24,LOOP7
MOV HOUR_A,#0
JMP LOOP7
NEXT_3: CJNE A,#4,NEXT_4
SETB LED_KEY
SETB L_A
MOV A,MIN_A
ADD A,#1
DA A
CJNE A,#60,LOOP7
MOV MIN_A,#0
JMP LOOP7
NEXT_4: CJNE A,#1,NEXT_5
SETB H_XIAN
SETB LED_SET
MOV A,HOUR
ADD A,#1
DA A
CJNE A,#24,LOOP7
MOV HOUR,#0
JMP LOOP7
NEXT_5:
SETB L_XIAN
SETB LED_SET
MOV A,MIN
ADD A,#1
DA A
CJNE A,#60,LOOP7
MOV MIN,#0
LOOP7: JNB KEY_ADD,$
JMP START
SET_USE:
INC SET_F;加设置
MOV A,SET_F
CJNE A,#5,LOOP6
MOV SET_F,#0
LOOP6: JNB KEY_SET,$
JMP START
DELAY: MOV R0,#10
LOOP1: MOV R1,#0
LOOP2: DJNZ R1,LOOP2
DJNZ R0,LOOP1
RET
INT_T0:
PUSH PSW
PUSH ACC
MOV TH0,#0ECH
MOV TL0,#078H
DJNZ DP,GO_ON1;
CPL F0
MOV DP,#100
GO_ON1:
DJNZ MIAO,LOOP4
MOV MIAO,#200
MOV MIAOJIA,#60
DJNZ SECOND,LOOP4
MOV SECOND,#60
MOV A,MIN
CJNE A,#59H,ADD_1L
MOV MIN,#0
MOV A,HOUR
CJNE A,#23H,ADD_1H
MOV HOUR,#0
JMP LOOP4
ADD_1L: ADD A,#1
DA A
MOV MIN,A
JMP LOOP4
ADD_1H: ADD A,#1
DA A
MOV HOUR,A
/*
LOOP4: MOV A,SET_F
CJNE A,#0,LOOP10
JMP LOOP8
LOOP10: SETB 40H
JMP
*/
/*LOOP4:
MOV A,MIN
ANL A,#0FH
MOVC A,@A+DPTR
MOV SBUF,A
MOV A,MIN
ANL A,#0F0H
MOVC A,@A+DPTR
JNB TI,$
CLR TI
MOV SBUF,A
JNB TI,$
MOV A,HOUR
ANL A,#0FH
MOVC A,@A+DPTR
MOV SBUF,A
MOV A,HOUR
ANL A,#0F0H
MOVC A,@A+DPTR
JNB TI,$
CLR TI
MOV SBUF,A
JNB TI,$
*/
LOOP4: MOV A,SAOMIAO
CJNE A,#0EEH,CMP_NEXT1
JMP MIN_L
CMP_NEXT1:
CJNE A,#0DDH,CMP_NEXT2
JMP MIN_H
CMP_NEXT2:
CJNE A,#0BBH,HOUR_H
JMP HOUR_L
HOUR_H:
JB H_XIAN,LOOP11
JNB H_A,LOOP16
CLR H_A
DJNZ SHAN_Y,LOOP30
MOV SHAN_Y,#25
MOV A,HOUR_A
JMP LOOP12
LOOP11: CLR H_XIAN
DJNZ SHAN_Y,LOOP30
MOV SHAN_Y,#25
LOOP16: MOV A,HOUR
LOOP12: ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
CPL A
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,SAOMIAO
MOV SBUF,A
JNB TI,$
CLR TI
JMP LOOP3
MIN_L:
JB L_XIAN,LOOP17
JNB L_A,LOOP18
CLR L_A
DJNZ SHAN_Y,LOOP30
MOV SHAN_Y,#25
MOV A,MIN_A
JMP LOOP19
LOOP17: CLR L_XIAN
DJNZ SHAN_Y,LOOP30
MOV SHAN_Y,#25
LOOP18: MOV A,MIN
LOOP19: ANL A,#0FH
MOVC A,@A+DPTR
CPL A
JNB LED_KEY,GO_ON2
CLR LED_KEY
ORL A,#1
GO_ON2: MOV SBUF,A
JNB TI,$
CLR TI
MOV A,SAOMIAO
MOV SBUF,A
JNB TI,$
CLR TI
JMP LOOP30
MIN_H:
JB L_XIAN,LOOP20
JNB L_A,LOOP21
CLR L_A
DJNZ SHAN_Y,LOOP30
MOV SHAN_Y,#25
MOV A,MIN_A
JMP LOOP22
LOOP30: JMP LOOP3
LOOP20: CLR L_XIAN
DJNZ SHAN_Y,LOOP30
MOV SHAN_Y,#25
LOOP21: MOV A,MIN
LOOP22: ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
CPL A
JNB F0,LOOP9
ORL A,#1
LOOP9: MOV SBUF,A
JNB TI,$
CLR TI
MOV A,SAOMIAO
MOV SBUF,A
JNB TI,$
CLR TI
JMP LOOP3
HOUR_L:
JB H_XIAN,LOOP13
JNB H_A,LOOP14
CLR H_A
DJNZ SHAN_Y,LOOP3
MOV SHAN_Y,#25
MOV A,HOUR_A
JMP LOOP23
LOOP13: CLR H_XIAN
DJNZ SHAN_Y,LOOP3
MOV SHAN_Y,#25
LOOP14: MOV A,HOUR
LOOP23: ANL A,#0FH
MOVC A,@A+DPTR;SEND_DIS:
CPL A
JNB LED_SET,GO_ON4
CLR LED_SET
ORL A,#1
GO_ON4: MOV SBUF,A
JNB TI,$
CLR TI
MOV A,SAOMIAO
MOV SBUF,A
JNB TI,$
CLR TI
LOOP3:
CLR LATCH
SETB LATCH
MOV A,SAOMIAO
RL A
MOV SAOMIAO,A
POP ACC
POP PSW
RETI
INT_T1:
MOV TH1,#0FCH
MOV TL1,#18H
JNB SPEEKER,LOOP27
DJNZ R5,LOOP_W
MOV R5,#250
DJNZ R4,LOOP_W
CLR SPEEKER
MOV R4,#4
JMP LOOP_W
LOOP27: DJNZ R5,LOOP_W
MOV R5,#250
DJNZ R3,LOOP_W
SETB SPEEKER
MOV R3,#8
LOOP_W: DJNZ YAN_A1,LAST
MOV YAN_A1,0
DJNZ YAN_A2,LAST
MOV YAN_A2,0
DJNZ YAN_A3,LAST
MOV YAN_A3,#0
CLR TR1
LAST: RETI
TAB:
DB 0FCH, 60H,0DAH,0F2H, 66H,0B6H,0BEH,0E0H,0FEH,0F6H;共阴,反
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -