⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p06007-6.asm

📁 采用ETA的MCU,功放里面的控制....音量,模式等
💻 ASM
📖 第 1 页 / 共 4 页
字号:
					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 + -