当前位置:首页 > 单片机 > 单片机
[导读]#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;//使数据总线处于高电平

LCD1602_RS=0;//选择命令模式

LCD1602_RW=1;//选择读

do{

LCD1602_E=1;//开启液晶读写使能

state=LCD1602_DB;//从数据总线上读取状态字

LCD1602_E=0;//关闭液晶读写使能

}while(state&0x80);//重复直到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!=''){

LCDWrData(*pch++);

}

}

voidinitLCD1602(){

LCDWrCmd(0x38);//16*2显示,5*7点阵,8位数据接口

LCDWrCmd(0x0C);//显示器开,光标关闭

LCDWrCmd(0x06);//文字不动,地址自动加1

LCDWrCmd(0x01);//清屏

}



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭