程序没问题,电路图没问题为什么在LCD1602上显示不出来?
4个回答
展开全部
不可能的事,所谓没有问题只是你自己感觉没有问题,既然不显示就一定有问题,据我开始用LCD时的教训来看一般有下,软件送数据延时循环不够,读写控制有误,硬件电压不合适,背光电压调整不当,再仔细检查这几项吧。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<reg52.h>
typedef unsigned char uint8;
sbit BF = P0^7;
sbit EN = P2^5;
sbit RS =P1^0;
sbit RW =P1^1;
void wait(void)
{
P0=0xFF;
do
{
RS = 0;
RW = 1;
EN = 0;
EN = 1;
}
while (BF==1);
EN = 0;
}
void w_dat(uint8 dat)
{
wait();
EN = 0;
P0 = dat;
RS = 1;
RW = 0;
EN = 1;
EN = 0;
}
void w_cmd(uint8 cmd)
{
wait();
EN = 0;
P0 = cmd;
RS = 0;
RW = 0;
EN = 1;
EN = 0;
}
void Init_LCD1602(void)
{
w_cmd(0x38);
w_cmd(0x0c);
w_cmd(0x06);
w_cmd(0x01);
}
main()
{
Init_LCD1602();
w_cmd(0x80);
w_dat('F');
while(1);
}
LCD1602 简单程序测试
typedef unsigned char uint8;
sbit BF = P0^7;
sbit EN = P2^5;
sbit RS =P1^0;
sbit RW =P1^1;
void wait(void)
{
P0=0xFF;
do
{
RS = 0;
RW = 1;
EN = 0;
EN = 1;
}
while (BF==1);
EN = 0;
}
void w_dat(uint8 dat)
{
wait();
EN = 0;
P0 = dat;
RS = 1;
RW = 0;
EN = 1;
EN = 0;
}
void w_cmd(uint8 cmd)
{
wait();
EN = 0;
P0 = cmd;
RS = 0;
RW = 0;
EN = 1;
EN = 0;
}
void Init_LCD1602(void)
{
w_cmd(0x38);
w_cmd(0x0c);
w_cmd(0x06);
w_cmd(0x01);
}
main()
{
Init_LCD1602();
w_cmd(0x80);
w_dat('F');
while(1);
}
LCD1602 简单程序测试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我同意
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询