请教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条回答
孤獨の快樂
1楼-- · 2019-03-26 01:29

原帖由 lalaone 于 2012-1-17 14:36 发表 你的意思是说,void main() { led0 = 0; while(1); } 这条语句是一直停留在while里了,而不是一直点亮led0呗!!

led=0执行一次,输出就一直是0了,不用循环执行的

孤獨の快樂
2楼-- · 2019-03-26 03:05

按理说1602显示一次就会一直存在的,第二种写法也没啥问题才是

把lcd_init(); 和display_lcd();函数贴出来吧

lalaone
3楼-- · 2019-03-26 03:43
那这条while语句有什么作用呢?不用它,led0是不是也一直等于0呢?
lalaone
4楼-- · 2019-03-26 08:44

原帖由 孤獨の快樂 于 2012-1-17 15:15 发表 按理说1602显示一次就会一直存在的,第二种写法也没啥问题才是把lcd_init(); 和display_lcd();函数贴出来吧

 

问题解决了,就是延时不够呵呵。。

孤獨の快樂
5楼-- · 2019-03-26 10:48

原帖由 lalaone 于 2012-1-17 20:12 发表 那这条while语句有什么作用呢?不用它,led0是不是也一直等于0呢?

作用就是使程序停留在while(1);

孤獨の快樂
6楼-- · 2019-03-26 16:18
 精彩回答 2  元偷偷看……

一周热门 更多>