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

📄 lcd_yb.asm.bak

📁 基本NEC单片机的电动车液晶仪表源程序
💻 BAK
📖 第 1 页 / 共 3 页
字号:
NAME MOTORBIKE LCD
;==============================================
TIME_F      EQU         0FE80H
;==============================================
MAOHAO      EQU         TIME_F.0
VOL_FLAG    EQU         TIME_F.1
VL_F        EQU         TIME_F.2
ZE_FLAG     EQU         TIME_F.3
ZE_UP       EQU         TIME_F.4
TEP_FLAG    EQU         TIME_F.5
SD_FLAG     EQU         TIME_F.6
AD_FLAG     EQU         TIME_F.7
;==============================================
TIMEA       EQU         0FE81H
TIME10MS    EQU         0FE82H
TIME500MS   EQU         0FE83H
VOL_CNT     EQU         0FE84H
VOL_TEMP    EQU         0FE85H
VOL_BUF     EQU         0FE86H
RAM1        EQU         0FE87H
RAM2        EQU         0FE88H
RAM3        EQU	0FE89H
RAM4  	EQU	0FE8AH
RAM5        EQU         0FE8BH
RAM6        EQU         0FE8CH
RAM7        EQU         0FE8DH
RAM8        EQU         0FE8EH
RAM9        EQU         0FE8FH
RAM10       EQU         0FE90H
RAM11       EQU	0FE91H
RAM12 	EQU	0FE92H
RAM13       EQU         0FE93H
RAM14       EQU         0FE94H
RAM15       EQU         0FE95H
RAM16       EQU         0FE96H
TEMP        EQU         0FE97H
SEND_CNT    EQU         0FE98H
VOL_C1      EQU         0FE99H            ;电压十位数
VOL_C2      EQU         0FE9AH            ;电压个位数
VOL_C3      EQU         0FE9BH            ;电压小数
SYS_S       EQU         0FE9CH
SYS_M       EQU         0FE9DH
SYS_H       EQU         0FE9EH
SYS_MG      EQU         0FE9FH
SYS_MS      EQU         0FEA0H
SYS_HG      EQU         0FEA1H
SYS_HS      EQU         0FEA2H
COM_BUF     EQU         0FEA3H
TEP_BUF     EQU         0FEA4H
TEP_TEMP    EQU         0FEA5H
TEP_CNT     EQU         0FEA6H
SD_BUF      EQU         0FEA7H
SD_TEMP     EQU         0FEA8H
SD_CNT      EQU         0FEA9H
LC_RAM0     EQU         0FEAAH
LC_RAM1     EQU         0FEABH
LC_CRAM0    EQU         0FEACH
LC_CRAM1    EQU         0FEADH
LC_CT0      EQU         0FEAEH
LC_CT1      EQU         0FEAFH
LC_XS0      EQU         0FEB0H
LC_XS1      EQU         0FEB1H
LC_XS2      EQU         0FEB2H
LC_XS3      EQU         0FEB3H
LC_S        EQU         0FEB4H
FLAGA       EQU         0FEB5H
AD_BUF      EQU         0FEB6H
AD_TEMP     EQU         0FEB7H
AD_CNT      EQU         0FEB8H
AD_ADJUST   EQU         0FEB9H
FLAGB       EQU         0FEBAH
;=====================================
SD_F        EQU         FLAGA.1
RA263       EQU         FLAGA.2
RA283       EQU         FLAGA.3
AD_F        EQU         FLAGA.4
;======================================
SD_TBUF     EQU         0FEC0H
TIMEB       EQU         0FEC1H
SD_S        EQU         0FEC2H
;==============================================
WR_1621     EQU         P3.2
DA_1621     EQU         P4.0
CS_1621     EQU         P4.3
;==============================================
ORG	0000H
	DW 	MAIN
ORG         000CH
            DW 	MAIN
ORG	000EH
            DW 	ISR_INTTM000
ORG    	0040H
?INIT_CPU:  DW 	INIT_CPU   
?REST_RAM:  DW 	REST_RAM
?INIT_PORT: DW 	INIT_PORT
?INIT_TM00: DW 	INIT_TM00
ORG 	0080H
            DB 	94H      ;option byte
            DB 	0A7H     ;protect byte
ORG 	0082H
MAIN:       MOVW         AX,#0FEF6H
            MOVW        SP,AX
            DI 
            CALLT	[?INIT_CPU]
            MOV         A,RESF
            BF          A.4,$RST_RAM
            BR          $INIT_P
RST_RAM:    CALLT       [?REST_RAM]
INIT_P:     CALLT       [?INIT_PORT]
            CALLT       [?INIT_TM00]
            MOV         RAM1,#0FFH
            MOV         RAM2,#0FFH
            MOV         RAM3,#0FFH
            MOV         RAM4,#0FFH
            MOV         RAM5,#0FFH
            MOV         RAM6,#0FFH
            MOV         RAM7,#0FFH
            MOV         RAM8,#0FFH
            MOV         RAM9,#0FFH
            MOV         RAM10,#0FFH
            MOV         RAM11,#0FFH
            MOV         RAM12,#0FFH
            MOV         RAM13,#0FFH
            MOV         RAM14,#0FFH
            MOV         RAM15,#0FFH
            MOV         RAM16,#0FFH
            CALL        !DISPLAY_LCD
            CALL        !DEL500mS
            CALL        !DISPLAY_LCD
            CALL        !DEL500mS
            CALL        !DISPLAY_LCD
            CALL        !DEL500mS
            CALL        !DEL500mS
            CALL        !DEL500mS
            EI
            MOV         TIMEA,#1
            MOV         TIMEB,#1
            MOV         RAM10,#0AFH
            MOV         RAM11,#0AFH
            MOV         RAM12,#0AFH
            MOV         RAM13,#0AFH
            MOV         RAM14,#0F5H
            MOV         RAM15,#0F5H
           ; CALL        !DISPLAY_LCD
            MOV         RAM7,#1
            CALL        !DISPLAY_LCD
MAIN_A:     CALL        !TIME_SUB            
            CALL        !VOL_TEST
            CALL        !TEMP_TEST
            CALL        !AD_TEST
            CALL        !SD_TEST
            CALL        !DISPLAY
            CALL        !LC_TEST
            BR          !MAIN_A           
;===============================================
ISR_INTTM000:PUSH       AX
             CLR1	TMIF000
             MOV        A,TIMEA
             ROL        A,1
             BF         A.6,$OUT_TM000
             MOV        A,#1
OUT_TM000:   MOV        TIMEA,A
             INC        TIME10MS
             CMP        TIME10MS,#10
             BC         $OUT_TM000A
             MOV        TIME10MS,#0          ;10MS
             BF         SD_F,$TIME_LAB0
             INC        SD_S
             CMP        SD_S,#30
             BC         $TIME_LAB
             MOV        SD_S,#0
             MOV        A,TIMEB
             ROL        A,1
             MOV        TIMEB,A
             BF         A.6,$TIME_LAB
TIME_LAB0:   MOV        TIMEB,#1
             MOV        SD_S,#0
TIME_LAB:    INC        TIME500MS
             CMP        TIME500MS,#50
             BC         $OUT_TM000A
             MOV        TIME500MS,#0
             INC        SYS_S
             XOR        TIME_F,#01H          ;冒号的闪烁
             INC        LC_S
             CMP        LC_S,#20
             BC         $OUT_TM000A
             SET1       FLAGA.0 
             MOV        LC_S,#0
OUT_TM000A:  
             POP        AX
             RETI
                         
;================================================            
INIT_CPU:    MOV	WDTM,#6CH        ;16.384MS
             MOV 	WDTE,#0ACH
             MOV 	PCC,#00H         ;set fx to 8M
             MOV 	PPCC,#00H
             MOV 	LSRCM,#01H       
             MOV 	IF0,#00H
             MOV 	MK0,#0FFH
             RET                        
;==================================================  
REST_RAM:    MOVW 	HL,#0FE80H
             MOV 	B,#110
             MOV 	A,#0
REST_RAM1:   MOV 	[HL],A
             INCW 	HL
             DBNZ 	B,$REST_RAM1                                     
             RET
;================================================== 
INIT_PORT:   MOV  	P2,#0
             MOV  	PMC2,#0FH
             MOV  	PM2,#0FFH
             CLR1 	PM3.2             
             CLR1 	P3.2 
             MOV 	PM4,#0
             MOV        P4,#09H
             RET
;==================================================               
INIT_TM00:   MOV        TMC00,#0
             MOV        TOC00,#0
             MOV        CRC00,#0   
             MOV        PRM00,#0
             MOVW       AX,#8000-1
             MOVW       CR000,AX      
             MOV        TMC00,#0CH
             CLR1       TMMK000
             CLR1       TMIF000    
             RET
;==================================================
TIME_OUTB:   BR         !TIME_OUT
TIME_SUB:    BF         TIMEA.0,$TIME_OUTB
             BT         FLAGB.0,$TIME_OUTB
             MOV	WDTE,#0ACH
             MOV        FLAGB,#1
             CMP        SYS_S,#120
             BC         $TIME_OUTA
             MOV        SYS_S,#0
             MOV        A,SYS_M
             INC        A
             MOV        SYS_M,A
             CMP        A,#60
             BC         $TIME_OUTA
             MOV        SYS_M,#0
             MOV        A,SYS_H
             INC        A
             MOV        SYS_H,A
             CMP        A,#19
             BC         $TIME_OUTA
             MOV        SYS_H,#19
TIME_OUTA:  
             BF         TIMEB.0,$DD_LAB0
             CLR1       RA283
             CLR1       RA263
             CLR1       RAM9.3
             CLR1       RAM9.2
             CLR1       RAM9.1
             SET1       RAM9.0
DD_LAB0:     BF         TIMEB.1,$DD_LAB1
             SET1       RAM9.1
DD_LAB1:     BF         TIMEB.2,$DD_LAB2
             SET1       RAM9.2
DD_LAB2:     BF         TIMEB.3,$DD_LAB3
             SET1       RAM9.3
DD_LAB3:     BF         TIMEB.4,$DD_LAB4
             SET1       RA283
DD_LAB4:     BF         TIMEB.5,$DD_LAB5 
             SET1       RA263                                
DD_LAB5:     MOV        A,SYS_M
             CALL       !BCD_COV
             MOV        SYS_MG,A
             CALL       !TAB_A
             MOV        RAM1,A                ;分钟的个位
             MOV        A,B
             MOV        SYS_MS,A
             CALL       !TAB_A
             MOV        RAM2,A                ;分钟的十位
             MOV        A,SYS_H
             CALL       !BCD_COV
             MOV        SYS_HG,A
             CALL       !TAB_A
             MOV        RAM3,A                ;小时的个位
             MOV        A,B
             MOV        SYS_HS,A
             CMP        A,#0
             BZ         $TIME_OUT
             SET1       RAM3.0                ;小时的十位
TIME_OUT:    RET             
;==================================================
TAB_A:       MOVW       HL,#TAB_A0
             ADD        A,L
             MOV        L,A
             BNC        $TAB_ALAB
             INC        H
TAB_ALAB:    MOV        A,[HL]
             RET 
;======================================================                    
TAB_A0:      DB 0FAH,60H,0D6H,0F4H,6CH,0BCH,0BEH,0E0H,0FEH,0FCH ;0EEH 
             ;    0   1   2    3    4   5    6    7    8    9     A
;==================================================
TAB_B:       MOVW       HL,#TAB_B0
             ADD        A,L
             MOV        L,A
             BNC        $TAB_BLAB
             INC        H
TAB_BLAB:    MOV        A,[HL]
             RET        
TAB_B0:      DB 0AFH,06H,06DH,04FH,0C6H,0CBH,0EBH,00EH,0EFH,0CFH ;0EEH 

⌨️ 快捷键说明

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