12864液晶屏带字库51单片机3线串口驱动程序Word文档格式.docx
《12864液晶屏带字库51单片机3线串口驱动程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《12864液晶屏带字库51单片机3线串口驱动程序Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
codeuint8strint1[]="
ILoveYou!
"
;
/*voiddelay5ms(void)//误差0us
{
unsignedchara,b;
for(b=185;
b>
0;
b--)
for(a=12;
a>
a--);
}*/
//发送一个字节
voidSend_Byte(uint8dat)
uint8i;
SCK=0;
for(i=0;
i<
8;
i++)
{
SDA=dat&
0x80;
SCK=1;
dat<
<
=1;
SCK=0;
}
}
//读取一个字节数据
uint8Read_Byte(void)
uint16byte=0;
16;
byte<
if(SDA)
byte|=0x0001;
byte=((byte>
>
4)|(byte>
8))&
0x00ff;
return((uint8)(byte));
//读忙标志
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;
//制作发送命令格式
temph=cmd&
0xf0;
templ=(cmd&
0x0f)<
4;
Read_Busy();
Send_Byte(0XF8);
//发送命令命令
//发送命令
Send_Byte(temph);
Send_Byte(templ);
}
//发送数据
voidWrite_Dat(uint8dat)
//制作发送数据格式
temph=dat&
templ=(dat&
Send_Byte(0XFA);
//发送数据命令
//在指定位置显示半字宽字符
voidDis_HCGROM(uint8x,uint8y,uint8dat)
uint8addr;
switch(y)
case0:
addr=0x80+x;
break;
case1:
addr=0x90+x;
case2:
addr=0x88+x;
case3:
addr=0x98+x;
default:
Write_Cmd(addr);
Write_Dat(dat);
//指定位置显示字符串
voidDis_String(uint8x,uint8y,uint8len,uint8*dat)
uint8addr,i;
for(i=0;
i<
len;
Write_Dat(*dat++);
//制定位置显示8位无符号数字
voidDis_UNum8(uint8x,uint8y,uint8dat)
Write_Dat(dat/100%10+'
0'
);
Write_Dat(dat/10%10+'
Write_Dat(dat/1%10+'
//制定位置显示16位无符号数字
voidDis_UNum16(uint8x,uint8y,uint8dat)
Write_Dat(dat/10000%10+'
Write_Dat(dat/1000%10+'
//在指定位置显示汉字
//x范围:
0-7,y范围:
0-3
//dat:
汉字字形码
voidDis_GB(uint8x,uint8y,uint16dat)
Write_Dat((uint8)(dat>
8));
Write_Dat((uint8)(dat));
//LCD初始化
voidLCD_Init(void)
/*RST=0;
delay5ms();
RST=1;
PSB=0;
*/
Write_Cmd(0X30);
Write_Cmd(0X01);
Write_Cmd(0X02);
Write_Cmd(0X0C);
voidmain(void)
LCD_Init();
while
(1)
Dis_GB(0,0,0xc9b5);
Dis_HCGROM(1,0,0x03);
Dis_String(0,1,13,strint1);
Dis_UNum8(0,2,250);