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

📄 donghua.asm

📁 LCD12864驅動開發于KeilC51 非常實用
💻 ASM
📖 第 1 页 / 共 2 页
字号:
   LIST P=16F877A
   #INCLUDE <P16F877A.INC>
   ERRORLEVEL 2

                        XCS      EQU  20H    ;显示器片选0=CS1,1=CS2      ;20H-2FH为位
                        BZPD     EQU  21H           ;0=上8X8半字,1=下8X8半字
                        HHBZ     EQU  22H             ;换行标志
                        HZDH     EQU  23H
                        INDEX    EQU  24H 
                        LCDFLAG  EQU  25H 
                        R4       EQU  26H
                        R5       EQU  27H
                        R6       EQU  28H
                        R7       EQU  29H
                        R0       EQU  2AH           ;0=显示汉字,1=显示动画
                        LCD_RW   EQU  1
                        LCD_DI   EQU   0
                        LCD_E  EQU 2
                        LCD_CS1 EQU 3
                        LCD_CS2 EQU  4
                        LCD_RST EQU  5
                        LCD_OPEN EQU 30H
                        LCD_LINE EQU 31H
                        LCD_PAGE EQU 32H
                        LCD_Y    EQU 33H
                        YCPD     EQU 34H           ;左右半屏溢出判断
                        HHPD     EQU 35H           ;换行判断
                        XWPD     EQU 36H
                        R1       EQU 37H
                        R2       EQU 38H
                        R3       EQU 39H
                       
                       
                        INDEX1   EQU 42H  
                        INDEX2   EQU 41H
                        INDEX3   EQU 43H
                        YCPD1    EQU 40H
                             ;写完一整屏判断
                        ORG 0000H
                        NOP 
                        GOTO MAIN
                        ORG 005H
MAIN
                        BANKSEL TRISC 
                        MOVLW 00H
                        MOVWF TRISC
                        MOVWF TRISD
                        BANKSEL PORTC
                        BCF PORTC,LCD_RST
                        CALL DLY10
                        CALL DLY10
                        BSF PORTC,LCD_RST
                        MOVLW 00H 
                        MOVWF XCS
                        MOVLW 01H              ;选择CS2
                        MOVWF LCD_OPEN         ;开显示器1,关显示器      
                        CALL LCDOPEN
                        CALL QINGPING
                        CALL DLY10
                        MOVLW 01H
                        MOVWF XCS
                        MOVLW 01H              ;选择CS2
                        MOVWF LCD_OPEN         ;开显示器1,关显示器      
                        CALL LCDOPEN
                        CALL QINGPING
                        CALL DLY10
                        NOP
                        CALL HANZI
LOOPM:                  GOTO LOOPM
;********************************************************************
QINGPING:
                        MOVLW 00H
                        MOVWF  LCD_LINE
                        CALL SETLINE          ;设置起始
                 

                        MOVLW 00H
                        MOVWF  LCD_PAGE
                        CALL SETPAGE                ;设置页地

                        MOVLW  00H
                        MOVWF  LCD_Y
                        CALL SETY                 ;设置列地
                    ;CS1

                        GOTO  CLRST3
CLR0:                   INCF LCD_PAGE,F
CLRST3:                 CALL SETPAGE
                        MOVLW 40H
                        MOVWF R7
SDF:                    MOVLW 00H
                        MOVWF LCDFLAG
                        CALL LCDWRDATA
                        DECFSZ R7,F
                        GOTO SDF
                        MOVLW 0BFH
                        XORWF LCD_PAGE,W
                        BTFSS STATUS,Z
                        GOTO CLR0
     
                        RETURN
;初始化完毕
;*************************************************************************
HANZI:
                        MOVLW 00H 
                        MOVWF XWPD
HZ0:                    CLRF XCS
                        
                        MOVLW 00H
                        MOVWF R1
                        MOVLW 00H
                        MOVWF INDEX2
                    
                        MOVLW 00H
DH0:
                        MOVWF  XWPD
DH1:                    
                        CLRF XCS
                        MOVLW 00H
                        MOVWF  LCD_LINE
                        CALL SETLINE          ;设置起始
                 

                        MOVLW 00H
                        MOVWF  LCD_PAGE
                        CALL SETPAGE                ;设置页地

                        MOVLW  00H
                        MOVWF  LCD_Y
                        CALL SETY   

                        MOVLW 00H
                        MOVWF HHPD
                        MOVWF R1
DH2:
                        MOVLW  40H
                        MOVWF R0              ;写上64个Y列
DH3:                    
                        MOVFW R1
                        CALL HZDOT
                        CLRF PCLATH
                        MOVWF LCDFLAG
                        CALL LCDWRDATA
                        INCF R1,F
LOOPAN:
                        INCF LCD_Y,F
                        DECFSZ  R0,F 
                        GOTO DH3
                        MOVLW 01H
                        XORWF XCS,W
                        BTFSC STATUS,Z
                        GOTO DH4
                        MOVLW 01H
                        MOVWF XCS 
                        MOVLW 0B8H
                        CALL SETPAGE
                        MOVLW 00H
                        MOVWF  LCD_Y
                        CALL SETY
                        GOTO DH2

DH4:                  
                        CLRF STATUS
                        CLRF XCS                        ;写完一行后从CS2返回到CS1
                        INCF LCD_PAGE
                        CALL SETPAGE                   ;下一行开始
                        MOVLW 00H
                        MOVWF  LCD_Y
                        CALL SETY
                        INCF HHPD
                        MOVLW 08H
                        XORWF HHPD,W
                        BTFSS STATUS,Z 
                        GOTO DH2
                        CLRF STATUS
                        INCF XWPD,F                      ;换第二幅画面
                        MOVLW 01H
                        XORWF  XWPD,W
                        BTFSS STATUS,Z
                        GOTO DH1
                        NOP 
                        RETURN
                        
LCDWRINST:              NOP
                        BSF PORTC,LCD_RST
                        CLRF STATUS
                        MOVLW 01H
                        XORWF XCS,W
                        BTFSC STATUS,Z
                        GOTO INS0
                        BSF PORTC,LCD_CS1

⌨️ 快捷键说明

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