关于单片机、LCD1602显示的问题
我用AT89C51、DS1302和LCD1602做了一个电子钟,仿真完全可以实现。但是电路焊出来以后,1602不能正常显示,只显示第一行16个黑格。我已经把程序烧进芯片里...
我用AT89C51、DS1302和LCD1602做了一个电子钟,仿真完全可以实现。
但是电路焊出来以后,1602不能正常显示,只显示第一行16个黑格。
我已经把程序烧进芯片里了,但是还是不行。
焊的没有问题,我检查过好几遍了。
另外,我想问一下,我之前的LCD烧坏了,重新买了一个,看起来不太一样。
是不是所有的1602显示器都一样用?
麻烦各位高手告诉我是什么问题。拜托大家了!! 展开
但是电路焊出来以后,1602不能正常显示,只显示第一行16个黑格。
我已经把程序烧进芯片里了,但是还是不行。
焊的没有问题,我检查过好几遍了。
另外,我想问一下,我之前的LCD烧坏了,重新买了一个,看起来不太一样。
是不是所有的1602显示器都一样用?
麻烦各位高手告诉我是什么问题。拜托大家了!! 展开
展开全部
这个现象是1602没驱动起来。
1602除了数据端口外,备祥
还有3个控制端,E,RW,RS。都接好了吗控制好颤码了吗?
仿真跟现实不太一样,
现在你需仿洞搏要编一个能简单驱动1602的程序,先把1602驱动起来。
然后再改你的程序。
1602除了数据端口外,备祥
还有3个控制端,E,RW,RS。都接好了吗控制好颤码了吗?
仿真跟现实不太一样,
现在你需仿洞搏要编一个能简单驱动1602的程序,先把1602驱动起来。
然后再改你的程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要检测液晶是否处于忙碌昌尺衡状态
BOOL lcd_bz()
{ // 测试LCD忙碌状态
BOOL result;
lcdrs=0;
lcdrw=1;
lcden=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=(BOOL)(P0 & 0x80);
lcden=0;
return result;
}
void write_com(uchar com)
{
while(lcd_bz());
lcdrs=0;
lcdrw=0;
lcden=0;
_nop_();
_nop_();
P0=com;
_nop_();
_nop_();
_nop_();
_nop_();
lcden=1;
_nop_();
_nop_();
_nop_();
_nop_();
lcden=0;
}
void write_data(uchar dat)
{
while(lcd_bz());
lcdrs=1;
lcdrw=0;
lcden=0;
_nop_();
_nop_();
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
lcden=1;
_nop_();
_nop_();
_nop_();
_nop_();
lcden=0;
}
void lcd_init()
{
write_com(0x38); //16*2显示 5*7点阵 8位数据接口
write_com(0x0c); /困镇/开显示,耐做不显示光标
write_com(0x06); //写一个字符后数据指针加1
write_com(0x01); //显示清零,数据指针清零
}
BOOL lcd_bz()
{ // 测试LCD忙碌状态
BOOL result;
lcdrs=0;
lcdrw=1;
lcden=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=(BOOL)(P0 & 0x80);
lcden=0;
return result;
}
void write_com(uchar com)
{
while(lcd_bz());
lcdrs=0;
lcdrw=0;
lcden=0;
_nop_();
_nop_();
P0=com;
_nop_();
_nop_();
_nop_();
_nop_();
lcden=1;
_nop_();
_nop_();
_nop_();
_nop_();
lcden=0;
}
void write_data(uchar dat)
{
while(lcd_bz());
lcdrs=1;
lcdrw=0;
lcden=0;
_nop_();
_nop_();
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
lcden=1;
_nop_();
_nop_();
_nop_();
_nop_();
lcden=0;
}
void lcd_init()
{
write_com(0x38); //16*2显示 5*7点阵 8位数据接口
write_com(0x0c); /困镇/开显示,耐做不显示光标
write_com(0x06); //写一个字符后数据指针加1
write_com(0x01); //显示清零,数据指针清零
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都是黑格的话你再调一下背光灯,我以前也出现过这种情况,你试试!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
3VL,15BLA,16BLK 可能没没接好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询