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

📄 m34559n.asm

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

;**************************************************************;
;       Remote controller for M34559 DEMO                      ;
;       MCU:       M34559G6-xxxFP                              ;
;       VERSION:   1.0                                         ;
;       DESIGNED:  GAO YUAN HONG                               ;
;       DATE:      2006-05-12                                  ;
;       Renesas System Solutions Asia Pte. Ltd	               ;
;       SHANGHAI Representative Office                         ;
;**************************************************************;
;***************************************
;         RAM define
;***************************************
K1	.EQU    00h                    ;1 timer down                        
K2      .EQU    01h                    ;2 up   for temperature upgrade      
K3      .EQU    02h                    ;3 timer up                          
K4	.EQU	03h		       ;4 keyboard lock                     
K5      .EQU    04h                    ;5 clock                             
K6      .EQU    05h                    ;6 swing
K7      .EQU    06h                    ;7 fan strong or small
K8      .EQU    07h                    ;8 SWING
K9      .EQU    08h                    ;9 timer set key   
K10     .EQU    09h                    ;10 sleep  
K11     .EQU    0ah                    ;11 power on/off                    
K12   	.EQU    0bh		       ;12 down  for temperature upgrade	                      
;K13    .EQU    0ch                     
;K14    .EQU	0dh		
;K15	.EQU	0eh			
;K16	.EQU 	0fh		
;***************************************
;       Transmit data define
;***************************************
TDATAAL		.EQU      0,0,0
TDATAAH   	.EQU      0,0,1
TDATABL    	.EQU      0,0,2         
TDATABH   	.EQU	  0,0,3		
TDATACL   	.EQU      0,0,4        
TDATACH   	.EQU      0,0,5       
TDATADL   	.EQU      0,0,6          
TDATADH   	.EQU      0,0,7         
TDATAEL       	.EQU      0,0,8        
TDATAEH        	.EQU      0,0,9        
TDATAFL       	.EQU      0,0,10         
TDATAFH       	.EQU      0,0,11        
TDATAGL       	.EQU      0,0,12     
TDATAGH       	.EQU      0,0,13
TDATAHL        	.EQU      0,0,14
TDATAHH		.EQU      0,0,15
;----------------------------------------
TDATAIL		.EQU      0,1,0
TDATAIH   	.EQU      0,1,1
;        	.EQU      0,1,2         
;       	.EQU	  0,1,3		
;       	.EQU      0,1,4        
;       	.EQU      0,1,5       
;       	.EQU      0,1,6          
;       	.EQU      0,1,7         
;         	.EQU      0,1,8        
;        	.EQU      0,1,9      
;        	.EQU      0,1,10     
T7HL       	.EQU      0,1,11
T7HM        	.EQU      0,1,12
T7HH		.EQU      0,1,13
TEMP_AL       	.EQU      0,1,14         
TEMP_AH       	.EQU      0,1,15  
;************************************************
;       Others RAM define
;************************************************
TEMP_CL    	.EQU      0,2,0         
TEMP_CH   	.EQU	  0,2,1		
TEMP_DL   	.EQU      0,2,2        
TEMP_DH   	.EQU      0,2,3       
TEMP_HL   	.EQU      0,2,4          
TEMP_HH   	.EQU      0,2,5         
FAN_A       	.EQU      0,2,6                 ; AUTO      
FAN_C       	.EQU      0,2,7                 ; COOL
FAN_D       	.EQU      0,2,8                 ; DRY
FAN_F       	.EQU      0,2,9                 ; FAN
FAN_H       	.EQU      0,2,10                ; HOT  
BDATAL      	.EQU      0,2,11                ; BUF FOR DATAL PROCESS
BDATAH        	.EQU      0,2,12
KEYDATA      	.EQU      0,2,13
;        	.EQU      0,2,14
;		.EQU	  0,2,15		; 
;-------------------------------------
T_HL    	.EQU      0,3,0                 ;low  bit of real timer'hour
T_HH    	.EQU      0,3,1                 ;high bit of real timer'hour
T_ML    	.EQU	  0,3,2		        ;low  bit of real timer'mininute
T_MH    	.EQU      0,3,3                 ;high bit of real timer'mininute
BT_HL     	.EQU      0,3,4                 ;back up for T_HL
BT_HH    	.EQU      0,3,5         
BT_ML     	.EQU	  0,3,6		
BT_MH    	.EQU      0,3,7    
TON_HL    	.EQU      0,3,8                 ;low  bit of set-power-on-timer'hour 
TON_HH  	.EQU      0,3,9                 ;high                           hour
TON_ML  	.EQU	  0,3,10	        ;low                            min
TON_MH  	.EQU      0,3,11                ;high                           min
BTON_HL	   	.EQU      0,3,12               
BTON_HH   	.EQU      0,3,13
BTON_ML        	.EQU      0,3,14
BTON_MH       	.EQU      0,3,15
;-------------------------------------
TOFF_HL     	.EQU      0,4,0                 ;low  bit of set-power-off-timer'hour                     
TOFF_HH    	.EQU      0,4,1                 ;high                            hour   
TOFF_ML   	.EQU      0,4,2                 ;low                             min   
TOFF_MH	   	.EQU      0,4,3                 ;high                            min
BTOFF_HL	.EQU      0,4,4                 
BTOFF_HH    	.EQU      0,4,5                   
BTOFF_ML  	.EQU      0,4,6               
BTOFF_MH  	.EQU      0,4,7                 
MODE        	.EQU      0,4,8                 ;mode contain (0:auto,1:COOL,2:dehumility,3:HEAT,4:FAN)  
INPUT   	.EQU      0,4,9                 ;contain keyboard row line data
;       	.EQU      0,4,10                
;       	.EQU      0,4,11                
T3SL_SWING     	.EQU      0,4,12                
T3SH_SWING     	.EQU      0,4,13
T1ML        	.EQU      0,4,14                
T1MH        	.EQU      0,4,15    
;-------------------------------------
T05S_DELAY     	.EQU      0,5,0                  
T1S_ADJUST     	.EQU      0,5,1                  
T1S_TIME_DISP  	.EQU      0,5,2                
T4SL_TUPDOWN   	.EQU      0,5,3                 
T4SH_TUPDOWN   	.EQU      0,5,4                 
T10SL_SETTIME 	.EQU      0,5,5                   
T10SH_SETTIME	.EQU      0,5,6               
;       	.EQU      0,5,7                 
;        	.EQU      0,5,8                 
;        	.EQU      0,5,9                 
;       	.EQU      0,5,10                
;       	.EQU      0,5,11                
;       	.EQU      0,5,12                
; 	        .EQU      0,5,13
;        	.EQU      0,5,14                
SWING       	.EQU      0,5,15    
;-------------------------------------
RAM60  		.EQU	  0,6,0
POWERF		.EQU	0,0,6,0
POWERF1		.EQU	1,0,6,0
FIRSTF1 	.EQU	2,0,6,0
TRANSF		.EQU	3,0,6,0
					;
RAM61   	.EQU	  0,6,1
NOKEYF  	.EQU	0,0,6,1
KEYLOCKF       	.EQU	1,0,6,1
SLEEPF   	.EQU	2,0,6,1
KEYF    	.EQU	3,0,6,1
					;
RAM62  		.EQU	  0,6,2
TIMEF   	.EQU	0,0,6,2
TIMERF  	.EQU	1,0,6,2
TIMERONF  	.EQU	2,0,6,2
TIMEROFF	.EQU	3,0,6,2
					;
RAM63   	.EQU	  0,6,3
T250MSF		.EQU	0,0,6,3
T05SF_DELAY	.EQU	1,0,6,3
T1SF_ADJUST    	.EQU	2,0,6,3
ADJUSTF		.EQU	3,0,6,3
					;
RAM64  		.EQU	  0,6,4
T05SF_TIME_DISP	.EQU	0,0,6,4	
T1SF_TIME_DISP	.EQU	1,0,6,4
T10SF_SETTIME	.EQU	2,0,6,4	
T7HF		.EQU	3,0,6,4	
					;
RAM65   	.EQU	  0,6,5
T1SF_TUPDOWN	.EQU	0,0,6,5
T4SF_TUPDOWN	.EQU	1,0,6,5
;		.EQU	2,0,6,5
;		.EQU	3,0,6,5
					;
RAM66  		.EQU	  0,6,6
SWINGF		.EQU	0,0,6,6	
T1SF_SWING	.EQU	1,0,6,6
T2SF_SWING     	.EQU	2,0,6,6	
T3SF_SWING	.EQU	3,0,6,6	
		
;------------------------------------------------
;***************************************
;    Display buffer define
;***************************************
LCD0    .EQU    1,0,8
LD00    .EQU    0,1,0,8
LD01    .EQU    1,1,0,8
LD02    .EQU    2,1,0,8
LD03    .EQU    3,1,0,8
                                        ;LCD0
LCD1    .EQU    1,0,9
LD10    .EQU    0,1,0,9
LD11    .EQU    1,1,0,9
LD12    .EQU    2,1,0,9
LD13    .EQU    3,1,0,9
                                        ;LCD1
LCD2    .EQU    1,0,10
LD20    .EQU    0,1,0,10
LD21    .EQU    1,1,0,10
LD22    .EQU    2,1,0,10
LD23    .EQU    3,1,0,10
                                        ;LCD2
LCD3    .EQU    1,0,11
LD30    .EQU    0,1,0,11
LD31    .EQU    1,1,0,11
LD32    .EQU    2,1,0,11
LD33    .EQU    3,1,0,11
                                        ;LCD3
LCD4    .EQU    1,0,12
LD40    .EQU    0,1,0,12
LD41    .EQU    1,1,0,12
LD42    .EQU    2,1,0,12
LD43    .EQU    3,1,0,12
                                        ;LCD4
LCD5    .EQU    1,0,13
LD50    .EQU    0,1,0,13
LD51    .EQU    1,1,0,13
LD52    .EQU    2,1,0,13
LD53    .EQU    3,1,0,13
                                        ;LCD5
LCD6    .EQU    1,0,14
LD60    .EQU    0,1,0,14
LD61    .EQU    1,1,0,14
LD62    .EQU    2,1,0,14
LD63    .EQU    3,1,0,14
                                        ;LCD6
LCD7    .EQU    1,0,15
LD70    .EQU    0,1,0,15
LD71    .EQU    1,1,0,15
LD72    .EQU    2,1,0,15
LD73    .EQU    3,1,0,15
					;LCD7
LCD8    .EQU    1,1,8
LD80    .EQU    0,1,1,8
LD81    .EQU    1,1,1,8
LD82    .EQU    2,1,1,8
LD83    .EQU    3,1,1,8
                                        ;LCD8
LCD9    .EQU    1,1,9
LD90    .EQU    0,1,1,9
LD91    .EQU    1,1,1,9
LD92    .EQU    2,1,1,9
LD93    .EQU    3,1,1,9
                                        ;LCD9
LCD10   .EQU    1,1,10
LD100   .EQU    0,1,1,10
LD101   .EQU    1,1,1,10
LD102   .EQU    2,1,1,10
LD103   .EQU    3,1,1,10
                                        ;LCD10
LCD11   .EQU    1,1,11
LD110   .EQU    0,1,1,11
LD111   .EQU    1,1,1,11
LD112   .EQU    2,1,1,11
LD113   .EQU    3,1,1,11
                                        ;LCD11
LCD12   .EQU    1,1,12
LD120   .EQU    0,1,1,12
LD121   .EQU    1,1,1,12
LD122   .EQU    2,1,1,12
LD123   .EQU    3,1,1,12
                                        ;LCD12
LCD13    .EQU    1,1,13
LD130    .EQU    0,1,1,13
LD131    .EQU    1,1,1,13
LD132    .EQU    2,1,1,13
LD133    .EQU    3,1,1,13
                                        ;LCD13
LCD14    .EQU    1,1,14
LD140    .EQU    0,1,1,14
LD141    .EQU    1,1,1,14
LD142    .EQU    2,1,1,14
LD143    .EQU    3,1,1,14
                                        ;LCD14
LCD15    .EQU    1,1,15
LD150    .EQU    0,1,1,15
LD151    .EQU    1,1,1,15
LD152    .EQU    2,1,1,15
LD153    .EQU    3,1,1,15
                                        ;LCD15
LCD16    .EQU    1,2,8
LD160    .EQU    0,1,2,8
LD161    .EQU    1,1,2,8
LD162    .EQU    2,1,2,8
LD163    .EQU    3,1,2,8              
                                        ;LCD16 
;***************************************
; Program area  
;***************************************
        .ORG    0,00h                   ; Reset at Page 0
Reset:
        NOP
        DI                              ;disable interrupt
        NOP
;---------------------------------------
	DWDT				; disable Watchdog
	WRST
	NOP
;---------------------------------------
	BML	WAIT                    ;wait for stable
;---------------------------------------
        LZ      0
        SNZP                            ; JUMP to warm_start
        A       0                       ; Jump to Cold_start
        BL      Warm_start        
Cold_start:
        LA      0001b                   ; STCK=f(Xin)
        TMRA
        TRGA
        LA	0000b
        TPAA                           
INIT:                                     
        LA      3
        TDA
        BML     RAM_CLEAR0
        NOP
;----------------------------------------       					
	LA	1111b			; LCD setting
	TL1A
        TC2A
        LA      0000b                   
        TL2A
        TL3A
;        LA	1110b			; P0 as seg, other as IO port
        LA      1110b                   ;  20060419
        TC1A	
;----------------------------------------
        LA      0011b                   ; F(lcd)=64Hz
        TLCA
        LA	0000b
        TW1A
        LA      0100b			; basic time = 0.25s
        TW3A                            ; 
        LA      1000b			; Modify by PWM output mode
        TW4A
        TW2A
;----------------------------------------
        LA      1111b			; Port setting, pull-up transistor on
        TPU1A
        LA	1100b
        TK0A
        LA	1110b
        TPU0A

        LA	0000b
        TK1A
        TK2A
        TFR0A
        TFR1A
        LA	0010b			;  2005-03-02
        TFR2A
;----------------------------------------
	LA	0000b
	TV1A
	TV2A
	TI1A
;----------------------------------------
;       
;       display all lcd segment
;
;----------------------------------------
        BML	LCD_ALL1
        NOP   
        LA	9
        TYA
	BML	DELAY_3S
;----------------------------------------
;
;       data initial
;
;----------------------------------------
	NOP
	BML	DATA_INIT
	NOP
;----------------------------------------

;----------------------------------------
;
;       main process begin 
;
;----------------------------------------
;----------------------------------------        
Warm_start:
;----------------------------------------
MAIN:
	SNZT3
        BL      MAIN10
        NOP
        BML	TIMECON05
        NOP          
        BML	DISPLAY
        NOP
        BL      POWER_DOWN              
MAIN10:                                 ; KEY wake up
        BML     GET_KEY                  
        A       0                        
        BL      POWER_DOWN10
        NOP
        BML     KEY_DECODE 
        NOP             
        BML	TIMECON
        NOP
        BML	DISPLAY
        NOP
POWER_DOWN10:
        BML	D0_ON          
        BML	D1_ON
        BML	D2_ON
        BML	D15us
        IAP1             
        NOP
	SEA	1111b	
	A	0
	BL      POWER_DOWN20
	NOP             
        BML	TIMECON
        NOP
        BML	DISPLAY
        NOP
        BL	MAIN10
POWER_DOWN20:
	.CLB	KEYF
	.SEB	NOKEYF
POWER_DOWN:      
        EPOF                             
        POF
;******************************
;     RAM clear
;******************************
	.ORG    1,30h
RAM_CLEAR0:
        LXY     0,15
RAM_CLEAR1:
        LXY     1,15
RAM_CLEAR2:
        LXY     2,15
RAM_CLEAR3:
        LXY     3,15
RAM_CLEAR4:
	LXY	4,15
RAM_CLEAR5:
	LXY	5,15
RAM_CLEAR6:
	LXY	6,15
RAMCLEAR:
        LA      0
        XAMD    0                       ;(M(DP))<=0,(Y)<=(Y)-1
        B       RAMCLEAR                ;REPEAT TO CLEAR RAM 
        TAX
        A       10                      ;(X)<=(X)+1     
        RT                              ;If a is overflow
        TAX
        A       1
        NOP
        BLA     RAM_CLEAR0              ;If a is not overflow clear next column RAM
;================================
;
;       data initial
;
;================================       
DATA_INIT:				; Data initial

        BML	LCD_ALL0
       	LXY	SWING
	LA	3
	TMA	0
	LXY	MODE
	LA	0                       ;INITIAL it auto mode
	TMA	0
	LXY	FAN_D
	LA	2
	TMA	0
	BL	DATA_INIT20
DATA_INIT10:
	LXY	FAN_D
	LA	2
	TMA	0
DATA_INIT20:
	.SEB	TIMEF                   ; when after reset , it can be set the real time
	.CLB	T10SF_SETTIME
	LA	0
	LXY	T10SH_SETTIME
	TMA	0
	LXY	T10SL_SETTIME
	TMA	0                       ;there is 10s to hesitate to set the real time

	

        LXY     TOFF_HL
        LA      0CH
        TMA     0
        LXY     BTOFF_HL
        TMA     0

        LXY     TOFF_HH
        LA      0H
        TMA     0
        LXY     BTOFF_HH
        TMA     0

        LXY     TON_HL
        LA      0CH
        TMA     0
        LXY     BTON_HL
        TMA     0

        LXY     T_HL
        LA      0CH
        TMA     0
        LXY     BT_HL
        TMA     0

	

        LXY	TEMP_AH                ;AUTO 
	LA	0
	TMA	0
	LXY	TEMP_AL
	LA	6                      ;24 degree ,18+6
	TMA	0

        LXY	TEMP_CH                ;COOL 
	LA	0
	TMA	0

	LXY	TEMP_CL
	LA	6                      ;24 degree 
	TMA	0

        LXY	TEMP_DH                ;DRY
	LA	0
	TMA	0
	LXY	TEMP_DL
	LA	6
	TMA	0                      ;24 degree 

	LXY	TEMP_HH                ;HEAT
	LA	0
	TMA	0
	LXY	TEMP_HL
	LA	6                      ;24 degree 
	TMA	0

	LXY	FAN_A                  ;AUTO
	LA	0
	TMA	0

	LXY	FAN_C                  ;COOL
	LA	3
	TMA	0

	LXY	FAN_F                  ;FAN
	LA	1
	TMA	0

	LXY	FAN_H                  ;HEAT
	LA	1
	TMA	0


	RT
;================================
WAIT:
	LXY	0,8			; Waiting 
Reset02:
        LA	0			
Reset05:
	A	1
	A	0
	BL	Reset05		
	DEY
	BL	Reset02
;================================               
D15us:                                  ; The fastest instruction execution
        NOP                             ; time is 0.75us at 4MHz
        NOP                             ; NOP=0.75us
        NOP                             ; RT=1.5us
        NOP                             ; 18*0.75+1.5=15us
        NOP                           
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        RT
;------------------------------
D150us:
	BML	D15us
	BML	D15us
	BML	D15us
	BML	D15us
	BML	D15us
	BML	D15us
	BML	D15us
	BML	D15us
	BML	D15us
	BML	D15us
	RT
;------------------------------	
D2MS:	
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	BML	D150us
	RT
;==============================
LCD_ALL1:
        LZ      1                       ; Toggle
        LXY     LCD0                   
LCD_ALL10:
        LA      0Fh
        XAMI    0
        BL      LCD_ALL10
        LXY	LCD8
LCD_ALL12:
	LA	0Fh
	XAMI	0
	BL	LCD_ALL12
	LXY	LCD16
LCD_ALL14:
	LA	03h
	XAMI	0
        LZ      0                       ; Toggle
        RT
;==============================
LCD_ALL0:
        LZ      1                       ; Toggle
        LXY     LCD0                   
LCD_ALL00:
        LA      00h
        XAMI    0
        BL      LCD_ALL00
        LXY	LCD8
LCD_ALL02:
	LA	00h
	XAMI	0
	BL	LCD_ALL02
	LXY	LCD16
LCD_ALL04:
	LA	00h
	XAMI	0
        LZ      0                       ; Toggle
        RT
;-------------------------------      
DELAY_3S:
	SNZT3
	BL	DELAY_3S
 	DEY
 	BL	DELAY_3S
	RT
;===============================
D0_ON:					; =0
        LA      0
        TYA     
        RD
        RT
D0_OFF:					; =1
        LA      0
        TYA
        SD
        RT
D1_ON:
        LA      1
        TYA     
        RD
        RT
D1_OFF:
        LA      1
        TYA
        SD
        RT
D2_ON:
        LA      2
        TYA     
        RD
        RT
D2_OFF:
        LA      2
        TYA
        SD
        RT
D3_ON:
        LA      3
        TYA     
        RD
        RT
D3_OFF:
        LA      3

⌨️ 快捷键说明

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