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

📄 display-g.asm

📁 PIC1687X单片机,LCD12232汉显,所有数据存于片内FLAISH中,断电保持,硬件调试通过
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	list      p=16f74            ; list directive to define processor
	#include  P16f74.inc        ; processor specific variable definitions
	;**********************************************************************
	 __CONFIG  _PWRTE_ON & _WDT_OFF & _HS_OSC &_BODEN_OFF

		DATABUS	EQU	PORTD
		LCD_EN1         EQU	 	H'0007'		;PORTC.7
		LCD_EN2		    EQU		H'0003'		;PORTC.3
		LCD_RW		    EQU		H'0005'		;PORTC.5
		LCD_DI		    EQU		H'0004'		;PORTC.4

		LED_LCD	EQU		H'0000'		;PORTE.0 BACK LIGHT OF LCD
		LED_GZ	EQU		H'0001'		;PORTE.1 THE LED IS ON WHEN THE DEVICE IS FAULSE
		LED_CD	EQU		H'0002'		;PORTE.2 THE LED IS ON WHEN THE BATTERY IS CHARGING
		BUZ		EQU		H'0004'		;PORTA.4 THE BUZ IS ON WHEN THE DEVICE IS FAULSE

        BAT_NUM EQU     H'0004'
		;define variable
       
        JS1             EQU     0X20
        JS2             EQU     0X21
        JS3             EQU     0X22
		R0              EQU     0x30
		R1				EQU		0x31
		R2              EQU     0x32
		R3				EQU		0x33
		R4              EQU     0x2F
		cmd_display		EQU		0x34
		data_display	EQU		0x35
		TR_CNT          EQU     0x36
		TEMP			EQU		0x37
		W_TEMP          EQU     0x38
		STATUS_TEMP     EQU     0x39
		PCLATH_TEMP     EQU     0x3A
		TEMP1			EQU		0x3B
		DIS_TABH		EQU		0x3D
		DIS_TABL		EQU		0x3E
		DIS_STX			EQU		0x3F	;0~61
		DIS_STY			EQU		0x40	;0,1,2,3
		DIS_MOD			EQU		0x41	;0:8X8 1:8X16 2:16X16 3:16X8
		DIS_NUMX		EQU		0x42	;
		DIS_NUMY		EQU		0x43	;
		DIS_MODX		EQU		0x44
		DIS_MODY		EQU		0x45
		DIS_CNTX        EQU     0x46
		DIS_CNTY        EQU     0x47
        DIS_TAB1        EQU     0X48
        DIS_TAB2        EQU     0X49
        DIS_TAB3        EQU     0X4A
        DIS_TAB4        EQU     0X4B
        DIS_TAB5        EQU     0X4C
        DIS_TAB6        EQU     0X4D
        DIS_TAB7        EQU     0X4E
        DIS_TAB8        EQU     0X4F
        DIS_TAB9        EQU     0X50
        AD0TEMP	    	EQU	    0x23
        AD1TEMP	    	EQU	    0x24
        AD2TEMP	    	EQU	    0x58
        AD3TEMP	    	EQU	    0x59
        TEMPB	        EQU	    0x25
        AD2TEMPA	    EQU	    0x26
        AD0TEMPA        EQU     0x27
        AD1TEMPA        EQU     0x28
        AD3TEMPA        EQU     0X57
        TEMP2           EQU     0X29
        TEMP0           EQU     0X2A
        TEMP3           EQU     0X2B
        DATA0           EQU     0X2C      
        DATA01          EQU     0X2D
        DATA1           EQU     0X2E
        DATA11          EQU     0X2F
        JRS2            EQU     0X51
        JRS1            EQU     0X52
        JRS3            EQU     0X5A
        JRS4            EQU     0X5B
        ADTEMP          EQU     0X53
        R10             EQU     0X54
        R11             EQU     0X55
        R12             EQU     0X56 
        R6              EQU     0X5C 

		org	0x0000
		clrf    PCLATH
  		goto    main
  	
		ORG	    0x0010
main
		BCF	    INTCON,GIE
		BCF	    STATUS,IRP
		BCF	    STATUS,RP1
;set banregister
		BSF	    STATUS,RP0
		MOVLW	0x02
		MOVWF	PCON            ;power control
		MOVLW	0x07
		MOVWF	OPTION_REG      ;1:256
		MOVLW	0x02
		MOVWF	ADCON1          ;A/D 
		MOVLW	0xFF
		MOVWF	TRISA
		MOVLW	0x00
		MOVWF	TRISB
		MOVLW	0x00
		MOVWF	TRISC
		MOVLW	0x0F
		MOVWF	TRISD
		MOVLW	0x00
		MOVWF	TRISE
;set bank register
		BCF	STATUS,RP0
        CLRWDT
        MOVLW   0x0F
        MOVWF   PORTA
        MOVLW   0xF0
        MOVWF   PORTB
        MOVLW   0x00
        MOVWF   PORTC
        MOVLW   0X0F
        MOVWF   PORTD
        MOVLW   0x07
        MOVWF   PORTE

		MOVLW	0x00              ;0
		MOVWF	T1CON             ;TMR1 OFF
        MOVWF   TR_CNT
        MOVLW   0x00
        MOVWF	cmd_display
        MOVWF	data_display
   		MOVLW	0xFF
		MOVWF	TEMP
        CLRF	AD1TEMPA
    	CLRF 	AD2TEMPA
    	CLRF	AD3TEMPA
    	CLRF	AD0TEMPA
       	CLRF	AD1TEMP
    	CLRF 	AD2TEMP
    	CLRF	AD3TEMP
    	CLRF	AD0TEMP
        CLRF    TEMP0
        CLRF    TEMP1
        CLRF    TEMP2
        CLRF    R0
        CLRF    R1
        CLRF    R2
        CLRF    R10
        CLRF    R11
        CLRF    R12
        CLRF    DATA0
        CLRF    DATA01
        CLRF    DATA1
        CLRF    DATA11
       	CALL	clrScreen
 
PROG_BEG
AD_CHG1
        CALL    delay
        MOVLW   0xC1
        MOVWF   ADCON0
        CALL    delay
        BSF     ADCON0,GO
AD_WAIT1
        CALL    delay
        BTFSC   ADCON0,GO
        GOTO    AD_WAIT1
U0_IN
        MOVFW   ADRES
        ADDWF   AD0TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SET0N
        RRF     AD0TEMPA,1
        BSF     AD0TEMPA,7
        GOTO    U0_END
        NOP
AD_SET0N
        RRF     AD0TEMPA,1
        BCF     AD0TEMPA,7
U0_END
        MOVFW   AD0TEMPA
        MOVWF   JRS1
        NOP
        CALL    DELAY1
       
        MOVFW   JRS1

        MOVWF   AD0TEMP
AD_CHG2
        CALL    delay
        MOVLW   0xC9
        MOVWF   ADCON0
        CALL    delay
        BSF     ADCON0,GO
AD_WAIT2
        CALL    delay
        BTFSC   ADCON0,GO
        GOTO    AD_WAIT2
        MOVFW   ADRES
U1_IN
        MOVFW   ADRES
        ADDWF   AD1TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SET1N
        RRF     AD1TEMPA,1
        BSF     AD1TEMPA,7
        GOTO    U1_END
        NOP
AD_SET1N
        RRF     AD1TEMPA,1
        BCF     AD1TEMPA,7
U1_END
        MOVFW   AD1TEMPA
        MOVWF   JRS2
        NOP
        CALL    DELAY1
     
        MOVFW   JRS2
        MOVWF   AD1TEMP  
AD_CHG3
        CALL    delay
        MOVLW   0xD1
        MOVWF   ADCON0
        CALL    delay
        BSF     ADCON0,GO
AD_WAIT3
        CALL    delay
        BTFSC   ADCON0,GO
        GOTO    AD_WAIT3
U0_IN3
        MOVFW   ADRES
        ADDWF   AD2TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SET3N
        RRF     AD2TEMPA,1
        BSF     AD2TEMPA,7
        GOTO    U3_END
        NOP
AD_SET3N
        RRF     AD2TEMPA,1
        BCF     AD2TEMPA,7
U3_END
        MOVFW   AD2TEMPA
        MOVWF   JRS3
        NOP
        CALL    DELAY1
     
        MOVFW   JRS3

        MOVWF   AD2TEMP
AD_CHG4
        CALL    delay
        MOVLW   0xD9
        MOVWF   ADCON0
        CALL    delay
        BSF     ADCON0,GO
AD_WAIT4
        CALL    delay
        BTFSC   ADCON0,GO
        GOTO    AD_WAIT4
        MOVFW   ADRES
U4_IN
        MOVFW   ADRES
        ADDWF   AD3TEMPA,1
        BTFSS   STATUS,C
        GOTO    AD_SET4N
        RRF     AD3TEMPA,1
        BSF     AD3TEMPA,7
        GOTO    U1_END
        NOP
AD_SET4N
        RRF     AD3TEMPA,1
        BCF     AD3TEMPA,7
U4_END
        MOVFW   AD3TEMPA
        MOVWF   JRS4
        NOP
        CALL    DELAY1
     
        MOVFW   JRS4
        MOVWF   AD3TEMP

        BTFSC   PORTD,3
        GOTO    ZY2
        CALL    DELAY1
        CALL    DELAY1
        INCF    R6   
ZY2
        BTFSC   R6,0
        GOTO    G03
ZY4       
        GOTO    PAG2
G03        
        GOTO    PAG1
        NOP       

PAG1 
        
LINE11
       
		CLRF    R0
		CLRF    R1
		CLRF    R2
		CLRF    R3
		CLRF    R4
		CLRF    DIS_CNTX
		CLRF    DIS_CNTY
		CLRF    DIS_MODX
		CLRF    DIS_MODY
		MOVLW	0x80
		MOVWF	DIS_TABL
		MOVLW	0x05
		MOVWF	DIS_TABH
		MOVLW	0x00        ;0
		MOVWF	DIS_STX     ;place 
		MOVLW	0x00        ;01
		MOVWF	DIS_STY
		MOVLW	0x2         ;3
		MOVWF	DIS_MOD
		MOVLW	0x02        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01
		MOVWF	DIS_NUMY
        CALL    DISP1       ;输入
        CALL    DELAY1
        CALL    DELAY1
LINE12
        CLRF    R0
		CLRF    R1
		CLRF    R2
		CLRF    R3
		CLRF    R4
		CLRF    DIS_CNTX
		CLRF    DIS_CNTY
		CLRF    DIS_MODX
		CLRF    DIS_MODY
        MOVFW   AD0TEMP
        MOVWF   DATA0
        CALL    TO_BCD
        MOVFW   R10
        ANDLW   0X0F
        MOVWF   R10
        ADDWF   R10,1
        MOVFW   R11
        ADDWF   R11,1
        BTFSC   STATUS,DC
        INCF    R10,1
        MOVFW   R12
        ADDWF   R12,1
        BTFSC   STATUS,DC
        INCF    R11
        MOVFW   R10
        ANDLW   0X0F
        MOVWF   TEMP2
        CALL    DATAZH
		MOVLW	0x00
		MOVWF	DIS_STX     ;place 
		MOVLW	0x00        ;01
		MOVWF	DIS_STY
		MOVLW	0x3         ;3
		MOVWF	DIS_MOD
		MOVLW	0x01        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01
		MOVWF	DIS_NUMY       
        CALL    DISP2
        CALL    DELAY1
        MOVFW   R11
        ANDLW   0X0F
        MOVWF   TEMP2
        CALL    DATAZH
		MOVLW	0x0A
		MOVWF	DIS_STX     ;place 
		MOVLW	0x00        ;01
		MOVWF	DIS_STY
		MOVLW	0x3         ;3
		MOVWF	DIS_MOD
		MOVLW	0x01        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01
		MOVWF	DIS_NUMY       
        CALL    DISP2
        CALL    DELAY1
        MOVFW   R12
        ANDLW   0X0F
        MOVWF   TEMP2
        CALL    DATAZH
		MOVLW	0x14
		MOVWF	DIS_STX     ;place 
		MOVLW	0x00        ;01
		MOVWF	DIS_STY
		MOVLW	0x3         ;3
		MOVWF	DIS_MOD
		MOVLW	0x01        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01
		MOVWF	DIS_NUMY       
        CALL    DISP2
        CALL    DELAY1
LINE13
        CLRF    R0
		CLRF    R1
		CLRF    R2
		CLRF    R3
		CLRF    R4
		CLRF    DIS_CNTX
		CLRF    DIS_CNTY
		CLRF    DIS_MODX
		CLRF    DIS_MODY
		MOVLW	0x40
		MOVWF	DIS_TABL
		MOVLW	0x06
		MOVWF	DIS_TABH
		MOVLW	0x30
		MOVWF	DIS_STX     ;place 
		MOVLW	0x00        ;01
		MOVWF	DIS_STY
		MOVLW	0x3         ;3
		MOVWF	DIS_MOD
		MOVLW	0x01        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01
		MOVWF	DIS_NUMY
        CALL    DISP2
        CALL    DELAY1
         

LINE21        
       	CLRF    R0
		CLRF    R1
		CLRF    R2
		CLRF    R3
		CLRF    R4
		CLRF    DIS_CNTX
		CLRF    DIS_CNTY
		CLRF    DIS_MODX
		CLRF    DIS_MODY
		MOVLW	0xC0
		MOVWF	DIS_TABL
		MOVLW	0x05
		MOVWF	DIS_TABH
		MOVLW	0x00
		MOVWF	DIS_STX     ;place 
		MOVLW	0x02        ;01
		MOVWF	DIS_STY
		MOVLW	0x2         ;3
		MOVWF	DIS_MOD
		MOVLW	0x02        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01--N WORD
		MOVWF	DIS_NUMY
        CALL    DISP1       ;输出
        CALL    DELAY1
LINE22
        CLRF    R0
		CLRF    R1
		CLRF    R2
		CLRF    R3
		CLRF    R4
		CLRF    DIS_CNTX
		CLRF    DIS_CNTY
		CLRF    DIS_MODX
		CLRF    DIS_MODY
        MOVFW   AD1TEMP
        MOVWF   DATA0
        CALL    TO_BCD
        MOVFW   R10
        ANDLW   0X0F
        MOVWF   R10
        ADDWF   R10,1
        MOVFW   R11
        ADDWF   R11,1
        BTFSC   STATUS,DC
        INCF    R10,1
        MOVFW   R12
        ADDWF   R12,1
        BTFSC   STATUS,DC
        INCF    R11
        MOVFW   R10
        ANDLW   0X0F
        MOVWF   TEMP2
        CALL    DATAZH
		MOVLW	0x00
		MOVWF	DIS_STX     ;place 
		MOVLW	0x02        ;01
		MOVWF	DIS_STY
		MOVLW	0x3         ;3
		MOVWF	DIS_MOD
		MOVLW	0x01        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01
		MOVWF	DIS_NUMY       
        CALL    DISP2
        CALL    DELAY1
        MOVFW   R11
        ANDLW   0X0F      
        MOVWF   TEMP2
        CALL    DATAZH
		MOVLW	0x0A
		MOVWF	DIS_STX     ;place 
		MOVLW	0x02        ;01
		MOVWF	DIS_STY
		MOVLW	0x3         ;3
		MOVWF	DIS_MOD
		MOVLW	0x01        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01
		MOVWF	DIS_NUMY       
        CALL    DISP2
        CALL    DELAY1
        MOVFW   R12
        ANDLW   0X0F
       
        MOVWF   TEMP2
        CALL    DATAZH
		MOVLW	0x14
		MOVWF	DIS_STX     ;place 
		MOVLW	0x02        ;01
		MOVWF	DIS_STY
		MOVLW	0x3         ;3
		MOVWF	DIS_MOD
		MOVLW	0x01        ;01--area
		MOVWF	DIS_NUMX
		MOVLW	0x01        ;01
		MOVWF	DIS_NUMY       
        CALL    DISP2
        CALL    DELAY1
       
LINE23
        CLRF    R0
		CLRF    R1
		CLRF    R2
		CLRF    R3
		CLRF    R4
		CLRF    DIS_CNTX
		CLRF    DIS_CNTY
		CLRF    DIS_MODX
		CLRF    DIS_MODY
		MOVLW	0x40
		MOVWF	DIS_TABL

⌨️ 快捷键说明

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