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