请教while(1)循环的问题!!

2019-03-24 19:27发布

今天在编写1602程序的时候发现一个奇怪的问题:  void main() { while(1) { uchar ch[8] = {0x53,0x54,0x43,0x38,0x39,0x43,0x35,0x32}; uchar i; lcd_init();  for(i = 0;i < 8;i++) display_lcd(0x80+i,ch); } } while语句这么使用的时候,1602显示正常 但是 当void main() { uchar ch[8] = {0x53,0x54,0x43,0x38,0x39,0x43,0x35,0x32}; uchar i; lcd_init(); for(i = 0;i < 8;i++) display_lcd(0x80+i,ch);  while(1); } 此时,1602就不显示了数组的内容了。很奇怪!! [ 本帖最后由 lalaone 于 2012-1-17 13:03 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
lalaone
1楼-- · 2019-03-26 17:54
真的需要。当我加完延时后,真的可以正常显示了。
辛昕
2楼-- · 2019-03-26 21:01
你把初始化,就是lcd_Init放到while外面,只保留刷新数值的那个for在里头就好了,试试。

很可能,这玩意是不带锁存的。所以要不断刷新内容。
辛昕
3楼-- · 2019-03-26 21:18
原帖由 孤獨の快樂 于 2012-1-17 15:15 发表 按理说1602显示一次就会一直存在的,第二种写法也没啥问题才是 把lcd_init(); 和display_lcd();函数贴出来吧
marco515
4楼-- · 2019-03-26 23:05
第1种循环体一直执行,数据一直在刷新,第2种执行一次,while(1)死循环了,数据不刷新,LCD不会亮的。
孤獨の快樂
5楼-- · 2019-03-27 00:56

原帖由 marco515 于 2012-1-18 17:08 发表 第1种循环体一直执行,数据一直在刷新,第2种执行一次,while(1)死循环了,数据不刷新,LCD不会亮的。

还有需要不断刷新的1602吗?

一周热门 更多>