lcd1602 与单片机 d0-d7 是P0口,没接上拉电阻,亮但是不显示,换了P1口也是程序如下,请问有什么问题吗

v0接地#include<reg51.h>sbitRS=P2^5;sbitRW=P2^6;sbitE=P2^7;sbitBF=P0^0;unsignedcharlin[]... v0接地
#include<reg51.h>
sbit RS = P2^5;
sbit RW = P2^6;
sbit E = P2^7;
sbit BF = P0^0;
unsigned char lin[] = " hello";
void init_LCM(void); //初始化
void write_inst(char);//写入指令
void write_char(char);//写入数据
void check_BF(void)//查询忙碌
main()
{
char i;
init_LCM();
while(1)
{
write_inst(0x80);
for(i = 0; i <=15; i++)
write_char(lin[i]);
}
}
void init_LCM(void)
{
write_inst(0x30); // 设置功能:8位数据方式
write_inst(0x30); //
write_inst(0x30); //
write_inst(0x38); //
write_inst(0x08); //关闭显示
write_inst(0x01); // 清屏
write_inst(0x06); //
write_inst(0x0c); // 打开显示屏
}
void write_inst(char inst)
{
check_BF();
P0 = inst;
RS = 0; RW = 0; E = 1;
check_BF();

}
void write_char(char cdata)
{
check_BF();
P0 = cdata;
RS = 1; RW = 0; E = 1;
check_BF();
}
void check_BF(void)
{
E = 0;
do{ BF = 1; RS = 0; RW = 1; E = 1;}
while(BF ==1);
}
换成 #include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit E=P2^7; //1602使能引脚
sbit RW=P2^6; //1602读写引脚
sbit RS=P2^5; //1602数据/命令选择引脚
void delay()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}

bit Busy(void)
{
bit busy_flag = 0;
RS = 0;
RW = 1;
E = 1;
delay();
busy_flag = (bit)(P1 & 0x80);
E = 0;
return busy_flag;
}

void wcmd(uchar del)
{
while(Busy());
RS = 0;
RW = 0;
E = 0;
delay();
P1 = del;
delay();
E = 1;
delay();
E = 0;
}

void wdata(uchar del)
{
while(Busy());
RS = 1;
RW = 0;
E = 0;
delay();
P1 = del;
delay();
E = 1;
delay();
E = 0;
}

void L1602_init(void)
{
wcmd(0x38);
wcmd(0x0c);
wcmd(0x06);
wcmd(0x01);
}
void L1602_char(uchar hang,uchar lie,char sign)
{
uchar a;
if(hang == 1) a = 0x80;
if(hang == 2) a = 0xc0;
a = a + lie - 1;
wcmd(a);
wdata(sign);
}

void L1602_string(uchar hang,uchar lie,uchar *p)
{
uchar a,b=0;
if(hang == 1) a = 0x80;
if(hang == 2) a = 0xc0;
a = a + lie - 1;
while(1)
{
wcmd(a++);
b++;
if((*p == '\0')||(b==16)) break;
wdata(*p);
p++;
}
}

void Main()
{
L1602_init();
L1602_string(1,1," 0123456789 ");
L1602_string(2,1," ABCDEFGHIJ ");
L1602_char(2,15,'O');
L1602_char(2,16,'K');
while(1);
} (在百度上找的)也不行
展开
 我来答
aimei126良
2012-02-21 · TA获得超过320个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:382万
展开全部
你调节一下背光灯的电位器吧,如果是新的1602是要调的。v0接地是不行的
生活如歌_
2012-02-21 · TA获得超过1.5万个赞
知道大有可为答主
回答量:7398
采纳率:78%
帮助的人:2189万
展开全部
换了P1口后程序改了吧。
追问
改了的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式