LCD12864带中文字库图形显示单片机程序多图.docx
《LCD12864带中文字库图形显示单片机程序多图.docx》由会员分享,可在线阅读,更多相关《LCD12864带中文字库图形显示单片机程序多图.docx(6页珍藏版)》请在冰豆网上搜索。
![LCD12864带中文字库图形显示单片机程序多图.docx](https://file1.bdocx.com/fileroot1/2022-11/21/f4ee5492-7198-4142-962b-20973999f26b/f4ee5492-7198-4142-962b-20973999f26b1.gif)
LCD12864带中文字库图形显示单片机程序多图
LCD12864带中文字库图形显示-单片机程序(多图)
代码:
#include;
#defineucharunsignedchar
sbitrs=P2^2;//写指令/数据
sbitrw=P2^3;//读状态/写
sbite=P2^4;//使能端
sbitpsb=P2^5;//串/并输入
//校徽
unsignedcharcodeimage[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x1F,0xFF,0x80,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0xFC,0xFF,0xF8,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x07,0xF4,0xFC,0x7E,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x0D,0xF0,0xFC,0xFF,0x80,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x13,0xF0,0x78,0x7F,0xC0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x75,0xF7,0xFF,0xFC,0xE0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0xF8,0xF8,0x00,0xF9,0x78,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x01,0xFD,0xCF,0xFF,0x1E,0xFC,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x03,0xFA,0x3F,0xFF,0x66,0xFE,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x07,0xFD,0xFF,0xFD,0x79,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x0E,0xF3,0xFF,0xFA,0xFE,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x18,0x2F,0xFF,0xF0,0xFF,0x69,0x80,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x3C,0xDF,0xFF,0xD5,0xFF,0xA3,0xC0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x3E,0xBF,0xFF,0x93,0xFF,0xDF,0xE0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x7F,0x7F,0xFF,0x9F,0xFF,0xEF,0xE0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x7F,0x7E,0x07,0x9F,0x07,0xF7,0xF0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0xFE,0xFF,0x00,0x00,0x0F,0xF3,0xF0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0xFD,0xFF,0x80,0x00,0x1F,0xFB,0xF8,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0xFD,0xFF,0xE0,0x00,0x3F,0xFD,0xF8,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0xFB,0xF9,0xE0,0x00,0x79,0xFD,0xFC,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0xFB,0xFC,0x10,0x00,0x81,0xFD,0xFC,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0xFB,0xFE,0x00,0x02,0x03,0xFE,0xFC,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0xF7,0xFE,0x00,0x00,0x07,0xFE,0xFC,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0xF7,0xFF,0x00,0x08,0x0F,0xFE,0xFE,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0xF7,0xF0,0x40,0xF8,0x10,0x7E,0xFE,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0xF7,0xF0,0x00,0x00,0x00,0xFF,0x7E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x07,0xF7,0xFC,0x00,0x00,0x01,0xFF,0x7E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x06,0x37,0xFE,0x00,0x00,0x07,0xFF,0x72,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x06,0x77,0xFF,0x80,0x00,0x0F,0xFF,0x5E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x07,0xF7,0xF3,0xE0,0x00,0x7D,0xFF,0x7E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x06,0x37,0xFC,0x7F,0x07,0xE1,0xFF,0x5E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x02,0xF7,0xFE,0xBF,0x07,0xCB,0xFF,0xC6,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0xF7,0xFC,0x1E,0x06,0x1F,0xFE,0xFE,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x02,0x37,0xFD,0x0F,0xD9,0x1F,0xFE,0xC4,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0xFB,0xFE,0x82,0x80,0x3F,0xFE,0xF4,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0x1B,0xFE,0x80,0x00,0x3F,0xFE,0xEC,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0xFB,0xFF,0xC0,0x00,0xFF,0xFD,0xFC,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0xD9,0xFF,0xA8,0x0B,0xFF,0xFD,0xBC,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0xED,0xFF,0xFC,0x0B,0xFF,0xFB,0xE8,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0xEC,0xFF,0xFE,0x8F,0xFF,0xFB,0x28,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0xCE,0xFF,0xFF,0xDF,0xFF,0xF7,0xD0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x73,0x7F,0xFF,0xDF,0xFF,0xE7,0x30,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x6F,0xBF,0xFE,0x8B,0x23,0xEE,0xE0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x37,0x9F,0xED,0xFF,0xFF,0xDD,0xC0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x1F,0xCF,0xBF,0xFF,0xFD,0xBA,0xC0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x1E,0xE5,0x7F,0xFF,0xFE,0x79,0x80,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x0D,0x7B,0xFE,0x63,0xFC,0xDB,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x06,0x3C,0xFE,0x27,0xF3,0xFE,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x03,0x5F,0x1F,0xFF,0xCF,0x5C,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x01,0xEB,0xE3,0xFC,0x3C,0x78,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0xDB,0xFC,0x03,0xFB,0x30,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x3E,0xDF,0xFF,0x9D,0xE0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x1F,0xBB,0xFC,0xFD,0xC0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x0F,0xAA,0xBE,0xBF,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x03,0xEE,0xBE,0xBC,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x7E,0x9F,0xF0,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x0F,0xFF,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
voiddelay(inti)
{
ucharj;
while(i--)
for(j=110;j>;0;j--);
}
//读状态,检测忙
voidcheck_busy()
{
rs=0;
rw=1;
e=1;
P0=0xff;
while((P0&0x80)==0x80);
e=0;
}
//写指令
voidwrite_com(ucharcom)
{
check_busy();
rs=0;
rw=0;
e=1;
P0=com;
delay(5);
e=0;
delay(5);
}
//写数据
voidwrite_data(uchar_data)
{
check_busy();
rs=1;
rw=0;
e=1;
P0=_data;
delay(5);
e=0;
delay(5);
}
//初始化lcd
voidinit()
{
rw=0;
psb=1;//选择为并行输入
delay(50);
write_com(0x30);//基本指令操作
delay(5);
write_com(0x0c);//显示开,关光标
delay(5);
write_com(0x06);//写入一个字符,地址加1
delay(5);
write_com(0x01);
delay(5);
}
voidwstring(uchar*str)
{
while(*str)
{
write_data(*str);
delay(5);
str++;
}
}
voidlcd_draw(unsignedcharcode*pic)
{
unsignedi,j,k;
write_com(0x34);//扩充指令集
for(i=0;i
绘图更好的一个算法:
(可以绘分块,也可绘全屏)
voidlcd_block(charnum,charflag)
{
//x1:
列数,yl:
行数,x:
列坐标,
//sx:
该图形距离第一幅图的距离
//此函数也可以用来画全屏图
unsignedi,j,k,xl,yl,x,y,sx;
unsignedcharcode*pic;
switch(num)
{
case0:
j=0;pic=image0;xl=5;yl=12;sx=3;x=0x80|sx;break;
case1:
j=13;pic=image4;xl=4;yl=37;sx=0;x=0x80|sx;break;
case2:
j=13;pic=image4;xl=4;yl=37;sx=3;x=0x80|sx;break;
case3:
j=13;pic=image4;xl=4;yl=12;sx=6;x=0x80|sx;break;
case4:
j=7;pic=image4;xl=4;yl=31;sx=0;x=0x88|sx;break;
case5:
j=7;pic=image5;xl=4;yl=31;sx=3;x=0x88|sx;break;
case6:
j=7;pic=image5;xl=4;yl=31;sx=6;x=0x88|sx;break;
case7:
j=0;pic=image7;xl=16;yl=64;sx=0;x=0x80|sx;break;
}
write_com(0x34);
for(j;j;31){y=j-32;x=0x88|sx;}
elsey=j;
write_com(0x80+y);
write_com(x);
for(k=0;k{
if(flag)
write_data(*pic++);
elsewrite_data(~(*pic++));
}
}
/*for(j;j{
write_com(0x80+j);
write_com(x);
for(k=0;k{
if(flag)
write_data(*pic++);
elsewrite_data(~(*pic++));
}
}*/
write_com(0x36);//显示图形
write_com(0x30);//基本指令集
}