单片机/MCU论坛
直播中

轻风1994

10年用户 23经验值
擅长:嵌入式技术 处理器/DSP
私信 关注
[问答]

51单片机复位,LCD1602显示变成乱码是咋回事?

本人最近在做一个小项目,需要用到LCD1602作为显示模块。在单片机上电时,1602可以正常显示数据值,但是一按下复位键,1602就显示不正常了,只有将单片机重新上电1602才有恢复原样,这是为什么?一直想不明白啊,复位后不是从头开始执行代码吗?这跟一开始上电的情况有什么很大的不同吗?求大神们不吝赐教!!!在此先谢过了![qq]376694493[/qq]

回帖(7)

破力达

2015-11-26 23:36:47
你可以在初始化lcd的那段程序上加写标记,比如让某个引脚输出高电平之类的。之后复位测一下那引脚,如果输出的是高电平则说明单片机已近执行了那段程序,那么就不是单片机的问题,可能是lcd的问题
举报

轻风1994

2015-11-28 13:11:15
试过了,复位后初始化函数有执行到啊,可是复位后还是显示乱码,而且我换了另一块lcd也是一样的情况。。。
举报

轻风1994

2015-11-28 13:11:25
试过了,复位后初始化函数有执行到啊,可是复位后还是显示乱码,而且我换了另一块lcd也是一样的情况。。。
举报

轻风1994

2015-12-1 21:49:31
原来是单片机复位出了问题,换一块就可以了。
举报

破力达

2015-12-2 09:49:11
继续努力,也觉得不可能的问题,越可能就是它
举报

h1654155920.4618

2015-12-18 18:48:11
举报

2016-8-30 14:58:14
丝线控制法下,由于LCD复位后默认是8线输入,如果函数LCD_com是一个按4线输入写的函数,执行LCD_com(28)等效为先写入了8线指令2x,写入后LCD已改为4线模式,再写入4线指令8x的高四位,但是不再有低四位写入,所以之后写入其他数据时,LCD仍在等待上一个指令的第四位,导致不能正确识别数据。
执行LCD_com(02),先是写入了8线指令0x,再写入8线指令2x,这时才将LCD改为4线输入。之后按4线写数据时,就没有高低位错乱的问题了。[转载:mrjingf   感谢!]
举报

更多回帖

发帖
×
20
完善资料,
赚取积分