微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于AVR单片机的VRAM型彩色液晶显示模块设计

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

时间:04-09 来源:互联网 点击:

1 引言

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

2 液晶显示器显示原理

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


图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口上就可以了。


图2 硬件设计图

3.2 YD2502的接口设计

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

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


图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的指令码格式如下:

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

DISP:显示控制位。

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

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

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

ATmega128访问外部存储器的软件设计步骤是:先用extern声明一个外部变量,再用map2ping_init函数(外部存储地址分配函数)分配给此变量一个外部存储地址(因ATmega128内部有4kB的SRAM所以外部

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top