基于AVR单片机的VRAM型彩色液晶显示模块设计
当数据位为“1”时,对应色点为亮;为“0”时,对应色点为暗。通过RGB三原色组合而得到的8种颜色代码如下:
例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的点,其具体函数如下:
以上只给出了余数是0的情况,其他的情况可依此类推。计算内存地址的LCD_pixeladdr函数可根据给出的内存地址计算方法编写,读写61LV5128的read_exram函数和write_exram函数可根据具体的硬件设计编写,这里不再给出。
4.3 显示汉字和其他功能的实现
在屏幕上显示16×16点阵汉字的基本步骤是:首先取得该汉字的32个字节的点阵数据,再确定屏幕上显示的位置,利用画点函数即可显示该汉字。因本模块使用了硬件汉字库技术,所以汉字的点阵数据是从汉字库中获取的。
评论