您现在的位置: 通信界 >> 视频通信 >> 技术正文  
 
基于AVR单片机的VRAM型彩色液晶显示模块设计[图]
[ 通信界 / 《液晶与显示》2005年05期 / www.cntxj.net / 2011/12/6 11:10:41 ]
 

摘要:介绍一种基于AVR单片机和硬件汉字库的VRAM型彩色液晶显示模块的设计。给出彩色液晶显示器的显示原理、硬件接口设计框图以及硬件汉字库的制作和应用,同时给出基于C语言的程序设计模块,实现了应用VRAM型液晶的模块化,便于移植在其他类型的单片机。

1 引言

随着电子技术的飞速发展,越来越多的领域应用到以单片机为控制核心、用液晶作为显示终端的数字化设备。彩色液晶显示器作为当代高新技术的结晶产品,不但具有超薄平面、显示信息丰富、色彩逼真的特点,而且还具有体积小、耗电省、寿命长、无辐射、抗震、防爆等其他类型显示器无可比拟的优点,因而是工控仪表、机电设备等行业更新换代的理想显示器件。因此基于单片机系统的彩色液晶显示模块的使用也越来越广泛。本文介绍一种基于AVR单片机和硬件汉字库的彩色液晶显示模块,该模块实现了在彩色液晶显示器上显示不同颜色的中文、英文、数字及简单的画图功能。

2 液晶显示器显示原理

本模块采用的液晶显示器是河南友利华高科技有限公司生产的YD2502彩色液晶VRAM型显示器。它的点阵数是320×240,VRAM容量是64k×8 位,由于屏幕上的任何一点都是由R(红) 、G(绿) 、B(蓝)3种颜色组成,且灰度不可调节,因此显示颜色为8色。基本原理框图如图1所示。DC/DC转换器产生液晶所用各种驱动电压,DC/AC逆变器则用来点亮冷阴极背光灯,显示驱动逻辑电路采用了优化逻辑电路,利用分时技术让显示与写入数据同时进行,实现了画面的高速更新,且互不干扰。其显示原理是:在显示器内部含有一个显示缓冲区与屏幕显示一一对应,使用时只需向缓冲区里写入相应的数据,屏幕上即可显示出对应的彩色图形或文字,也就是说该显示器可作为单片机系统的一个外部存储器就可以实现彩色信息的显示。

基于AVR单片机的VRAM型彩色液晶显示模块设计
图1 YD2502原理框图

3 硬件系统设计

3.1 硬件总体设计

本模块中使用的单片机是AVR系列单片机中功能最强的ATmega128 。该单片机具有丰富的片上资源如具有128kB在线可重复编程Flash、4kB的E2 PROM、4kB的内部SRAM、48个I/O端口、34个不同的中断源、可寻址64kB的地址空间、ISP下载以及JTAG仿真等功能。详细介绍请参考其数据手册。

图2是该模块硬件系统总体设计框图。由于YD2502的显示缓冲区里的内容是不能读出的,为了保存写入内容,在该模块中还外扩了一片存储器芯片61LV5128,其存储容量为512kB,除了保存YD2502显示缓冲区里的数据外,还为使用本模块的嵌入式系统提供了扩展应用。由于ATmega128的寻址范围只达到64KB,因此采用了分页管理技术来操作512kB的存储空间。在具体电路设计时,将ATmega128的PB3~PB0连接到61LV5128的高4位地址线上,将512kB的存储空间分成16页,每页32kB。硬件汉字库芯片AT29C040A的存储容量也是512kB,与CPU的接口设计与61LV5128是类似的,只需将片选信号和高4位地址线接在不同的I/O口上就可以了。

基于AVR单片机的VRAM型彩色液晶显示模块设计
图2 硬件设计图

3.2 YD2502的接口设计

YD2502的接口方式采用总线方式,外部引线包括数据总线(DB7~DB0) 、片选信号(/CS) 、读写输入(/RD、/WR)和寄存器选择信号(RS),可以直接挂接到单片机的总线上,作为单片机的某部分内存来使用。接口采用16针插座,引脚定义请参阅其说明书。

根据YD2502可以作为单片机的外部存储器使用的接口特性,将ATmega128的读写信号线与YD2502的读写信号线直接连接,具体接口设计原理如图3所示。

基于AVR单片机的VRAM型彩色液晶显示模块设计
图3 AT128与YD2502的接口

3.3 硬件汉字库的制作

本模块使用了硬件汉字库,省去了利用汉字取模软件获取点阵数据的麻烦,而且还避免了为保存这些数据而开辟的大量程序存储空间。

汉字库中要烧写的点阵文件是UCDOS软件中的文件HZK16,该文件是16×16的国际汉字点阵文件,文件中按汉字区位码从小到大依次存放国标区位码表中的所有汉字,每个汉字占用32字节,每个区为94个汉字。汉字库芯片采用的是AT29C040A,该芯片是ATMEL公司生产的512kB的Flash ROM。在制作时,烧写过程和普通的程序存储器的编程基本相同,只要注意选择正确的型号和在选择打开HZK16的方式时用二进制方式就可以了,编程校验成功后,取下备用,硬件汉字库芯片就制作好了。

实际上若显示HZK16的文件属性,其大小为262kB,而AT29C040A的存储容量为512kB,超出部分可以存储用户固定的汉字、字母和数字的代码,从而使显示内容更加灵活丰富。

4 软件系统设计及实现

4.1 操作YD2502的程序设计

YD2502的指令码格式如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

其中:CA1,CA0组合功能为内部寄存器通道的选择,功能如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

DISP:显示控制位。

当DISP设置为“1”时,液晶显示模块为开显示状态。

当DISP设置为“0”时,液晶显示模块为关显示状态。

X:表示未用位,可设为“0”。

ATmega128访问外部存储器的软件设计步骤是:先用extern声明一个外部变量,再用map2ping_init函数(外部存储地址分配函数)分配给此变量一个外部存储地址(因ATmega128内部有4kB的SRAM所以外部存储地址范围为1000H~0FFFFH),那么对该变量的操作就实现了CPU对相应地址的外部存储空间的访问。

根据此步骤,对YD2502写指令和写数据的具体函数如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

写指令函数如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

写数据函数如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

除了上面两个基本的函数外,对YD2502最基本的操作是往VRAM 里写数据,根据上面给出的指令码,具体函数如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

4.2 画点函数的实现

要在液晶上实现显示字符和画图等功能,在屏幕上显示一个点是实现这些功能的基础。画点函数实现的步骤是:首先确定该点对应的VRAM中的内存位置,找到该点具体对应的数据位,填充显示颜色的数据,该点就按对应的颜色显示出来了。

4.2.1 显示内存与屏幕点阵的对应关系

YD2502屏幕点阵为320×240,每一个点对应3个像素(RGB),屏幕上8个点对应内存3个字节,一行对应320/8×3=120个字节,其对应关系如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

其中R,G,B表示红、绿、蓝三原色,D7~D0表示对应的数据位。

对于屏幕上坐标为(X,Y)的点,其对应内存地址的计算方法为:

当Y=0时  SRAM=0EFH×100H+[INT(X/8)]×3

当Y>0时  SRAM=(Y-1)×100H+[INT(X/8)]×3

通过(X/8)的余数得出具体的内存位置:

当余数为0  则 RAM=SRAM  [1110,0000]

当余数为1  则 RAM=SRAM  [0001,1100]

当余数为2  则 RAM1=SRAM  [0000,0011]

RAM2 = SRAM + 1[1000 ,0000 ]

当余数为3  则 RAM = SRAM + 1[0111 ,0000 ]

当余数为4  则 RAM = SRAM + 1[0000 ,1110 ]

当余数为5  则 RAM1 = SRAM + 1[0000 ,0001 ]

RAM2 = SRAM + 2[1100 ,0000 ]

当余数为6  则 RAM = SRAM + 2[0011 ,1000 ]

当余数为7  则 RAM = SRAM + 2[0000 ,0111 ]

其中[ ]内为“1”的位表示应该填充颜色的位置,SRAM表示该点对应的基础地址,RAM、RAM1和RAM2表示该点对应的实际内存地址。

当数据位为“1”时,对应色点为亮;为“0”时,对应色点为暗。通过RGB三原色组合而得到的8种颜色代码如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

例1:若X 、Y坐标为(7,0)

SRAM = 0EFH ×100H + 0 = 0EF00H

余数为7 ,则 RAM = 0EF00H + 2 = 0EF02H

若此点为红色,则送入0EF02H 内存单元里的数据为[ 0EF02H] &11111000B + 00000100B

例2 :若X 、Y坐标为(15,5)

SRAM = (5 - 1) ×100H + 1 ×3 = 403H

余数为5 ,则 RAM1 = 403H + 1 = 404H

RAM2 = 403H + 2 = 405H

若此点为白色,则送入这两个单元的数据为

[ 404H] &11111110B + 00000001B

[ 405H] &00111111B + 11000000B

4.2.2 画点函数的具体实现

从例1和例2可以看出,要只显示一个色点,就必须知道该点对应的内存中的数据,而前面提到过内存中的数据是不能读出的,所以要将写入内存中的数据先保存起来,即在向YD2502的显示缓冲区里写数据之前,应先将此数据写入61LV5128 。若在坐标(X,Y)处画颜色为color的点,其具体函数如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计

以上只给出了余数是0的情况,其他的情况可依此类推。计算内存地址的LCD_pixeladdr函数可根据给出的内存地址计算方法编写,读写61LV5128的read_exram函数和write_exram函数可根据具体的硬件设计编写,这里不再给出。

4.3 显示汉字和其他功能的实现

在屏幕上显示16×16点阵汉字的基本步骤是:首先取得该汉字的32个字节的点阵数据,再确定屏幕上显示的位置,利用画点函数即可显示该汉字。因本模块使用了硬件汉字库技术,所以汉字的点阵数据是从汉字库中获取的。

在计算机汉字系统中,汉字是用机内码的形式存储的,将汉字机内码减去0A0A0H就得到该汉字的区位码,通过区位码就可以找到该汉字点阵数据在汉字库中的位置。例如:汉字“中”的机内码是十六进制的“D6D0”,其中前两位“D6”表示机内码的区码,后两位“D0”表示机内码的位码。所以“中”的区位码为0D6D0H - 0A0A0H =3630H,将区码和位码分别转换为十进制,得汉字“中”的区位码为“5448”。即“中”的点阵位于第54区的第48个字的位置,在文件HZK16中的位置为第32×[(54 - 1)×94 + (48 - 1)] = 160928D以后的32个字节为“中”的点阵数据,用SUPER2PRO25编程器读入文件HZK16后利用其编辑功能中的缓冲区编辑查找到274A0H(160928D的十六进制表示)开始的32个字节:01H,00H,01H,00H,01H,04H,7FH,FEH,41H,04H,41H,04H,41H,04H,41H,04H,7FH,FCH,41H,04H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H。这些数据与其点阵图形的对应关系如图4所示,图中黑色方格表示二进制位“1”,即对应该显示的点,白色方格表示二进制位“0”,即不该显示的点。因此要在液晶屏幕上显示16×16点阵的汉字,首先应找到该汉字在硬件汉字库中的位置,取出其后的32个字节数据。取这32个字节数据的函数如下:

基于AVR单片机的VRAM型彩色液晶显示模块设计
图4 汉字“中”的点阵图形

基于AVR单片机的VRAM型彩色液晶显示模块设计

读AT29C040A的read_exrom函数可根据硬件设计编写,这里不再给出。

取得这32个字节数据后,下面的程序设计就比较容易了,这里只给出程序流程(如图5所示),具体函数可根据此流程编写。其中(X,Y)是该汉字显示的起始点,color是该汉字的显示颜色,number是该汉字在chinese数组中的位置。显示英文和数字的函数可根据显示汉字的函数稍加改造后即可得到,这里不再详细分析。

基于AVR单片机的VRAM型彩色液晶显示模块设计
图5 显示一个汉字程序流程图

在本模块中也实现了在屏幕上画斜线、圆等功能,其具体实现过程就是在画点函数的基础上通过相应的算法来编写这些函数。画线和画圆算法比较多,在这里画线算法采用的是整数数字微分分析法,画圆算法采用的是贝森海姆算法。

鉴于篇幅所限,这里不再具体分析。由于YD2502是点阵式液晶显示器,还可以通过移植嵌入式GUI(如μC/GUI)软件,使其显示多种曲线,各种窗口对象,如按钮、编辑框、滑动条等更加丰富灵活的图形界面。

5 结语

以上程序均在ICCAVR编译器里调试通过,实现了在液晶屏幕上正常显示各种颜色的汉字、英文、数字及简单的图形功能。在笔者参与开发的油田探测爆炸机设备中,采用了本液晶模块,达到了显示稳定,显示色彩丰富,人机界面友好的较理想的显示效果。

 

作者:《液晶与显示》2005年05期 合作媒体:《液晶与显示》2005年05期 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管