欢迎来到天天文库
浏览记录
ID:49755409
大小:33.00 KB
页数:11页
时间:2020-03-04
《液晶屏(带字库)51单片机3线串口驱动程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.#includetypedefunsignedcharuint8;typedefunsignedintuint16;typedefunsignedlonguitn32;sbitCS=P1^0;//片选信号引脚sbitSDA=P1^1;//数据线sbitSCK=P1^2;//串行时钟线//sbitRST=P1^3;//复位引脚//sbitPSB=P1^4;//串并控制引脚codeuint8strint1[]="ILoveYou!";/*voiddelay5ms(void)//误差0us{unsignedchara,b;for(b=185;b>0;b--)for(a
2、=12;a>0;a--);}*///发送一个字节voidSend_Byte(uint8dat){Word资料.uint8i;SCK=0;for(i=0;i<8;i++){SDA=dat&0x80;SCK=1;dat<<=1;SCK=0;}}//读取一个字节数据uint8Read_Byte(void){uint8i;uint16byte=0;SCK=0;for(i=0;i<16;i++){byte<<=1;SCK=1;if(SDA)byte
3、=0x0001;SCK=0;}Word资料.byte=((byte>>4)
4、(byte>>8))&0x00ff;return((uint8)(b
5、yte));}//读忙标志voidRead_Busy(void){uint8temp;CS=1;do{Send_Byte(0xfc);//发送读命令temp=Read_Byte();//读取数据}while(temp&0x80);CS=0;}//发送命令voidWrite_Cmd(uint8cmd){uint8temph=0;uint8templ=0;//制作发送命令格式Word资料.temph=cmd&0xf0;templ=(cmd&0x0f)<<4;Read_Busy();CS=1;Send_Byte(0XF8);//发送命令命令//发送命令Send_Byte(temph);S
6、end_Byte(templ);CS=0;}//发送数据voidWrite_Dat(uint8dat){uint8temph=0;uint8templ=0;//制作发送数据格式temph=dat&0xf0;templ=(dat&0x0f)<<4;Read_Busy();Word资料.CS=1;Send_Byte(0XFA);//发送数据命令Send_Byte(temph);//发送数据Send_Byte(templ);CS=0;}//在指定位置显示半字宽字符voidDis_HCGROM(uint8x,uint8y,uint8dat){uint8addr;switch(y){case
7、0:addr=0x80+x;break;case1:addr=0x90+x;break;case2:addr=0x88+x;break;case3:addr=0x98+x;break;default:break;}Write_Cmd(addr);Write_Dat(dat);}Word资料.//指定位置显示字符串voidDis_String(uint8x,uint8y,uint8len,uint8*dat){uint8addr,i;switch(y){case0:addr=0x80+x;break;case1:addr=0x90+x;break;case2:addr=0x88+x;
8、break;case3:addr=0x98+x;break;default:break;}Write_Cmd(addr);for(i=0;i9、te_Cmd(addr);Write_Dat(dat/100%10+'0');Write_Dat(dat/10%10+'0');Write_Dat(dat/1%10+'0');}//制定位置显示16位无符号数字voidDis_UNum16(uint8x,uint8y,uint8dat){uint8addr;switch(y){case0:addr=0x80+x;break;case1:addr=0x90+x;break;case2:addr=0x88+x;break;
9、te_Cmd(addr);Write_Dat(dat/100%10+'0');Write_Dat(dat/10%10+'0');Write_Dat(dat/1%10+'0');}//制定位置显示16位无符号数字voidDis_UNum16(uint8x,uint8y,uint8dat){uint8addr;switch(y){case0:addr=0x80+x;break;case1:addr=0x90+x;break;case2:addr=0x88+x;break;
此文档下载收益归作者所有