📄 lcd.asm
字号:
;name:lcd display
;by:wjh
;date:2006/11/7
;===================================================
#INCLUDE <P16F913.INC>
DS1 EQU 20H
DS2 EQU 21H
DS3 EQU 22H
DS4 EQU 23H
LCD_BUF EQU 24H
DSQ EQU 25H
DSQ1 EQU 26H
LCD_SELE EQU 27H
DL_CUT EQU 28H
DL_CUT1 EQU 29H
TOP EQU 2AH
BOTTOM EQU 2BH
FLASH_CON EQU 2CH
K_FLAG EQU 2DH
SEC EQU 2EH
SHOW EQU 2FH
;===================================================
ORG 0000H
GOTO START
ORG 0005H
TAB ADDWF PCL,1 ;"P--D--C--E--B--G--A--F"
RETLW 07BH ;"0"
RETLW 028H ;"1"
RETLW 05EH ;"2"
RETLW 06EH ;"3"
RETLW 02DH ;"4"
RETLW 067H ;"5"
RETLW 077H ;"6"
RETLW 02AH ;"7"
RETLW 07FH ;"8"
RETLW 06FH ;"9"
RETLW 03FH
RETLW 07CH
RETLW 06AH
RETLW 075H
RETLW 06EH
RETLW 02EH
TAB1 ADDWF PCL,1
RETLW 0FBH
RETLW 0A8H
RETLW 0DEH
RETLW 0EEH
RETLW 0ADH
RETLW 0E7H
RETLW 0F7H
RETLW 0AAH
RETLW 0FFH
RETLW 0EFH
JWZ INCF DS1,1
MOVFW DS1
XORLW 0AH
SKPZ
RETURN
CLRF DS1
INCF DS2,1
MOVFW DS2
XORLW 06H
SKPZ
RETURN
CLRF DS2
INCF DS3,1
MOVFW DS3
XORLW 0AH
SKPZ
RETURN
CLRF DS3
INCF DS4,1
MOVFW DS4
XORLW 0AH
SKPNZ
CLRF DS4
RETURN
DISPLAY INCF LCD_SELE,1
MOVLW 4
SUBWF LCD_SELE,0
SKPNC
CLRF LCD_SELE
MOVFW LCD_SELE
ADDWF PCL,1
GOTO LCDDISP1
GOTO LCDDISP2
GOTO LCDDISP3
GOTO LCDDISP4
LCDDISP1 CLRF SHOW
MOVFW SEC
ANDWF FLASH_CON,0
MOVWF SHOW
BTFSS SHOW,0
GOTO DISP1
BSF STATUS,RP1
BSF STATUS,IRP
CLRF LCDDATA0
CLRF LCDDATA3
CLRF LCDDATA6
CLRF LCDDATA9
BCF STATUS,RP1
BCF STATUS,IRP
RETURN
DISP1 BSF STATUS,RP1
BSF STATUS,IRP
CLRF LCDDATA0
CLRF LCDDATA3
CLRF LCDDATA6
CLRF LCDDATA9
BCF STATUS,RP1
BCF STATUS,IRP
MOVFW DS1
CALL TAB
MOVWF LCD_BUF
BTFSS LCD_BUF,0 ;"F1"
GOTO LD1
BSF STATUS,RP1
BSF LCDDATA9,1
BCF STATUS,RP1
LD1 BTFSS LCD_BUF,1 ;"A1"
GOTO LD2
BSF STATUS,RP1
BSF LCDDATA9,0
BCF STATUS,RP1
LD2 BTFSS LCD_BUF,2 ;"G1"
GOTO LD3
BSF STATUS,RP1
BSF LCDDATA6,1
BCF STATUS,RP1
LD3 BTFSS LCD_BUF,3 ;"B1"
GOTO LD4
BSF STATUS,RP1
BSF LCDDATA6,0
BCF STATUS,RP1
LD4 BTFSS LCD_BUF,4 ;"E1"
GOTO LD5
BSF STATUS,RP1
BSF LCDDATA3,1
BCF STATUS,RP1
LD5 BTFSS LCD_BUF,5 ;"C1"
GOTO LD6
BSF STATUS,RP1
BSF LCDDATA3,0
BCF STATUS,RP1
LD6 BTFSS LCD_BUF,6 ;"D1"
GOTO LD7
BSF STATUS,RP1
BSF LCDDATA0,1
BCF STATUS,RP1
LD7 BTFSS LCD_BUF,7 ;"P1"
GOTO LD8
BSF STATUS,RP1
BSF LCDDATA0,0
BCF STATUS,RP1
RETURN
LD8 BSF STATUS,RP1
BCF LCDDATA0,0
BCF STATUS,RP1
RETURN
LCDDISP2 CLRF SHOW
MOVFW SEC
ANDWF FLASH_CON,0
MOVWF SHOW
BTFSS SHOW,1
GOTO DISP2
BSF STATUS,RP1
BSF STATUS,IRP
CLRF LCDDATA0
CLRF LCDDATA3
CLRF LCDDATA6
CLRF LCDDATA9
BCF STATUS,RP1
BCF STATUS,IRP
RETURN
DISP2 BSF STATUS,RP1
BSF STATUS,IRP
CLRF LCDDATA0
CLRF LCDDATA3
CLRF LCDDATA6
CLRF LCDDATA9
BCF STATUS,RP1
BCF STATUS,IRP
MOVFW DS2
CALL TAB
MOVWF LCD_BUF
BTFSS LCD_BUF,0 ;"F2"
GOTO LD1_1
BSF STATUS,RP1
BSF LCDDATA9,3
BCF STATUS,RP1
LD1_1 BTFSS LCD_BUF,1 ;"A2"
GOTO LD2_1
BSF STATUS,RP1
BSF LCDDATA9,2
BCF STATUS,RP1
LD2_1 BTFSS LCD_BUF,2 ;"G2"
GOTO LD3_1
BSF STATUS,RP1
BSF LCDDATA6,3
BCF STATUS,RP1
LD3_1 BTFSS LCD_BUF,3 ;"B2"
GOTO LD4_1
BSF STATUS,RP1
BSF LCDDATA6,2
BCF STATUS,RP1
LD4_1 BTFSS LCD_BUF,4 ;"E2"
GOTO LD5_1
BSF STATUS,RP1
BSF LCDDATA3,3
BCF STATUS,RP1
LD5_1 BTFSS LCD_BUF,5 ;"C2"
GOTO LD6_1
BSF STATUS,RP1
BSF LCDDATA3,2
BCF STATUS,RP1
LD6_1 BTFSS LCD_BUF,6 ;"D2"
GOTO LD7_1
BSF STATUS,RP1
BSF LCDDATA0,3
BCF STATUS,RP1
LD7_1 BTFSS LCD_BUF,7 ;"P2"
GOTO LD8_1
BSF STATUS,RP1
BSF LCDDATA0,2
BCF STATUS,RP1
RETURN
LD8_1 BSF STATUS,RP1
BCF LCDDATA0,2
BCF STATUS,RP1
RETURN
LCDDISP3 CLRF SHOW
MOVFW SEC
ANDWF FLASH_CON,0
MOVWF SHOW
BTFSS SHOW,2
GOTO DISP3
BSF STATUS,RP1
BSF STATUS,IRP
CLRF LCDDATA0
CLRF LCDDATA3
CLRF LCDDATA6
CLRF LCDDATA9
BCF STATUS,RP1
BCF STATUS,IRP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -