手里的LCD12864(带字库)用的好好的,突然出现乱码! 于是写了个测试程序,发现显示的汉字不对啊!程序写的是“无”,显示出来的是个 “线” 字这是个什么情况?
单片机源程序如下:
#include<STC89c58RC.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P1^2; //片选信号
sbit rw=P1^1; //液晶读写
sbit en=P1^0; //液晶使能
uchar code table_10[]= "无"; //
// uchar code table_10[]= { 0xCE, 0xDE };
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay_us(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
void write_comm(uchar comm)//LED写指令
{
delay_us(10);
rs=0;
rw=0;
en=1;
delay_us(10);
P0=comm;
delay_us(10);
en=0;
}
void write_dat(uchar dat)//LED写数据
{
delay_us(10);
rs=1;
rw=0;
en=1;
delay_us(10);
P0=dat;
delay_us(10);
en=0;
}
void init_LED()//LED初始化
{
rs=0;
rw=0;
en=1;
write_comm(0x30);
delay_us(10);
write_comm(0x0c);
delay_us(10);
write_comm(0x01);
}
void main() //显示菜单
{
uchar i;
init_LED();//LED初始化
// write_comm(0x80);
for(i=0;i<2;i++)
{
write_dat(table_10[ i]); [ i]
}
delay(100);
}
|