|
|
| | -文章搜索 - 最新文章 - | |
单片机和图形液晶显示器接口应用技术 |
| 发布时间:2005年10月16日 点击次数:4412 |
| 来源: 作者: |
电子设计应用 作者:陆爱明 本文介绍了图形液晶显示器MGLS12864与单片机W78E58的硬件设计和软件设计技术。同时给出了ASCII码8×16字库、汉字16×16字库建立的程序及在液晶上显示数字、字符和汉字的程序。 引言 液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段位式LCD、字符式LCD和点阵式LCD。其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动,动画功能,分区开窗口,反转,闪烁等功能,用途十分广泛。本文介绍了点阵式液晶显示器MGLS12864与单片机的接口及编程的方法,同时介绍了创建8×16字符和16×16点阵汉字的方法,及常用的字符显示和汉字显示程序。 硬件设计 这里着重介绍液晶显示器与单片机的接口技术。有关MGLS12864图形液晶引脚功能及控制器HD61202的接口时序波形,可查看图形液晶显示器产品有关手册。 单片机可以通过数据总线与控制信号直接采用存储器访问形式、I/O设备访问形式控制该液晶显示模块。本文以华邦公司的W78E58为例,它是51系列单片机兼容的微控制器,其内部有32KB的FLASH EEPROM,用户编制的程序及需要显示的英文字母、数字、汉字、曲线和图形都可以存储在里面,免去了扩展外部存储器的麻烦,使得以W78E58单片机为核心的控制系统电路更简单。因此十分适用于液晶显示。MGLS12864与W78E58单片机接口电路如图1所示。该图采用直接访问方式,单片机通过低位地址A2控制CSA;A3控制CSB,以选通液晶显示屏上各区的控制器HD61202;同时W78E58用地址A1作为R/W信号控制数据总线的数据流向;用地址A0作为D/I信号控制寄存器的选择;E信号由W78E58的读信号/RD和写信号/WR合成产生;另外单片机的复位脚(9脚)经反相器后连接到液晶显示器复位脚(17脚 /RST),当单片机上电复位或手动复位时, 液晶显示器同时也复位;从而实现了W78E58对内置HD61202图形液晶显示器模块的电路连接。电路中LCD电源控制端VO是用来调节显示屏灰度的,调节该端的电压,可改变显示屏字符、图形的颜色深浅。 单片机对液晶显示模块的操作可分为两部分,即左半屏和右半屏操作。下面是根据图1的连接确定对应左半屏(前64×64)和右半屏(后64×64)操作地址: CWADR1 EQU 0004H 左半屏写指令代码地址 DWADR1 EQU 0005H 左半屏写显示数据地址
图1 MGLS12864与W78E58接口图 软件设计 液晶控制器HD61202一共有七条指令,从作用上可分为两类,显示状态设置指令和数据读/写操作指令。详见指令系统可查看图形液晶显示器产品有关手册。显示起始行设置中L5~L0为显示起始行的地址,取值在0-3FH(1-64行)范围内。页面地址设置中P2-P0为选择的页面地址,取值范围为0-7H,代表1-8页。列地址设置中C5-C0为Y地址计数器的内容,取值在0-3FH(1-64行)范围内。 点阵字模文件的建立:由于MGLS12864液晶显示器没有内部字符发生器,所以在屏幕上显示的任何字符、汉字等须自己建立点阵字模库,然后均按图形方式进行显示。由于HD61202显示存储器的特性,不能将计算机内的汉字库和其它字模库提出直接使用,需要将其旋转90度后再写入。点阵字模库建立包括以下几个方面: (1) 建立8×16点阵常用字符、数字、符号字模库。 可选用计算机BIOS中ASCII的8×16字模库,所有字符按照ASCII值从小到大升序排列。 asm{mov ax,1130h /*AH=11h—功能调用。装入字库至软字库 */ 也可选用UCDOS的ASC16文件做字模库。ASC16文件的字符为8×16点阵。所有字符按照ASCII值从小到大升序排列。计算字符首地址的公式:字符首地址=字符的ASCII码值×16+字模库首地址。 (2) 建立所用到的16×16点阵字模库。 汉字字符可选用UCDOS的HZK16文件做字模库。HZK16文件的字符为16×16点阵。所有字符按照区位码从小到大升序排列。计算汉字字符首地址的公式如下:汉字首地址=((区码-1)×94+位码-1)×32。作者用C语言编写的读取UCDOS点阵字库字模程序,完成字模读取、数据重新排列,并按MCS-51汇编程序的要求写成相应格式的文本文件。 p=((quma-1)*94+weima-1)*32; (3) 常用图形(如产品商标等)的点阵图形的建立。 对已有的图形可采用扫描仪进行扫描,然后用图形处理软件进行处理,再将BMP格式文件转换成MCS-51的汇编文件的格式。 以上所有的字模数据都存放在单片机W78E58的程序存储器中,如用到的汉字、图形较多,可选用较大容量的程序存储器。 通用子程序:通用子程序分左半屏、右半屏写指令代码子程序和写显示数据子程序。液晶显示驱动器HD16202内部有个忙标志寄存器,当BF=1时,表示内部操作正在运行,不能接受外部数据或指令。下面子程序中设指令代码寄存器为COMM,数据寄存器为DATA。 (COMM EQU 20H /*指令寄存器*/ DATA EQU 21H /*数据寄存器*/) (1) 左半屏写指令子程序 WR_CMD1: MOV DPTR,#CRADR1 ;/*读状态字口地址*/ (2)左半屏写数据子程序 WR_DATA1:MOV DPTR,#CRADR1 ;/*读状态字口地址*/ (3)右半屏写指令子程序WR_CMD2和右半屏写数据子程序WR_DATA2的编制同左半屏子程序相同,只是对应口地址不同。 8X16字符显示子程序:MGLS12864液晶显示屏由二片HD61202控制,LCD显示中应尽量避免一个字符一半在左半屏显示,另一半在右半屏显示的情况。设列地址寄存器为COLUMN,页地址寄存器为PAGE,要显示的字符代码寄存器为ASCIICODE,W78E58内RAM28H-RAM37H共16个字节存放8×16的点阵数据,生成的8×16点阵库文件存放在单片机W78E58存储器中的首地址定义为ASCII_DOT816。 ADD A,DPL 16×16汉字显示子程序:16×16汉字显示子程序与8X16字符显示子程序基本相同。不同在于每次写32字节显示数据,可定义W78E58内RAM28H-RAM47H共32个字节存放16×16的点阵数据,生成的16×16点阵库文件存放在单片机W78E58存储器中的首地址定义为HZK_DOT16X16。具体程序略,读者如需要可来函索取。 结语 本文在介绍液晶显示模块与单片机接口的同时,采用了新颖的改造方案以解决应用中的问题。由于节省了单片机口线,使系统资源得到了充分利用。可显示汉字、字符和图形,使人机界面更为美观、易读。其它如8×8西文点阵字库及图形的建立和显示可参照上面介绍的方法来编写程序。由于各种液晶显示模块的接口基本相同,因此本文所讨论的内容也适用于其它型号的液晶显示模块。液晶显示较其它显示终端有许多优点:功耗低且字型美观、可用集成电池供电,便于携带等。相信它将得到越来越广泛的使用。 |
|||
|
|
|
[显示技术] 相关文章: 多功能串行LED显示驱动器MAX7219简介:
MAX7219是美国MAXIM(美信)公司推出的多位LED显示驱动器,采用3线串行接口传送数据,可直接与单片机接口,用户能方便修改其内部参数,以实现多位LED显示。它内含硬件动态扫描显示控制,每枚芯片可驱动8个LED数码管。显然,它可直接驱动64段LED条形图显示器。当多片MAX7219级联时,可控制更多的LED。显示的数据通过单片机数据处理后,送给MAX7219显示。当然,也完全可以将MAX7219的一部分用于条形图显示,一部分用于其他显示(如数字和字母等)。 1. 内部逻辑结构 它主要由8个数位寄存器和6个控制寄存器组成: 1)数位寄存器7~0:它决定该位LED显示内容...... MAX7219测试程序(汇编)
一个液晶显示的数字式电脑温度计
DVD标准战引发PC业内斗 HP戴尔攻击Wintel
英特尔微软火速加盟东芝HD-DVD阵营 存储格式大战局势骤变
用电池容量的一半点亮白色LED
高效率的白色LED驱动器
构成便携式快速光脉冲发生器的电路
用颜色指示电压的“彩虹”LED
为微控制器提供振荡器的LED驱动电路 |
|
|
|