|
#include
#define uchar unsigned char
sbit rs=P3^5;
sbit rw=P3^6;
sbit e=P3^4;
sbit psb=P3^7;
void delayms(uchar delay) //延时 24m晶振
{
uchar i,j;
for(i=delay;i>0;i--)
for(j=255;j>0;j--);
}
void wdata(uchar w_data) //写数据
{
uchar date;
rw=1;
rs=0;
loop: P0=0xff;
e=1;
date=P0;
e=0;
if(date&0x80)
goto loop;
rw=0;
rs=1;
e=1;
P0=w_data;
e=0;
}
void wcom(uchar c_data) //写指令
{
uchar date;
rw=1;
rs=0;
loop: P0=0xff;
e=1;
date=P0;
e=0;
if(date&0x80)
goto loop;
rw=0;
rs=0;
e=1;
P0=c_data;
e=0;
}
void lcd_init()
{
P1_4=0;
P1_5=0;
P1_6=0;
e=0;
psb=1;
delayms(200);
wcom(0x30);
wcom(0x10);
wcom(0x0c);
wcom(0x01);
}
void main()
{
lcd_init(); //12864初始化
wcom(0x34); // 写指令
wcom(0x80);
wcom(0x80);
wdata(0xff); // 写数据
wdata(0xff);
wcom(0x36);
wcom(0x30);
while(1);
}
为什么我用12864的绘图功能写了2个字节的数据但是屏幕会出现乱码呢 就是我写入得那两个字节不能正常的显示(时序没问题)
|
|