📄 p06007-6.asm
字号:
;;;;;;;;;;
CLRC
SUBC TIME_MH_COUNT,#1
LDM TIME_MH_COUNT,A
TSTC
BR !TIMER_F_3B
BR !TIMER_F_3C
TIMER_F_3B:
LDM TIME_MH_COUNT,#5
CLRC
SUBC TIME_H_COUNT,#1
LDM TIME_H_COUNT,A
TSTC
BR !START
TIMER_F_3C:
CMNE TIME_ML_COUNT,#0
BR !TIMER_F_RET1
CMNE TIME_MH_COUNT,#0
BR !TIMER_F_RET1
CMNE TIME_H_COUNT,#0
BR !TIMER_F_RET1
LDM TIME_S_COUNT1,#0
LDM TIME_S_COUNT2,#0
;TIMER OVER, DOING FUNCTION
TM ON_OFF_MARK.#2 ;是否智能模式,是就跳转
BR !TIMER_F_AUTO
TIMER_F_AUTO_RET:
TM ON_OFF_MARK.#3 ;是否有闹铃,有就跳转
BR !TIMER_F_5
LDM ON_OFF_MARK,#0000B
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
TIMER_F_5:
LDM ON_OFF_MARK,#0001B
LDM SOUND_CONTROL,#0011B
LDM SOUND_COURSE,#0
LDM KEY_COUNT3,#0DH ;设定闹铃长度
LDM KEY_COUNT4,#0FH
RET
TIMER_F_AUTO:
CMLE AUTO_LOGIC,#0
BR !START
CMNE AUTO_LOGIC,#1
BR !TIMER_F_AUTO_1
LDM AUTO_LOGIC,#2
;如果8小时中间温度是34,7小时是35,6小时36,5小时37
CMLE AUTO_LEVEL,#5
BR !TIMER_F_AUTOA
CMLE AUTO_LEVEL,#6
BR !TIMER_F_AUTOB
CMLE AUTO_LEVEL,#7
BR !TIMER_F_AUTOC
LDM SET_TEP_H,#3
LDM SET_TEP_L,#4
BR !TIMER_F_AUTOD
TIMER_F_AUTOA:
LDM SET_TEP_H,#3
LDM SET_TEP_L,#7
BR !TIMER_F_AUTOD
TIMER_F_AUTOB:
LDM SET_TEP_H,#3
LDM SET_TEP_L,#6
BR !TIMER_F_AUTOD
TIMER_F_AUTOC:
LDM SET_TEP_H,#3
LDM SET_TEP_L,#5
TIMER_F_AUTOD:
;;;;;;;;;;
LDA A_DATA_BH
LDM TIME_H_COUNT,A
LDA A_DATA_BM
LDM TIME_MH_COUNT,A
RET
TIMER_F_AUTO_1:
CMNE AUTO_LOGIC,#2
BR !TIMER_F_AUTO_2
LDM AUTO_LOGIC,#3
LDM SET_TEP_H,#4
LDM SET_TEP_L,#0
LDA A_DATA_AH
LDM TIME_H_COUNT,A
LDA A_DATA_AM
LDM TIME_MH_COUNT,A
RET
TIMER_F_AUTO_2:
LDM AUTO_LOGIC,#0
BR !TIMER_F_AUTO_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SOUND_F:
TM SOUND_CONTROL.#0
BR !SOUND_F_1
RET
SOUND_F_1:
TM SOUND_CONTROL.#1
BR !SOUND_F_BELL
TM SOUND_CONTROL.#2
BR !SOUND_F_2
SET1 SOUND_CONTROL.#2
LDM COMMAND_H,#0110B ;SET 2K BZ
LDM COMMAND_L,#0000B
CALL !I2C_COMMAND
LDM COMMAND_H,#0000B ;OPEN BZ
LDM COMMAND_L,#1001B
CALL !I2C_COMMAND
LDM SOUND_TIME1,#08H
LDM SOUND_TIME2,#0EH
LDM SOUND_TIME3,#0FH
RET
SOUND_F_2:
CLRC
ADDC SOUND_TIME1,#1
LDM SOUND_TIME1,A
ADDC SOUND_TIME2,#0
LDM SOUND_TIME2,A
ADDC SOUND_TIME3,#0
LDM SOUND_TIME3,A
TSTC
BR !SOUND_F_3
RET
SOUND_F_3:
LDM SOUND_CONTROL,#0
LDM COMMAND_H,#0000B ;STOP BZ
LDM COMMAND_L,#1000B
CALL !I2C_COMMAND
RET
SOUND_F_BELL:
TM SOUND_CONTROL.#2
BR !SOUND_F_BELL_1
SET1 SOUND_CONTROL.#2
CMLE SOUND_COURSE,#0
BR !SOUND_F_BELL_A
CMLE SOUND_COURSE,#1
BR !SOUND_F_BELL_B
CMLE SOUND_COURSE,#2
BR !SOUND_F_BELL_A
CMLE SOUND_COURSE,#3
BR !SOUND_F_BELL_B
CMLE SOUND_COURSE,#4
BR !SOUND_F_BELL_A
CMLE SOUND_COURSE,#5
BR !SOUND_F_BELL_B
CMLE SOUND_COURSE,#6
BR !SOUND_F_BELL_C
CMLE SOUND_COURSE,#7
BR !SOUND_F_BELL_D
BR !START
SOUND_F_BELL_1:
CLRC
ADDC SOUND_TIME1,#1
LDM SOUND_TIME1,A
ADDC SOUND_TIME2,#0
LDM SOUND_TIME2,A
ADDC SOUND_TIME3,#0
LDM SOUND_TIME3,A
TSTC
BR !SOUND_F_BELL_2
RET
SOUND_F_BELL_2:
CLR1 SOUND_CONTROL.#2
LDM COMMAND_H,#0000B ;STOP BZ
LDM COMMAND_L,#1000B
CALL !I2C_COMMAND
CLRC
ADDC SOUND_COURSE,#1
LDM SOUND_COURSE,A
CMLE SOUND_COURSE,#7
BR !SOUND_F_BELL_3
LDM SOUND_COURSE,#0
CLRC
ADDC KEY_COUNT3,#1
LDM KEY_COUNT3,A
ADDC KEY_COUNT4,#0
LDM KEY_COUNT4,A
TSTC
BR !SOUND_F_BELL_4
SOUND_F_BELL_3:
RET
SOUND_F_BELL_4:
LDM ON_OFF_MARK,#0000B
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
LDM SOUND_CONTROL,#0
RET
SOUND_F_BELL_A:
LDM COMMAND_H,#0100B ;SET 4K BZ
LDM COMMAND_L,#0000B
CALL !I2C_COMMAND
LDM COMMAND_H,#0000B ;OPEN BZ
LDM COMMAND_L,#1001B
CALL !I2C_COMMAND
LDM SOUND_TIME1,#00H
LDM SOUND_TIME2,#0EH
LDM SOUND_TIME3,#0FH
RET
SOUND_F_BELL_B:
LDM SOUND_TIME1,#00H
LDM SOUND_TIME2,#0CH
LDM SOUND_TIME3,#0FH
RET
SOUND_F_BELL_C:
LDM COMMAND_H,#0100B ;SET 4K BZ
LDM COMMAND_L,#0000B
CALL !I2C_COMMAND
LDM COMMAND_H,#0000B ;OPEN BZ
LDM COMMAND_L,#1001B
CALL !I2C_COMMAND
LDM SOUND_TIME1,#00H
LDM SOUND_TIME2,#0FH
LDM SOUND_TIME3,#0EH
RET
SOUND_F_BELL_D:
LDM SOUND_TIME1,#05H
LDM SOUND_TIME2,#06H
LDM SOUND_TIME3,#0EH
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY_SCAN:
LDA AD_KEY
XOR KEY_STATUS
CANE #0
BR !KEY_SCAN_1
LDM KEY_COUNT1,#0
LDM KEY_COUNT2,#14
KEY_SCAN_OUT:
RET
KEY_SCAN_1:
LDA AD_KEY
XOR KEY_STATUS1
CALE #0
BR !KEY_SCAN_1A
LDA AD_KEY
LDM KEY_STATUS1,A
LDM KEY_COUNT1,#0
LDM KEY_COUNT2,#14
RET
KEY_SCAN_1A:
CLRC
ADDC KEY_COUNT1,#1
LDM KEY_COUNT1,A
ADDC KEY_COUNT2,#0
LDM KEY_COUNT2,A
TSTC
BR !KEY_SCAN_2
RET
KEY_SCAN_2:
LDM KEY_COUNT1,#0
LDM KEY_COUNT2,#14
LDA AD_KEY
XMA KEY_STATUS
CANE #0
BR !KEY_SCAN_OUT
;ERROR PROGRAM
TM ERROR_MARK.#3
BR !ERROR_KEY
;
CMNE KEY_STATUS,#1
BR !KEY_SCAN_3
LDM SOUND_CONTROL,#1 ;KEY SOUND
LDM BLACK_LED,#1 ;OPEN BLACK LED
TM ON_OFF_MARK.#0
BR !KEY_SCAN_2_1
LDM ON_OFF_MARK,#1111B
LDM SET_LOGIC,#0
LDM LCD_CONTROL,#0
LDM AUTO_LEVEL,#8 ;设定智能等级
LDM AUTO_LOGIC,#1
LDM SET_TEP_H,#4 ;设定起始温度
LDM SET_TEP_L,#0
CALL !LOAD_A_DATA ;读取定时时间的数据
LDA A_DATA_AH
LDM TIME_H_COUNT,A ;设置第一次定时的时间
LDA A_DATA_AM
LDM TIME_MH_COUNT,A
LDM SET_TIME_H,#8 ;开机默认8小时定时
LDM TOTAL_TIME_H,#8
LDM SET_TIME_MH,#0
LDM TOTAL_TIME_MH,#0
LDM LOGO_COURSE,#0
LDM LOGO_MARK,#1
LDM LOGO_TIME1,#0FH
LDM LOGO_TIME2,#0FH
LDM LOGO_TIME3,#0FH
RET
KEY_SCAN_2_1:
LDM ON_OFF_MARK,#0000B
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
KEY_SCAN_3:
CMNE KEY_STATUS,#2
BR !KEY_SCAN_4
TM ON_OFF_MARK.#0
BR !KEY_SCAN_3_1
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
KEY_SCAN_3_1:
LDM BLACK_LED,#1 ;OPEN BLACK LED
TM SET_LOGIC.#3 ;判断是否在智能模式下
BR !KEY_SCAN_OUT
LDM SOUND_CONTROL,#1 ;KEY SOUND
CMNE SET_LOGIC,#0
BR !KEY_SCAN_3_2
LDM SET_LOGIC,#1
LDM LCD_CONTROL,#0001B
LDM ON_OFF_MARK,#1011B
LDM SET_TIME_H,#8
LDM SET_TIME_MH,#0
RET
KEY_SCAN_3_2:
CMNE SET_LOGIC,#1
BR !KEY_SCAN_3_3
LDM SET_LOGIC,#2
LDM LCD_CONTROL,#0010B
LDM ON_OFF_MARK,#1011B
RET
KEY_SCAN_3_3:
CMNE SET_LOGIC,#2
BR !KEY_SCAN_3_4
LDM SET_LOGIC,#3
LDM LCD_CONTROL,#0100B
LDM ON_OFF_MARK,#1011B
RET
KEY_SCAN_3_4:
LDM SET_LOGIC,#0
LDM LCD_CONTROL,#0
LDM AUTO_LOGIC,#0
LDA SET_TIME_H
LDM TIME_H_COUNT,A
LDM TOTAL_TIME_H,A
LDA SET_TIME_MH
LDM TIME_MH_COUNT,A
LDM TOTAL_TIME_MH,A
LDM A_DATA_AH,#0
LDM A_DATA_AM,#0
LDM A_DATA_BH,#0
LDM A_DATA_BM,#0
RET
KEY_SCAN_4:
CMNE KEY_STATUS,#3
BR !KEY_SCAN_5
TM ON_OFF_MARK.#0
BR !KEY_SCAN_4_1
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
KEY_SCAN_4_1:
LDM BLACK_LED,#1 ;OPEN BLACK LED
CMLE SET_LOGIC,#0
BR !KEY_SCAN_4_3B
LDM SOUND_CONTROL,#1 ;KEY SOUND
TM SET_LOGIC.#3
BR !KEY_SCAN_4_4
CMNE SET_LOGIC,#1
BR !KEY_SCAN_4_2
CALL !ADD_TEMP_F
RET
KEY_SCAN_4_2:
CMNE SET_LOGIC,#2 ;判断是否在小时设定
BR !KEY_SCAN_4_3
CLRC
ADDC SET_TIME_H,#1
LDM SET_TIME_H,A
CMLE SET_TIME_H,#12
BR !KEY_SCAN_4_2A
LDM SET_TIME_H,#12
KEY_SCAN_4_2A:
CMNE SET_TIME_H,#12
BR !KEY_SCAN_4_3B
LDM SET_TIME_MH,#0
RET
KEY_SCAN_4_3:
CMNE SET_TIME_H,#12 ;如果时间为12小时,分钟调节会失效
BR !KEY_SCAN_4_3A
RET
KEY_SCAN_4_3A:
CLRC
ADDC SET_TIME_MH,#1
LDM SET_TIME_MH,A
CMLE SET_TIME_MH,#5
BR !KEY_SCAN_4_3B
LDM SET_TIME_MH,#5
KEY_SCAN_4_3B:
RET
KEY_SCAN_4_4:
CLRC
ADDC AUTO_LEVEL,#1
LDM AUTO_LEVEL,A
CMLE AUTO_LEVEL,#8
BR !KEY_SCAN_4_4A
LDM AUTO_LEVEL,#8
KEY_SCAN_4_4A:
LDA AUTO_LEVEL
LDM SET_TIME_H,A ;设定定时时间
LDM SET_TIME_MH,#0
RET
KEY_SCAN_5:
CMNE KEY_STATUS,#4
BR !KEY_SCAN_6
TM ON_OFF_MARK.#0
BR !KEY_SCAN_5_1
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
KEY_SCAN_5_1:
LDM BLACK_LED,#1 ;OPEN BLACK LED
CMLE SET_LOGIC,#0
BR !KEY_SCAN_5_2A
LDM SOUND_CONTROL,#1 ;KEY SOUND
TM SET_LOGIC.#3
BR !KEY_SCAN_5_4
CMNE SET_LOGIC,#1
BR !KEY_SCAN_5_2
CALL !SUB_TEMP_F
RET
KEY_SCAN_5_2:
CMNE SET_LOGIC,#2 ;判断是否在小时设定
BR !KEY_SCAN_5_3
CMLE SET_TIME_H,#0
BR !KEY_SCAN_5_2A
CLRC
SUBC SET_TIME_H,#1
LDM SET_TIME_H,A
CMNE SET_TIME_H,#0 ;如果小时等于0,分钟必须为1
BR !KEY_SCAN_5_2A
LDM SET_TIME_MH,#1
KEY_SCAN_5_2A:
RET
KEY_SCAN_5_3:
CMNE SET_LOGIC,#3
BR !KEY_SCAN_5_4
CMLE SET_TIME_MH,#0
BR !KEY_SCAN_5_3A
CLRC
SUBC SET_TIME_MH,#1
LDM SET_TIME_MH,A
CMNE SET_TIME_MH,#0 ;小时为0,分钟就不能减到0
BR !KEY_SCAN_5_3A
CMNE SET_TIME_H,#0
BR !KEY_SCAN_5_3A
LDM SET_TIME_MH,#1
KEY_SCAN_5_3A:
RET
KEY_SCAN_5_4:
CMLE AUTO_LEVEL,#5
BR !KEY_SCAN_5_4A
CLRC
SUBC AUTO_LEVEL,#1
LDM AUTO_LEVEL,A
KEY_SCAN_5_4A:
LDA AUTO_LEVEL
LDM SET_TIME_H,A ;设定定时时间
LDM SET_TIME_MH,#0
RET
KEY_SCAN_6:
CMNE KEY_STATUS,#5
BR !START
TM ON_OFF_MARK.#0
BR !KEY_SCAN_6_1
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
KEY_SCAN_6_1:
LDM BLACK_LED,#1 ;OPEN BLACK LED
CMNE SET_LOGIC,#0 ;判断是否在设定模式下
BR !KEY_SCAN_6_2
LDM SOUND_CONTROL,#1 ;KEY SOUND
LDM SET_LOGIC,#1000B
LDM LCD_CONTROL,#1000B
LDM ON_OFF_MARK,#1111B
LDM AUTO_LEVEL,#8
LDM SET_TIME_H,#8 ;设定定时时间
LDM SET_TIME_MH,#0
RET
KEY_SCAN_6_2:
TM SET_LOGIC.#3
BR !KEY_SCAN_6_3
RET
KEY_SCAN_6_3:
LDM SOUND_CONTROL,#1 ;KEY SOUND
LDM SET_LOGIC,#0
LDM LCD_CONTROL,#0
LDM ON_OFF_MARK,#1111B
LDM AUTO_LOGIC,#1
LDM SET_TEP_H,#4 ;设定起始温度
LDM SET_TEP_L,#0
CALL !LOAD_A_DATA ;读取定时时间的数据
LDA A_DATA_AH
LDM TIME_H_COUNT,A ;设置第一次定时的时间
LDA A_DATA_AM
LDM TIME_MH_COUNT,A
LDA SET_TIME_H
LDM TOTAL_TIME_H,A
LDA SET_TIME_MH
LDM TOTAL_TIME_MH,A
RET
ERROR_KEY:
CMNE KEY_STATUS,#1
BR !KEY_SCAN_OUT
LDM SOUND_CONTROL,#1 ;KEY SOUND
LDM BLACK_LED,#1 ;OPEN BLACK LED
TM ON_OFF_MARK.#0
BR !ERROR_KEY_1
LDM ON_OFF_MARK,#1011B
LDM SET_LOGIC,#0
LDM LCD_CONTROL,#0
LDM AUTO_LEVEL,#0
LDM AUTO_LOGIC,#0
LDM SET_TEP_H,#9 ;设定起始温度
LDM SET_TEP_L,#9
LDM A_DATA_AH,#0
LDM A_DATA_AM,#0
LDM A_DATA_BH,#0
LDM A_DATA_BM,#0
LDM SET_TIME_H,#1
LDM SET_TIME_MH,#0
LDM TIME_H_COUNT,#1
LDM TIME_MH_COUNT,#0
LDM TOTAL_TIME_H,#1
LDM TOTAL_TIME_MH,#0
LDM LOGO_COURSE,#0
LDM LOGO_MARK,#1
LDM LOGO_TIME1,#0FH
LDM LOGO_TIME2,#0FH
LDM LOGO_TIME3,#0FH
RET
ERROR_KEY_1:
LDM ON_OFF_MARK,#0000B
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY_AD:
LRI ADCIS,#0011B
SETR1 ADCM.#2
NOP
SETR1 PGFN.#3
SETR1 ADCM.#1
NOP
KEY_AD_1:
TSTR ADCM.#0
BR !KEY_AD_2
BR !KEY_AD_1
KEY_AD_2:
CLRR1 ADCM.#2
NOP
LRI ADCIS,#0000B
NOP
LRI PGFN,#0000B
LRI PGOD,#0000B
LRI PGDD,#0000B
LRI PGDR,#0000B
NOP
LAR ADCR1
LDM VARIABLE1,A
LAR ADCR2
LDM VARIABLE2,A
CMNE VARIABLE2,#0
BR !KEY_AD_2A
CMLE VARIABLE1,#4
BR !KEY_AD_KEY1
BR !KEY_AD_ERROR
KEY_AD_2A:
CMNE VARIABLE2,#1
BR !KEY_AD_2B
CMLE VARIABLE1,#6
BR !KEY_AD_ERROR
BR !KEY_AD_KEY2
KEY_AD_2B:
CMNE VARIABLE2,#15
BR !KEY_AD_ERROR
CMLE VARIABLE1,#11
BR !KEY_AD_ERROR
;;;;;;;;;;
LRI ADCIS,#0010B
SETR1 ADCM.#2
NOP
SETR1 PGFN.#2
SETR1 ADCM.#1
NOP
KEY_AD_3:
TSTR ADCM.#0
BR !KEY_AD_4
BR !KEY_AD_3
KEY_AD_4:
CLRR1 ADCM.#2
NOP
LRI ADCIS,#0000B
NOP
LRI PGFN,#0000B
LRI PGOD,#0000B
LRI PGDD,#0000B
LRI PGDR,#0000B
NOP
LAR ADCR1
LDM VARIABLE1,A
LAR ADCR2
LDM VARIABLE2,A
CMNE VARIABLE2,#0
BR !KEY_AD_4A
CMLE VARIABLE1,#4
BR !KEY_AD_KEY3
BR !KEY_AD_ERROR
KEY_AD_4A:
CMNE VARIABLE2,#1
BR !KEY_AD_4B
CMLE VARIABLE1,#6
BR !KEY_AD_ERROR
BR !KEY_AD_KEY4
KEY_AD_4B:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -