请教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条回答
ddllxxrr
1楼-- · 2019-03-25 04:09
第一个while(1){}是有语句的即大括号里的语句,而第二个没有,当你还没看到显示是,已经在while(1);里死等了
孤獨の快樂
2楼-- · 2019-03-25 05:07
while(1);程序会将一直停留在这句无限循环,不会再回到前面执行 [ 本帖最后由 孤獨の快樂 于 2012-1-17 14:28 编辑 ]
lalaone
3楼-- · 2019-03-25 08:44
可是第一条语句是把整个初始化都括里面了,1602才能显示啊!!为什么呢?
lalaone
4楼-- · 2019-03-25 14:27
你的意思是说,void main()
{
led0 = 0;
while(1);
}
这条语句是一直停留在while里了,而不是一直点亮led0呗!!
David_Lee
5楼-- · 2019-03-25 20:24

原帖由 lalaone 于 2012-1-17 12:40 发表 今天在编写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 ...

 

除了楼上说的while(1)的区别外,一般来说LCD1602是不用动态扫描的,写入字符显示后进入while(1);应该也是可以显示的。

楼主对1602的操作函数,也应该检查一下,看看是不是关显示了。

lalaone
6楼-- · 2019-03-25 21:07
 精彩回答 2  元偷偷看……

一周热门 更多>