标题: 帮忙看看这个程序有什么问题,为什么一直循环不停 [打印本页]

作者: 569221640    时间: 2016-4-14 21:21
标题: 帮忙看看这个程序有什么问题,为什么一直循环不停
本帖最后由 569221640 于 2016-4-14 21:23 编辑

#include<reg52.h>

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;

void delay(unsigned int xms)
{
        unsigned int i,j;
        for(i=xms;i>0;i--);
                for(j=112;j>0;j--);
}

void main()
{
        unsigned char i;
                {
                        for(i=0;i<9;i++)
                        {
                                  led1=0;
                                    delay(10000);
                                   led1=1;
                                    delay(10000);
                        }
                }
}


作者: sxszpeng    时间: 2016-4-14 21:52
主函数没有死循环加个while(1)
作者: 34523452    时间: 2016-4-14 23:13
哥们你这程序写的格式都不太对啊
作者: wangdenggui    时间: 2016-4-14 23:39
你这个程序是想干什么?
作者: liuyimao485812    时间: 2016-4-15 00:24
delay函数的 for语句后面多了分号,应去掉。
作者: finemost2016    时间: 2016-4-15 00:42
delay函数中 for语句后面多了分号.
作者: luoluoluo136    时间: 2016-4-15 08:47
这样写错的。。。需要循环的话加while(1){ }
需要停下来的话 while(1);
作者: 569221640    时间: 2016-4-15 19:51
本帖最后由 569221640 于 2016-4-15 20:20 编辑

改成这样能实现了     谢谢大家


#include<reg52.h>

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;

void delay(unsigned int xms)
{
        unsigned int i,j;
        for(i=xms;i>0;i--)
                for(j=112;j>0;j--);
}

void main()
{
        unsigned char i;
        {
                 for(i=0;i<9;i++)
                {                  
                           led1=0;
                              delay(200);
                                   led1=1;
                              delay(200);
                }       
        }
        while(1);
}

作者: 569221640    时间: 2016-4-15 20:23
改成这样能实现了    谢谢大家

#include<reg52.h>

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;

void delay(unsigned int xms)
{
        unsigned int i,j;
        for(i=xms;i>0;i--)
                for(j=112;j>0;j--);
}

void main()
{
        unsigned char i;
        {
                 for(i=0;i<9;i++)
                {                
                                 led1=0;
                                    delay(200);
                                   led1=1;
                                    delay(200);
                }       
        }
        while(1);
}
作者: a408264353    时间: 2016-4-15 21:56
最好i 也不要重复用吧
作者: shenjinliang    时间: 2016-4-15 23:00
i是可以这样用的,因为不在一个函数里。
作者: 我就是王磊    时间: 2016-4-15 23:11
你还是先把你程序里面的错误改掉吧,比如一些标点符号啊,你照着别人的程序看看
作者: conaner    时间: 2016-4-15 23:16
下面加一个while(1);

作者: ph1234    时间: 2016-4-15 23:33
 主函数没有死循环加个while(1)
作者: xjjwws    时间: 2016-4-16 07:41
主函数没有加while,这样写法不对滴
作者: luoluoluo136    时间: 2016-4-16 09:15
a408264353 发表于 2016-4-15 21:56
最好i 也不要重复用吧

i这样用没问题,但是还是别这样用。。。到时候要查找什么的就麻烦了。
作者: fengkang    时间: 2016-4-16 13:45
for(i=xms;i>0;i--);改成for(i=xms;i>0;i--)
作者: 发烧人生    时间: 2016-4-16 14:02
本帖最后由 569221640 于 2016-4-14 21:23 编辑   #include<reg52.h>  sbit led1=P1^0; sbit led2=P1^1; sbit led3=P1^2;  void delay(unsigned int xms) {         unsigned int i,j;         for(i=xms;i>0;i--);                 for(j=112;j>0;j--); }  void main() {         unsigned char i;                 {                         for(i=0;i<9;i++)                         {                                   led1=0;                                     delay(10000);                                    led1=1;                                     delay(10000);                         }         while(1)        } }
作者: liuzhaoxin1020    时间: 2017-1-2 15:17
for语句有问题谢谢分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1