1602 不能显示字符的问题咨询
时间:10-02
整理:3721RD
点击:
我自己做了一个STC单片机的1602显示的板子,等元器件焊接好了之后,1602显示出了一点问题。值闪烁光标,不显示字符了。 我就对照了开发板量了一下他的管脚电压。
那个一个板子的RW是4.96 RS E是0.02 VO是0.89, 没有问题的板子的RS 为4.96 RW E 是0.03 VO是1.28 其它的都一样 这个有什么问题没有。 还有一个我两个板子的RW 和E管脚定义的接口不一样,但是我烧录的时候都在软件里面给改过来了的。
这个是什么原因呢,知道的同学麻烦给我讲一讲 谢谢
这个是我画的原理图文件
这个是烧录程序后的结果,只有一个光标在闪烁 。之前应该有一个数字 1 显示的
#include<reg51.h> //头文件
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P2^5;
sbit lcdrs=P2^6;
sbit lcdrw = P2^7;
/*******************************************************************/
/* */
/* 延时子程序 20M晶振 1MS */
/* */
/*******************************************************************/
void delay(uint time)
{
int a,y;
for(a=time;a>0;a--)
for(y=206;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
lcdrw=0;
lcden=0;
delay(5);
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
lcdrw=0;
lcden=0;
delay(5);
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
delay(5);
lcden=0;
write_com(0x38);
delay(1);
write_com(0x0f);
delay(1);
write_com(0x06);
delay(1);
write_com(0x01);
delay(1);
}
void main()
{
init();
delay(10);
write_com(0x80+0x43);
write_data('1');
while(1);
}
这个是我写的程序 本应该在光标前面显示一个数字 1的 但是没有显示
我把这个程序烧到开发板上面就没有问题
检查一下,原理图上,液晶引脚4 与5 RS RW你弄反了,可以在定义里交换一下这两个命令的次序试试。