當前位置:首頁 > 單片機 > 單片機
[導讀]#include#defineLCD1602_DBP0typedefunsignedcharuchar;typedefunsignedintuint;typedefunsignedlongulong;sbitLCD1602_RS=P1^0;sbitLCD1602_RW=P1^1;sbitLCD1602_E=P1^5;voidinitLCD1602();voidLCDShowStr(uchari,u

#include

#defineLCD1602_DBP0

typedefunsignedcharuchar;

typedefunsignedintuint;

typedefunsignedlongulong;

sbitLCD1602_RS=P1^0;

sbitLCD1602_RW=P1^1;

sbitLCD1602_E=P1^5;

voidinitLCD1602();

voidLCDShowStr(uchari,ucharj,uchar*pCh);

voidLCDWaitRdy();

voidLCDWrCmd(ucharcmd);

voidLCDWrData(uchardat);

voidLCDSetCursor(uchari,ucharj);

voidmain(){

initLCD1602();

LCDShowStr(0,1,"Helloworld!");

LCDShowStr(1,1,"ChasingWaves");

while(1);

}

voidLCDWaitRdy(){

ucharstate;

LCD1602_DB=0xFF;//使數(shù)據(jù)總線處于高電平

LCD1602_RS=0;//選擇命令模式

LCD1602_RW=1;//選擇讀

do{

LCD1602_E=1;//開啟液晶讀寫使能

state=LCD1602_DB;//從數(shù)據(jù)總線上讀取狀態(tài)字

LCD1602_E=0;//關(guān)閉液晶讀寫使能

}while(state&0x80);//重復(fù)直到bit7==0為止(不忙了)

}

voidLCDWrCmd(ucharcmd){

LCDWaitRdy();

LCD1602_RS=0;

LCD1602_RW=0;

LCD1602_DB=cmd;

LCD1602_E=1;

LCD1602_E=0;

}

voidLCDWrData(uchardat){

LCDWaitRdy();

LCD1602_RS=1;

LCD1602_RW=0;

LCD1602_DB=dat;

LCD1602_E=1;

LCD1602_E=0;

}

voidLCDSetCursor(uchari,ucharj){

ucharaddr=(i==0?j:0x40+j);

LCDWrCmd(addr|0x80);

}

voidLCDShowStr(uchari,ucharj,uchar*pch){

LCDSetCursor(i,j);

while(*pch!='