可编程字符显示器设计 第3页

可编程字符显示器设计 第3页
 第三章  字符显示的实现
ST7920可以分别控制显示三种字型,分别是CGROM(自带字库),HCGROM和CGRAM(自编字库)的字型。在液晶屏上显示8×16点阵的字符和16×16点阵的汉字时,首先要按照系统的要求完成显示光标的位置和显示方式等功能设置,这由指令寄存器完成;然后向数据寄存器(DDRAM)中写入相应字符或汉字的位元资料(可认为是字符地址)以便在LCD上显示。
具体说来(本文以CGROM字符为例),显示半宽字型的数字、英文、符号等ASCII时,先根据功能需要向指令寄存器写功能设置,再将8位的位元资料写入到DDRAM即可,范围为00H~07FH的编码。
显示中文字型时,也是先向指令寄存器写功能设置,将16位的位元资料写入到DDRAM中,在写入位元资料的时候,先写高八位,再写低八位,并且是连续输入。起首地址应该是个半宽数字字符的偶数倍,否则系统将把半宽的数字字符的编码默认为汉字的高位元组,使显示产生错误。所以,在半宽字型和中文字型混合显示的时候,如果遇到在奇数个半宽地址显示时,通常是用占半宽字节的空格来跳过。
单片机控制芯片采取分层管理,分别由 E1、E2控制。两芯片共用RS、  和数据传输线,在同一时刻,芯片的使能端E1、E2只能有一个为下降沿触发有效,当使能信号有效的时候,RS、  和数据传输线好象就只与该使能的芯片相连,实现分时使用,占用较小的资源开销。在使能信号到达的情况下,RS、  和数据传输线的关系如图5所示。
 第四章   单片机控制液晶的软件设计
接口软件设计主要包括单片机AT89S51、液晶控制器ST7920的初始化和字符或汉字的显示(采集和通讯未予考虑)。从系统的快速性考虑,选用汇编语言进行软件的设计和实现。软件设计的总流程如图4所示(通讯可采用中断的方式)。
其中AT89S51的初始化,包括变量、专用寄存器的初始化和定时器赋初值等;液晶模块初始化就是根据用户系统的需要对液晶控制器的各项参数进行设置,输入方式、显示开关控制、数据接口位数、光标的位置以及显示方式等。初始化流程如图6所示。             
液晶模块执行功能设置程序如下:

ACALL   F_BUSY1
MOV     A,     #0CH    ;功能设置:开显示及关光标 , 字体不闪烁
MOV     P0,    A
MOV     P2,   #0AFH    ;E1产生高电平,选择指令寄存器
CLR      P3.2            ;读写控制信号,低电平写信号
MOV     P2,   #0EFH    ;E1产生低电平,形成一个下降沿,E1芯片使能写入
;功能设置

根据显示原理,在字符或者汉字的显示时,把要显示的字符或者汉字的位元资料以表的形式在程序中给出,采用查表的方式读取它们。下面以在液晶屏幕中显示“直流电压”为例:

MOV     A,    #90H         ;光标转至第二行首列,置DDRAM地址
MOV     P0,   A
MOV     P2,    #0AFH
CLR      P3.2
MOV     P2,    #0EFH
MOV     DPTR , #TAB2A      ;取显示数据的首地址,算出偏移量
MOV     R7,    #08H         ;显示的字数,一个汉字的高8位和低8为连续写入
MOV     A,     #00H
AGAIN2A:
ACALL   F_BUSY1           ;忙标志判断是否为1
MOVC    A,   @A+DPTR    ;读取位元资料
MOV     P0,   A
MOV     P2,   #02FH       ;E1产生高电平,选择数据寄存器
CLR      P3.2           ;读写控制信号,低电平写信号
MOV     P2,   #06FH    ;E1产生低电平,形成一个下降沿,E1芯片使能写入数据
INC      DPTR          ;顺序取地址
MOV     A,   #00H
DJNZ    R7,   AGAIN2A

TAB2A: DB   0D6H, 0B1H, 0C1H, 0F7H, 0B5H, 0E7H, 0D1H, 0B9H
在AT89S51的软件环境中通过以上程序液晶屏能够正常显示连续的字符、汉字等。

上一页  [1] [2] [3] [4] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有