📄 main.src
字号:
;导出(星期)
CP R6,#09H
JP UGT,DAOCHULAI
LD TIME_FLAG1,R6
LD TIME_FLAG,#00H
JP DAOCHULAI_FEN
DAOCHULAI: CLR TIME_FLAG
DAOCHUX: SUB R6,#0AH
INC TIME_FLAG
CP R6,#09H
JP UGT,DAOCHUX
LD TIME_FLAG1,R6
;导出(小时)
DAOCHULAI_FEN: CP R7,#09H
JP UGT,DAOCHULAI1
LD MINITE_FLAG1,R7
LD MINITE_FLAG,#00H
JP DAOCHULAI_AM
DAOCHULAI1: CLR MINITE_FLAG
DAOCHUY: SUB R7,#0AH
INC MINITE_FLAG
CP R7,#09H
JP UGT,DAOCHUY
LD MINITE_FLAG1,R7
;导出(分钟)
DAOCHULAI_AM: LD AMPM_FLAG,R8
;导出(上/下午)
RET
;-----------------------------------------------------------------
; -------------星期的显示函数--------------
;-----------------------------------------------------------------
DISPLY_DAYS: CP WEEK_FLAG,#07H ;--------------------------星期的显示
JP UGT,WEEK_1234
RCF
LD R1,#01H
LD R2,WEEK_FLAG
cp R2,#01H
JP EQ,COMCOMCOM
XUNHUAN: RL R1
DEC R2
CP R2,#01H
JP UGT,XUNHUAN
JP COMCOMCOM
WEEK_1234: CP WEEK_FLAG,#08H
JP UGT,WEEK_12345
LD R1,#00001111B
JP COMCOMCOM
WEEK_12345: CP WEEK_FLAG,#09H
JP UGT,WEEK_123456
LD R1,#00011111B
JP COMCOMCOM
WEEK_123456: CP WEEK_FLAG,#0AH
JP UGT,WEEK_1234567
LD R1,#00111111B
JP COMCOMCOM
WEEK_1234567: CP WEEK_FLAG,#0BH
JP UGT,WEEK_567
LD R1,#01111111B
JP COMCOMCOM
WEEK_567: CP WEEK_FLAG,#0CH
JP UGT,WEEK_67
LD R1,#01110000B
JP COMCOMCOM
WEEK_67: LD R1,#01100000B
COMCOMCOM: LD R11,TIP
AND R11,#00001000B
CP R11,#00001000B
JP EQ,DONNO
JP DONYES
DONNO: LD R12,AMPM_FLAG
AND R12,#01H
CP R12,#01H
JP EQ,FLAG_DESING
DONYES: LD R0,#00H
JP BEGAIN_XINGQI
FLAG_DESING: LD R0,#80H
BEGAIN_XINGQI: OR R0,R1
LD LCD_BUFFER,R0 ;开星期显示
RET
;-----------------------------------------------------------------
; -------------程序模式设置函数--------------
;-----------------------------------------------------------------
PRO_STAR: LD KEY_FLAG,#01111111B
ld sp,#10101111b
CALL delay_100ms
PRO_STAR555: CALL DISP_TIME
CALL DISPLY_DAYS ;初始化以前设置的内容 (星期、天、日)
CALL DISP_TIME
CALL FANYECHENGXU ;当前程序显示(闪烁)
CP KEY_FLAG,#01111111B
JP NE,HALIU
CALL SHAOMIAO
HALIU: CP KEY_FLAG,#OK
JP EQ,CLOCK_STORET
CP KEY_FLAG,#UP
JP EQ,TIME_UP_BB
CP KEY_FLAG,#DOWN
JP EQ,TIME_DOWN_BB
CALL JUDY
LD LCD_BUFFER+5,#00H
LD LCD_BUFFER+6,#00H
AND LCD_BUFFER+7,#11110011B ;相应位关(程序内容) ,闪烁
CALL SHAOMIAO
JP PRO_STAR555
RET
CLOCK_STORET: CALL CLOCK_SET
RET
TIME_UP_BB: TM LEED_FLAG,#01H
JP Z,JIBUBIAN
INC LEED_FLAG
JIBUBIAN: CALL SHANGFANCHENGXU
JP PRO_STAR
TIME_DOWN_BB: TM LEED_FLAG,#01H
JP Z,JIBUBIAN1
DEC LEED_FLAG
JIBUBIAN1: CALL XIAFANLE
JP PRO_STAR
;-----------------------------------------------------------------
; -------------上翻程序函数--------------
;-----------------------------------------------------------------
SHANGFANCHENGXU:
TCM TIP,#04H
JP Z,WITH_RANDOM
INC LEED_FLAG
CP LEED_FLAG,#0CH
JP UGT,SAMPLE
RET
SAMPLE: LD LEED_FLAG,#01H
RET
WITH_RANDOM: LD R0,TIP
AND R0,#01000000B
CP R0,#01000000B
JP EQ,SEG_4_2
INC LEED_FLAG
CP LEED_FLAG,#10H
JP UGT,SAMPLETJF
RET
SAMPLETJF: LD LEED_FLAG,#01H
RET
SEG_4_2: INC LEED_FLAG
CP LEED_FLAG,#08H
JP UGT,RANDON2
RET
RANDON2: CP LEED_FLAG,#0DH
JP UGT,HAIPANDUAN
LD LEED_FLAG,#0DH
RET
HAIPANDUAN: CP LEED_FLAG,#10H
JP UGT,CHULI_LAST
RET
CHULI_LAST: LD LEED_FLAG,#01H
RET
;-----------------------------------------------------------------
; -------------下翻程序函数--------------
;----------------------------------------------------------------
XIAFANLE: TCM TIP,#04H
JP Z,WITH_RANDOMD
CP LEED_FLAG,#00H
JP EQ,SAMPLED
DEC LEED_FLAG
RET
SAMPLED: LD LEED_FLAG,#0BH
RET
WITH_RANDOMD: TCM TIP,#01000000B
JP Z,SEG_4_2D
CP LEED_FLAG,#00H
JP EQ,SAMPLETJFD
DEC LEED_FLAG
RET
SAMPLETJFD: LD LEED_FLAG,#0FH
RET
SEG_4_2D: CP LEED_FLAG,#0DH
JP ULT,RANDON2D
DEC LEED_FLAG
RET
RANDON2D: CP LEED_FLAG,#08H
JP ULT,HAIPANDUAND
LD LEED_FLAG,#07H
RET
HAIPANDUAND: CP LEED_FLAG,#00H
JP EQ,CHULI_LASTD
DEC LEED_FLAG
RET
CHULI_LASTD: LD LEED_FLAG,#0FH
RET
;-----------------------------------------------------------------
; -------------翻程序显示内容函数--------------
;-----------------------------------------------------------------
FANYECHENGXU: TCM LEED_FLAG,#01H
JP Z,DISPLY_ON
AND LCD_BUFFER+7,#11110011B ;---"OFF"
OR LCD_BUFFER+7,#00000100B
LD R0,LEED_FLAG
DIAOMAO: RCF
SRA R0
CP R0,#07H
JP ULT,NO_ON_DSP
LD LCD_BUFFER+5,#00001010B
CP R0,#07H
JP UGT,RANDOM_NO2
LD LCD_BUFFER+6,#01100000B
RET
RANDOM_NO2: LD LCD_BUFFER+6,#11011010B
RET
NO_ON_DSP: LD LCD_BUFFER+5,#11001110B
LD R14,R0
CALL DISPLAY_DIGE
LD LCD_BUFFER+6,R15
RET
DISPLY_ON: AND LCD_BUFFER+7,#11110011B ;为奇数时"ON"
OR LCD_BUFFER+7,#00001000B
LD R0,LEED_FLAG
INC R0
JP DIAOMAO
;-----------------------------------------------------------------
; -------------清屏函数--------------
;-----------------------------------------------------------------
QINGPING: LD R1,#0B0H
CLERPING: CLR @R1
INC R1
CP R1,#0B9H
JP ULT,CLERPING
RET
;**************************************************************************
;-----------------------------------------------------------------
; -------------自动模式中加载程序控制函数--------------
;-----------------------------------------------------------------
COMPER_TIME_P: ;该开的时候严格开,该关的时候严格关
LD R8,#0FH
CALL TJF_TB100
LD R8,#17H ;继续检查
CALL TJF_TB100
LD R8,#1FH
CALL TJF_TB100
LD R8,#27H
CALL TJF_TB100
LD R8,#2FH
CALL TJF_TB100
LD R8,#37H
CALL TJF_TB100
CALL TIMEOFF
RET
;---------------检查关灯时间-------------------;
TIMEOFF: CP WEEK,P_WEEK
JP NE,TJF_TT
CP AMPM,P_AMPM
JP NE,TJF_TT
CALL JISHIBEN
CP R15,P_TIME
JP NE,TJF_TT
CP MINITE,P_MINITE
JP NE,TJF_TT
AND P2,#11110110B ;关
LD SHIFTE,#00H
LD PRO_SHIFTE,#00H
TJF_TT: RET
;-------检查其中一个程序状态中的情况,判断和相应操作---------;
TJF_TB100: CALL DAY_COMPER
CP R7,#00H
JP EQ,GOMAOJIBA
CP R7,WEEK
JP UGE,GOMAOJIBA
ADD R8,#02H
JP GUANDENRIZI
GOMAOJIBA: CP R9,#00H
JP EQ,TJF_TB99
LD R1,R8 ;-----检查是否为"ALL".
INC R1
LD R14,@R1
ADD R1,#02H
LD R13,@R1
TM TIP,#00001000B
JP Z,BEIWEI
CP R13,#01H
JP NE,MAOJIBADA
CP R14,#0CH
JP NE,MAOJIBADA
LD R14,#18H
BEIWEI: CP R14,#18H
JP EQ,RELOLD_P
MAOJIBADA: ADD R8,#03H
CP AMPM,@R8
JP ULT,TJF_TB99
JP UGT,CHENGHONG
CALL JISHIBEN ;上午12时,改为0点
CP R15,R14
JP ULT,TJF_TB99
JP UGT,CHENGMING
INC R8
CP MINITE,@R8
JP ULT,TJF_TB99 ;时间检查
JP GUANDENRIZI
CHENGMING: ADD R8,#02H
CHENGHONG: DEC R8
GUANDENRIZI: ADD R8,#02H
LD R10,R8
LD R11,R8
CALL DAY_COMPER
CP R7,WEEK
JP UGT,TJF_TBB2
CP R9,#00H
JP EQ,TJF_TB99
ADD R8,#03H
CP AMPM,@R8
JP ULT,TJF_TBB2
JP UGT,TJF_TB99
CALL JISHIBEN
CP R15,R14
JP ULT,TJF_TBB2
JP UGT,TJF_TB99
INC R8
CP MINITE,@R8
JP UGE,TJF_TB99 ;时间相同时,检查关灯时间与当前时间熟大?
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -