📄 p06007-6.asm
字号:
CMNE VARIABLE2,#3
BR !KEY_AD_4C
CMLE VARIABLE1,#8
BR !KEY_AD_KEY5
BR !KEY_AD_ERROR
KEY_AD_4C:
CMNE VARIABLE2,#15
BR !KEY_AD_ERROR
CMLE VARIABLE1,#11
BR !KEY_AD_ERROR
KEY_AD_RELEASE:
LDM AD_KEY,#0
RET
KEY_AD_ERROR:
LDM KEY_COUNT1,#0
LDM KEY_COUNT2,#14
RET
KEY_AD_KEY1:
LDM AD_KEY,#2
RET
KEY_AD_KEY2:
LDM AD_KEY,#1
RET
KEY_AD_KEY3:
LDM AD_KEY,#3
RET
KEY_AD_KEY4:
LDM AD_KEY,#4
RET
KEY_AD_KEY5:
LDM AD_KEY,#5
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WITH_AD:
LRI ADCIS,#0000B
NOP
NOP
SETR1 ADCM.#2
NOP
NOP
SETR1 PGFN.#0
NOP
NOP
SETR1 ADCM.#1
NOP
NOP
WITH_AD_1:
TSTR ADCM.#0
BR !WITH_AD_2
BR !WITH_AD_1
WITH_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 ADCR1_PTC1,A
LAR ADCR2
LDM ADCR2_PTC1,A
LRI ABR0,#<DTAT_CODE1
LRI ABR1,#>DTAT_CODE1
LRI ABR2,#[DTAT_CODE1
LRI ABR3,#]DTAT_CODE1
CLRC
LDA ADCR1_PTC1
ADDC ABR0,A
LDA ADCR2_PTC1
ADDC ABR1,A
ADDC ABR2,#0
ADDC ABR3,#0
LDW @ABR
LAR DBR3
LDM PTC1_TEP_H,A
LAR DBR2
LDM PTC1_TEP_L,A
LAR DBR1
LDM PTC1_TEP_C,A
LAR DBR0
CANE #00H
BR !NO_ERROR1
CLR1 ERROR_MARK.#0
BR !NO_ERROR2
NO_ERROR1:
SET1 ERROR_MARK.#0
NO_ERROR2:
;;;;;;;;;;
LRI ADCIS,#0001B
NOP
NOP
SETR1 ADCM.#2
NOP
NOP
SETR1 PGFN.#1
NOP
NOP
SETR1 ADCM.#1
NOP
NOP
WITH_AD_3:
TSTR ADCM.#0
BR !WITH_AD_4
BR !WITH_AD_3
WITH_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 ADCR1_PTC2,A
LAR ADCR2
LDM ADCR2_PTC2,A
LRI ABR0,#<DTAT_CODE1
LRI ABR1,#>DTAT_CODE1
LRI ABR2,#[DTAT_CODE1
LRI ABR3,#]DTAT_CODE1
CLRC
LDA ADCR1_PTC2
ADDC ABR0,A
LDA ADCR2_PTC2
ADDC ABR1,A
ADDC ABR2,#0
ADDC ABR3,#0
LDW @ABR
LAR DBR3
LDM PTC2_TEP_H,A
LAR DBR2
LDM PTC2_TEP_L,A
LAR DBR1
LDM PTC2_TEP_C,A
LAR DBR0
CANE #00H
BR !NO_ERROR3
CLR1 ERROR_MARK.#1
BR !NO_ERROR4
NO_ERROR3:
SET1 ERROR_MARK.#1
NO_ERROR4:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ERROR_F:
CLRC
ADDC ERROR_COUNT1,#1
LDM ERROR_COUNT1,A
ADDC ERROR_COUNT2,#0
LDM ERROR_COUNT2,A
TSTC
BR !ERROR_F_1
TM ERROR_MARK.#0
BR !ERROR_F_2
ERROR_F_2B:
TM ERROR_MARK.#1
BR !ERROR_F_3
RET
ERROR_F_1:
LDM ERROR_COUNT1,#0
LDM ERROR_COUNT2,#0
LDM ERROR_CHECK1,#0
LDM ERROR_CHECK2,#0
TM ERROR_MARK.#2 ;判断256之后有没有错误标致有没有溢出
BR !ERROR_F_1A
TM ERROR_MARK.#3
BR !ERROR_F_OVER
LDM ERROR_MARK,#0000B
RET
ERROR_F_1A:
TM ERROR_MARK.#3
BR !ERROR_F_1B
LDM ERROR_MARK,#1000B
LDM ON_OFF_MARK,#0000B
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
ERROR_F_1B:
LDM ERROR_MARK,#1000B
RET
ERROR_F_2:
CLRC
ADDC ERROR_CHECK1,#1
LDM ERROR_CHECK1,A
TSTC
BR !ERROR_F_2A
BR !ERROR_F_2B
ERROR_F_2A:
SET1 ERROR_MARK.#2
RET
ERROR_F_3:
CLRC
ADDC ERROR_CHECK2,#1
LDM ERROR_CHECK2,A
TSTC
BR !ERROR_F_2A
RET
ERROR_F_OVER:
LDM ERROR_MARK,#0000B
LDM ON_OFF_MARK,#0000B
LDM OVER_COUNT1,#0FH
LDM OVER_COUNT2,#08H
LDM OVER_COUNT3,#0DH
LDM OVER_COUNT4,#08H
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HOT_UP_F:
TM ON_OFF_MARK.#0
BR !HOT_UP_F_1
BR !CLOSE_PWM
HOT_UP_F_1:
;ERROR PROGRAM
TM ERROR_MARK.#3
BR !OPEN_PWM
;
CMNE SET_LOGIC,#0
BR !CLOSE_PWM ;IN SET MORE, NO OUTPUT
CLRC
LDA PTC1_TEP_L
SUBC PTC2_TEP_L,A
LDA PTC1_TEP_H
SUBC PTC2_TEP_H,A
TSTC
BR !HOT_UP_F_2 ;IF OVERFLOW, PTC1>PTC2, JUMP
LDA PTC2_TEP_L
LDM PTC1_TEP_L,A
LDA PTC2_TEP_H
LDM PTC1_TEP_H,A
HOT_UP_F_2:
LDA SET_TEP_L ;把设定的温度放入寄存器,准备加1或减1
LDM VARIABLE1,A
LDA SET_TEP_H
LDM VARIABLE2,A
CMNE ROUT_MARK,#0001B
BR !HOT_UP_F_3
CLRC
ADDC VARIABLE1,#1
LDM VARIABLE1,A
CMLE VARIABLE1,#9
BR !HOT_UP_F_4
LDM VARIABLE1,#0
CLRC
ADDC VARIABLE2,#1
LDM VARIABLE2,A
BR !HOT_UP_F_4
HOT_UP_F_3:
CLRC
SUBC VARIABLE1,#1
LDM VARIABLE1,A
TSTC
BR !HOT_UP_F_3A
BR !HOT_UP_F_4
HOT_UP_F_3A:
LDM VARIABLE1,#9
CLRC
SUBC VARIABLE2,#1
LDM VARIABLE2,A
HOT_UP_F_4:
CLRC
LDA PTC1_TEP_L
SUBC VARIABLE1,A
LDA PTC1_TEP_H
SUBC VARIABLE2,A
TSTC
BR !CLOSE_PWM
CLRC
LDA VARIABLE1
SUBC PTC1_TEP_L,A
LDA VARIABLE2
SUBC PTC1_TEP_H,A
TSTC
BR !OPEN_PWM
LRI CGMR,#0000B
LDA ROUT_MARK
LRA RCR
RET
OPEN_PWM:
LRI CGMR,#0000B
LRI RCR,#0001B ;ON THE PWM OUTPUT
LDM ROUT_MARK,#0001B
RET
CLOSE_PWM:
LRI CGMR,#0000B
LRI RCR,#0000B ;OFF THE PWM OUTPUT
LDM ROUT_MARK,#0000B
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REWRITE_TEMP:
TM ERROR_MARK.#3
BR !REWRITE_TEMP_3
LDA PTC1_TEP_L
CANE TRUE_TEP_L_M
BR !REWRITE_TEMP_1
LDA PTC1_TEP_H
CANE TRUE_TEP_H_M
BR !REWRITE_TEMP_1
CLRC
ADDC TRUE_TEP_COUNT1,#1
LDM TRUE_TEP_COUNT1,A
ADDC TRUE_TEP_COUNT2,#0
LDM TRUE_TEP_COUNT2,A
TSTC
BR !REWRITE_TEMP_2
RET
REWRITE_TEMP_1:
LDM TRUE_TEP_COUNT1,#0
LDM TRUE_TEP_COUNT2,#8
LDA PTC1_TEP_L
LDM TRUE_TEP_L_M,A
LDA PTC1_TEP_H
LDM TRUE_TEP_H_M,A
RET
REWRITE_TEMP_2:
LDA PTC1_TEP_L
LDM TRUE_TEP_L,A
LDA PTC1_TEP_H
LDM TRUE_TEP_H,A
RET
REWRITE_TEMP_3:
LDM TRUE_TEP_L,#9
LDM TRUE_TEP_H,#9
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
OVER_TIME:
TM ON_OFF_MARK.#0
BR !OVER_TIME_RET
; CLRC
; ADDC OVER_COUNT1,#1
; LDM OVER_COUNT1,A
; ADDC OVER_COUNT2,#0
; LDM OVER_COUNT2,A
; ADDC OVER_COUNT3,#0
; LDM OVER_COUNT3,A
; ADDC OVER_COUNT4,#0
; LDM OVER_COUNT4,A
; TSTC
; BR !STOP_FUNCTION
OVER_TIME_RET:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BRAND:
TM ON_OFF_MARK.#0
BR !BRAND_1
RET
BRAND_1:
TM HALF_S_MARK.#1
BR !BRAND_2
RET
BRAND_2:
CLRC
ADDC LOGO_TIME1,#1
LDM LOGO_TIME1,A
ADDC LOGO_TIME2,#0
LDM LOGO_TIME2,A
ADDC LOGO_TIME3,#0
LDM LOGO_TIME3,A
TSTC
BR !BRAND_3
RET
BRAND_3:
CMNE LOGO_COURSE,#0
BR !BRAND_4
LDM LOGO_COURSE,#1
SET1 LOGO_MARK.#0
LDM LOGO_TIME1,#03H
LDM LOGO_TIME2,#0CH
LDM LOGO_TIME3,#0FH
RET
BRAND_4:
CMNE LOGO_COURSE,#1
BR !BRAND_5
LDM LOGO_COURSE,#2
CLR1 LOGO_MARK.#0
LDM LOGO_TIME1,#0FH
LDM LOGO_TIME2,#0FH
LDM LOGO_TIME3,#0FH
RET
BRAND_5:
CMNE LOGO_COURSE,#2
BR !BRAND_6
LDM LOGO_COURSE,#3
SET1 LOGO_MARK.#0
LDM LOGO_TIME1,#0FH
LDM LOGO_TIME2,#0FH
LDM LOGO_TIME3,#0FH
RET
BRAND_6:
CMNE LOGO_COURSE,#3
BR !BRAND_7
LDM LOGO_COURSE,#4
CLR1 LOGO_MARK.#0
LDM LOGO_TIME1,#0FH
LDM LOGO_TIME2,#0FH
LDM LOGO_TIME3,#0FH
RET
BRAND_7:
CMNE LOGO_COURSE,#4
BR !BRAND_8
LDM LOGO_COURSE,#5
SET1 LOGO_MARK.#0
LDM LOGO_TIME1,#0FH
LDM LOGO_TIME2,#0FH
LDM LOGO_TIME3,#0FH
RET
BRAND_8:
CMNE LOGO_COURSE,#5
BR !START
LDM LOGO_COURSE,#0
CLR1 LOGO_MARK.#0
LDM LOGO_TIME1,#0FH
LDM LOGO_TIME2,#0FH
LDM LOGO_TIME3,#0FH
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HALF_F:
CLRC
ADDC HALF_S_COUNT1,#1
LDM HALF_S_COUNT1,A
ADDC HALF_S_COUNT2,#0
LDM HALF_S_COUNT2,A
TSTC
BR !HALF_F_1
CLR1 HALF_S_MARK.#1
RET
HALF_F_1:
LDM HALF_S_COUNT1,#0BH
LDM HALF_S_COUNT2,#00H
SET1 HALF_S_MARK.#1
TM HALF_S_MARK.#0
BR !HALF_F_2
SET1 HALF_S_MARK.#0
RET
HALF_F_2:
CLR1 HALF_S_MARK.#0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME_DELAY:
DI
WDTC
LRI T1LD,#1111B
LRI T1HD,#1111B
LRI IENR,#1000B
LRI IRQR,#0000B
LRI T1MR,#1110B
LDM TIME_MARK,#0000B
EI
;FUNCTION
;FUNCTION
TIME_DELAY_1:
CMNE TIME_MARK,#1111B
BR !TIME_DELAY_1
CLRC
ADDC KEY_COUNT1,#1
LDM KEY_COUNT1,A
ADDC KEY_COUNT2,#0
LDM KEY_COUNT2,A
ADDC KEY_COUNT3,#0
LDM KEY_COUNT3,A
ADDC KEY_COUNT4,#0
LDM KEY_COUNT4,A
TSTC
BR !TIME_DELAY_2
BR !TIME_DELAY
TIME_DELAY_2:
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;SECOND LAYER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADD_TEMP_F:
CMNE SET_TEP_L,#5
BR !ADD_TEMP_F1
CMNE SET_TEP_H,#4
BR !ADD_TEMP_F1
RET
ADD_TEMP_F1:
CLRC
ADDC SET_TEP_L,#1
LDM SET_TEP_L,A
CMLE SET_TEP_L,#9
BR !ADD_TEMP_F2
LDM SET_TEP_L,#0
CLRC
ADDC SET_TEP_H,#1
LDM SET_TEP_H,A
ADD_TEMP_F2:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SUB_TEMP_F:
CLRC
SUBC SET_TEP_L,#1
LDM SET_TEP_L,A
TSTC
BR !SUB_TEMP_F1
RET
SUB_TEMP_F1:
LDM SET_TEP_L,#9
CLRC
SUBC SET_TEP_H,#1
LDM SET_TEP_H,A
CMLE SET_TEP_H,#2
BR !SUB_TEMP_F2
RET
SUB_TEMP_F2:
LDM SET_TEP_L,#0
LDM SET_TEP_H,#3
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LOAD_A_DATA:
LRI ABR0,#<DTAT_CODE3
LRI ABR1,#>DTAT_CODE3
LRI ABR2,#[DTAT_CODE3
LRI ABR3,#]DTAT_CODE3
CLRC
LDA AUTO_LEVEL
ADDC ABR0,A
ADDC ABR1,#0
ADDC ABR2,#0
ADDC ABR3,#0
LDW @ABR
LAR DBR3
LDM A_DATA_AH,A
LAR DBR2
LDM A_DATA_AM,A
LAR DBR1
LDM A_DATA_BH,A
LAR DBR0
LDM A_DATA_BM,A
LDA AUTO_LEVEL
LDM SET_TIME_H,A ;设定定时时间
LDM SET_TIME_MH,#0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LOAD_TEMP:
;SETUP TEMP H
LRI ABR0,#<DTAT_CODE2
LRI ABR1,#>DTAT_CODE2
LRI ABR2,#[DTAT_CODE2
LRI ABR3,#]DTAT_CODE2
CLRC
LDA SET_TEP_H
ADDC ABR0,A
ADDC ABR1,#0
ADDC ABR2,#0
ADDC ABR3,#0
LDW @ABR
LAR DBR3
LDM VARIABLE1,A
LDA #1111B
XOR VARIABLE1
LDM VARIABLE1,A
TM VARIABLE1.#3
BR !LOAD_TEMP_1
SET1 LCD_DATA1.#3
LOAD_TEMP_1:
TM VARIABLE1.#2
BR !LOAD_TEMP_2
SET1 LCD_DATA2.#3
LOAD_TEMP_2:
TM VARIABLE1.#1
BR !LOAD_TEMP_3
SET1 LCD_DATA3.#3
LOAD_TEMP_3:
TM VARIABLE1.#0
BR !LOAD_TEMP_4
SET1 LCD_DATA4.#3
LOAD_TEMP_4:
LAR DBR2
LDM VARIABLE1,A
LDA #1111B
XOR VARIABLE1
LDM VARIABLE1,A
TM VARIABLE1.#3
BR !LOAD_TEMP_5
SET1 LCD_DATA5.#3
LOAD_TEMP_5:
TM VARIABLE1.#2
BR !LOAD_TEMP_6
SET1 LCD_DATA6.#3
LOAD_TEMP_6:
TM VARIABLE1.#1
BR !LOAD_TEMP_7
SET1 LCD_DATA7.#3
LOAD_TEMP_7:
;SETUP TEMP L
LRI ABR0,#<DTAT_CODE2
LRI ABR1,#>DTAT_CODE2
LRI ABR2,#[DTAT_CODE2
LRI ABR3,#]DTAT_CODE2
CLRC
LDA SET_TEP_L
ADDC ABR0,A
ADDC ABR1,#0
ADDC ABR2,#0
ADDC ABR3,#0
LDW @ABR
LAR DBR3
LDM VARIABLE1,A
LDA #1111B
XOR VARIABLE1
LDM VARIABLE1,A
TM VARIABLE1.#3
BR !LOAD_TEMP_8
SET1 LCD_DATA1.#2
LOAD_TEMP_8:
TM VARIABLE1.#2
BR !LOAD_TEMP_9
SET1 LCD_DATA2.#2
LOAD_TEMP_9:
TM VARIABLE1.#1
BR !LOAD_TEMP_10
SET1 LCD_DATA3.#2
LOAD_TEMP_10:
TM VARIABLE1.#0
BR !LOAD_TEMP_11
SET1 LCD_DATA4.#2
LOAD_TEMP_11:
LAR DBR2
LDM VARIABLE1,A
LDA #1111B
XOR VARIABLE1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -