自己写了程序但是没办法让液晶屏显示东西出来,求各位指点我一下
# include <reg52.h>
# define uint unsigned int
# define uchar unsigned char
sbit RS=P2^6;
sbit RW=P2^5;
sbit E=P2^7;
sbit PSB=P3^2;
sbit RST=P3^4;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write(uint DI,uchar com) // 当DI=1时:写数据。 DI=0时:写命令
{
RS=DI;
RW=0;
E=1;
delay(5);
P0=com;
E=0;
}
void check_busy()
{
uint temp;
P0=0xff;
RS=0;
RW=1;
do
{
E=1;
temp=P0&0x80;
E=0;
}
while(temp);
}
void init()
{
/*delay(100);
PSB=1;
delay(1);
RST=0;
delay(100);
RST=1;
delay(100);
write(0,0x30);
delay(100);
write(0,0x30);
delay(5);
write(0,0x01);
delay(5);
write(0,0x06);
delay(5);
write(0,0x0c);*/
delay(40); //大于40MS的延时程序
PSB=1; //设置为8BIT并口工作模式
delay(1); //延时
RST=0; //复位
delay(1); //延时
RST=1; //复位置高
delay(10);
write(0,0x30); //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :graphic display OFF
delay(100); //大于100uS的延时程序
write(0,0x30); //Function Set
delay(37); ////大于37uS的延时程序
write(0,0x08); //Display on Control
delay(100); //大于100uS的延时程序
write(0,0x10); //Cursor Display Control光标设置
delay(100); //大于100uS的延时程序
write(0,0x0C); //Display Control,D=1,显示开
delay(100); //大于100uS的延时程序
write(0,0x01); //Display Clear
delay(10); //大于10mS的延时程序
write(0,0x06); //Enry Mode Set,光标从右向左加1位移动
delay(100); //大于100uS的延时程序
}
void main()
{
init();
write(0,0x80);
write(1,'a');
while(1);
}
# include <reg52.h>
# define uint unsigned int
# define uchar unsigned char
sbit RS=P2^6;
sbit RW=P2^5;
sbit E=P2^7;
sbit PSB=P3^2;
sbit RST=P3^4;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write(uint DI,uchar com) // 当DI=1时:写数据。 DI=0时:写命令
{
RS=DI;
RW=0;
E=1;
delay(5);
P0=com;
E=0;
}
void check_busy()
{
uint temp;
P0=0xff;
RS=0;
RW=1;
do
{
E=1;
temp=P0&0x80;
E=0;
}
while(temp);
}
void init()
{
/*delay(100);
PSB=1;
delay(1);
RST=0;
delay(100);
RST=1;
delay(100);
write(0,0x30);
delay(100);
write(0,0x30);
delay(5);
write(0,0x01);
delay(5);
write(0,0x06);
delay(5);
write(0,0x0c);*/
delay(40); //大于40MS的延时程序
PSB=1; //设置为8BIT并口工作模式
delay(1); //延时
RST=0; //复位
delay(1); //延时
RST=1; //复位置高
delay(10);
write(0,0x30); //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :graphic display OFF
delay(100); //大于100uS的延时程序
write(0,0x30); //Function Set
delay(37); ////大于37uS的延时程序
write(0,0x08); //Display on Control
delay(100); //大于100uS的延时程序
write(0,0x10); //Cursor Display Control光标设置
delay(100); //大于100uS的延时程序
write(0,0x0C); //Display Control,D=1,显示开
delay(100); //大于100uS的延时程序
write(0,0x01); //Display Clear
delay(10); //大于10mS的延时程序
write(0,0x06); //Enry Mode Set,光标从右向左加1位移动
delay(100); //大于100uS的延时程序
}
void main()
{
init();
write(0,0x80);
write(1,'a');
while(1);
}