单片机LCD显示不出来

来源:百度知道 编辑:UC知道 时间:2024/06/10 14:25:43
大家好,我写了一个简单的程序来驱动LCD显示的,但怎么都显示不出来,初学者,请哪位高手帮忙给看看,十分感谢。
#include<reg51.h>
#define lcd P1
sbit rs=P3^5;
sbit rw=P3^6;
sbit e=P3^7;
char line[]="My name is jiajia";
void check_bf();
void write_inst(char inst)
{
rs=0;
rw=0;
e=1;
lcd=inst;
e=0;
check_bf();
}
void write_character(char chara)
{
rs=1;
rw=0;
e=1;
lcd=chara;
e=0;
check_bf();
}
void check_bf()
{
char i,x=0x80;
while(x&0x80)
{
rs=0;
rw=0;
e=1;
x=lcd;
e=0;
for(i=0;i<10;i++);
}
}
void delay(int x)
{
int i,j;
for(i=1;i<x;i++)
{
for(j=1;j<120;j++);
}
}
void init_lcd()
{
write_inst(0x30);
write_inst(0x30);
write_inst(0x30);
write_inst(0x38);
write_inst(0x08);
write_inst

其中lcd的D0~D7与单片机的P1口相连 ?
那三个控制端呢?

对比度调了么?

LCD用的是1602还是12864啊,我以前用12864,结果负压不够,液晶也显示不出来,

能显示的LCD驱动是这样的,供参考
另,LCD要初始化;

void write_com(unsigned char cmdcode)
{

RS12=0; //RW=0;
Lcd_Bus=cmdcode;
delay(1);
E12=1;
delay(2);
E12=0;
}

/*-------------------写数据到LCD----------------------------*/

void write_data(unsigned char Dispdata)
{
RS12=1; //RW=0;
Lcd_Bus=Dispdata;
delay(1);
E12=1;
delay(2);
E12=0;
}