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 具體實現步驟
- 打開取模軟件(附件:https://pan.baidu.com/s/1c366Zc8)
- 文件->新建->8*8
- 在右5*8點陣中寫入想要顯示的字符
- 設置

- 生成字模(八個十六進制的數)
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在仿真中的漢字取模問題。
- 打開取模軟件(附件:https://pan.baidu.com/s/1c366Zc8)
- 文件->新建->16*16(在中國漢字中,任何一個漢字都可以用16*16點陣表示!)
- 在16*16點陣中畫出先要顯示的漢字
- 設置

- 生成字模(十六個十六進制的數)
【注】12864顯示數字、字母等,也要設置取模字符串,但不再是16*16像素,而為16*8像素。但是相應的顯示程序中,也不能在用顯示漢字的for(16),而要改成for(8)。
