你的无法驱动是什么意思,是不显示吗?有没有背光.是不是调一下对比度看看. 液晶屏的显示都是有对比度的。如果对比度太低的话,所显的字是根本看一到头的。你看一下液晶厂家的说明。有一个脚是对比度调节脚,它在电路板上是接到一个可调电阻上的,这个电阻一般是一个蓝色的小长方体,顶端带一个可旋转的小调节螺丝。你在你的板子上找一下看有没有。如果有,请试着调一下,祝你成功。
你的液晶是随着板子一起买回来的吗?如果是卖家配套的,连接绝对不成问题。
如果是自己配的,要考虑连接问题。看你的程序对应的液晶的引脚对不对。程序中是 P1 实际连接的是不是P1。
还有,看一下你用的晶振频率是多少的。延时程序的时间是不是正确,可能是时序不对。
提供个思路
那就是硬件问题,检查下LCD电源接好没有,是不是坏的,还有就是引脚连接是否正确。。。
#include
#define uint unsigned int
#define uchar unsigned char
uchar table[]={"I LOVE YOU"};
uchar table1[]={"wang weiyu"};
sbit rs=P2^0;//定义端口
sbit lcden=P2^2;
uchar num;
void delay(uchar z) //延长时间程序
{
uchar y,x;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
void write_com(uchar com) // 液晶写命令函数
{
rs=0;
P1=com;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
void write_data(uchar da) //液晶写数据函数
{
rs=1;
P1=da;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
void init() //液晶初始化,
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void main() //主函数
{
init();
write_com(0x80); //第一行显示
for(num=0;num<10;num++)
{
write_data(table[num]);
delay(1);
}
write_com(0x80+0x40); //第二行显示
for(num=0;num<10;num++)
{
write_data(table1[num]);
delay(10);
}
while(1);
}
这个程序已经用Proteus仿真过了,没有问题。但是就是实际操作的时候。用淘宝买的学习扳子控制不了。怎么回事、?
问题补充:我的数据线连接没有问题,液晶i1602也是好的(在别人那里测试过的)。
我的那个1602背光灯是亮的,但是没有字符