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

📄 m34559n.asm

📁 这是RENESAS空调遥控的一个方案,使用单片机开发
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        TYA
        SD
        RT


;==================================================
;---------------------------------        
       .INCLUDE key4559N.inc
       .INCLUDE dis4559N.inc
       .INCLUDE sig4559N.inc
;*********************************
;
;        key decode
;
;*********************************
KEY_DECODE:
	LXY	KEYDATA			
	TAM	0

	SEA	K1
	A	0
	BL	KEY_TUP

        SEA	K2
	A	0
	BL	KEY_UP

        SEA	K3
	A	0
	BL	KEY_TDOWN

	SEA	K4
	A	0
        BL      KEY_LOCK                ;20060419	

        SEA	K5
	A	0
	BL	KEY_CLOCK

        SEA	K6
	A	0
	BL	KEY_MODE

        SEA	K7
	A	0
	BL	KEY_FAN

        SEA	K8
	A	0
	BL	KEY_SWING               ; SWING 

	SEA	K9
	A	0
	BL	KEY_TIMER

	SEA	K10
	A	0
	BL	KEY_SLEEP

	SEA	K11
	A	0
	BL	KEY_POWER

        SEA	K12
	A	0
	BL	KEY_DOWN                ; 
	RT
;------------------------------------
;
;                 key_swing
;
; the time flag used in this subroutine:
; 3. T05SF_DELAY
;;	T1SF_SWING
;	T2SF_SWING
;	T3SF_SWING
;--------------------------------------
KEY_SWING:
        .SZXYB  KEYLOCKF
        RT                      ;20060419
	.SZXYB	POWERF
	BL	KEY_SWING10
	.SZXYB	POWERF1
	A	0
	RT
KEY_SWING10:
	.SZXYB	KEYF
	RT
	.SEB	KEYF
	.SEB	T05SF_DELAY
	
	.SEB	TRANSF

KEY_SWING15:
	.SZXYB	SWINGF
	BL	KEY_SWING20
	.SEB	SWINGF
KEY_SWING18:
	.SEB	T1SF_SWING
	.SEB	T2SF_SWING
	.SEB	T3SF_SWING
	RT
KEY_SWING20:
	.CLB	SWINGF
	RT
KEY_SWING30:
	LXY 	SWING
        LA	1
        AM
        TMA	0
	SEA	6
	RT
	LA	0
	TMA	0
	BL	KEY_SWING18


;------------------------------------
;
;      key_down
; the time flag used in this subroutine:
; 2. T250MSF
; 3. T05SF_DELAY
;------------------------------------
KEY_DOWN:
        .SZXYB  KEYLOCKF
        RT                      ;20060419

	.SZXYB	POWERF
	BL	KEY_DOWN10
	.SZXYB	POWERF1
	A	0
	RT

       

KEY_DOWN10:

         .SZXYB	KEYF
	RT
	.SEB	KEYF
	LXY	MODE             ;fan mode CAN NOT SET TEMPERATURE
	TAM	0
	SEA	4                ;fan mode
	A	0
	RT


KEY_DOWN_START:                     ;TEMP DOWN START
	
	.SEB	TRANSF
	.CLB	T05SF_DELAY
	LA	0
	LXY	T05S_DELAY
	TMA	0
	
KEY_DOWN_CKMODE:
	LXY	MODE
	TAM	0
        SEA	0
	A	0
	BL	KEY_DOWN_AUTO      ;AUTO
	SEA	1
	A	0
	BL	KEY_DOWN_COOL      ;COOL
	SEA	2
	A	0
	BL	KEY_DOWN_DRY	   ;DRY
	SEA	3
	RT

KEY_DOWN_HEAT:	                   ;HEAT MODE TEMP DOWN
	RC
	LXY	TEMP_HL
;	LA	7	                                   ;20060419
	LA	15	                                   ;20060419
	AMC
	INY
	LA	15
	AMC
	SZC
 	BL	KEY_DOWN_HEAT10
 	BL	TEMPCON
KEY_DOWN_HEAT10:	
	LXY	TEMP_HL
	TAM	0
	SEA	0
	BL	KEY_DOWN_HEAT20
	LXY	TEMP_HL
	LA	0fH
	TMA	0	
	LXY	TEMP_HH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TEMP_HH
	TMA	0
	BL	TEMPCON	
KEY_DOWN_HEAT20:
	LXY	TEMP_HL
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TEMP_HL
	TMA	0
	SEA	8
	BL	TEMPCON
	LXY	TEMP_HH
	TAM	0
	SEA	0
	BL	TEMPCON
	.SEB	TRANSF
	BL	TEMPCON

KEY_DOWN_COOL:	                 ;COOL
	RC
	LXY	TEMP_CL
;	LA	7
        LA      15                       ;20060419	
	AMC
	INY
	LA	15
	AMC
	SZC
 	BL	KEY_DOWN_COOL10
 	BL	TEMPCON
KEY_DOWN_COOL10:	
	LXY	TEMP_CL
	TAM	0
	SEA	0
	BL	KEY_DOWN_COOL20
	LXY	TEMP_CL
	LA	0fH
	TMA	0	
	LXY	TEMP_CH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TEMP_CH
	TMA	0
	BL	TEMPCON	
KEY_DOWN_COOL20:
	LXY	TEMP_CL
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TEMP_CL
	TMA	0
;	SEA	8
        SEA	8                                  ;20060419
	BL	TEMPCON
	LXY	TEMP_CH
	TAM	0
	SEA	0
	BL	TEMPCON
	.SEB	TRANSF
	BL	TEMPCON	


KEY_DOWN_DRY:	                ;DRY
	RC
	LXY	TEMP_DL
;	LA	7	;20060419
        LA      15
	AMC
	INY
	LA	15
	AMC
	SZC
 	BL	KEY_DOWN_DRY10
 	BL	TEMPCON
KEY_DOWN_DRY10:	
	LXY	TEMP_DL
	TAM	0
	SEA	0
	BL	KEY_DOWN_DRY20
	LXY	TEMP_DL
	LA	0fH
	TMA	0	
	LXY	TEMP_DH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TEMP_DH
	TMA	0
	BL	TEMPCON	
KEY_DOWN_DRY20:
	LXY	TEMP_DL
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TEMP_DL
	TMA	0
;	SEA	8   ;20060419
        SEA     8
	BL	TEMPCON
	LXY	TEMP_DH
	TAM	0
	SEA	0
	BL	TEMPCON
	.SEB	TRANSF
        BL	TEMPCON	

KEY_DOWN_AUTO:	                   ;AUTO MODE TEMP DOWN
	RC
	LXY	TEMP_AL
;	LA	7	                                   ;20060419
	LA	15	                                   ;20060419
	AMC
	LXY     TEMP_AH
	LA	15
	AMC
	SZC
 	BL	KEY_DOWN_AUTO10
 	BL	TEMPCON
KEY_DOWN_AUTO10:	
	LXY	TEMP_AL
	TAM	0
	SEA	0
	BL	KEY_DOWN_AUTO20
	LXY	TEMP_AL
	LA	0fH
	TMA	0	
	LXY	TEMP_AH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TEMP_AH
	TMA	0
	BL	TEMPCON	
KEY_DOWN_AUTO20:
	LXY	TEMP_AL
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TEMP_AL
	TMA	0
	SEA	8
	BL	TEMPCON
	LXY	TEMP_AH
	TAM	0
	SEA	0
	BL	TEMPCON
	.SEB	TRANSF
	BL	TEMPCON
TEMPCON:
        .SEB	TRANSF
	RT





;----------------------------------------
;
;          key_fan
;
; the time flag used in this subroutine:
; 2. T05SF_DELAY
; 修改风速
;----------------------------------------
KEY_FAN:
        .SZXYB  KEYLOCKF
        RT                      ;20060419
	.SZXYB	POWERF
	BL	KEY_FAN10
	.SZXYB	POWERF1
	A	0
	RT
KEY_FAN10:
     	.CLB	T05SF_DELAY
	LA	0
	LXY	T05S_DELAY
	TMA	0
	.SEB	TRANSF
	
KEY_FAN20:
        .SZXYB	KEYF
	RT
	.SEB	KEYF
	LXY	MODE
	TAM	0
	SEA	0                      
	A	0
	BL	KEY_FAN30          ;auto
	SEA	1
	A	0
	BL	KEY_FAN40          ;COOL
	SEA	2
	A	0
	BL	KEY_FAN50          ;DRY
	SEA	3
	A	0
	BL	KEY_FAN60          ;HEAT

	LXY 	FAN_F
	BL	KEY_FAN70          ;FAN

KEY_FAN30:                         ;AUTO ,FIXED VALUE
	LXY 	FAN_A
	LA	0
	TMA	0
	RT
KEY_FAN40:                         ;COOL
	LXY 	FAN_C
	BL	KEY_FAN70

KEY_FAN50:                         ;DEHUMI,FIXED VALUE
	LXY 	FAN_D
        LA	2
	TMA	0
	RT
KEY_FAN60:                         ;HEAT
	LXY 	FAN_H
        
KEY_FAN70:
        LA	1
        AM
        TMA	0
	SEA	4
	RT
	LA	0
	TMA	0
	RT
;----------------------------------------
;
;            key_mode
; the time flag used in this subroutine:
; T05SF_DELAY is used for delaying send signal
;----------------------------------------
KEY_MODE:
        .SZXYB  KEYLOCKF
        RT                      ;20060419
	.SZXYB	POWERF
	BL	KEY_MODE10
	.SZXYB	POWERF1
	A	0
	RT
       
KEY_MODE10:
        .SZXYB	KEYF
	RT
	.SEB	KEYF
        .SEB	TRANSF
	.CLB	T05SF_DELAY
	LA	0
	LXY	T05S_DELAY
	TMA	0   
	LXY 	MODE
        LA	1
        AM
        TMA	0
        SEA     5
        RT
KEY_MODE15:                                  
        LXY	MODE
        LA	0
        TMA	0
	RT  

;----------------------------------------
;
;            key_up
;    if keyboard is locked and power off,return,
;    otherwise process temperature add up
; the time flag used in this subroutine:
; 2. T250MSF
; 3. T05SF_DELAY
;----------------------------------------
KEY_UP:
        .SZXYB  KEYLOCKF
        RT                      ;20060419 if keyboard is locked ,return

	.SZXYB	POWERF          ;check power on/off,1=on,0=off
	BL	KEY_UP10
	.SZXYB	POWERF1
	A	0
	RT                      ;powerf1 = 0 ,return 

KEY_UP10:
        .SZXYB	KEYF
	RT
	.SEB	KEYF

	LXY	MODE
	TAM	0
	SEA	4
	A	0
	RT                      ;mode = 4 is fan status
	

KEY_UP_START:
	
	.SEB	TRANSF
	.CLB	T05SF_DELAY
	LA	0
	LXY	T05S_DELAY
	TMA	0
	
KEY_UP_CKMODE:
	LXY	MODE
	TAM	0
        SEA	0 
	A	0
	BL	KEY_UP_AUTO        ;AUTO status  
	SEA	1 
	A	0
	BL	KEY_UP_COOL        ;COOL status   
	SEA	2
	A	0
	BL	KEY_UP_DRY         ;DRY     	
	SEA	3
	RT

KEY_UP_HEAT:                       ; HEAT MODE	
	RC
	LXY	TEMP_HL
;	LA	8                                ;20060419	
	LA	2                                ;20060419
	AMC
	INY
;	LA	14                               ;20060419
	LA	15                               ;20060419
	AMC
	SZC                      ;test if is more than 14 , 
 	BL	TEMPCON
 	RC                       ; if it is less than 14 , add 1 to TEMP_HL
	LXY	TEMP_HL
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
 	LXY	TEMP_HL
 	TAM	0
; 	SEA	8
        SEA     14               ; 20060420 (0 express 18 degree ,14 = 32 degree)  
	BL	TEMPCON
	LXY	TEMP_HH
	TAM	0
;	SEA	1
        SEA     0                ; 20060420 if the temperature is 32 degree
	BL	TEMPCON
	.SEB	TRANSF           ; if it is 32,send signal
	BL	TEMPCON


KEY_UP_COOL:	                 ; COOL 
	RC
	LXY	TEMP_CL
;	LA	8	                         ;20060419
	LA	2	                         ;20060419
	AMC
	INY
;	LA	14                               ;20060419
	LA	15	                         ;20060419
	AMC
	SZC
 	BL	TEMPCON
 	RC
	LXY	TEMP_CL
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
 	LXY	TEMP_CL
 	TAM	0
; 	SEA	8
        SEA     14              ; 20060420 
	BL	TEMPCON
	LXY	TEMP_CH
	TAM	0
;	SEA	1
        SEA     0               ; 20060420
	BL	TEMPCON
	.SEB	TRANSF
 	BL	TEMPCON

KEY_UP_DRY:                       ; DRY	
	RC
	LXY	TEMP_DL
;	LA	8	
	LA	2	                         ;20060419
	AMC
	INY
;	LA	14
	LA	15	                         ;20060419
	AMC
	SZC
 	BL	TEMPCON
 	RC
	LXY	TEMP_DL
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
 	LXY	TEMP_DL
 	TAM	0
; 	SEA	8
        SEA     14              ;20060420
	BL	TEMPCON
	LXY	TEMP_DH
	TAM	0
;	SEA	1
	SEA	0               ;20060420
	BL	TEMPCON
	.SEB	TRANSF
 	BL	TEMPCON

KEY_UP_AUTO:                       ; AUTO MODE	
	RC
	LXY	TEMP_AL
;	LA	8                                ;20060419	
	LA	2                                ;20060419
	AMC
	INY
;	LA	14                               ;20060419
	LA	15                               ;20060419
	AMC
	SZC                      ;test if is more than 14 , 
 	BL	TEMPCON
 	RC                       ; if it is less than 14 , add 1 to TEMP_HL
	LXY	TEMP_AL
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
 	LXY	TEMP_AL
 	TAM	0
; 	SEA	8
        SEA     14               ; 20060420 (0 express 18 degree ,14 = 32 degree)  
	BL	TEMPCON
	LXY	TEMP_AH
	TAM	0
;	SEA	1
        SEA     0                ; 20060420 if the temperature is 32 degree
	BL	TEMPCON
	.SEB	TRANSF           ; if it is 32,send signal
	BL	TEMPCON

;-----------------------------------------------------
;
;            key_sleep
;
; the time flag used in this subroutine:
; 1. T7HF
; 2. T05SF_DELAY
;----------------------------------------------------
KEY_SLEEP:
        .SZXYB  KEYLOCKF
        RT                      ;20060419
	LXY	MODE
	TAM	0
	SEA	4               ; If it is in FAN MODE ,WE CAN NOT SET SLEEP
	A	0
	RT
	.SZXYB	TIMERONF
	RT
	.SZXYB	POWERF
	BL	KEY_SLEEP10
	.SZXYB	POWERF1
	A	0
	RT

KEY_SLEEP10:
        .SZXYB	KEYF
	RT
	.SEB	KEYF

	.SEB	T05SF_DELAY
	.SEB	TRANSF
	.SZXYB	SLEEPF
	BL	KEY_SLEEP20
	.SEB	SLEEPF
	.CLB	T7HF
	LA	0
	LXY	T7HL
	TMA	0
	LXY	T7HM
	TMA	0
	LXY	T7HH

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -