新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于AVR单片机的VRAM型彩色液晶显示模块设计

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

作者: 时间:2012-04-09 来源:网络 收藏

在计算机汉字系统中,汉字是用机内码的形式存储的,将汉字机内码减去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编译器里调试通过,实现了在液晶屏幕上正常显示各种颜色的汉字、英文、数字及简单的图形功能。在笔者参与开发的油田探测爆炸机设备中,采用了本液晶模块,达到了显示稳定,显示色彩丰富,人机界面友好的较理想的显示效果。


上一页 1 2 3 4 5 6 下一页

评论


相关推荐

技术专区

关闭