|
手里的LCD12864(帶字庫)用的好好的,突然出現(xiàn)亂碼! 于是寫了個(gè)測試程序,發(fā)現(xiàn)顯示的漢字不對!程序?qū)懙氖恰盁o”,顯示出來的是個(gè) “線” 字這是個(gè)什么情況?
單片機(jī)源程序如下:
#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寫數(shù)據(jù)
{
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);
}
|
|