📄 main.src
字号:
LD LCD_BUFFER+7,#01101000B
LD LCD_BUFFER+5,#11001110B
LD LCD_BUFFER+6,#01100000B
CALL PRO_STAR
RET
;-----------------------------------------------------------------
;------------自动模式-----------
;-----------------------------------------------------------------
ATUO_SET: CALL QINGPING
LD X_SHIFT,#00H
LD LCD_BUFFER+7,#01011000B
LD KEY_FLAG,#01111111B
CALL delay_100ms
CICALL_TEST: LD LCD_BUFFER+5,#11001110B
LD LEED_FLAG,#00H
CALL DISP_TIME
CALL DISPLY_DAYS ;初始化当前设置的内容 (星期、天、日)
CP KEY_FLAG,#01111111B
JP NE,GOJIBA
CALL SHAOMIAO
GOJIBA: CP KEY_FLAG,#ON_OFF
JP NE,NO_KEY
COM X_SHIFT
CALL delay_100ms
NO_KEY: CALL JUDY
CP X_SHIFT,#0FFH
JP EQ,CECT
CALL COMPER_TIME_P ;--------定时检测
LD LCD_BUFFER+7,#00011000B
JP TEIJIBA
CECT: LD LCD_BUFFER+7,#00010100B
TEIJIBA: CALL SHAOMIAO
JP CICALL_TEST
RET
;-----------------------------------------------------------------
; --------倒计数功能与显示部分--------
;-----------------------------------------------------------------
COUNT_SET: LD AUTO_RAND,#00H ;----倒计数功能的标记
CP COUNT_TIME,#00H
JP EQ,FENJIANCA
CP COUNT_TIME,#17H
JP NE,ZHUMAPI
LD COUNT_TIME,#18H
LD COUNT_MIMITE,#00H
JP COUNT_FEN_SET
ZHUMAPI: CP COUNT_TIME,#18H
JP UGE,RETURN10MIN
INC COUNT_TIME
JP COUNT_FEN_SET
RETURN10MIN: LD COUNT_TIME,#00H
LD COUNT_MIMITE,#0AH
JP COUNT_FEN_SET
FENJIANCA: CP COUNT_MIMITE,#0AH
JP ULT,RETURN10MIN ;第一次按倒计时键 CALL delay_100ms
CP COUNT_MIMITE,#14H
JP ULT,MIN20
CP COUNT_MIMITE,#1EH
JP ULT,MIN30
JP MIN60
MIN20: LD COUNT_TIME,#00H
LD COUNT_MIMITE,#14H
JP COUNT_FEN_SET
MIN30: LD COUNT_TIME,#00H
LD COUNT_MIMITE,#1EH
JP COUNT_FEN_SET
MIN60: LD COUNT_TIME,#01H
LD COUNT_MIMITE,#00H
;---------分循环起点
COUNT_FEN_SET: CALL delay_100ms
LD LCD_BUFFER+7,#01001000B
COUNT_FEN_SET99:
LD KEY_FLAG,#01111111B
LD P3,#01111111B
CALL delay_100ms
LD WEEK_FLAG,WEEK
;(星期)
LD R6,COUNT_TIME
LD R7,COUNT_MIMITE
CP R6,#09H
JP UGT,COUNT_YES
LD TIME_FLAG1,R6
LD TIME_FLAG,#00H
JP COUNT_FEN
COUNT_YES: CLR TIME_FLAG
COUNT_X: SUB R6,#0AH
INC TIME_FLAG
CP R6,#09H
JP UGT,COUNT_X
LD TIME_FLAG1,R6
;(小时)
COUNT_FEN: CP R7,#09H
JP UGT,COUNT_MIAO
LD MINITE_FLAG1,R7
LD MINITE_FLAG,#00H
JP QINGCHU_AM
COUNT_MIAO: CLR MINITE_FLAG
COUNT_Y: SUB R7,#0AH
INC MINITE_FLAG
CP R7,#09H
JP UGT,COUNT_Y
LD MINITE_FLAG1,R7
;(分钟)
QINGCHU_AM: LD AMPM_FLAG,#11111110B ;(星期、天、日) 中关上下午
;-----------------倒计时的显示
CALL uvwxyz
CP ROLL_LIGHT,#04H
JP ULT,MAOZHEDONG
AND LCD_BUFFER+7,#10111111B
MAOZHEDONG: CALL DISPLY_DAYS ;(星期、天、日)
LD KEY_FLAG,P3
CP KEY_FLAG,#UP
JP EQ,COUNT_UPUP
CP KEY_FLAG,#DOWN
JP EQ,COUNT_DOWNDOWN
CALL JUDY
XIAJIANREN: CALL COMPER_TIME_Z ;-------------------------------------定时检侧
JP COUNT_FEN_SET99
RET
COUNT_UPUP: CP COUNT_MIMITE,#3BH
JP NE,GUNKAI
CP COUNT_TIME,#17H
JP ULT,GUNKAIDIAN
LD COUNT_TIME,#00H
JP GUNKAI
GUNKAIDIAN: INC COUNT_TIME
GUNKAI: CALL MINITE_UP
CALL SAVE_COUNTF
CALL delay_100ms
JP XIAJIANREN
COUNT_DOWNDOWN: CP COUNT_MIMITE,#00H
JP NE,GUNKAI7
CP COUNT_TIME,#00H
JP UGT,GUNKAIDIAN7
JP GUNKAI7
GUNKAIDIAN7: DEC COUNT_TIME
GUNKAI7: CALL MINITE_DOWN
CALL SAVE_COUNTF
CALL delay_100ms
JP XIAJIANREN
;------------------------分钟存储---------------------------
SAVE_COUNTF: CP MINITE_FLAG,#00H
JP UGT,DAYUSHI_M
LD COUNT_MIMITE,MINITE_FLAG1
RET
DAYUSHI_M: LD R0,MINITE_FLAG1
LD R1,MINITE_FLAG
HAIDAYUDE: ADD R0,#0AH
DEC R1
CP R1,#00H
JP UGT,HAIDAYUDE
LD COUNT_MIMITE,R0
RET
;-----------------------------------------------------------------
; --------随机模式功能与显示部分--------
;-----------------------------------------------------------------
RAND_SET: CALL QINGPING
LD MODLE,#03H
TCM TIP,#00000100B
JP Z,YOU_RANDOM99
LD LCD_BUFFER+2,#10011110B
LD LCD_BUFFER+3,#00001010B
LD LCD_BUFFER+4,#00001010B
CALL SHAOMIAO
CALL JUDY
JP RAND_SET
YOU_RANDOM99: LD KEY_FLAG,#01111111B
YOU_RANDOM: LD LCD_BUFFER+7,#01001000B
LD LCD_BUFFER+5,#00001010B
LD LEED_FLAG,#00H
CALL DISP_TIME
CALL DISPLY_DAYS ;初始化当前(星期、天、日)
CP KEY_FLAG,#01111111B
JP NE,SECSED
CALL SHAOMIAO
SECSED: CALL JUDY
AND LCD_BUFFER+7,#10111111B ;相应位关(程序内容) ,闪烁
CALL COMPER_TIME_R ;-------------------------------------定时检测
CALL SHAOMIAO
JP YOU_RANDOM
RET
;-----------------------------------------------------------------
; --------延时子函数---------
;-----------------------------------------------------------------
delay_500ms: LD R6,#3Eh ;延时500ms
d500s: CALL delay_2ms
DEC R6
CP R6,#00H
JP UGT,d500s
ret
delay_100ms: LD R4,#1Eh ;延时100ms
d1s: CALL delay_2ms
DEC R4
CP R4,#00H
JP UGT,d1s
ret
delay_2ms: LD R2,#0d7H ;延时1.996ms
d40: LD R13,#02H
d40ZI: NOP
NOP
DEC R13
CP R13,#00H
JP UGT,d40ZI
DEC R2
CP R2,#00H
JP UGT,d40
ret
;-----------------------------------------------------------------
; --------数字显示函数---------
;-----------------------------------------------------------------
DISPLAY_DIGE: CP R14,#00H
JP EQ,LING
CP R14,#01H
JP EQ,YI
CP R14,#02H
JP EQ,ER
CP R14,#03H
JP EQ,SAN
CP R14,#04H
JP EQ,SI
CP R14,#05H
JP EQ,WU
CP R14,#06H
JP EQ,LIU
CP R14,#07H
JP EQ,QI
CP R14,#08H
JP EQ,BA
CP R14,#09H
JP EQ,JIU
LING: LD R15,#0FCH
RET
YI: LD R15,#60H
RET
ER: LD R15,#0DAH
RET
SAN: LD R15,#0F2H
RET
SI: LD R15,#66H
RET
WU: LD R15,#0B6H
RET
LIU: LD R15,#0BEH
RET
QI: LD R15,#0E0H
RET
BA: LD R15,#0FEH
RET
JIU: LD R15,#0F6H
RET
;-----------------------------------------------------------------
; --------功能键返回时数据保存函数---------
;-----------------------------------------------------------------
MASSGE_KEEP: LD R5,WEEK_FLAG ;---------------保存数据
;存储(星期)
CP TIME_FLAG,#00H
JP UGT,CUNCHU
LD R6,TIME_FLAG1
JP CUNCHU_FEN
CUNCHU: LD R0,TIME_FLAG1
LD R1,TIME_FLAG
ABCDEFGH: ADD R0,#0AH
DEC R1
CP R1,#00H
JP UGT,ABCDEFGH
LD R6,R0
;存储(小时)
CUNCHU_FEN: CP MINITE_FLAG,#00H
JP UGT,CUNCHU_M
LD R7,MINITE_FLAG1
JP XIXIHAHA
CUNCHU_M: LD R0,MINITE_FLAG1
LD R1,MINITE_FLAG
HGFEDCBA: ADD R0,#0AH
DEC R1
CP R1,#00H
JP UGT,HGFEDCBA
LD R7,R0
;存储(分钟)
XIXIHAHA: LD R8,AMPM_FLAG
;存储(上/下午)
CP LEED_FLAG,#00H
JP UGT,PRO_STATE
LD WEEK,R5 ;保存时间设置
LD TIME,R6
LD MINITE,R7
LD AMPM,R8
RET
PRO_STATE: LD R9,#0BH
LD R10,LEED_FLAG
PRO_12345: ADD R9,#04H
DEC R10
CP R10,#00H
JP UGT,PRO_12345
LD @R9,R5 ;保存程序设置 (地址:0F~4F,即:5~79)
INC R9
LD @R9,R6
INC R9
LD @R9,R7
INC R9
LD @R9,R8
RET
;-----------------------------------------------------------------
; --------显示寻址及相关操作函数---------
;-----------------------------------------------------------------
MASSGE_DISP: CP LEED_FLAG,#00H
JP UGT,PRO_STATES
LD R5,WEEK ;导出时间设置
LD R6,TIME
LD R7,MINITE
LD R8,AMPM
JP DAOCHUSHUJU
PRO_STATES: LD R9,#0BH
LD R10,LEED_FLAG
XIAOBI: ADD R9,#04H
DEC R10
CP R10,#00H
JP UGT,XIAOBI
LD R5,@R9 ;导出程序设置 (地址:0F~4F,即:15~79)
INC R9
LD R6,@R9
INC R9
LD R7,@R9
INC R9
LD R8,@R9
DAOCHUSHUJU: LD WEEK_FLAG,R5 ;---------------数据导出
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -