📄 main.src
字号:
CALL RADOMER999
CP R15,#0AAH
JP EQ,BUYAOSHUO
LD LCD_BUFFER+3,#00H
LD LCD_BUFFER+4,#00H
BUYAOSHUO: LD LCD_BUFFER+1,#00H
LD LCD_BUFFER+2,#00H ;相应位关(时针) ,闪烁
CALL SHAOMIAO
JP CLOCK_TIME999
TIME_UP_F: CALL TIME_UP
JP TMD
TIME_DOWN_F: CALL TIME_DOWN
JP TMD
;-------------------------------------------------------
TMD1: LD KEY_FLAG,#01111111B
CALL delay_100ms
LD R11,#00H
CALL RADOMER999
CP R15,#0AAH
JP EQ,CLOCK_MINITE
LD R11,#55H
JP TANGJINFENG
CLOCK_MINITE: LD R14,MINITE_FLAG ;开始分针的设定
CALL DISPLAY_DIGE
LD LCD_BUFFER+3,R15
LD R14,MINITE_FLAG1
CALL DISPLAY_DIGE
LD LCD_BUFFER+4,R15 ;相应位开(分针)
CP KEY_FLAG,#01111111B
JP NE,JIANBI2
CALL SHAOMIAO
;---------时钟(分针)键盘扫描--------
JIANBI2: CP KEY_FLAG,#OK
JP EQ,TANGJINFENG
CP KEY_FLAG,#UP
JP EQ,MINITE_UP_T
CP KEY_FLAG,#DOWN
JP EQ,MINITE_DOWN_T
CALL JUDY
LD LCD_BUFFER+3,#00H
LD LCD_BUFFER+4,#00H ;相应位关(分针) ,闪烁
CALL SHAOMIAO
JP CLOCK_MINITE
TANGJINFENG: LD KEY_FLAG,#01111111B
CP LEED_FLAG,#00H
JP EQ,CLOCK_BTEGAN
CALL MASSGE_KEEP ;数据保存
CP R11,#55H
JP NE,UPFAN
LD R12,LEED_FLAG
AND R12,#01H
CP R12,#01H
JP NE,UPFAN
INC LEED_FLAG
LD R11,#00H
UPFAN: CALL SHANGFANCHENGXU ;调用上翻程序
CALL PRO_STAR
MINITE_UP_T: CALL MINITE_UP
JP TMD1
MINITE_DOWN_T: CALL MINITE_DOWN
JP TMD1
;--------------------分针操作----------------------------------------
MINITE_UP: CP MINITE_FLAG,#00H ;分针上翻
JP UGT,UGT_DO
LD R0,MINITE_FLAG1
JP ZHIXING
UGT_DO: LD R0,MINITE_FLAG1
LD R1,MINITE_FLAG
GO_ON: ADD R0,#0AH
DEC R1
CP R1,#00H
JP UGT,GO_ON
ZHIXING: CP R0,#09H
JP EQ,DOUB_ADD
CP R0,#13H
JP EQ,DOUB_ADD
CP R0,#1DH
JP EQ,DOUB_ADD
CP R0,#27H
JP EQ,DOUB_ADD
CP R0,#31H
JP EQ,DOUB_ADD
CP R0,#3BH ;59
JP EQ,DOUB_ADD_Z
INC MINITE_FLAG1
RET
DOUB_ADD: INC MINITE_FLAG
LD MINITE_FLAG1,#00H
RET
DOUB_ADD_Z: LD MINITE_FLAG1,#00H
LD MINITE_FLAG,#00H
RET
MINITE_DOWN: CP MINITE_FLAG,#00H ;分针下翻
JP UGT,UGT_DOJ
LD R0,MINITE_FLAG1
JP ZHIXINGJ
UGT_DOJ: LD R0,MINITE_FLAG1
LD R1,MINITE_FLAG
GO_ONJ: ADD R0,#0AH
DEC R1
CP R1,#00H
JP UGT,GO_ONJ
ZHIXINGJ: CP R0,#00H
JP EQ,DOUB_SUB_Z
CP R0,#0AH
JP EQ,DOUB_SUB
CP R0,#14H
JP EQ,DOUB_SUB
CP R0,#1EH
JP EQ,DOUB_SUB
CP R0,#28H
JP EQ,DOUB_SUB
CP R0,#32H
JP EQ,DOUB_SUB
DEC MINITE_FLAG1
RET
DOUB_SUB_Z: LD MINITE_FLAG1,#09H
LD MINITE_FLAG,#05H
RET
DOUB_SUB: DEC MINITE_FLAG
LD MINITE_FLAG1,#09H
RET
;----------------------------------------------------------
ROZHUCEN: CP TIME_FLAG,#00H
JP UGT,UGT_DEAL
LD R0,TIME_FLAG1
RET
UGT_DEAL: LD R0,TIME_FLAG1
LD R1,TIME_FLAG
ADD10: ADD R0,#0AH
DEC R1
CP R1,#00H
JP UGT,ADD10
RET
;-------------------------------------小时位上下翻----------------------------------
;------为"1"时是12小时制 ;上键操作 ------------------
TIME_UP: CALL ROZHUCEN
TCM TIP,#00001000B
JP Z,HRHR12
LD AMPM_FLAG,#11111110B
CP R0,#17H
JP UGE,LINGDIAN
CP R0,#09H
JP EQ,XIUGAI
CP R0,#13H
JP EQ,XIUGAI
INC TIME_FLAG1
RET
XIUGAI: INC TIME_FLAG
LD TIME_FLAG1,#00H
RET
LINGDIAN: CP LEED_FLAG,#0DH ; -----------------------ALL操作
JP EQ,CLERZ555
CP LEED_FLAG,#0FH
JP NE,CLERZ
CLERZ555: CP R0,#18H
JP EQ,CLERZ
INC TIME_FLAG1
RET
CLERZ: LD TIME_FLAG,#00H
LD TIME_FLAG1,#00H
RET
;--12小时制,上键操作-------
HRHR12: CP R0,#0BH
JP UGE,LINGDIAN12
CP R0,#09H
JP UGE,XIUGAI12
INC TIME_FLAG1
RET
XIUGAI12: CP R0,#09H
JP UGT,XIUGAI121
INC TIME_FLAG
LD TIME_FLAG1,#00H
RET
XIUGAI121: INC TIME_FLAG1
RET
LINGDIAN12: LD TIME_FLAG,#00H
LD TIME_FLAG1,#00H
CP R0,#0CH
JP ULT,AOTO
CP AMPM_FLAG,#01H ; -----------------------ALL操作
JP NE,CLERZ147
OR LCD_BUFFER,#80H
RET
CLERZ147: LD TIME_FLAG1,#01H
RET
AOTO: COM AMPM_FLAG
CP AMPM_FLAG,#00000001B
JP EQ,LAITED
AND LCD_BUFFER,#01111111B
LD TIME_FLAG,#01H
LD TIME_FLAG1,#02H
RET
LAITED: OR LCD_BUFFER,#80H
CP LEED_FLAG,#0DH ; -----------------------ALL操作
JP EQ,CLERZ258
CP LEED_FLAG,#0FH
JP EQ,CLERZ258
RET
CLERZ258: LD TIME_FLAG,#01H
LD TIME_FLAG1,#02H
RET
;--------为"1"时是12小时制;下键操作 -----------------
TIME_DOWN: CALL ROZHUCEN
TCM TIP,#00001000B
JP Z,TTT12
LD AMPM_FLAG,#11111110B
CP R0,#00H
JP EQ,LINGTTT
CP R0,#0AH
JP EQ,XIUGAILE
CP R0,#14H
JP EQ,XIUGAILE
DEC TIME_FLAG1
RET
XIUGAILE: DEC TIME_FLAG
LD TIME_FLAG1,#09H
RET
LINGTTT: CP LEED_FLAG,#0DH ; -----------------------ALL操作
JP EQ,CLERZ000
CP LEED_FLAG,#0FH
JP NE,CLERZ369
CLERZ000: LD TIME_FLAG,#02H
LD TIME_FLAG1,#04H
RET
CLERZ369: LD TIME_FLAG,#02H
LD TIME_FLAG1,#03H
RET
;--12小时制,下键操作-------
TTT12: CP R0,#00H
JP EQ,LINGDIAN12T
CP R0,#01H
JP NE,GUAPI
CP AMPM_FLAG,#01H
JP EQ,GUAPI
LD TIME_FLAG,#01H
LD TIME_FLAG1,#02H
RET
GUAPI: CP R0,#0AH
JP UGE,XIUGAI12T
DEC TIME_FLAG1
RET
XIUGAI12T: CP R0,#0AH
JP UGT,XIUGAI121T
DEC TIME_FLAG
LD TIME_FLAG1,#09H
RET
XIUGAI121T: DEC TIME_FLAG1
CP R0,#0CH
JP EQ,LASTLAST_OK
RET
LASTLAST_OK: AND LCD_BUFFER,#7FH
CP AMPM_FLAG,#01H
JP EQ,NENENE
OR LCD_BUFFER,#10000000B
NENENE: COM AMPM_FLAG
RET
LINGDIAN12T: CP LEED_FLAG,#0DH ; -----------------------ALL操作
JP EQ,CLERZ8888
CP LEED_FLAG,#0FH
JP NE,CLERZ159
CLERZ8888: LD TIME_FLAG,#01H
LD TIME_FLAG1,#02H
RET
CLERZ159: LD TIME_FLAG,#01H
LD TIME_FLAG1,#01H
AND LCD_BUFFER,#01111111B
COM AMPM_FLAG
RET
;-------------------------------------星期上下翻---------------------------------
WEEK_UP: CP WEEK_FLAG,#06H
JP UGT,XINQIYI
INC WEEK_FLAG
RET
XINQIYI: CP LEED_FLAG,#00H
JP UGT,WEEK_RENAME
LD WEEK_FLAG,#01H
RET
WEEK_RENAME: CP WEEK_FLAG,#0CH
JP UGT,WEEK_XINQIYI
INC WEEK_FLAG
RET
WEEK_XINQIYI: LD WEEK_FLAG,#01H
RET
WEEK_DOWN: CP WEEK_FLAG,#01H ;下键操作
JP EQ,XINQIRI
DEC WEEK_FLAG
RET
XINQIRI: CP LEED_FLAG,#00H
JP UGT,WEEK_REDOWN
LD WEEK_FLAG,#07H
RET
WEEK_REDOWN: LD WEEK_FLAG,#0DH
RET
;-----------------------------------------------------------------
;------------强制开关模式-----------
;-----------------------------------------------------------------
ON_OFF_SET: CALL QINGPING
CALL delay_100ms
LD LCD_BUFFER+7,#00000001B
ON_OFF_JUDY: CP SHIFTE,#00H
JP EQ,OFF_LIGHT
LD LCD_BUFFER+2,#11111100B ;------开的状态
LD LCD_BUFFER+3,#11101100B
LD LCD_BUFFER+4,#00000000B
CALL SHAOMIAO
CP KEY_FLAG,#ON_OFF
JP EQ,ON_OFF_DELE
CALL JUDY
JP ON_OFF_JUDY
ON_OFF_DELE: LD SHIFTE,#00H
AND P2,#11110111B ; 关灯
CALL delay_100ms
JP ON_OFF_JUDY
OFF_LIGHT: LD LCD_BUFFER+2,#11111100B ;-------关的状态
LD LCD_BUFFER+3,#10001110B
LD LCD_BUFFER+4,#10001110B
CALL SHAOMIAO
CP KEY_FLAG,#ON_OFF
JP EQ,ON_OFF_DELE2
CALL JUDY
JP ON_OFF_JUDY
ON_OFF_DELE2: LD SHIFTE,#01H
OR P2,#00001000B ; 开灯
CALL delay_100ms
JP ON_OFF_JUDY
;-----------------------------------------------------------------
;------------程序设置模式-----------
;-----------------------------------------------------------------
PROGRAM_SET: CALL QINGPING
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -