技术热线: 4007-888-234

12232B点阵液晶显示程序

更新时间: 2019-03-23
阅读量:2184

十年专注单片机方案开发的方案公司英锐恩,分享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 

(文源网络,侵删)