LCD12864液晶的使用之字庫型液晶(一)
出處:郭 靖 發(fā)布于:2011-09-16 16:51:39
下面介紹下帶字庫的液晶,由于Proteus中沒有,就以實物為準吧!我手頭上這塊液晶是QY128*64HZ1,它的驅(qū)動器是ST7920,想必大家很熟悉了,百度、谷歌一下它的芯片手冊很多!在學習此塊液晶之前,建議大家好好看看它的驅(qū)動芯片的手冊!它的驅(qū)動和LCD1602很像,甚至,讀忙、寫指令和寫數(shù)據(jù)函數(shù)都是一樣的,就初始化不一樣,因為指令系統(tǒng)不同嘛!下面是我手頭字庫液晶的實物圖。

字庫型液晶顯示可以分為串行方式和并行方式兩種,通過引腳PSB進行選擇,它只有一個驅(qū)動芯片, 不像Proteus中無字庫液晶有兩個驅(qū)動芯片。顯示是整體顯示,而不是左右屏的顯示!大家一定要注意!
1、控制口信號說明:

注:①忙標志Bust_flag=1說明LCD內(nèi)部正忙,此時不能對LCD進行操作,忙標志的判斷由DB7也就是數(shù)據(jù)口的位所決定!這和LCD1602一樣!
|
RS |
RW |
功能 |
|
0 |
0 |
單片機寫指令到指令暫存器(IR) |
|
0 |
1 |
讀出忙標志(BF)及地址計數(shù)器(AC)的狀態(tài) |
|
1 |
0 |
單片機寫數(shù)據(jù)到數(shù)據(jù)暫存器(DR) |
|
1 |
1 |
單片機從數(shù)據(jù)暫存器中讀出數(shù)據(jù) |
?、谏厦鎸S和RW的操作需配合使能信號EN來操作!否則無效!
1、顯示說明
?。?)、字符產(chǎn)生ROM(CGROM)
里面提供了8192(213)個漢字GB2132宋體
?。?)、顯示數(shù)據(jù)RAM(DDRAM)
內(nèi)部提供64*2位空間,多可控制4行16字,也就是16個中文字型顯示,當寫入顯示數(shù)據(jù)RAM時,可分別顯示CGROM和CGRAM的字型,可以用來顯示三種字型:半角英文數(shù)字型、CGRAM字型和CGROM的中文字型,三種字型的選擇,由在DDRAM總寫入的編碼選擇,在0000H-0006H的編碼中(其代碼分別為0000、0002、0004、0006共四個)將選擇CGRAM的自定義字型,02H-7FH的編碼中將顯示半角英文數(shù)字型的字型(也就是ASCII碼,大小為16*8),至于A1以上的編碼將自動結(jié)合下一個位元組,組成兩個位元組的編碼,從而形成一個中文字型的編碼,也就是說顯示一個漢字要兩個ASCII碼顯示的位置,即大小為16*16。BIG(A140-D75F),GB(A1A0-F7FF)。
?。?)、字型產(chǎn)生RAM
上面已經(jīng)介紹了該種液晶提供四組可定義顯示,是16*16大小的自定義圖像空間,通過在特定的編碼位置,寫入我們要顯示的自定義圖像即可,這個和LCD1602液晶的自定義顯示字符的原理是一樣的!這個將在下文加以詳細介紹。




由于串行方式比較慢,在此采用并行方式。
一、顯示ASCII碼
顯示ASCII碼和LCD1602是一樣的,只需將字符對應的ASCII的數(shù)據(jù)送入液晶進行顯示即可。具體的參看LCD1602部分
二、顯示字庫中的漢字
一個漢字的大小是16*16,占兩個ASCII字符的位置,將相應的漢字的編碼分兩次送入液晶顯示即可。也可以用數(shù)組的方式,編譯器編譯時自動將轉(zhuǎn)換成對應的編碼。
三、顯示四個自定義字符
剛才說了,此塊液晶可以自定義顯示四個16*16字符,對應的編碼為0000、0002、0004和0006,這個到底是什么意思呢?其實就是說自定義顯示字符在RAM區(qū)的編碼,我們通過向自定義字符地址中送入自定義的數(shù)據(jù),然后調(diào)用自定義編碼就可以將自定義字符顯示在液晶上面了!
上面說了三種顯示,代碼就集中在一起寫了,這個程序是顯示ASCII碼、字庫漢字和自定義顯示:

取模設定和Proteus中的128*64不一樣:取模軟件是一樣的!設定如下圖所示


代碼:


/*=============================================
自定義漢字函數(shù):CGRAM自定義顯示字符
地址 顯示編碼
0x40 0x0000
0x50 0x0002
0x60 0x0004
0x70 0x0006
共可顯示四個自定義字符!
顯示自定義字符前,先要設定顯示的位置,否則會亂碼
==============================================*/

void main()
{
uchar num;
init_LCD();
while(1)
{
write_LCD_command(0x80);
for(num=0;num<8;num++)
{
write_LCD_data(table6[num]);
}
write_LCD_command(0x84);
for(num=0;num<8;num++)
{
write_LCD_data(table4[num]);
}
write_LCD_command(0x90);
for(num=0;num<14;num++)
{
write_LCD_data(table5[num]);
}
CGRAM();
write_LCD_command(0x98);
write_LCD_data(0x00);
write_LCD_data(0x00);//個自定義顯示字符編碼為:0x0000
write_LCD_command(0x99);
write_LCD_data(0x00);
write_LCD_data(0x02);//個自定義顯示字符編碼為:0x0002
write_LCD_command(0x9A);
write_LCD_data(0x00);
write_LCD_data(0x04);//個自定義顯示字符編碼為:0x0004
write_LCD_command(0x9B);
write_LCD_data(0x00);
write_LCD_data(0x06);//個自定義顯示字符編碼為:0x0006
}
}
通過上面的學習,大家應該學會了怎么顯示ASCII碼、字庫漢字和自定義顯示了!下面介紹怎么顯示圖片。
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://udpf.com.cn,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- 顯示器色深 6Bit、8Bit、10Bit 與 6 抖 8、8 抖 10、FRC2025/8/28 15:29:32
- Micro-LED技術解析2025/8/26 17:21:56
- LED顯示屏標清、高清、超清、1080P與4K的解析2025/8/8 17:05:00
- 德州儀器環(huán)境光傳感器:拓展功能實現(xiàn)精準光檢測2025/8/7 16:25:55
- LED背光 vs. CCFL背光:原理、特點及對比2025/8/5 16:49:19









