LCD1602初始化问题 30
LCD1602初始化后为什么要延时,不延时的话写数据的地址不对,也就是说显示的位置不是我写命令的位置,我在写命令和写数据函数之前都加了测忙函数,为什么还需要延时,求解...
LCD1602初始化后为什么要延时,不延时的话写数据的地址不对,也就是说显示的位置不是我写命令的位置,我在写命令和写数据函数之前都加了测忙函数,为什么还需要延时,求解
展开
1个回答
展开全部
给个例子你看啊,延时是根据时序图来进行的啊,如果不延时,可能时序就不对,写的地址肯定也就被误解了啊
void write_com(uchar com)
{
P0=com;
RS=0;
RW=0;
E=0;
delay(5); // 你可能是这里没延时
E=1;
delay(5);
}
void write_date(uchar date)
{
P0=date;
RS=1;
RW=0;
E=0;
delay(5);
E=1;
delay(5);
}
void init()
{
write_com(0x38);
write_com(0x0f);
write_com(0x06);
write_com(0x80);
write_com(0x01);
}
void write_com(uchar com)
{
P0=com;
RS=0;
RW=0;
E=0;
delay(5); // 你可能是这里没延时
E=1;
delay(5);
}
void write_date(uchar date)
{
P0=date;
RS=1;
RW=0;
E=0;
delay(5);
E=1;
delay(5);
}
void init()
{
write_com(0x38);
write_com(0x0f);
write_com(0x06);
write_com(0x80);
write_com(0x01);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询