51单片机驱动1602c液晶显示屏复位的问题
我用51单片机控制1602c液晶显示屏程序烧进去后,能正常显示数据。但是复位后不能显示。多次按复位键,偶尔能显示出数据,但是再按一次就一样不能显示了。上电复位也一样不行。...
我用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);
wirte_com(0x38);
delay(15);
wirte_com(0x38);
delay(15);
wirte_com(0x0c);
wirte_com(0x06);
wirte_com(0x01); //清屏
}
void main()
{
delay(100);
init();
wirte_com(0x80);
for(num=0;num<14;num++)
{
wirte_data(table[num]);
delay(100);
}
while(1);
}
这是我写的程序,应该是初始化程序那里有问题,但我找不出 展开
程序烧进去后,能正常显示数据。但是复位后不能显示。多次按复位键,偶尔能显示出数据,但是再按一次就一样不能显示了。上电复位也一样不行。
小弟刚入门,各位大侠教下啊~~感激不尽
硬件电路没有问题,有正常显示的程序。全用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);
wirte_com(0x38);
delay(15);
wirte_com(0x38);
delay(15);
wirte_com(0x0c);
wirte_com(0x06);
wirte_com(0x01); //清屏
}
void main()
{
delay(100);
init();
wirte_com(0x80);
for(num=0;num<14;num++)
{
wirte_data(table[num]);
delay(100);
}
while(1);
}
这是我写的程序,应该是初始化程序那里有问题,但我找不出 展开
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对比度调节了吗?!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个是检查复位,另外检查一下初始化程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
复位电路做得不好, 检测一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询