关于while 和 do while 在单片机上消除鬼影的作用
时间:10-02
整理:3721RD
点击:
我在学习lcd1602时遇到了一些有趣的现象。首先,我是运用while语句写了这段代码:
while( sta & 0x80)
{
LCD1602_E = 1;
sta = LCD1602_DB ;
LCD1602_E = 0;
}
但是出现了鬼影,而且只能显示单行的信息,如图:
但是我用了do while 之后,不但鬼影消失了,还可以显示两行,感觉不科学啊!哪位大神可以解释一些其中的原理,谢谢!
while( sta & 0x80)
{
LCD1602_E = 1;
sta = LCD1602_DB ;
LCD1602_E = 0;
}
但是出现了鬼影,而且只能显示单行的信息,如图:
但是我用了do while 之后,不但鬼影消失了,还可以显示两行,感觉不科学啊!哪位大神可以解释一些其中的原理,谢谢!
发现图片没有上传,现在补上。
注意sta的值什么时候更新
您好,可能这个区别可以消除鬼影,但为什么会有显示一行两行的区别?