课后练习十一之LCD1602显示汉字详解
1. 液晶显示中的DDRAM、CGROM和CGRAM的作用(部分来源于网络)
DDRAM显示用ram,直接和屏幕上的点相对应.屏幕上的一个点和ddram中的一个位对应,字符屏的ddram和图形屏的ddram有一点点区别。
第一行的内容对应DDRAM中80H到8FH内容
第二行的内容对应DDRAM中C0H到CFH内容
CGROM 中存储了一些标准的 字符的字模编码,是液晶屏出厂时固化在控制芯片中的,用户不能改变其中的存储内容,只能读取调用,包含有标准的ASCII码、日文字符和希腊文字符
CGRAM 是控制芯片留给用户,用以存储用户自己设计的字模编码。为了便于理解,可以如下打一比方:CGROM和CGRAM中存储的字模信息相当于厨房中的食品,CGROM是厨房中现成的熟食,CGRAM是用户自行制作的菜肴,这些食品都要通过托盘转移一下,才能送到餐桌上食用;类似的字模编码都要先被读取到对应的DDRAM中,经如上中转以后,屏幕的相应位置才显示出字符。对于字符屏,要显示某个字符时,往ddram里写字符的索引(一般都是ascii码)就可以完成显示。比如你写0x38,则显示为数字8。
(网上摘抄,写的很好!!!!!)
由上两条指令可知DDRAM地址(DB7赋值1),所以地址从0x80开始
可知CGRAM地址(DB6赋值1),所以地址从0x40开始
首先:我们要弄清楚一个概念,其实我们使用1602显示中文汉字,就是利用其内部的自定义字节空间,我们都知道LCD1602内部有一个64字节的自定义CGRAM、也、、、,这个64字节的CGRAM是给我们提供写入数据的,从我们上面介绍的可知,CGRAM的地址为0x40.所以当我们要写入数据时,要先写入一条地址命令 write_com(0x040);
然后把你要写入的数据通过写数据命令写入 write_dat(数据);
其次就是要把我们的自定义汉字、字符显示在LCD1602上了。、这个地址是从0x00开始,因为最多只能8个字符 write_dat(0x00—0x07
2. 取模
首先取得想要的中文或者图形的字模数组。通过字模软件不能直接提取5*8点阵的字模数据,可以通过手动提取的方法。如下图所示,对应一个字符显示区域。每8个字节,组成一个点阵数组。
3. 实验原理图与结果