📄 main.src
字号:
TJF_TBB2: CP SHIFTE,#00H
JP EQ,TJF_TBB966
CP PRO_SHIFTE,#00H
JP UGT,TJF_TBB1001
TJF_TBB966: LD P_WEEK,#01H
LD P_TIME,#00H
LD P_MINITE,#00H
LD P_AMPM,#01H
CP PRO_SHIFTE,#00H
JP UGT,TJF_TBB1001
LD PRO_SHIFTE,#01H
TJF_TBB1001: CP MODLE,#04H
JP NE,MAOJIBA
OR P2,#00001000B
LD SHIFTE,#01H
MAOJIBA: CP R7,#00H
JP UGT,TJF_TB98
LD R7,WEEK
TJF_TB98: CP R7,P_WEEK
JP UGT,TJF_TBB3
JP ULT,TJF_TB99
ADD R10,#03H
CP P_AMPM,@R10 ;关灯时间大于当前时间时,
JP ULT,TJF_TBB3 ;检查标记存储器中与该状态的关灯时间熟大
JP UGT,TJF_TB99
LD R8,R10
CALL JISHIBEN
CP P_TIME,R14
JP ULT,TJF_TBB3
JP UGT,TJF_TB99
DEC R10
CP P_MINITE,@R10
JP UGE,TJF_TB99
TJF_TBB3: LD P_WEEK,R7 ;与标记存储器比较后,大的存入标记存储器
ADD R11,#03H
LD R8,R11
CALL JISHIBEN
LD P_TIME,R14
DEC R11
LD P_MINITE,@R11
INC R11
LD P_AMPM,@R11
TJF_TB99: RET
;------JUMP到此处
RELOLD_P: CP PRO_SHIFTE,#00H
JP UGT,JIER
LD PRO_SHIFTE,#01H
JIER: LD P_WEEK,WEEK
LD P_TIME,#0BH
TCM TIP,#00001000B
JP Z,MAPI
LD P_TIME,#17H
MAPI: LD P_MINITE,#3BH
LD P_AMPM,#0FEH
RET
;--------------检查是否为中午12点,函数-----------------;
JISHIBEN: SUB R8,#02H
LD R15,TIME
LD R14,@R8
TM TIP,#00001000B
JP Z,BAIXUE
CP TIME,#0CH
JP NE,YONGLEXIN
LD R15,#00H
YONGLEXIN: CP R14,#0CH
JP NE,BAIXUE
LD R14,#00H
BAIXUE: RET
;-----------------星期有没有相等的?函数---------------;
DAY_COMPER: LD R15,#0C0H
FANDEHEN: CLR @R15
INC R15
CP R15,#0C7H
JP ULE,FANDEHEN
LD R13,@R8
CP R13,#07H
JP UGT,TJF_TB1
LD R7,@R8
JP TJF_TB
TJF_TB1: CP R13,#08H
JP UGT,TJF_TB2
LD R0,#01H
LD R1,#02H
LD R2,#03H
LD R3,#04H
JP TJF_TB
TJF_TB2: CP R13,#09H
JP UGT,TJF_TB3
LD R0,#01H
LD R1,#02H
LD R2,#03H
LD R3,#04H
LD R4,#05H
JP TJF_TB
TJF_TB3: CP R13,#0AH
JP UGT,TJF_TB4
LD R0,#01H
LD R1,#02H
LD R2,#03H
LD R3,#04H
LD R4,#05H
LD R5,#06H
JP TJF_TB
TJF_TB4: CP R13,#0BH
JP UGT,TJF_TB5
LD R0,#01H
LD R1,#02H
LD R2,#03H
LD R3,#04H
LD R4,#05H
LD R5,#06H
LD R6,#07H
JP TJF_TB
TJF_TB5: CP R13,#0CH
JP UGT,TJF_TB6
LD R4,#05H
LD R5,#06H
LD R6,#07H
JP TJF_TB
TJF_TB6: LD R5,#06H
LD R6,#07H
TJF_TB: CP WEEK,R7
JP EQ,TJF_TB7
CP WEEK,R0
JP EQ,TJF_TB7
CP WEEK,R1
JP EQ,TJF_TB7
CP WEEK,R2
JP EQ,TJF_TB7
CP WEEK,R3
JP EQ,TJF_TB7
CP WEEK,R4
JP EQ,TJF_TB7
CP WEEK,R5
JP EQ,TJF_TB7
CP WEEK,R6
JP EQ,TJF_TB7
LD R9,#00H ;星期没有相等的
RET
TJF_TB7: LD R9,#01H ;星期有相等的
RET
;**************************************************************************
;-----------------------------------------------------------------
; -------------倒计数函数 显示部分--------------
;-----------------------------------------------------------------
COMPER_TIME_Z: OR P2,#00001000B ; 开灯
LD SHIFTE,#01H
INC ROLL_LIGHT
CP ROLL_LIGHT,#01H
JP UGT,DIS_5_F
LD LCD_BUFFER+5,#10000100B
LD LCD_BUFFER+6,#00000000B
JP Z_NZ
DIS_5_F: CP ROLL_LIGHT,#02H
JP UGT,DIS_5_E
LD LCD_BUFFER+5,#00001100B
LD LCD_BUFFER+6,#00000000B
JP Z_NZ
DIS_5_E: CP ROLL_LIGHT,#03H
JP UGT,DIS_5_D
LD LCD_BUFFER+5,#00011000B
LD LCD_BUFFER+6,#00000000B
JP Z_NZ
DIS_5_D: CP ROLL_LIGHT,#04H
JP UGT,DIS_6_D
LD LCD_BUFFER+5,#00010000B
LD LCD_BUFFER+6,#00010000B
JP Z_NZ
DIS_6_D: CP ROLL_LIGHT,#05H
JP UGT,DIS_6_C
LD LCD_BUFFER+5,#00000000B
LD LCD_BUFFER+6,#00110000B
JP Z_NZ
DIS_6_C: CP ROLL_LIGHT,#06H
JP UGT,DIS_6_B
LD LCD_BUFFER+5,#00000000B
LD LCD_BUFFER+6,#01100000B
JP Z_NZ
DIS_6_B: CP ROLL_LIGHT,#07H
JP UGT,DIS_6_A
LD LCD_BUFFER+5,#00000000B
LD LCD_BUFFER+6,#11000000B
JP Z_NZ
DIS_6_A: LD LCD_BUFFER+5,#10000000B
LD LCD_BUFFER+6,#10000000B
LD ROLL_LIGHT,#00H
Z_NZ: CP COUNT_TIME,#00H
JP EQ,JPJP
RET
JPJP: CP COUNT_MIMITE,#00H
JP EQ,JPJPJP
RET
JPJPJP: AND P2,#11110110B
LD SHIFTE,#00H
LD MODLE,#04H
CALL ATUO_SET ;时间到后自动调用“自动模式”之后的关灯与否由 “自动模式判断
RET
;-----------------------------------------------------------------
; -------------随机模式中加载程序控制函数--------------
;-----------------------------------------------------------------
COMPER_TIME_R: LD R8,#3FH
CALL TJF_TB100 ;该开的时候严格开,该关的时候严格关
LD R8,#47H
CALL TJF_TB100
CP PRO_SHIFTE,#00H
JP EQ,HULALA369
CP PRO_SHIFTE,#04H
JP UGE,HULALA
LD R3,#06H
CALL HAPI
HULALA: CP PRO_SHIFTE,#19H
JP UGE,HULALA147
CP SHIFT_SHIFT,MINITE
JP EQ,HULALA369
DEC PRO_SHIFTE
LD SHIFT_SHIFT,MINITE
CP PRO_SHIFTE,#05H
JP NE,HULALA369
OR P2,#00001000B ;开
LD SHIFTE,#01H
LD R3,#28H
CALL HAPI
HULALA147: CP PRO_SHIFTE,#3CH
JP UGE,HULALA258
CP SHIFT_SHIFT,MINITE
JP EQ,HULALA369
DEC PRO_SHIFTE
LD SHIFT_SHIFT,MINITE
CP PRO_SHIFTE,#1EH
JP NE,HULALA369
AND P2,#11110110B ;关
LD SHIFTE,#00H
LD R3,#5AH
CALL HAPI
HULALA258: CP SHIFT_SHIFT,MINITE
JP EQ,HULALA369
DEC PRO_SHIFTE
LD SHIFT_SHIFT,MINITE
CP PRO_SHIFTE,#41H
JP NE,HULALA369
OR P2,#00001000B
LD SHIFTE,#01H
LD R3,#28H
CALL HAPI
HULALA369: CALL TIMEOFF
RET
;---------------------------;
HAPI: LD R2,MIDLL_VORT
LD R1,#04H
HAPIGG: RCF
RRC R2
DEC R1
CP R1,#00H
JP UGT,HAPIGG
ADD R2,R3
LD PRO_SHIFTE,R2
LD SHIFT_SHIFT,MINITE
RET
;----------------------------------------------------------------
; --------------扫描--------------
;----------------------------------------------------------------
SHAOMIAO: LD R15,#00H
CHUZHI: LD P3,#01111111B ;键盘操作
CP SHIFTE,#01H
JP NE,CHUZHI258
CALL delay_100ms
JP CHUZHI147
CHUZHI258: CALL delay_500ms
CHUZHI147: LD KEY_FLAG,P3
CP KEY_FLAG,#01111111B
JP EQ,CHUZHI369
RET
CHUZHI369: INC R15
CP R15,#04H
JP ULT,CHUZHI
RET
;-----------------------------------------------------------------------------------
DISP_TIME: CALL MASSGE_DISP ;判断当前时钟设置的位置,并加载显示当前内容
CALL RADOMER999
CP R15,#0AAH
JP EQ,uvwxyzOP
CALL RANDGRAT02
RET
uvwxyzOP: CALL uvwxyz
RET
;------------------------------------------------------------------------------------
uvwxyz: LD R14,TIME_FLAG ;-----------------初始化以前设置的内容
CALL DISPLAY_DIGE
LD LCD_BUFFER+1,R15
LD R14,TIME_FLAG1
CALL DISPLAY_DIGE
LD LCD_BUFFER+2,R15 ;相应位开(时针)
LD R14,MINITE_FLAG ;--初始化以前设置的内容
CALL DISPLAY_DIGE
LD LCD_BUFFER+3,R15
LD R14,MINITE_FLAG1
CALL DISPLAY_DIGE
LD LCD_BUFFER+4,R15 ;相应位开(分针)
OR LCD_BUFFER+7,#40H
RET
;;----------------------------------------------------------------------------------
RADOMER999: LD R15,#55H
CP LEED_FLAG,#0CH ;随机模式的判断ALL,start;
JP ULE,SAME
LD R14,TIP
AND R14,#08H
CP R14,#08H
JP EQ,RANDGRAT90
CP TIME_FLAG,#02H
JP ULT,SAME
CP TIME_FLAG1,#04H
JP ULT,SAME
RET
RANDGRAT90: CP AMPM_FLAG,#01H
JP NE,SAME
CP TIME_FLAG,#01H
JP ULT,SAME
CP TIME_FLAG1,#02H
JP ULT,SAME
RET
SAME: LD R15,#0AAH
RET
;---------------------------------------------------------------------------------
RANDGRAT02: LD LCD_BUFFER+1,#0EEH
LD LCD_BUFFER+2,#1CH
LD LCD_BUFFER+3,#1CH
LD LCD_BUFFER+4,#00H
AND LCD_BUFFER,#7FH
AND LCD_BUFFER+7,#3FH
RET ;随机模式的显示ALL
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -