您的位置 首页 设计

液晶1602/1620/1604的问题及回答

1.M16C20板子在重新启动后,写入的显示程序只能显示一行回答:发现每次重新启动后,需要通过指令给板子一个电压稳定到2,7V到4,5V之间的时

1.M16C20板子在从头发动后,写入的显现程序只能显现一行

答复:发现每次从头发动后,需求经过指令给板子一个电压安稳到2,7V到4,5V之间的时刻.
解决办法-在main进口多进行一次或许屡次初始化程序,为了安稳电压,也为了确认初始化指令的确被履行
2.指令间的延时不同,有时分lcd不会显现字符.
答复:指令间的时刻延时长短必须有,关于单指令系统,长短没有差异,可是假如往lcd上面写数据的时分,由于是5*10个点阵,这个期间一向处于忙得状况,所以需求比较长的时刻.
解决办法-a.加长延时时刻b.写一个查看忙得程序
3.显现一个流水字符程序在lcd上的时分,光标老是在榜首行榜首个字符上逗留。
答复:清屏指令(0001H)的原因,现在没有解决
解决办法-从头写一个清屏程序,把2*16个字符设定成空字符。
4.Lcd初始化的时分,不是显现2行,老是显现1行
答复:有几种状况应该考虑
a. 由于lcd翻开电源今后默许的是8位接口(DB0~BD7),所以要先写入3次03H指令,这个时分由于以8位处理,所以中心要参加必定延长时刻。由于运用的是4位数据指令,所以然后要写入一次02H指令,避免没有写入,不加延时再履行一次02H,这个时分有2种或许,一种以4bit处理,一种是以8bit处理。紧接着开端进行lcd的初始化,在进行初始化前要参加延时。
delay_1(100);
writeini(0x03);
delay_1(50);
writeini(0x03);
delay_1(10);
writeini(0x03);
delay_1(10);
writeini(0x02);
writeini(0x02);
delay_1(50);
lcd_writeCommand(LCD_SETDISPLAY);
b、发动电压到电压安稳,需求必定的时刻,这个时刻要在初始化程序中体现出来。
在主程序中,能够运用2次初始化,来满意这段时刻。
void main()
{
unsigned char i,address1,address2,address22;
for(i = 0;i < 80;i++)
for(i = 0;i < 80;i++)

ini_sys();
ini_sys();
ini_sys();

5.操练了往lcd1602中写入自己的字符图形而且输出,发现没有初始化的字符队伍却呈现了字符。
答复:在从头往CGRAM中写字符的时分,应该对5*8队伍或许5”10队伍的每一行进行初始化,不然没有初始化的当地就会呈现乱码,在最终一行的光标位应该悉数初始化为0。

附:LCD1602液晶(驱动器为HD44780)学习总结
1.能够区别清楚DDRAM与CGROM,1602运用的字符存储器是EEPROM,而不是手册中说的EPROM。
2.HD44780带有192字符的字符库,能够自定义8个5*8的字符
3.在写程序的时分要严厉依照”指令—–数据”的格局考虑
4.经过学习建立了分操控位和数据位的概念
5.把握了读懂时序图的根本办法,写程序的时分应该严厉参照时序图
6.Character code与character address与character pattern是不同的概念,今后要区别清楚
7.Lcd有14个端口可与单片机衔接,8个数据位,3个操控位,剩余3个为电源,地,调理电源。

6.LCD1602/1604的行地址

(1)LCD1602:

榜首行:0x00+(0x80)

第二行:0x40+(0x80)

(2)LCD1604:

榜首行:0x00+(0x80)

第二行:0x40+(0x80)

第三行:0x10+(0x80)

第四行:0x50+(0x80)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/256974.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部