新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 液晶1602/1620/1604的問題及解答

液晶1602/1620/1604的問題及解答

作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
1.M16C20板子在重新啟動后,寫入的顯示程序只能顯示一行

回答:發(fā)現(xiàn)每次重新啟動后,需要通過指令給板子一個電壓穩(wěn)定到2,7V到4,5V之間的時間.
解決方法-在main入口多進行一次或者多次初始化程序,為了穩(wěn)定電壓,也為了確定初始化指令確實被執(zhí)行
2.指令間的延時不同,有時候lcd不會顯示字符.
回答:指令間的時間延時長短必須有,對于單指令系統(tǒng),長短沒有區(qū)別,但是如果往lcd上面寫數(shù)據(jù)的時候,因為是5*10個點陣,這個期間一直處于忙得狀態(tài),所以需要比較長的時間.
解決方法-a.加長延時時間b.寫一個檢查忙得程序
3.顯示一個流水字符程序在lcd上的時候,光標老是在第一行第一個字符上停留。
回答:清屏指令(0001H)的原因,現(xiàn)在沒有解決
解決方法-重新寫一個清屏程序,把2*16個字符設(shè)定成空字符。
4.Lcd初始化的時候,不是顯示2行,老是顯示1行
回答:有幾種情況應該考慮
a. 因為lcd打開電源以后默認的是8位接口(DB0~BD7),所以要先寫入3次03H命令,這個時候因為以8位處理,所以中間要加入一定延長時間。因為使用的是4位數(shù)據(jù)指令,所以然后要寫入一次02H指令,防止沒有寫入,不加延時再執(zhí)行一次02H,這個時候有2種可能,一種以4bit處理,一種是以8bit處理。緊接著開始進行l(wèi)cd的初始化,在進行初始化前要加入延時。
delay_1(100);
writeini(0x03);
delay_1(50);
writeini(0x03);
delay_1(10);
writeini(0x03);
delay_1(10);
writeini(0x02);
writeini(0x02);
delay_1(50);
lcd_writeCommand(LCD_SETDISPLAY);
b、啟動電壓到電壓穩(wěn)定,需要一定的時間,這個時間要在初始化程序中體現(xiàn)出來。
在主程序中,可以利用2次初始化,來滿足這段時間。
void main()
{
unsigned char i,address1,address2,address22;
for(i = 0;i < 80;i++)
for(i = 0;i < 80;i++)

本文引用地址:http://butianyuan.cn/article/201611/322197.htm

ini_sys();
ini_sys();
ini_sys();

5.練習了往lcd1602中寫入自己的字符圖形并且輸出,發(fā)現(xiàn)沒有初始化的字符行列卻出現(xiàn)了字符。
回答:在重新往CGRAM中寫字符的時候,應該對5*8行列或者5”10行列的每一行進行初始化,否則沒有初始化的地方就會出現(xiàn)亂碼,在最后一行的光標位應該全部初始化為0。

附:LCD1602液晶(驅(qū)動器為HD44780)學習總結(jié)
1.能夠區(qū)分清楚DDRAM與CGROM,1602使用的字符存儲器是EEPROM,而不是手冊中說的EPROM。
2.HD44780帶有192字符的字符庫,可以自定義8個5*8的字符
3.在寫程序的時候要嚴格按照”指令-----數(shù)據(jù)”的格式考慮
4.通過學習建立了分控制位和數(shù)據(jù)位的概念
5.掌握了讀懂時序圖的基本方法,寫程序的時候應該嚴格參照時序圖
6.Character code與character address與character pattern是不同的概念,以后要區(qū)分清楚
7.Lcd有14個端口可與單片機連接,8個數(shù)據(jù)位,3個控制位,剩下3個為電源,地,調(diào)節(jié)電源。

6.LCD1602/1604的行地址

(1)LCD1602:

第一行:0x00+(0x80)

第二行:0x40+(0x80)

(2)LCD1604:

第一行:0x00+(0x80)

第二行:0x40+(0x80)

第三行:0x10+(0x80)

第四行:0x50+(0x80)



關(guān)鍵詞: 液晶問題及解

評論


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

關(guān)閉