新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > LCD1602自定義字符的方法

LCD1602自定義字符的方法

作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
LCD1602內(nèi)含有八個自定義的字符空間,用戶可以根據(jù)需要設(shè)置自定義字符,不過字符的像素通常是5X7。如果需要更大像素的字符,就只能用多個5X7的字符拼合。每個自定義字符的字節(jié)有8個,最后一個是0x00;每個字節(jié)的高3位為0,即000? ????。自定義字符設(shè)置與應(yīng)用步驟如下:
1、設(shè)置自定義字符的代碼并存入數(shù)組。每個字符分7行,每行有5個像素,如果需要顯示,此位設(shè)定為1,否則為0。本人用VBA制作了《LCD1602自定義字符生成器》,使用簡單,需要可函索。聯(lián)系:51hei.com
2、按常規(guī)方法初始化LCD1602。
3、寫命令:40H。
4、寫數(shù)據(jù):將代碼數(shù)組寫入LCD1602中的CGRAM中。
5、按常規(guī)方法設(shè)置要顯示字符的位置。如寫命令:80H(第一行第1個字符位置)或c0H(第二行第1個字符位置)。
6、寫數(shù)據(jù)顯示自定義字符:寫0顯示第1個自定義字符,寫1顯示第2個自定義字符……依此類推。注意寫入的0或1等是指數(shù)字而不是字符,不能加單引號。
下面是生成好的自定義字符代碼數(shù)組,供參考:
uchar code table1[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//字符℃
uchar code table2[]={0x04,0x1F,0x00,0x0A,0x0A,0x0A,0x1B,0x00};//字符六
uchar code table3[]={0x04,0x1D,0x14,0x15,0x14,0x1D,0x04,0x00};//字符小喇叭
uchar code table4[]={0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00};//字符一
uchar code table5[]={0x00,0x0E,0x00,0x00,0x00,0x1F,0x00,0x00};//字符二
uchar code table6[]={0x0E,0x00,0x00,0x0E,0x00,0x00,0x1F,0x00};//字符三
uchar code table7[]={0x1F,0x11,0x15,0x15,0x1F,0x11,0x1F,0x00};//字符四
uchar code table8[]={0x1E,0x08,0x08,0x1E,0x0A,0x0A,0x1F,0x00};//字符五
uchar code table9[]={0x08,0x1F,0x12,0x0F,0x0A,0x1F,0x02,0x00};//字符年
uchar code table10[]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00};//字符月
uchar code table11[]={0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F,0x00};//字符日
uchar code table12[]={0x04,0x1F,0x0A,0x1F,0x04,0x1F,0x15,0x00};//字符新左半部
uchar code table13[]={0x1F,0x10,0x10,0x1F,0x12,0x12,0x12,0x00};//字符新右半部


主程序:
void main()
{
uchar m;
init_LCD();
delayms(10);
write_LCD_Command(0x40); //寫命令
for(m=0;m<8;m++)
write_LCD_data(table1[m]); //將代碼寫入CGRAM中
write_LCD_Command(0x80); //設(shè)定顯示位置
write_LCD_data(0); //顯示第1個自定義字符
while(1);
}


關(guān)鍵詞: LCD1602自定義字

評論


技術(shù)專區(qū)

關(guān)閉