51單片機(jī)學(xué)習(xí)筆記,操作1602液晶
TX-1C板
操作并行模式的1602液晶
液晶第1,2腳是gnd和vcc
第3腳是對(duì)比度調(diào)節(jié)
第4腳是數(shù)據(jù)/指令選擇端RS
第5腳是讀寫選擇端R/W,我們這次只寫不讀,故直接接地
第6腳是讀寫使能EN
第7到14腳是數(shù)據(jù)口,我們接STC89C52RC的P0口
第15,16腳是背光源
最終液晶顯示
Tom is playing the TNT game!
C代碼
#include
#include"MY51.H"
voidwrite_data(uchardataValue);//寫數(shù)據(jù)
voidwrite_cmd(ucharcmdValue);//寫指令
ucharcodetableLCD1[]={"Tomisplaying"};
ucharcodetableLCD2[]={"theTNTgame!"};
voidlcdInit()//初始化函數(shù)
{
dula=0;//
wela=0;//防止數(shù)碼管誤顯,浪費(fèi)電流
lcdEN=low;//給高脈沖之前的狀態(tài)
lcdRS=high;//初始給高電平,其實(shí)上電默認(rèn)也是高電平
write_cmd(0x38);//液晶顯示模式初始化
write_cmd(0x0c);//打開液晶,不顯示光標(biāo),光標(biāo)不閃爍
write_cmd(0x06);//地址指針加加,且光標(biāo)加加
write_cmd(0x01);//液晶數(shù)據(jù)指針和顯示清零
}
voidwrite_cmd(ucharcmdValue)//寫入指令
{
lcdRS=low;//剛上電時(shí)是高電平,低電平時(shí)是指令模式
P0=cmdValue;
delayms(1);
lcdEN=high;//一個(gè)高脈沖把數(shù)據(jù)讀走
delayms(1);
lcdEN=low;
}
voidwrite_data(uchardataValue)//寫入數(shù)據(jù)
{
lcdRS=high;//高電平是數(shù)據(jù)模式
P0=dataValue;
delayms(1);
lcdEN=high;//給一個(gè)高脈沖
delayms(1);
lcdEN=low;
}
voidlcdShow(uchar*pValue)//液晶顯示函數(shù)
{
while(*pValue!='