关于LCD1602显示指定字符

1  LCD1602显示自定义字符

1.1  怎么显示?

要想让LCD显示自定义字符,只需要把要显示的字符写入LCD的CGRAM寄存器中,再读取出来就行了。

问题是,怎么将自定义字符写入CGRAM呢?

根据数据手册可知,CGRAM起始地址为0x40,那么第一个字符的CGRAM地址为0x40~0x47(一个字节占用一个地址,一个自定义字符为8个字节),依次第二个字符地址为0x48~0x4F第三个为0x50~0x57···

那么在我们将自定义的字符写入到CGRAM后,LCD1602内部的DDRAM(字符显示地址数据存贮器)会给你自定义的字符分配一个显示地址,第一个字符的显示地址为0x00,第二个字符的显示地址为0x01,第三个的显示地址为0x02···

1.2  具体实现步骤

  1. 打开取模软件(附件:https://pan.baidu.com/s/1c366Zc8)
  2. 文件->新建->8*8
  3. 在右5*8点阵中写入想要显示的字符
  4. 设置

  5. 生成字模(八个十六进制的数)

1.3  简短参考程序

1 code uchar User[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//自定义字符℃
2 LCD_write_com(0x40); //设定 CGRAM 地址
3 for(i=0;i<8;i++ )
4 {
5     LCD_write_data(User[i]); //写入自定义图形 ℃
6 }
7 LCD_write_com(0x8d); //设定屏幕上的显示位置
8 LCD_write_data(0x00); //从 CGRAM 里取出自定义图形显示

2  LCD12864显示汉字

在真实的LCD12864中,是存在字符的。但是在proteus仿真中的12864是不支持显示汉字的!

不支持显示汉字,并不是不能显示汉字!

在这里仅介绍LCD12864在仿真中的汉字取模问题。

  1. 打开取模软件(附件:https://pan.baidu.com/s/1c366Zc8)
  2. 文件->新建->16*16(在中国汉字中,任何一个汉字都可以用16*16点阵表示!)
  3. 在16*16点阵中画出先要显示的汉字
  4. 设置

  5. 生成字模(十六个十六进制的数)

【注】12864显示数字、字母等,也要设置取模字符串,但不再是16*16像素,而为16*8像素。但是相应的显示程序中,也不能在用显示汉字的for(16),而要改成for(8)。

posted @ 2018-01-14 18:53  祁俊辉  阅读(5304)  评论(0编辑  收藏  举报