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

📄 m34559n.asm

📁 这是RENESAS空调遥控的一个方案,使用单片机开发
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	TMA	0
	RT
KEY_SLEEP20:
	.CLB	SLEEPF
	RT
;-----------------------------------------------------
;
;            key_clock
; the time flag used in this subroutine:
; 
; 2. T10SF_SETTIME
;----------------------------------------------------
KEY_CLOCK:                          ; set real time key
        .SZXYB  KEYLOCKF
        RT                          ;20060419
	.SZXYB	TIMERONF            ;when set power on/off time ,it is forbidden to set real time
	RT
	.SZXYB	TIMEROFF
	RT                          ;0419

        .SZXYB	KEYF
	RT
	.SEB	KEYF
	.SZXYB	TIMEF               ; check real time set flag,=1:can set,=0:back up real time
	A	0
	BL	KEY_CLOCK10         ;TIMEF = 0 
KEY_CLOCK05:                        ;the second time to press clock key,then make sure the set -situation
	.CLB	TIMEF
	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
	LA	0
	LXY	T1MH
	TMA	0
	LXY	T1ML
	TMA	0
	RT
KEY_CLOCK10:                       ;TIMEF = 0 ,THEN CLEAR THE 5S FLAG 
	
	.SEB	TIMEF
	.CLB	TIMERF
	.CLB	TIMERONF
	.CLB	TIMEROFF
	.CLB	T10SF_SETTIME            ; begin 10 s count    
	LA	0
	LXY	T10SL_SETTIME
	TMA	0
	LXY	T10SH_SETTIME
	TMA	0
	RT	
;-----------------------------------------------------
;
;            key_tup
; the time flag used in this subroutine:
; 2. T250MSF
; 3. T05SF_DELAY
; 5. T10SF_SETTIME
; 6. T05SF_DELAY
; 8. T1SF_TUPDOWN
; 9. T4SF_TUPDOWN
;----------------------------------------------------
KEY_TUP:
        .SZXYB  KEYLOCKF
        RT                      ;20060419
	
KEY_TUP20:
	.SZXYB	TIMEF
	BL	KEY_TUP25       ; set real time 

	.SZXYB	TIMERF
	BL	KEY_TUP50       ; set power on/off time
	RT


KEY_TUP25:                      ; set real time 
	.CLB	T10SF_SETTIME          ; RESET 10S COUNTING
	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_TUP30
	.SEB	FIRSTF1
	.SEB	ADJUSTF
	.CLB	T1SF_TUPDOWN
	.CLB	T4SF_TUPDOWN
	LA	0
	LXY	T4SH_TUPDOWN
	TMA	0
	LXY	T4SL_TUPDOWN
	TMA	0
KEY_TUP30:
	.SZXYB	T4SF_TUPDOWN                              ;Is 9s arriving ?
	BL	KEY_TUP40                         ;9s not arriving,go to 4s check
	LXY	T_ML                              ;9s arriving, add 1 to Min
	TAM	0
	SEA	9
	BL	KEY_TUP32
	LXY	T_ML
	LA	0
	TMA	0
	LXY	T_MH
	TAM	0
	SEA	5
	BL	KEY_TUP34
	LXY	T_MH
	LA	0
	TMA	0
	RC
	LXY	T_HL
	LA	9             ;20060509	
	AMC
	INY
	LA	14
	AMC
	SZC
	A	0
	BL	KEY_TUP36
	LA	0
	LXY	T_HH
	TMA	0
	LXY	T_HL
	TMA	0
	LXY	T_MH
	TMA	0
	LXY	T_ML
	TMA	0
	BL	KEYCON
KEY_TUP32:
	RC
	LXY	T_ML
 	LA	1
 	AMC
 	TMA	0	
 	BL	KEYCON
KEY_TUP34:
	RC
	LXY	T_MH
 	LA	1
 	AMC
 	TMA	0	
 	BL	KEYCON
KEY_TUP36:
	RC
	LXY	T_HL
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
 	BL	KEYCON	
KEY_TUP40:
	LXY	T_MH
	TAM	0
	SEA	5
	BL	KEY_TUP34
	LXY	T_MH
	LA	0
	TMA	0
	RC
	LXY	T_HL
	LA	9                ;20060509	
	AMC
	INY
	LA	14
	AMC
	SZC
	A	0
	BL	KEY_TUP36
	LA	0
	LXY	T_HH
	TMA	0
	LXY	T_HL
	TMA	0
	LXY	T_MH
	TMA	0
	BL	KEYCON


KEY_TUP50:                        ; set power on/off time 
	.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_TUP60
	.SEB	FIRSTF1
	.CLB	T1SF_TUPDOWN
	.CLB	T4SF_TUPDOWN
	LA	0
	LXY	T4SH_TUPDOWN
	TMA	0
	LXY	T4SL_TUPDOWN
	TMA	0
KEY_TUP60:
	.SZXYB	TIMERONF         ; 
	BL	KEY_TUP80        ; set power on time 
	.SZXYB	T4SF_TUPDOWN                   ;20060424
	BL	KEY_TUP70              ;20060424
	LXY	TOFF_ML          ; set power off time 
	TAM	0
	SEA	9
	BL	KEY_TUP64
	LXY	TOFF_ML
	LA	0
	TMA	0
	LXY	TOFF_MH
	TAM	0
	SEA	5
	BL	KEY_TUP66
	LXY	TOFF_MH
	LA	0
	TMA	0
	RC
	LXY	TOFF_HL
	LA	9              ;20060509	
	AMC
	INY
	LA	14
	AMC
	SZC
	A	0
	BL	KEY_TUP68
	LA	0
	LXY	TOFF_HH
	TMA	0
	LXY	TOFF_HL
	TMA	0
	LXY	TOFF_MH
	TMA	0
	LXY	TOFF_ML
	TMA	0
	BL	KEYCON
KEY_TUP64:
	RC
	LXY	TOFF_ML
 	LA	1
 	AMC
 	TMA	0	
 	BL	KEYCON
KEY_TUP66:
	RC
	LXY	TOFF_MH
 	LA	1
 	AMC
 	TMA	0	
 	BL	KEYCON
KEY_TUP68:
	RC
	LXY	TOFF_HL
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
 	BL	KEYCON	
KEY_TUP70:
	LXY	TOFF_MH
	TAM	0
	SEA	5
	BL	KEY_TUP66
	LXY	TOFF_MH
	LA	0
	TMA	0
	RC
	LXY	TOFF_HL
	LA	9                    ;20060509	
	AMC
	INY
	LA	14
	AMC
	SZC
	A	0
	BL	KEY_TUP68
	LA	0
	LXY	TOFF_HH
	TMA	0
	LXY	TOFF_HL
	TMA	0
	LXY	TOFF_MH
	TMA	0
	BL	KEYCON


KEY_TUP80:                           ;set power on time
	.SZXYB	T4SF_TUPDOWN                 ;20060424
	BL	KEY_TUP90            ;20060424
	LXY	TON_ML
	TAM	0
	SEA	9
	BL	KEY_TUP84
	LXY	TON_ML
	LA	0
	TMA	0
	LXY	TON_MH
	TAM	0
	SEA	5
	BL	KEY_TUP86
	LXY	TON_MH
	LA	0
	TMA	0
	RC
	LXY	TON_HL
	LA	9                  ;20060509	
	AMC
	INY
	LA	14
	AMC
	SZC
	A	0
	BL	KEY_TUP88
	LA	0
	LXY	TON_HH
	TMA	0
	LXY	TON_HL
	TMA	0
	LXY	TON_MH
	TMA	0
	LXY	TON_ML
	TMA	0
	BL	KEYCON

KEY_TUP84:                          ; low bit of min   
	RC
	LXY	TON_ML
 	LA	1
 	AMC
 	TMA	0	
 	BL	KEYCON
KEY_TUP86:                          ; high bit of min
	RC
	LXY	TON_MH
 	LA	1
 	AMC
 	TMA	0	
 	BL	KEYCON
KEY_TUP88:                          ; hour
	RC
	LXY	TON_HL
 	LA	1
 	AMC	
 	XAMI	0
 	LA	0
 	AMC
 	XAM	0
 	BL	KEYCON	
KEY_TUP90:
	LXY	TON_MH
	TAM	0
	SEA	5
	BL	KEY_TUP86
	LXY	TON_MH
	LA	0
	TMA	0
	RC
	LXY	TON_HL
	LA	9                 ;20060509	
	AMC
	INY
	LA	14
	AMC
	SZC
	A	0
	BL	KEY_TUP88
	LA	0
	LXY	TON_HH
	TMA	0
	LXY	TON_HL
	TMA	0
	LXY	TON_MH
	TMA	0

KEYCON:

	.CLB	T1SF_ADJUST                  ; 1S COUNT FLAG ARRIV
	LA	0
	LXY	T1S_ADJUST
	TMA	0
	BML	TIMECON
	NOP
	BML	DISPLAY
	NOP
	BML	GET_KEY
	A	0
	BL	KEYCON20               ;if no key, then return

	.SZXYB	T4SF_TUPDOWN         ;20060424
	BL	KEYCON10     ;20060424

	.SZXYB	T1SF_TUPDOWN
	A	0
	BL	KEYCON

KEYCON10:
        .SZXYB  T250MSF      ;20060425
        A       0
        BL      KEYCON
        BL      KEY_DECODE   ;20060425

KEYCON20:
	
	.CLB	FIRSTF1
	RT
;-----------------------------------------------------
;
;            key_timer
;
; the time flag used in this subroutine:
; 3. T05SF_DELAY
; 5. T10SF_SETTIME
;----------------------------------------------------
KEY_TIMER:
        .SZXYB  KEYLOCKF
        RT                      ;20060419
	.SZXYB	KEYF
	RT
	.SEB	KEYF
	.SZXYB	TIMEF           ;When set real time, return
	RT
	
	.SZXYB	TIMERONF
	BL	KEY_TIMER50     ;set power on time

	.SZXYB	TIMEROFF
	BL	KEY_TIMER30     ;set power off time
	BL	KEY_TIMER15


KEY_TIMER15:                    ;first press TIMER KEY,set the timer-set mode	
        
	.CLB	T10SF_SETTIME          ;start 10s counting  
	LA	0
	LXY	T10SH_SETTIME
	TMA	0
	LXY	T10SL_SETTIME
	TMA	0
	.SZXYB	POWERF          ;check power status
	BL	KEY_TIMER20     ;power on ,(POWERF = 1)
	.SEB	TIMERONF        ;power off status,set TIMERONF 
	.CLB	TIMEROFF        ;Clear timeroff
	.SEB	TIMERF          ;set timerf(set to power on/off status)   
	RT
KEY_TIMER20:                    ; when power on
	.CLB	TIMERONF
	.SEB	TIMEROFF
	.SEB	TIMERF
	RT

KEY_TIMER30:                    ; the second time or third time press TIMER KEY
	.SZXYB	TIMERF
	BL	KEY_TIMER40     ;timerf = 1, can set power-on/off time
	.SEB	TRANSF          ;transf
	.CLB	TIMERONF
	.CLB	TIMEROFF
	.CLB	TIMERF
	RT

KEY_TIMER40:                    ;make sure the set power off time
	LXY	T_ML
	TAM	0
	LXY	TOFF_ML
	SEAM	
	BL	KEY_TIMER45
	LXY	T_MH
	TAM	0
	LXY	TOFF_MH
	SEAM
	BL	KEY_TIMER45
	LXY	T_HL
	TAM	0
	LXY	TOFF_HL
	SEAM
	BL	KEY_TIMER45
	LXY	T_HH
	TAM	0
	LXY	TOFF_HH
	SEAM
	BL	KEY_TIMER45
	RT                      ;check if it is equal to real time,if yes ,return ,if no ,make sure it                      
KEY_TIMER45:	
	.SEB	TRANSF
	.CLB	TIMERONF
	.CLB	TIMERF
	LXY	TOFF_HH
	TAM	0
	LXY	BTOFF_HH
	TMA	0
	LXY	TOFF_HL
	TAM	0
	LXY	BTOFF_HL
	TMA	0
	LXY	TOFF_MH
	TAM	0
	LXY	BTOFF_MH
	TMA	0
	LXY	TOFF_ML
	TAM	0
	LXY	BTOFF_ML
	TMA	0
	RT
	
KEY_TIMER50:                    ;set power on time
	.SZXYB	TIMERF
	BL	KEY_TIMER60
	.CLB	TIMERONF
	.CLB	TIMEROFF
	.CLB	TIMERF
	.CLB	POWERF1
	.SEB	TRANSF
	RT
KEY_TIMER60:                    ; the second time to press key-timer key,make sure the set value and 
	LXY	T_ML            ; set some status of timer ,timeronf,timeroff
	TAM	0
	LXY	TON_ML
	SEAM	
	BL	KEY_TIMER65
	LXY	T_MH
	TAM	0
	LXY	TON_MH
	SEAM
	BL	KEY_TIMER65
	LXY	T_HL
	TAM	0
	LXY	TON_HL
	SEAM
	BL	KEY_TIMER65
	LXY	T_HH
	TAM	0
	LXY	TON_HH
	SEAM
	BL	KEY_TIMER65
	RT                      ;check if it is equal to real time,if yes ,return ,if no ,make sure it                      
KEY_TIMER65:
	.SEB	TRANSF
	.SEB	POWERF1
	.CLB	TIMEROFF
	.CLB	TIMERF
	LXY	TON_HH
	TAM	0
	LXY	BTON_HH
	TMA	0
	LXY	TON_HL
	TAM	0
	LXY	BTON_HL
	TMA	0
	LXY	TON_MH
	TAM	0
	LXY	BTON_MH
	TMA	0
	LXY	TON_ML
	TAM	0
	LXY	BTON_ML
	TMA	0
	RT

;-----------------------------------------------------
;
;            key_tdown
;
; the time flag used in this subroutine:
; 2. T250MSF
; 3. T05SF_DELAY
; 5. T10SF_SETTIME
; 6. T05SF_DELAY
; 8. T1SF_TUPDOWN
; 9. T4SF_TUPDOWN
;----------------------------------------------------
KEY_TDOWN:
        .SZXYB  KEYLOCKF
        RT                      ;20060419
	
KEY_TDOWN10:
	.SZXYB	TIMEF
	BL	KEY_TDOWN15               ; set real time mode

	.SZXYB	TIMERF
	BL	KEY_TDOWN35               ; set power on/off time mode
	RT

KEY_TDOWN15:                              ; set real time mode
	.CLB	T10SF_SETTIME                    ; once the down key pressed ,10s start to count
	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                   ;check if it is pressed the first time ,0 = first
	BL	KEY_TDOWN20
	.SEB	FIRSTF1
	.SEB	ADJUSTF
	.CLB	T1SF_TUPDOWN
	.CLB	T4SF_TUPDOWN
	LA	0
	LXY	T4SH_TUPDOWN
	TMA	0
	LXY	T4SL_TUPDOWN
	TMA	0

KEY_TDOWN20:
        .SZXYB	T4SF_TUPDOWN                     ;20060425
	BL	KEY_TDOWN30
	LXY	T_ML
	TAM	0
	SEA	0
	BL	KEY_TDOWN22
	LXY	T_ML
	LA	9
	TMA	0
	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
	LXY	T_ML
	LA	9
	TMA	0
	BL	KEYCON
KEY_TDOWN22:
	LXY	T_ML
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	T_ML
	TMA	0
	BL	KEYCON	
KEY_TDOWN24:
	LXY	T_MH
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	T_MH
	TMA	0
	BL	KEYCON	
KEY_TDOWN26:
	LXY	T_HL
	TAM	0
	TYA
	DEY
	NOP
	TAY
	LXY	T_HL

⌨️ 快捷键说明

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