跟我學(xué)51單片機(jī)(八)——圖型帶字庫(kù)液晶128×64
液晶初始化函數(shù):初始化液晶,設(shè)置液晶的工作方式等。
void LCD_init(void)
{
RST=0;
//RST管腳置低,復(fù)位液晶
LCD_delay();
//延時(shí)一段時(shí)間,以完全復(fù)位
RST=1;
//RST管腳置高,復(fù)位完成
PSB=1;
//PSB管腳置高,并行工作模式
LCD_en_command(0x30);
//設(shè)置8位并數(shù)據(jù)格式
LCD_en_command(0x0c);
//開(kāi)顯示器
LCD_en_command(0x80);
//顯示起始地址
CLEARSCREEN();
//對(duì)液晶進(jìn)行清屏
}
/*設(shè)置顯示地址函數(shù):
參數(shù):x取值范圍:0~7;y取值范圍:1~4 */
void LCD_set_xy( uchar x, uchar y )
{
switch(y) //判斷是哪一行顯示
{
case 1:LCD_en_command(0x80 + x);break;
//如果是第一行,地址加0x80
case 2:LCD_en_command(0x90 + x);break;
//如果是第二行,地址加0x90
case 3:LCD_en_command(0x88 + x);break;
//如果是第三行,地址加0x88
case 4:LCD_en_command(0x98 + x);break;
//如果是第四行,地址加0x98
default:break; //否則退出
}
}
/*寫(xiě)字符串函數(shù):向液晶寫(xiě)入字符串
參數(shù):x-列坐標(biāo),y-行坐標(biāo),*s-將要顯示的字符串?dāng)?shù)
據(jù)*/
void LCD_write_string(uchar x, uchar y, uchar *s)
{
LCD_set_xy( x, y );
//先設(shè)置要顯示的地址
while (*s) //如果當(dāng)前字符沒(méi)有結(jié)束
{
LCD_en_dat(*s); //顯示當(dāng)前字符
s ++; //指向下一個(gè)字符
}
}
四、調(diào)試要點(diǎn)與實(shí)驗(yàn)現(xiàn)象
接好硬件(特別是連接好128×64液晶),通過(guò)冷啟動(dòng)方式將程序所生成的。hex文件下載到單片機(jī)運(yùn)行后,復(fù)位單片機(jī),然后就可在學(xué)習(xí)板上看到12864液晶上顯示的“128×64液晶測(cè)試”等字符。
調(diào)試128×64液晶時(shí)應(yīng)注意的是,對(duì)于液晶的讀忙函數(shù)如果用一段延時(shí)代替的話(huà),一定要足夠長(zhǎng),不同128×64液晶的所需要的時(shí)間可能稍許不同,這也是導(dǎo)致液晶無(wú)顯示,出亂碼等的常見(jiàn)原因。此外,與前講介紹的1602液晶相似,對(duì)于128×64液晶上的V0管腳,作為液晶顯示器對(duì)比度調(diào)整端,其接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,因此可通過(guò)一個(gè)電位器實(shí)現(xiàn)對(duì)其的電壓調(diào)整,前文提到,將其調(diào)節(jié)到3.6~3.7V 時(shí)對(duì)比度效果最好。
五、總結(jié)
本講簡(jiǎn)要介紹了帶字庫(kù)128×64液晶的工作原理并給出了驅(qū)動(dòng)實(shí)例,在液晶的操作時(shí)序一定要嚴(yán)格,需參考其數(shù)據(jù)手冊(cè)或規(guī)格書(shū)。
對(duì)于128×64液晶,如果在實(shí)際應(yīng)用中僅使用并口或串口通信模式,可將PSB(第15腳)接固定電平,并口時(shí)接高電平;串口時(shí)接低電平,從而節(jié)省控制管腳。
128×64液晶的內(nèi)部接有上電復(fù)位電路,因此可以將RESET(第17腳)懸空或者接到電源正上,以節(jié)省控制管腳。
128×64液晶內(nèi)部帶有豐富的DDRAM(文本顯示RAM)和GDRAM(繪圖RAM),本文只是對(duì)其驅(qū)動(dòng)方法經(jīng)行了介紹,但具體如何實(shí)現(xiàn)等需要讀者自己實(shí)踐。
液晶的顯示對(duì)后續(xù)程序的輔助作業(yè)很大,可以用它來(lái)顯示一些調(diào)試信息或者測(cè)量數(shù)據(jù)等非常方便,下講就將結(jié)合液晶顯示來(lái)實(shí)現(xiàn)一個(gè)單片機(jī)的簡(jiǎn)易頻率計(jì),敬請(qǐng)期待。
評(píng)論