找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2742|回复: 17
收起左侧

为什么C语言空语句会产生影响?

  [复制链接]
ID:581910 发表于 2019-7-10 20:43 | 显示全部楼层 |阅读模式
单片机源程序如下:
  1. #include"reg52.h"
  2. #include<intrins.h>

  3. typedef unsigned char u8;
  4. typedef unsigned int u16;

  5. sbit SCK = P3^6; /*??λ???*/
  6. sbit RCK = P3^5; /*??????*/
  7. sbit SER = P3^4; /*????λ*/

  8. void Hc595SentByte(u8 Byte)
  9. {
  10.         u8 counter;

  11.         SCK=0;
  12.         RCK=0;
  13.         
  14.         for(counter=0;counter<8;counter++)
  15.         {
  16.                 SER = Byte>>7;
  17.                 Byte<<=1;
  18.                 SCK = 1;
  19.                 _nop_();
  20.                 _nop_();/*?????е????????????????????????????*/
  21.                 SCK = 0;
  22.         }
  23.         RCK = 1;
  24.         _nop_();
  25.         _nop_();
  26.         RCK = 0;
  27. }

  28. int main(void)
  29. {
  30.         Hc595SentByte(0x80);
  31.         P0 = 0x7f;
  32. <div>/*</div><div>while(1)</div><div>;</div><div>*/</div>}
复制代码
在点亮51 8x8led时,为什么在main函数里面加上一个while循环(被注释掉的那个)那个Led就点亮不了?

回复

使用道具 举报

ID:581910 发表于 2019-7-10 20:44 | 显示全部楼层
注释就是37行那个,/*while(1) ; */
回复

使用道具 举报

ID:123289 发表于 2019-7-11 09:58 | 显示全部楼层
你知道 “ while(1)” 在做什么动作呢? 这个是最基本的啊。
回复

使用道具 举报

ID:581665 发表于 2019-7-11 10:12 | 显示全部楼层
程序会一直在while(1)跳不出去,当然不亮了
回复

使用道具 举报

ID:326799 发表于 2019-7-11 10:24 | 显示全部楼层
while(1)是无限循环吧
回复

使用道具 举报

ID:111339 发表于 2019-7-11 10:52 | 显示全部楼层
while(1)之后,程序就被阻塞住了
回复

使用道具 举报

ID:111339 发表于 2019-7-11 10:53 | 显示全部楼层
while(1)会让程序阻塞住
回复

使用道具 举报

ID:473159 发表于 2019-7-11 11:21 | 显示全部楼层
while(1)在这里叫死循环,意思就是说程式到他里面了就只能在它里面玩,while(真)没的办法跳出来!
回复

使用道具 举报

ID:582281 发表于 2019-7-11 13:53 | 显示全部楼层

while(1)这里出错了,死循环
回复

使用道具 举报

ID:212797 发表于 2019-7-11 18:06 | 显示全部楼层
while(1)那里程序进入死循环了,不过我推测很有可能是上电的瞬间,单片机外围的电平还没完全稳定,程序就已经执行到while循环了,所以看不到现象,可以尝试在开始加一段延时作为初始化试试。
回复

使用道具 举报

ID:421308 发表于 2019-7-13 18:56 | 显示全部楼层
程序会死在里面,一直循环
回复

使用道具 举报

ID:583618 发表于 2019-7-13 19:01 | 显示全部楼层
注释就是37行那个,/*while(1) ; */
回复

使用道具 举报

ID:583720 发表于 2019-7-13 23:23 | 显示全部楼层
有的时候有空语句会多个;造成循环错误
回复

使用道具 举报

ID:420836 发表于 2019-7-14 08:52 | 显示全部楼层
程序进入while(1)无限循环
回复

使用道具 举报

ID:584080 发表于 2019-7-14 21:09 | 显示全部楼层
用定时器才可以解决
回复

使用道具 举报

ID:584083 发表于 2019-7-15 00:20 来自手机 | 显示全部楼层
程序从上到下执行,到死循环里不停的执行,中断优先。
回复

使用道具 举报

ID:317612 发表于 2019-7-15 09:22 | 显示全部楼层
while(1)无限循环
回复

使用道具 举报

ID:584197 发表于 2019-7-15 10:56 | 显示全部楼层
空字符 也算字符
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表