使用1602液晶顯示漢字和圖形只需要2步操作。
而且只要你能用1602顯示字符'a',那么就能立即實(shí)現(xiàn)漢字和圖形的顯示、而不需要寫(xiě)新的操作函數(shù)。
首先、先先對(duì)我們要進(jìn)行的操作做一下簡(jiǎn)單的說(shuō)明:
液晶的字庫(kù)在CGROM中、每一個(gè)字符占用8字節(jié)。
每個(gè)字符對(duì)應(yīng)一個(gè)地址,調(diào)用的時(shí)候直接引用該地址。
而字符在CGROM中的地址就是字符的ASCLL碼值。
所以我們調(diào)用的時(shí)候就直接寫(xiě)該字符的ASCLL碼值(或是其字符形式如'a')、就能顯示該字符。
CGRAM的情形和這一樣、不同的是CGRAM中的內(nèi)容掉電就丟失,
同時(shí)地址值使用索引值代替、但還是地址的功能。
CGRAM有64字節(jié),可供我們放入8個(gè)自定義的字符、每個(gè)字符需要8字節(jié)的數(shù)據(jù)來(lái)描述:
0x40 - 0x47 : 對(duì)應(yīng)第1個(gè)字符區(qū)、索引值是0或8
0x48 - 0x4f : 對(duì)應(yīng)第2個(gè)字符區(qū)、索引值是1或9
0x50 - 0x57 : 對(duì)應(yīng)第3個(gè)字符區(qū)、索引值是2或10
0x58 - 0x5f : 對(duì)應(yīng)第4個(gè)字符區(qū)、索引值是3或11
0x60 - 0x67 : 對(duì)應(yīng)第5個(gè)字符區(qū)、索引值是4或12
0x68 - 0x6f : 對(duì)應(yīng)第6個(gè)字符區(qū)、索引值是5或13
0x70 - 0x77 : 對(duì)應(yīng)第7個(gè)字符區(qū)、索引值是6或14
0x78 - 0x7f : 對(duì)應(yīng)第8個(gè)字符區(qū)、索引值是7或15
現(xiàn)在我們來(lái)進(jìn)行具體的操作了,只需2步、過(guò)程如下:
1、將自定義的字符數(shù)據(jù)寫(xiě)入CGRAM
2、調(diào)用自定義字符對(duì)應(yīng)的索引值來(lái)顯示該字符
自定義的也可以是任意的圖形、跟使用LED點(diǎn)陣一樣:
漢字或圖形的字符數(shù)據(jù)可以用字符提取軟件提取、或自己提取。
液晶上要顯示的點(diǎn)為1、不顯示的點(diǎn)為0。
而且點(diǎn)陣第一行的數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)中的第一個(gè)數(shù)據(jù)。
如用來(lái)顯示8個(gè)高度或表示8種等級(jí)的圖形(5*8點(diǎn)陣):
table_grade[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,
0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x1f,
0x00,0x00,0x00,0x00,0x00,0x1f,0x1f,0x1f,
0x00,0x00,0x00,0x00,0x1f,0x1f,0x1f,0x1f,
0x00,0x00,0x00,0x1f,0x1f,0x1f,0x1f,0x1f,
0x00,0x00,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
0x00,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
};
顯示效果:
將上下兩行都用來(lái)顯示、就可以顯示16個(gè)等級(jí)了: