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

📄 m34559n.asm

📁 这是RENESAS空调遥控的一个方案,使用单片机开发
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	TMA	0
	BL	KEYCON	
KEY_TDOWN28:
	LXY	T_HH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	T_HH
	TMA	0
	BL	KEYCON	
KEY_TDOWN30:
	LXY	T_MH
	TAM	0
	SEA	0
	BL	KEY_TDOWN24
	LXY	T_MH
	LA	5
	TMA	0
	LXY	T_HL
	TAM	0
	SEA	0
	BL	KEY_TDOWN26
	LXY	T_HL
	LA	0fH
	TMA	0	
	LXY	T_HH
	TAM	0
	SEA	0
	BL	KEY_TDOWN28
	LXY	T_HH
	LA	1
	TMA	0
	LXY	T_HL
	LA	7                      ;20060509
	TMA	0
	LXY	T_MH
	LA	5
	TMA	0
	BL	KEYCON


KEY_TDOWN35:                            ; set power on/off time mode
	.CLB	T10SF_SETTIME
	LA	0
	LXY	T10SL_SETTIME
	TMA	0
	LXY	T10SH_SETTIME
	TMA	0
        .CLB	T250MSF                 ;20060425
	.CLB	T05SF_DELAY
	LA	0
	LXY	T05S_DELAY
	TMA	0
	.SZXYB	FIRSTF1
	BL	KEY_TDOWN40
	.SEB	FIRSTF1
	.CLB	T1SF_TUPDOWN
	.CLB	T4SF_TUPDOWN
	LA	0
	LXY	T4SH_TUPDOWN
	TMA	0
	LXY	T4SL_TUPDOWN
	TMA	0
KEY_TDOWN40:
	.SZXYB	TIMERONF
	BL	KEY_TDOWN60            ;set power on time mode
        .SZXYB	T4SF_TUPDOWN
	BL	KEY_TDOWN50            ;set power off time mode
	LXY	TOFF_ML
	TAM	0
	SEA	0
	BL	KEY_TDOWN42
	LXY	TOFF_ML
	LA	9
	TMA	0
	LXY	TOFF_MH
	TAM	0
	SEA	0
	BL	KEY_TDOWN44
	LXY	TOFF_MH
	LA	5
	TMA	0
	LXY	TOFF_HL
	TAM	0
	SEA	0
	BL	KEY_TDOWN46
	LXY	TOFF_HL
	LA	0fH
	TMA	0	
	LXY	TOFF_HH
	TAM	0
	SEA	0
	BL	KEY_TDOWN48
	LXY	TOFF_HH
	LA	1
	TMA	0
	LXY	TOFF_HL
	LA	7                  ;2006509
	TMA	0
	LXY	TOFF_MH
	LA	5
	TMA	0
	LXY	TOFF_ML
	LA	9
	TMA	0
	BL	KEYCON
KEY_TDOWN42:
	LXY	TOFF_ML
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TOFF_ML
	TMA	0
	BL	KEYCON	
KEY_TDOWN44:
	LXY	TOFF_MH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TOFF_MH
	TMA	0
	BL	KEYCON	
KEY_TDOWN46:
	LXY	TOFF_HL
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TOFF_HL
	TMA	0
	BL	KEYCON	
KEY_TDOWN48:
	LXY	TOFF_HH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TOFF_HH
	TMA	0
	BL	KEYCON	
KEY_TDOWN50:
	LXY	TOFF_MH
	TAM	0
	SEA	0
	BL	KEY_TDOWN44
	LXY	TOFF_MH
	LA	5
	TMA	0
	LXY	TOFF_HL
	TAM	0
	SEA	0
	BL	KEY_TDOWN46
	LXY	TOFF_HL
	LA	0fH
	TMA	0	
	LXY	TOFF_HH
	TAM	0
	SEA	0
	BL	KEY_TDOWN48
	LXY	TOFF_HH
	LA	1
	TMA	0
	LXY	TOFF_HL
	LA	7                    ;20060509
	TMA	0
	LXY	TOFF_MH
	LA	5
	TMA	0
	BL	KEYCON


KEY_TDOWN60:                         ;set power on time mode
        .SZXYB	T4SF_TUPDOWN
	BL	KEY_TDOWN70
	LXY	TON_ML
	TAM	0
	SEA	0
	BL	KEY_TDOWN62
	LXY	TON_ML
	LA	9
	TMA	0
	LXY	TON_MH
	TAM	0
	SEA	0
	BL	KEY_TDOWN64
	LXY	TON_MH
	LA	5
	TMA	0
	LXY	TON_HL
	TAM	0
	SEA	0
	BL	KEY_TDOWN66
	LXY	TON_HL
	LA	0fH
	TMA	0	
	LXY	TON_HH
	TAM	0
	SEA	0
	BL	KEY_TDOWN68
	LXY	TON_HH
	LA	1
	TMA	0
	LXY	TON_HL
	LA	7                    ;20060509
	TMA	0
	LXY	TON_MH
	LA	5
	TMA	0
	LXY	TON_ML
	LA	9
	TMA	0
	BL	KEYCON
KEY_TDOWN62:
	LXY	TON_ML
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TON_ML
	TMA	0
	BL	KEYCON	
KEY_TDOWN64:
	LXY	TON_MH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TON_MH
	TMA	0
	BL	KEYCON	
KEY_TDOWN66:
	LXY	TON_HL
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TON_HL
	TMA	0
	BL	KEYCON	
KEY_TDOWN68:
	LXY	TON_HH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	TON_HH
	TMA	0
	BL	KEYCON	
KEY_TDOWN70:
	LXY	TON_MH
	TAM	0
	SEA	0
	BL	KEY_TDOWN64
	LXY	TON_MH
	LA	5
	TMA	0
	LXY	TON_HL
	TAM	0
	SEA	0
	BL	KEY_TDOWN66
	LXY	TON_HL
	LA	0fH
	TMA	0	
	LXY	TON_HH
	TAM	0
	SEA	0
	BL	KEY_TDOWN68
	LXY	TON_HH
	LA	1
	TMA	0
	LXY	TON_HL
	LA	7                   ;20060509
	TMA	0
	LXY	TON_MH
	LA	5
	TMA	0
	BL	KEYCON
;-----------------------------------------------------
;
;            key_power
; the time flag used in this subroutine:
; 1. T1SF_SWING
; 2. T2SF_SWING
; 3. T3SF_SWING
; 4. T05SF_DELAY

;----------------------------------------------------
KEY_POWER:
        .SZXYB  KEYLOCKF
        RT
        .SZXYB	KEYF
	RT
	.SEB	KEYF
	.SEB	T05SF_DELAY
	.CLB	TIMERF
	.CLB	TIMERONF
	.CLB	TIMEROFF
	.SEB	TRANSF
	.SZXYB	POWERF
	BL	KEY_POWER10
	.SEB	POWERF
	.SEB	T1SF_SWING
	.SEB	T2SF_SWING
	.SEB	T3SF_SWING
	RT
KEY_POWER10:
	.CLB	POWERF
	.CLB	POWERF1
	.CLB	SLEEPF
	.CLB	SWINGF
	RT

;20060419
;-----------------------------------------------------
;
;            key_lock
;
;----------------------------------------------------
KEY_LOCK:
        .SZXYB	KEYF
	RT
	.SEB	KEYF
        .SZXYB  KEYLOCKF
        BL      KEY_LOCK10
        .SEB    KEYLOCKF
        RT
KEY_LOCK10:
        .CLB    KEYLOCKF
         RT
        


;=====================================================
;
;      Time control
;
;1. time cycle is 0.25s
;2. update the time flags
;3. send IR signal (if transferf = 1)
;4. real time update 
;5.
;======================================================
TIMECON:

	SNZT3                        ;T3 overflow = 0.25s arriving,
	RT                           ;if is not arriving, return  
TIMECON05:                           
	BML	TRANS_ST
        LZ	0
        .SEB	T250MSF              ;every 0.25s excute this function
TIMECON08:
	LXY	T05S_DELAY
	LA	1
	AM	
	TMA	0
	SEA	2
	BL	TIMECON10
	.SEB	T05SF_DELAY               ; 2*0.25s = 0.5s
	LXY	T05S_DELAY                ; count 0.25s arrive times
	LA	0
	TMA	0                    ; 0.5s arrive ,set counter to 0
TIMECON10:
	LXY	T1S_ADJUST
	LA	1
	AM	
	TMA	0
	SEA	4
	BL	TIMECON14
	.SEB	T1SF_ADJUST                ; 1s arrive
	LXY	T1S_ADJUST
	LA	0
	TMA	0

TIMECON14:
	LXY	T1S_TIME_DISP
	LA	1
	AM	
	TMA	0
	SEA	2
	BL	TIMECON16
	.SEB	T05SF_TIME_DISP                ;0.5s arrive 
TIMECON16:
	SEA	4
	BL	TIMECON32
	.SEB	T1SF_TIME_DISP                 ; 1s  arrive 
	LXY	T1S_TIME_DISP
	LA	0
	TMA	0


TIMECON32:
	RC
	LXY	T10SL_SETTIME
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
	RC
	LXY	T10SL_SETTIME
	LA	8	
	AMC
	INY
	LA	13                           ;28H = 40 ,40*0.25S = 10S
	AMC
	SZC
	A	0
 	BL	TIMECON36
	.SEB	T10SF_SETTIME
	LA	0
	LXY	T10SL_SETTIME
	XAMI	0
	LA	0
	XAM	0
;----------------------------------------------------

;----------------------------------------------------
TIMECON36:
	RC
	LXY	T4SL_TUPDOWN
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
	RC
	LXY	T4SL_TUPDOWN
	LA	13	
	AMC
	INY
	LA	15
	AMC
	SZC
	A	0
 	BL	TIMECON38
	.SEB	T1SF_TUPDOWN
TIMECON38:
	RC
	LXY	T4SL_TUPDOWN
	LA	2	
	AMC
	INY
	LA	15
	AMC
	SZC
	A	0
 	BL	TIMECON_SWING
	.SEB	T4SF_TUPDOWN
	LA	0
	LXY	T4SL_TUPDOWN
	XAMI	0
	LA	0
	XAM	0

;--------------------------------------------------
;  0.25s once a time 
;--------------------------------------------------
TIMECON_SWING:
	RC
	LXY	T3SL_SWING
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
	RC
	LXY	T3SL_SWING
	LA	12	
	AMC
	INY
	LA	15
	AMC
	SZC
	A	0
 	BL	TIMECON_SWING2S
	.SEB	T1SF_SWING
TIMECON_SWING2S:
	RC
	LXY	T3SL_SWING
	LA	8	
	AMC
	INY
	LA	15
	AMC
	SZC
	A	0
 	BL	TIMECON_SWING3S
	.SEB	T2SF_SWING
TIMECON_SWING3S:
	RC
	LXY	T3SL_SWING
	LA	4	
	AMC
	INY
	LA	15
	AMC
	SZC
	A	0
 	BL	TIMECON_1MIN
	.SEB	T3SF_SWING
	LA	0
	LXY	T3SL_SWING
	XAMI	0
	LA	0
	XAM	0

;-------------------------------------------------
;      0.25S once a time
;-------------------------------------------------
TIMECON_1MIN:	                              ; 1 min 
	RC
	LXY	T1ML
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
	RC
	LXY	T1ML
	LA	0	                       ; 0 (16-0 = 16) is low bit 
	AMC
	INY
	LA	1                              ; 1 (15-1 = 14) is high bit ,both high and low is 14*16+16 = 240
	AMC
	SZC                                    ; if overflow ,240 count is 240*0.25s = 60s = 1min
	A	0
 	BL	TIMECON200
	LA	0
	LXY	T1ML
	XAMI	0
	LA	0
	XAM	0
;
;----------------------------------------------
;   1 min once a time
;----------------------------------------------

TIMECON_7HOUR:                                 ; 7 hours ,COUNT SOURCE IS 1 MIN
	LXY	T7HL
	TAM	0
	SEA	15                             ; test low bit is overflow ?
	BL	TIMECON_7HOURL                     ; no overload ,then add 1
	LXY	T7HL                           ; low bit overload, add 1 to middle bit and reset low bit
	LA	0
	TMA	0                              ; reset low bit
	LXY	T7HM        
	TAM	0
	SEA	15                             ; test middle bit is overflow ? 
	BL	TIMECON_7HOURM
	LXY	T7HM                           ;  
	LA	0
	TMA	0
	RC
	LXY	T7HH
 	LA	1
 	AMC
 	TMA	0	
 	BL	TIMECON_7HOURH
TIMECON_7HOURL:
	RC
	LXY	T7HL
 	LA	1
 	AMC
 	TMA	0	
 	BL	TIMECON_7HOURH
TIMECON_7HOURM:
	RC
	LXY	T7HM
 	LA	1
 	AMC
 	TMA	0
TIMECON_7HOURH:	
	LXY	T7HH
	TAM	0
	SEA	1	
	BL	TIMECON_TIME
	LXY	T7HM
	TAM	0
	SEA	10
	BL	TIMECON_TIME
	LXY	T7HL
	TAM	0
	SEA	4                             ; the high ,mid and low bit is 1,10,4 .16 bit 1a4 = 420 (min)
	BL	TIMECON_TIME                    ; 420 min = 7*60 is 7 hour
	.SEB	T7HF
	LA	0
	LXY	T7HL
	TMA	0
	LXY	T7HM
	TMA	0
	LXY	T7HH
	TMA	0
;------------------------------------------------
;     1 MIN ONCE A TIME
;------------------------------------------------
TIMECON_TIME:                                   ; process real time 
	.SZXYB	TIMEF                         ; test time set flag,if it is 1,then go to TIMECON200
	BL	TIMECON200
	LXY	T_ML                          ; NO time set then update the real time
	TAM	0
	SEA	9                             ; low bit min  
	BL	TIMECON_TIMEML                     ; add 1 to low bit min  
	LXY	T_ML                          ; low bit = 0 ,high bit + 1
	LA	0
	TMA	0
	LXY	T_MH
	TAM	0
	SEA	5                             ; 59 min 
	BL	TIMECON_TIMEMH                     ; high bit +1 ,if high is 4 ,then add 1 ,it is up to 5
	LXY	T_MH
	LA	0
	TMA	0
	RC
	LXY	T_HL
	LA	9	
	AMC
	INY
	LA	14                           ; 17h = 23
	AMC
	SZC
	A	0
	BL	TIMECON_TIMEHL
	LA	0
	LXY	T_HH
	TMA	0
	LXY	T_HL
	TMA	0
	LXY	T_MH
	TMA	0
	LXY	T_ML
	TMA	0
	BL	TIMECON_BTIME
TIMECON_TIMEML:
	RC
	LXY	T_ML
 	LA	1
 	AMC
 	TMA	0	
 	BL	TIMECON_BTIME
TIMECON_TIMEMH:
	RC
	LXY	T_MH
 	LA	1
 	AMC
 	TMA	0	
 	BL	TIMECON_BTIME
TIMECON_TIMEHL:
	RC
	LXY	T_HL
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0

;------------------------------------------------
;    1 MIN ONCE A TIME
;------------------------------------------------
TIMECON_BTIME:                            ;save real time to buffer
	LXY	T_HH
	TAM	0
	LXY	BT_HH
	TMA	0
	LXY	T_HL
	TAM	0
	LXY	BT_HL
	TMA	0
	LXY	T_MH
	TAM	0
	LXY	BT_MH
	TMA	0
	LXY	T_ML
	TAM	0
	LXY	BT_ML
	TMA	0
;
	.SZXYB	TIMERF
	BL	TIMECON200
	.SZXYB	TIMERONF
	A	0
	BL	TIMECON100
	LXY	T_ML
	TAM	0
	LXY	TON_ML
	SEAM	
	BL	TIMECON200
	LXY	T_MH

⌨️ 快捷键说明

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