89S52配套LCD1602相关问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 04:25:26
89S52连接着1602烧程序,用USB接口烧的时候,烧完LCD正常显示。但是只要掉电,或者更换电源,LCD上就会出现乱码,且只显示上面一行,第一行有字符的地方基本正常显示,但是小写会变成大写,而符号就变成乱码。
问题可能出在电源上,因为那块1602的电压为5V+ -5%,而我们没找到标准5V或者标准9V电源,对电源问题很苦恼。希望高手能给出解决方案。
LCD上面程序绝对没有错误。我想知道下烧程序的过程,希望能给的详细点,烧程序的时候单片机电源开不开,因为烧程序的时候是用USB供电的,而且我问卖液晶的人,他说烧程序的时候不能接LCD,但是我不接的话,一样不能正常显示。

你参考一下这个:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit e=P0^7;
sbit rs=P0^6; //连时要接上拉电阻
//r/~w可以直接接地
uchar code table[]=“0123456789” //10个

//--------------------------
// 延时
//--------------------------
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//---------------------------

//---------------------------
//1602 写命令函数
//---------------------------
void lcd_wcom(uchar com)
{
rs=0;
P2=com;
delay(5);
e=1;
e=0;
}
//----------------------------

//----------------------------
//1602写数据函数
//----------------------------
void lcd_wdat(uchar dat)
{
rs=1;
P2=dat;
delay(5);
e=1;
e=0;
}
//---------------------------

//---------------------------
//1602初始化函数