危险的炸弹 发表于 2014-2-1 21:41:04

新手求指点~~~


#include <reg51.h>
#include <intrins.h>
#define ui unsigned int
#define uc unsigned char
void delay(ui);
uc aa;
void main()
{
        aa=0xfe;
   while(1);
    {
          P1=aa;
               delay(500);
                aa=_crol_(aa, 1);
       }

}
void delay(ui xks)
{

ui i,j;
for(i=xks;i>0;i--)
        for(j=110;j>0;j--);
上面的程序会变得时候只有一个警告,没理会,下载到单片机后发现没有工作,进入软件一步步运行发现,走到while的地方卡住了 它不往下走,难道是我的逻辑错误了吗?

牡丹花下死做鬼 发表于 2014-2-1 21:57:57

while(1);//死循环

危险的炸弹 发表于 2014-2-1 22:04:36

牡丹花下死做鬼 发表于 2014-2-1 21:57


不是复制的,自己敲得

牡丹花下死做鬼 发表于 2014-2-1 23:17:17

危险的炸弹 发表于 2014-2-1 22:04 static/image/common/back.gif
不是复制的,自己敲得

????????
while(1);是死循环听不懂???

lpppl 发表于 2014-2-1 23:39:50

while没有退出条件,所以死循环

危险的炸弹 发表于 2014-2-2 07:10:27

本帖最后由 危险的炸弹 于 2014-2-2 07:19 编辑

谢谢你的热心解答,之前我是手机端看的,没看到你写的指令。
   但我就是要它进入循环程序不跳出来的,让它一直位移进行工作,求教,还有哪个语句能做到?
我之前用
i=1
while(i<=7)
........
.......
.......
i++
也进入不了循环体

冇事 发表于 2014-2-2 11:59:59

单片机不懂,但是应该可以进入循环体 死循环啊。do whilefor都不行么?
都不行就用goto无条件跳转呗 这个肯定行

仰望天上的光 发表于 2014-2-2 19:15:47

while(1);
   {
             P1=aa;
                  delay(500);
               aa=_crol_(aa, 1);
          }
改为: while(1)
   {
             P1=aa;
                  delay(500);
               aa=_crol_(aa, 1);
          }
也就是把while后面的饿分号去掉
页: [1]
查看完整版本: 新手求指点~~~