📄 m34559n.asm
字号:
-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 + -