📄 jrdmdysz.asm
字号:
;
; ****** system Clock ******
;
CLK: MOV TH0,#4CH ; 50MS ( XT = 11.05926MHz )
ORL TL0,#01H
PUSH ACC
PUSH B
PUSH PSW
PUSH DPL
PUSH DPH
SETB PSW.3 ; RX : PAGE 3
SETB PSW.4
INC Timer1
MOV A,Timer1
CLR C
SUBB A,#Speed1
JC CLK1
MOV Timer1,#0
SETB ShowF
SETB ShowDtSjF
CPL GlintF
CLK1: INC Timer2
MOV A,Timer2
CLR C
SUBB A,#Speed2
JC CLK2
MOV Timer2,#0
nop
CLK2: INC Timer3
MOV A,Timer3
CLR C
SUBB A,#Speed3
JC CLK3
MOV Timer3,#0
NOP
CLK3: MOV A,TIME
ADD A,#1
DA A
MOV TIME,A
CJNE A,#20H,CLKE
INC SecTimerA
INC SecTimerB
INC RunTimer
INC StopTimer
MOV TIME,#0
LCALL SecTimer
MOV A,LedStatus
LCALL LedDrive ; 面板 LED 驱动
MOV A,SEC
ADD A,#1
DA A
MOV SEC,A
CJNE A,#60H,CLKE
LCALL ReadMulClock ; 读HT1380时钟日期
INC MinTimerA
INC MinTimerB
SETB DisplayF
MOV SEC,#0
MOV A,MIN
ADD A,#1
DA A
MOV MIN,A
CJNE A,#60H,CLKE
MOV MIN,#0
CLKE: POP DPH
POP DPL
POP PSW
POP B
POP ACC
RETI
;
; ****** 双字节秒定时器 ******
;
SecTimer: JB SecTimerF,SecTimer1
RET
SecTimer1: MOV A,JcSjL ; 检测时间低8位
ADD A,#1
MOV JcSjL,A
MOV A,JcSjH ; 检测时间高8位
ADDC A,#0
MOV JcSjH,A
RET
;
; ****** 日期/时钟设置 ******
;
ClockSetup: LCALL Watchdog
MOV KeyCount,#0
SETB ClockEditF
MOV EditShowX,#4
MOV EditShowY,#224
ClockSetup1: MOV Variable8,Year
MOV Variable6,Month
MOV Variable5,Day
MOV Variable4,Hour
MOV Variable3,Min
MOV Variable2,Sec
ClockSetup2: MOV A,EditShowX
CJNE A,#04,ClockSetup3
MOV Variable8,#0BBH
SJMP ClockSetup8
ClockSetup3: CJNE A,#10,ClockSetup4
MOV Variable6,#0BBH
SJMP ClockSetup8
ClockSetup4: CJNE A,#16,ClockSetup5
MOV Variable5,#0BBH
SJMP ClockSetup8
ClockSetup5: CJNE A,#22,ClockSetup6
MOV Variable4,#0BBH
SJMP ClockSetup8
ClockSetup6: CJNE A,#28,ClockSetup7
MOV Variable3,#0BBH
SJMP ClockSetup8
ClockSetup7: CJNE A,#34,ClockSetup8
MOV Variable2,#0BBH
ClockSetup8: LCALL EditDateTime
NOP
ClockSetup9: LCALL ScanKey
JNB KeyF,ClockSetup9
CLR KeyF
MOV A,KeyNumber ;
CJNE A,#0AH,ClockSetup10
RET
ClockSetup10: CJNE A,#0BH,ClockSetup12
MOV Year,Variable8
MOV Month,Variable6
MOV Day,Variable5
MOV Hour,Variable4
MOV Min,Variable3
MOV Sec,Variable2
LCALL HtWriteClock
LCALL HtWriteDate
RET
ClockSetup11: LJMP ClockSetup1
NOP
ClockSetup12: CJNE A,#0DH,ClockSetup13
MOV A,EditShowX
CLR C
SUBB A,#06H
MOV EditShowX,A
JNC ClockSetup11
MOV EditShowX,#04H
LJMP ClockSetup11
ClockSetup13: CJNE A,#0FH,ClockSetup14
MOV A,EditShowX
ADD A,#06H
MOV EditShowX,A
CLR C
SUBB A,#40
JC ClockSetup11
MOV EditShowX,#04H
ClockSetup14: MOV A,KeyNumber ;
CLR C
SUBB A,#10
JNC ClockSetup11
INC KeyCount
MOV A,EditShowX
CJNE A,#4,ClockSetup17
MOV A,KeyCount
CJNE A,#1,ClockSetup16
MOV A,KeyNumber
SWAP A
MOV B,Variable8
ANL B,#00001111B
ORL A,B
MOV Variable8,A
LJMP ClockSetup8
ClockSetup15: LJMP ClockSetup2
NOP
ClockSetup16: CJNE A,#2,ClockSetup15
MOV KeyCount,#0
MOV A,KeyNumber
MOV B,Variable8
ANL B,#11110000B
ORL A,B
MOV Variable8,A
MOV A,EditShowX
ADD A,#06H
MOV EditShowX,A
CLR C
SUBB A,#40
JC ClockSetup15
MOV EditShowX,#04H
LJMP ClockSetup15
ClockSetup17: CJNE A,#10,ClockSetup20
MOV A,KeyCount
CJNE A,#1,ClockSetup19
MOV A,KeyNumber
SWAP A
MOV B,Variable6
ANL B,#00001111B
ORL A,B
MOV Variable6,A
LJMP ClockSetup8
ClockSetup18: LJMP ClockSetup2
NOP
ClockSetup19: CJNE A,#2,ClockSetup18
MOV KeyCount,#0
MOV A,KeyNumber
MOV B,Variable6
ANL B,#11110000B
ORL A,B
MOV Variable6,A
MOV A,EditShowX
ADD A,#06H
MOV EditShowX,A
CLR C
SUBB A,#40
JC ClockSetup18
MOV EditShowX,#04H
LJMP ClockSetup18
ClockSetup20: CJNE A,#16,ClockSetup23
MOV A,KeyCount
CJNE A,#1,ClockSetup22
MOV A,KeyNumber
SWAP A
MOV B,Variable5
ANL B,#00001111B
ORL A,B
MOV Variable5,A
LJMP ClockSetup8
ClockSetup21: LJMP ClockSetup2
NOP
ClockSetup22: CJNE A,#2,ClockSetup18
MOV KeyCount,#0
MOV A,KeyNumber
MOV B,Variable5
ANL B,#11110000B
ORL A,B
MOV Variable5,A
MOV A,EditShowX
ADD A,#06H
MOV EditShowX,A
CLR C
SUBB A,#40
JC ClockSetup18
MOV EditShowX,#04H
LJMP ClockSetup18
ClockSetup23: CJNE A,#22,ClockSetup26
MOV A,KeyCount
CJNE A,#1,ClockSetup25
MOV A,KeyNumber
SWAP A
MOV B,Variable4
ANL B,#00001111B
ORL A,B
MOV Variable4,A
LJMP ClockSetup8
ClockSetup24: LJMP ClockSetup2
NOP
ClockSetup25: CJNE A,#2,ClockSetup24
MOV KeyCount,#0
MOV A,KeyNumber
MOV B,Variable4
ANL B,#11110000B
ORL A,B
MOV Variable4,A
MOV A,EditShowX
ADD A,#06H
MOV EditShowX,A
CLR C
SUBB A,#40
JC ClockSetup24
MOV EditShowX,#04H
LJMP ClockSetup24
ClockSetup26: CJNE A,#28,ClockSetup29
MOV A,KeyCount
CJNE A,#1,ClockSetup28
MOV A,KeyNumber
SWAP A
MOV B,Variable3
ANL B,#00001111B
ORL A,B
MOV Variable3,A
LJMP ClockSetup8
ClockSetup27: LJMP ClockSetup2
NOP
ClockSetup28: CJNE A,#2,ClockSetup27
MOV KeyCount,#0
MOV A,KeyNumber
MOV B,Variable3
ANL B,#11110000B
ORL A,B
MOV Variable3,A
MOV A,EditShowX
ADD A,#06H
MOV EditShowX,A
CLR C
SUBB A,#40
JC ClockSetup27
MOV EditShowX,#04H
LJMP ClockSetup27
ClockSetup29: CJNE A,#34,ClockSetup30
MOV A,KeyCount
CJNE A,#1,ClockSetup31
MOV A,KeyNumber
SWAP A
MOV B,Variable2
ANL B,#00001111B
ORL A,B
MOV Variable2,A
LJMP ClockSetup8
ClockSetup30: LJMP ClockSetup2
NOP
ClockSetup31: CJNE A,#2,ClockSetup30
MOV KeyCount,#0
MOV A,KeyNumber
MOV B,Variable2
ANL B,#11110000B
ORL A,B
MOV Variable2,A
MOV A,EditShowX
ADD A,#06H
MOV EditShowX,A
CLR C
SUBB A,#40
JC ClockSetup32
MOV EditShowX,#04H
ClockSetup32: LJMP ClockSetup8
;
; ****** 日期时间编辑显示 ******
;
EditDateTime: MOV OXL,#0
MOV OY,#224
MOV SeleTab,#Tsk
MOV CCCODE,#02 ; 2
LCALL CCTW
MOV OXL,#2
MOV OY,#224
MOV SeleTab,#Tsk
MOV CCCODE,#00 ; 0
LCALL CCTW
MOV A,Variable8
ANL A,#0F0H
SWAP A
MOV OXL,#4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -