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

📄 lcd.asm

📁 此文件应用PIC16F913实现LCD控制,本程序具有加,移,设置三键功能,可以在仪器仪表等方面应用.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
            RETURN
DISP3       BSF         STATUS,RP1
            BSF         STATUS,IRP            
            CLRF        LCDDATA0
            CLRF        LCDDATA3
            CLRF        LCDDATA6
            CLRF        LCDDATA9
            BCF         STATUS,RP1
            BCF         STATUS,IRP
            MOVFW       DS3
            CALL        TAB
            MOVWF       LCD_BUF
            BTFSS       LCD_BUF,0           ;"F3"
            GOTO        LD1_2
            BSF         STATUS,RP1
            BSF         LCDDATA9,5
            BCF         STATUS,RP1
LD1_2       BTFSS       LCD_BUF,1           ;"A3"
            GOTO        LD2_2
            BSF         STATUS,RP1
            BSF         LCDDATA9,4
            BCF         STATUS,RP1
LD2_2       BTFSS       LCD_BUF,2           ;"G3"
            GOTO        LD3_2
            BSF         STATUS,RP1
            BSF         LCDDATA6,5
            BCF         STATUS,RP1
LD3_2       BTFSS       LCD_BUF,3           ;"B3"
            GOTO        LD4_2
            BSF         STATUS,RP1
            BSF         LCDDATA6,4
            BCF         STATUS,RP1
LD4_2       BTFSS       LCD_BUF,4           ;"E3"
            GOTO        LD5_2
            BSF         STATUS,RP1
            BSF         LCDDATA3,5
            BCF         STATUS,RP1
LD5_2       BTFSS       LCD_BUF,5           ;"C3"
            GOTO        LD6_2
            BSF         STATUS,RP1
            BSF         LCDDATA3,4
            BCF         STATUS,RP1
LD6_2       BTFSS       LCD_BUF,6           ;"D3"
            GOTO        LD7_2
            BSF         STATUS,RP1
            BSF         LCDDATA0,5
            BCF         STATUS,RP1
LD7_2       BTFSS       LCD_BUF,7           ;"P3"
            GOTO        LD8_2
            BSF         STATUS,RP1
            BSF         LCDDATA0,4
            BCF         STATUS,RP1                   
            RETURN
LD8_2       BSF         STATUS,RP1
            BCF         LCDDATA0,4
            BCF         STATUS,RP1
            RETURN

LCDDISP4    CLRF        SHOW
            MOVFW       SEC
            ANDWF       FLASH_CON,0
            MOVWF       SHOW
            BTFSS       SHOW,3
            GOTO        DISP4
            BSF         STATUS,RP1
            BSF         STATUS,IRP            
            CLRF        LCDDATA0
            CLRF        LCDDATA3
            CLRF        LCDDATA6
            CLRF        LCDDATA9
            BCF         STATUS,RP1
            BCF         STATUS,IRP
            RETURN
DISP4       BSF         STATUS,RP1
            BSF         STATUS,IRP            
            CLRF        LCDDATA0
            CLRF        LCDDATA3
            CLRF        LCDDATA6
            CLRF        LCDDATA9
            BCF         STATUS,RP1
            BCF         STATUS,IRP
            MOVFW       DS4
            CALL        TAB
            MOVWF       LCD_BUF
            BTFSS       LCD_BUF,0         ;"F4"
            GOTO        LD1_3
            BSF         STATUS,RP1
            BSF         LCDDATA9,7
            BCF         STATUS,RP1
LD1_3       BTFSS       LCD_BUF,1         ;"A4"
            GOTO        LD2_3
            BSF         STATUS,RP1
            BSF         LCDDATA9,6
            BCF         STATUS,RP1
LD2_3       BTFSS       LCD_BUF,2         ;"G4"
            GOTO        LD3_3
            BSF         STATUS,RP1
            BSF         LCDDATA6,7
            BCF         STATUS,RP1
LD3_3       BTFSS       LCD_BUF,3         ;"B4"
            GOTO        LD4_3
            BSF         STATUS,RP1
            BSF         LCDDATA6,6
            BCF         STATUS,RP1
LD4_3       BTFSS       LCD_BUF,4         ;"E4"
            GOTO        LD5_3
            BSF         STATUS,RP1
            BSF         LCDDATA3,7
            BCF         STATUS,RP1
LD5_3       BTFSS       LCD_BUF,5         ;"C4"
            GOTO        LD6_3
            BSF         STATUS,RP1
            BSF         LCDDATA3,6
            BCF         STATUS,RP1
LD6_3       BTFSS       LCD_BUF,6         ;"D4"
            GOTO        LD7_3
            BSF         STATUS,RP1
            BSF         LCDDATA0,7
            BCF         STATUS,RP1
LD7_3       BTFSS       LCD_BUF,7         ;"P4"
            GOTO        LD8_3
            BSF         STATUS,RP1
            BSF         LCDDATA0,6
            BCF         STATUS,RP1
            RETURN
LD8_3       BSF         STATUS,RP1
            BCF         LCDDATA0,6
            BCF         STATUS,RP1 
            RETURN

DELAY       MOVLW   	06H
        	MOVWF	    DL_CUT
         	MOVLW	    20H
        	MOVWF	    DL_CUT1
            INCFSZ	    DL_CUT1,1
       	    GOTO	    $-1
       	    DECFSZ	    DL_CUT,1
       	    GOTO	    $-5
       	    RETURN

DELAY1      MOVLW   	02H
        	MOVWF	    DL_CUT
         	MOVLW	    0FDH
        	MOVWF	    DL_CUT1
            INCFSZ	    DL_CUT1,1
       	    GOTO	    $-1
       	    DECFSZ	    DL_CUT,1
       	    GOTO	    $-5
       	    RETURN

KEYSCAN     BSF         STATUS,RP0
            MOVLW       0FFH
            MOVWF       TRISC
            BCF         STATUS,RP0
            BTFSS       PORTC,5
            GOTO        KEY1
            BTFSS       PORTC,4
            GOTO        KEY2
            BTFSC       K_FLAG,0
            GOTO        DOKEY1
            BTFSC       K_FLAG,1
            GOTO        DOKEY2
            RETURN

KEY1        CALL        DELAY1
            BTFSS       PORTC,5
            BSF         K_FLAG,0
            RETURN

KEY2        CALL        DELAY1
            BTFSS       PORTC,4
            BSF         K_FLAG,1
            RETURN

DOKEY1      BCF         K_FLAG,0
            RLF         FLASH_CON
            MOVLW       10
            SUBWF       FLASH_CON,0
            SKPNC
            BTFSS       3,0
            RETURN
            BCF         3,0
            MOVLW       01H
            MOVWF       FLASH_CON
            RETURN

DOKEY2      BCF         K_FLAG,1
            BTFSC       FLASH_CON,0
            INCF        DS1
            MOVLW       0AH
            SUBWF       DS1,0
            SKPNC
            CLRF        DS1
            BTFSC       FLASH_CON,1
            INCF        DS2
            MOVLW       0AH
            SUBWF       DS2,0
            SKPNC
            CLRF        DS2
            BTFSC       FLASH_CON,2
            INCF        DS3
            MOVLW       0AH
            SUBWF       DS3,0
            SKPNC
            CLRF        DS3
            BTFSC       FLASH_CON,3
            INCF        DS4
            MOVLW       0AH
            SUBWF       DS4,0
            SKPNC
            CLRF        DS4
            RETURN
        
START       BSF         STATUS,IRP
            BSF         STATUS,RP1
            MOVLW       B'10011111'     ;LCD使能,修眠使能,VLCD引脚使能,
            MOVWF       LCDCON          ;32分频,1/4复用,1/3偏置
            MOVLW       B'00110000'     ;A波形,
            MOVWF       LCDPS
            MOVLW       B'11111111'
            MOVWF       LCDSE0
            CLRF        LCDSE1
            BCF         STATUS,IRP
            BCF         STATUS,RP1            
            CLRF        DS1
            CLRF        DS2
            CLRF        DS3
            CLRF        DS4
            CLRF        LCD_SELE
            CLRF        LCD_BUF 
            MOVLW       0FFH
            MOVWF       TOP
            MOVLW       2FH
            MOVWF       BOTTOM
            MOVLW       01H
            MOVWF       FLASH_CON
            CLRF        K_FLAG                      
MAIN        CALL        DISPLAY 
            CALL        KEYSCAN           
LOOP        DECFSZ      TOP,1
            GOTO        $-1
            CALL        DELAY
            DECFSZ      BOTTOM,1
            GOTO        MAIN
            MOVLW       2FH
            MOVWF       BOTTOM            
            COMF        SEC
            GOTO        MAIN                      
            
            END

⌨️ 快捷键说明

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