51单片机驱动1602c液晶显示屏复位的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:38:30
我用51单片机控制1602c液晶显示屏
程序烧进去后,能正常显示数据。但是复位后不能显示。多次按复位键,偶尔能显示出数据,但是再按一次就一样不能显示了。上电复位也一样不行。
小弟刚入门,各位大侠教下啊~~感激不尽

硬件电路没有问题,有正常显示的程序。全用IO口去驱动液晶的。
不是keil硬件仿真,是直接下载到单片机中。
实验板配有程序,显示,复位完全没有问题。

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]=" Welcome ";
uchar num;
sbit rw=P2^5;
sbit rs=P2^4;
sbit e=P2^6;
sbit p3_7=P3^7;

void delay(uint z)
{
uint x,y;
for(x=z;x<0;x--)
for(y=110;y<0;y--);
}

void wirte_com(uchar _com) //写指令函数
{
rs=0;
P0=_com;
delay(5);
e=1;
delay(5);
e=0;
}

void wirte_data(uchar _data) //写数据函数
{
rs=1;
P0=_data;
delay(5);
e=1;
delay(5);
e=0;
}

void init()
{
e=0;
delay(15);
wirte_com(0x38); //写指令,设置16*2显示,5*7点阵,8位数据接口
delay(15);
wi

你确定是将程序烧到单片机里面的而不是用keil硬件仿真的吗,如果是烧进去的就只能检测你的初始化程序有没有错误(你说了你的硬件电路没问题的);如果是硬件仿真的话就看看你的设置有没有问题,keil硬件仿真不要勾选串口引发中断,还有就是最好不要用到P3的引脚

复位电路做得不好, 检测一下

一个是检查复位,另外检查一下初始化程序

对比度调节了吗?!

e=0;
这语句不用写吧?
你去我主页上看看,上面有1602驱动程序,完整的,调试好的:
http://hi.baidu.com/chinasndw