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

📄 dis4559n.inc

📁 M34559遥控器发射单元源码
💻 INC
📖 第 1 页 / 共 2 页
字号:
;**************************************************************;
;       Remote controller for M34559 DEMO 
;       MODULE : DISPLAY SUBROUTINE                            ;
;       MCU:       M34559G6-xxxFP                              ;
;       VERSION:   1.0                                         ;
;       DESIGNED:  GAO YUAN HONG                               ;
;       DATE:      2006-05-12                                  ;
;       Renesas System Solutions Asia Pte. Ltd	               ;
;       SHANGHAI Representative Office                         ;
;**************************************************************;
DISPLAY:

	.SZXYB	T1SF_ADJUST             ; 1s arrived?
	A	0
	BL	DISP_START              ; no,
	.CLB	ADJUSTF                 ; yes,clear ADJUSTF

DISP_START:
	.SZXYB	TIMEF                   ; change real time ?
	BL	DISP_SETTIME            ; yes,process real time changing
	.SZXYB	TIMERF                  ; timer? 
	BL	DISP_TIMER
	.SZXYB	TIMERONF                ; timer on?
	BL	DISP_TIMERON
	.SZXYB	TIMEROFF                ; timer off?
	BL	DISP_TIMEROFF
;---------------------------------------------------------------
DISP_TIME:                              ; real time display
	LXY	T_ML
	LA	7
	TDA
	TAM	0
	TABP	46                      ; check table  
	NOP
	LZ	1			
	LXY	LCD5                    ; display the low bit of minute
	TMA	0
	TAB
	LXY	LCD6                    ; display the low bit of minute
	TMA	0
	NOP
	LZ	0			

	LXY	T_MH
	LA	7
	TDA
	TAM	0
	TABP	46
	NOP
	LZ	1			
	LXY	LCD3                    ; display the high bit of minute
	TMA	0
	TAB
	LXY	LCD4                    ; display the high bit of minute
	TMA	0
	NOP
	LZ	0			

	LXY	T_HH
	TAM	0
	TDA
	LXY	T_HL
	TAM	0
	TABP	46
	NOP
	LXY	BDATAL
	XAMI	0
	TAB
	XAMD	0
	LA	7
	TDA
	TAM	0
	TABP	46
	LZ	1			
	LXY	LCD1                    ; display the low bit of hour
	TMA	0
	TAB
	LXY	LCD2                    ; display the low bit of hour
	TMA	0
	NOP
	LZ	0			

        LXY     BDATAH
        LA	7
	TDA
	TAM	0
	TABP	46
	LZ	1			
	LXY	LCD15                   ; display the high bit of hour
	TMA	0
	TAB
	LXY	LCD14                   ; display the high bit of hour
	TMA	0
	NOP
        LZ	0
        BL      DISP_TIME_STAT	

;--------------------------------------------------------------------------

DISP_TIMEROFF:                          ; display hour and mminute of "timer off"
	LXY	TOFF_ML                 
	LA	7
	TDA
	TAM	0
	TABP	46
	NOP
	LZ	1			
	LXY	LCD5
	TMA	0
	TAB
	LXY	LCD6
	TMA	0
	NOP
	LZ	0			
	LXY	TOFF_MH
	LA	7
	TDA
	TAM	0
	TABP	46
	NOP
	LZ	1			
	LXY	LCD3
	TMA	0
	TAB
	LXY	LCD4
	TMA	0
	NOP
	LZ	0			

	LXY	TOFF_HH
	TAM	0
	TDA
	LXY	TOFF_HL
	TAM	0
	TABP	46
	LXY	BDATAL
	XAMI	0
	TAB
	XAMD	0
	LA	7
	TDA
	TAM	0
	TABP	46
	LZ	1			
	LXY	LCD1
	TMA	0
	TAB
	LXY	LCD2
	TMA	0
	NOP
	LZ	0			
	
         LXY     BDATAH
        LA	7
	TDA
	TAM	0
	TABP	46
	LZ	1			
	LXY	LCD15                   
	TMA	0
	TAB
	LXY	LCD14                   
	TMA	0
	NOP
        LZ	0
        BL      DISP_TIME_STAT	
;--------------------------------------------------------------------------------

DISP_TIMERON:                           ; display hour and minute of "timer on" 
	LXY	TON_ML                  
	LA	7
	TDA
	TAM	0
	TABP	46
	NOP
	LZ	1			
	LXY	LCD5
	TMA	0
	TAB
	LXY	LCD6
	TMA	0
	NOP
	LZ	0			
	LXY	TON_MH
	LA	7
	TDA
	TAM	0
	TABP	46
	NOP
	LZ	1			
	LXY	LCD3
	TMA	0
	TAB
	LXY	LCD4
	TMA	0
	NOP
	LZ	0			

	LXY	TON_HH
	TAM	0
	TDA
	LXY	TON_HL
	TAM	0
	TABP	46
	NOP
	LXY	BDATAL
	XAMI	0
	TAB
	XAMD	0
	LA	7
	TDA
	TAM	0
	TABP	46
	LZ	1			
	LXY	LCD1
	TMA	0
	TAB
	LXY	LCD2
	TMA	0
	NOP
	LZ	0			

	LXY     BDATAH
        LA	7
	TDA
	TAM	0
	TABP	46
	LZ	1			
	LXY	LCD15                    
	TMA	0
	TAB
	LXY	LCD14                  
	TMA	0
	NOP
        LZ	0
        BL      DISP_TIME_STAT	
;---------------------------------------------------------------------------------------

DISP_TIMER:                             
	.SZXYB	TIMERONF                ; is it timer on ?
	BL	DISP_TIMERON            ; timer on    
	BL	DISP_TIMEROFF           ; timer off

DISP_SETTIME:                           ; real time setting
	.SZXYB	ADJUSTF                 ; is it in adjusting mode?
	BL	DISP_TIME               ; yes

	.SZXYB	T05SF_TIME_DISP         ; 0.5S arrive?
	BL	DISP_STIME05            ; yes
DISP_STIME00:                           ; no
	LZ	1			
	.CLB	LD160                   ; turn off “CLOCK”
	.CLB	LD161                   ; turn off "TIMER"
	LZ	0			
	BL	DISP_STIME_NUM         
DISP_STIME05:                           ; 0.5S arrive.
	.SZXYB	T1SF_TIME_DISP          ; 1S arrive?
	BL	DISP_STIME10            ; yes
	LZ	1			
	.SEB	LD160                   ; 1S is not arriving,turn on “CLOCK”
	.CLB	LD161                   ; turn off "TIMER"
	LZ	0			
	BL	DISP_STIME_NUM
DISP_STIME10:                           ; 1s is arriving,then clear flags
        .CLB	T05SF_TIME_DISP                
	.CLB	T1SF_TIME_DISP
	LA	0
	LXY	T1S_TIME_DISP
	TMA	0
	BL	DISP_STIME00            ; turn off "CLOCK"



DISP_STIME_NUM:	                        ; process figure display
	.SZXYB	T05SF_TIME_DISP         ; 0.5S is arriving?
	BL	DISP_STIME_NUM0
DISP_STIME_ALL0:                        ; 0.5S is not arriving,clear the display buffer
	LZ	1			
	LA	0
	LXY	LCD15
	TMA	0
	LXY	LCD14
	TMA	0
	LXY	LCD1
	TMA	0
	LXY	LCD2
	TMA	0
	LXY	LCD3
	TMA	0
	LXY	LCD4
	TMA	0
	LXY	LCD5
	TMA	0
	LXY	LCD6
	TMA	0
	LZ	0			
	BL	DISP_TIME_STAT

DISP_STIME_NUM0:                        ;0.5S is arriving.
	.SZXYB	T1SF_TIME_DISP          ;then test whether 1 s is arrving.
	BL	DISP_STIME_NUM1         ;both 1S and 0.5S are arriving.
	BL	DISP_TIME               ;0.5S is arriving,1s is not. 

DISP_STIME_NUM1:                        ;both 1S and 0.5S are arriving.
	.CLB	T05SF_TIME_DISP
	.CLB	T1SF_TIME_DISP
	LA	0
	LXY	T1S_TIME_DISP
	TMA	0                       ;clear flags
	BL	DISP_STIME_ALL0          

;---------------------------------------------------------------------
DISP_TIME_STAT:
	.SZXYB	TIMEF                   ;set real time ?
	BL	DISP_TIME_STA40             
	.SZXYB	TIMERF                  ;set timer on/off?
	BL	DISP_TIME_STA30
	.SZXYB	TIMERONF                ;set timer on?
	BL	DISP_TIME_STA20
	.SZXYB	TIMEROFF                ;set timer off?
	BL	DISP_TIME_STA10

DISP_TIME_STA0:
	LZ	1			
        .CLB    LD161                   ;turn off“CLOCK”  
        .CLB    LD160                   ;turn off“TIMER”  
        .CLB    LD00                    ;turn off“ON”  
        .CLB    LD01                    ;turn off“OFF”  
	LZ	0			
DISP_TIME_STA1:                       
	.SZXYB	T05SF_TIME_DISP         ;0.5s is arriving?
	BL	DISP_TIME_STA3

DISP_TIME_STA2:                         ;0.5s is not arriving.
	LZ	1			
        .CLB    LD23			;turn off“:”
	LZ	0			
	BL	DISP_CHKPOWER

DISP_TIME_STA3:
	.SZXYB	T1SF_TIME_DISP          ;0.5s is arriving,whether 1s is arriving ?
	BL	DISP_TIME_STA4          ;both are arring,clear to count again
	LZ	1			
        .SEB    LD23                    ;0.5s is arriving,1s is not,turn on":"
	LZ	0			
	BL	DISP_CHKPOWER

DISP_TIME_STA4:
	.CLB	T05SF_TIME_DISP
	.CLB	T1SF_TIME_DISP
	LA	0
	LXY	T1S_TIME_DISP
	TMA	0
	BL	DISP_TIME_STA2          ;both 0.5s and 1s are arriving,clear to count again,turn off“:”

DISP_TIME_STA10:                        ;set timer off function
	LZ	1			
        .CLB    LD00                    ;turn off“ON”
        .SEB    LD01                    ;turn on“OFF”
        .SEB    LD161                   ;turn on“TIMER”
        .SEB    LD23                    ;turn on“ : ”
	LZ	0			
	BL	DISP_CHKPOWER

DISP_TIME_STA20:                        ;set timer on function
        LZ	1			
        .SEB    LD00                    ;turn off“ON”
        .CLB    LD01                    ;turn on“OFF”
        .SEB    LD161                   ;turn on“TIMER”
        .SEB    LD23                    ;turn on“ : ”
	LZ	0			
	BL	DISP_CHKPOWER


DISP_TIME_STA30:                        ;timer on/off
	.SZXYB	TIMERONF                ;timer on?
	BL	DISP_TIME_STA34         ;yes,timer on 

	LZ	1			;timer off
        .SEB    LD161                   ;turn on“TIMER”
        .CLB    LD160                   ;turn off"CLOCK"       
        .SEB    LD23
        .CLB    LD00
	LZ	0			
	.SZXYB	T05SF_TIME_DISP         ; 0.5S is arriving?
	BL	DISP_TIME_STA32

DISP_TIME_STA31:                        ; 0.5S is not arriving,turn off "off"
	LZ	1			
        .CLB    LD01                    ; turn off “OFF”
	LZ	0			
	BL	DISP_CHKPOWER
 
DISP_TIME_STA32:                        ; 0.5s is arriving,check whether 1s is arriving?
	.SZXYB	T1SF_TIME_DISP
	BL	DISP_TIME_STA33
	LZ	1			           
        .SEB    LD01                    ; 1S is not arriving,turn on "off"
	LZ	0			
	BL	DISP_CHKPOWER

DISP_TIME_STA33:                        ;both 0.5s and 1s are arriving,clear to count again
	.CLB	T05SF_TIME_DISP
	.CLB	T1SF_TIME_DISP
	LA	0
	LXY	T1S_TIME_DISP
	TMA	0
	BL	DISP_TIME_STA31             

DISP_TIME_STA34:                        ; timer on setting  
	LZ	1			
        .SEB    LD161                   ; turn on“TIMER”
        .CLB    LD160                   ; turn off"CLOCK"
        .SEB    LD23                    ; turn on“ : ” 
        .CLB    LD01                    ; turn off"OFF"
	LZ	0			
	.SZXYB	T05SF_TIME_DISP         ; 0.5S is arriving?
	BL	DISP_TIME_STA36         ; yes,check 1 second is arriving ?

DISP_TIME_STA35:                        ; 0.5S not arriving

⌨️ 快捷键说明

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