|
相信大家都知道如何通過查字庫表的方法來顯示表中的任意一個(gè)字符。假如現(xiàn)在我想顯示某個(gè)溫度值,需要標(biāo)志出溫度符號(hào)”°C”,現(xiàn)在你去字庫表里面查找,發(fā)現(xiàn)根本找不到這個(gè)符號(hào),那怎么辦?可以通過自定義字符解決這個(gè)問題。在上一個(gè)帖子簡(jiǎn)單講解了LCD1602的基本操作過程,下面我們就來簡(jiǎn)單描述如何讓1602顯示自定義字符。
1. 思路分析
為了方便閱讀,在這里我們把LCD1602字庫表的一部分截取過來。前面講了,如果要顯示字符‘A’,那么寫入數(shù)據(jù)高位(b7-b4)為0100,寫入數(shù)據(jù)低位(b3-b0)為0001,合起來為0x41.那么如果現(xiàn)在寫入數(shù)據(jù)0x00顯示什么呢?數(shù)據(jù)0x00高4位和低4位全部為0,對(duì)應(yīng)下表中第一行的第一列,我們發(fā)現(xiàn)里面是空的,如下圖中紅色方框所示。
3.png (227.82 KB, 下載次數(shù): 178)
下載附件
圖1
2018-4-10 15:00 上傳
圖1
這個(gè)紅色框的部分就是給我們‘自定義字符的’。CGRAM一共64個(gè)字節(jié),一個(gè)字符需要8個(gè)字節(jié),這樣CGRAM一共可以表示8個(gè)字符,簡(jiǎn)單的說就是有8個(gè)‘空’可以由我們來自定義(我們把它記作-“自定義空”)。類似的,在(b7-b4)為0000的整列都是空的,右邊藍(lán)色框部分是‘固定’的,或者說別人已經(jīng)幫我們寫好的,F(xiàn)在我們要寫入數(shù)據(jù)0x00顯示某個(gè)字符,那么就需要在0x00對(duì)應(yīng)的這個(gè)位置(上圖紅色框所示)構(gòu)造出一個(gè)字符,簡(jiǎn)單的講就是先‘填空’, ‘填空’之后就和藍(lán)色部分一樣了。而‘填空’的這個(gè)字符可以是任意的,也就是說屬于‘自定義字符’。
這樣思路就很清楚了
第一步:填空 (構(gòu)造這個(gè)字符)
第二步:顯示這個(gè)空 (顯示這個(gè)字符)
2. 如何填空(構(gòu)造字符)
前面講了1602模塊共2行,每行16個(gè)空格,一共32個(gè)空格,如下圖所示,每一個(gè)空格能顯示一個(gè)字符。
1.png (563.56 KB, 下載次數(shù): 157)
下載附件
圖2
2018-4-10 15:00 上傳
圖2
現(xiàn)在我們從這32個(gè)空格中提取出一個(gè)來分析,如下圖所示。仔細(xì)觀察,一個(gè)大空格實(shí)際上是由很多小空格組成的,每一行5個(gè)小空格,一共8行。我們把這里面的每一個(gè)小空格理解成一個(gè)led(共40個(gè))。那么也就是說,LCD1602模塊顯示32個(gè)字符,實(shí)際上每一個(gè)字符是由40個(gè)led組成的。這樣回到我們的目的-顯示自定義字符,實(shí)際上就是控制這40個(gè)led點(diǎn)亮或者熄滅。
這里為了分析的方便,現(xiàn)在給每一行(5個(gè)led)前面多添加3個(gè)led,如下圖所示,只不過每一行前面的這3個(gè)led永遠(yuǎn)都不亮。
2.png (134.1 KB, 下載次數(shù): 154)
下載附件
圖3
2018-4-10 15:00 上傳
圖3
這樣問題就變成了如何控制8×8的點(diǎn)陣,每一行8個(gè)led,一共8行。那么如何控制這個(gè)8×8的點(diǎn)陣呢?回去查看LCD1602指令表即可,這個(gè)命令字節(jié)(CMD)的高兩位固定為01(也就是0x40),剩下的6位如何分布,如下圖所示。CMD剩下6位中的高3位,用來確定“你要填哪一個(gè)空”,前面講了一共有8個(gè)“自定義空”可用。如果你取000的話,就表示你填的是圖1中紅色方框所示的“自定義空”,如果取001的話,就表示圖1中紅色方框下面的一個(gè)“自定義空”,依此類推。繼續(xù)看,CMD的低3位就來確定8×8的點(diǎn)陣位置。如果取000,就表示第一行的8個(gè)led,如果取001,就表示第二行的8個(gè)led,依此類推。確定了點(diǎn)陣的‘行’,緊跟著寫入一個(gè)字節(jié)的數(shù)據(jù)就可以了,一個(gè)字節(jié)8位,剛好對(duì)應(yīng)這一行的8個(gè)led,1表示led亮,0表示led滅。
4.png (77.14 KB, 下載次數(shù): 149)
下載附件
圖4
2018-4-10 15:00 上傳
圖4
3. 顯示構(gòu)造字符
當(dāng)這個(gè)字符構(gòu)造好了之后,剩下步驟就前面一樣了,確定顯示位置,確定顯示內(nèi)容。
6.png (1.1 MB, 下載次數(shù): 147)
下載附件
2018-4-10 15:10 上傳
圖5
LCD1602液晶模塊如何顯示自定義字符參考代碼:
1602自定義字符參考代碼.rar
(4.38 KB, 下載次數(shù): 460)
2018-4-10 15:04 上傳
點(diǎn)擊文件名下載附件
LCD1602自定義字符參考代碼 下載積分: 黑幣 -5
上一篇:10分鐘理解LCD1602液晶顯示模塊
|
評(píng)分
-
查看全部評(píng)分
|