十年專注單片機方案開發的方案公司英銳恩,分享12232B點陣液晶顯示程序。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。
;-----------------------------------------------------------------------; ; 液晶顯示程序 ; ;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------; ; 程序3實現了光標功能,要求加實現一個英文字母的顯示 ; 新加顯示一個漢字 ; 發現進入設定的DB0與DB1都設定為1時,如果輸入一個數字,光標不自動加一 ; DB0設為0時,向右移,DB1向左移 ; ;-----------------------------------------------------------------------;
LIST P=16F84 ; 告訴編譯程序使用何種PIC單片機 INCLUDE "p16f84.inc" ; 定義了特殊寄存器等內容的頭文件 ERRORLEVEL -224 __CONFIG _PWRTE_ON & _XT_OSC & _WDT_OFF ; 配置字
;變量定義 ;RW EQU PORTA,1 ;RS EQU PORTA,2 ;E EQU PORTA,0 ;設定PROTA為控制端口 ;設定PORTB為數據端口,并口通訊 ;LCDFIAL EQU 0x0c; 存放標志位 ;SBDATA EQU 0x0d ;存放顯示數據 ;CLMADD EQU 0x0e ;存放列地址 ;PAGEADD EQU 0x0f ;存放頁地址 ;PAGENUM EQU 0x10 ;存放總頁數 ;CLMSU EQU 0x11 ;存放總列數
L1 EQU 0x20 L2 EQU 0x21 L3 EQU 0x22 L4 EQU 0x24 SBDATA EQU 0x25 ;存放數據代碼 INCODE EQU 0x23 ;存放指令代碼 ORG 0 CALL DELAY10MS CALL DELAY100 CALL REDISP MOVLW B'1110000' CALL SHUJU MOVLW B'10100001' CALL SHUJU CALL DELAY100 MOVLW 49H CALL SHUJU MOVLW 4CH CALL SHUJU MOVLW 4FH CALL SHUJU MOVLW 56H CALL SHUJU MOVLW 45H CALL SHUJU MOVLW 59H CALL SHUJU MOVLW 4FH CALL SHUJU MOVLW 55H CALL SHUJU MOVLW B'00001110' ;關掉游標位置與顯示 CALL MINLI MOVLW B'10000100' CALL MINLI MOVLW 03H CALL SHUJU CALL TEST TEST MOVLW B'00000000' TRIS PORTA STAR BSF PORTA,3 GOTO STAR ;傳輸數據子程序 SHUJU MOVWF SBDATA ;數據暫存在SBDATA CLRF PORTA NOP BSF PORTA,2 ;RS=1 BCF PORTA,1 ;RW=0 MOVF SBDATA,0 MOVWF PORTB BSF PORTA,0 NOP NOP NOP BCF PORTA,0 CALL DELAY100 RETURN ;傳輸命令子程序 MINLI MOVWF INCODE ;命令暫存在INCODE BCF PORTA,2 ;RS=0 BCF PORTA,1 ;RW=0 MOVF INCODE,0 MOVWF PORTB BSF PORTA,0 NOP NOP NOP BCF PORTA,0 CALL DELAY100 RETURN ; 延時程序,用循環的方式 DELAY10MS movlw .100 movwf L2 loop2 movlw .255 movwf L3 loop3 decfsz L3, f goto loop3 decfsz L2, f goto loop2 return 0 DELAY100 MOVLW 30H MOVWF L4 LOOP4 DECFSZ L4,f GOTO LOOP4 RETURN ;初始化子程序 REDISP CALL DELAY10MS CALL DELAY10MS CALL DELAY10MS CALL DELAY10MS ;BSF STATUS,RP0 MOVLW 00H TRIS PORTA TRIS PORTB ; MOVWF TRISB ;設定B為輸出 ;BCF STATUS,RP0 ; BSF STATUS,RP0 ; MOVLW 00H ; MOVWF TRISA ;設定A為輸出 ;BCF STATUS,RP0 CLRF PORTB CLRF PORTA MOVLW B'00110000' ;FUNCTION SET 設定為八位并口模式 MOVWF PORTB BSF PORTA,0 NOP NOP NOP NOP BCF PORTA,0 CALL DELAY100 MOVLW B'00110000' ; FUNCTION SET 設定為八位并口模式 MOVWF PORTB BSF PORTA,0 NOP NOP NOP NOP BCF PORTA,0 CALL DELAY100 MOVLW B'00001111' ;DISPON/OFF CONTROL 顯示狀態設定 MOVWF PORTB BSF PORTA,0 NOP NOP NOP NOP BCF PORTA,0 CALL DELAY100 MOVLW B'00000001' ;DISPLAY CLEAR 消除顯示 MOVWF PORTB BSF PORTA,0 NOP NOP NOP NOP BCF PORTA,0 CALL DELAY10MS MOVLW B'00000110' ;ENTRY MODE SET 進入設定點 MOVWF PORTB BSF PORTA,0 NOP NOP NOP NOP BCF PORTA,0 CALL DELAY10MS RETURN END
(文源網絡,侵刪)