求大神帮我看一下,为什么灯总是亮着不会闪啊!!

2019-07-15 12:35发布

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num1,num;
void delay() ;
void main()
{
         
        P2=0x00;
        delay();                                          
        P2=0xff;
        temp=0xfe;
        while(1)
        {
                P2=temp;
                delay();
            temp=_crol_(temp,1);
        }
}
void delay()
{
        for(num1=10000;num1>0;num1--)
                for(num=600;num>0;num--);
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
DARLING`
1楼-- · 2019-07-15 16:45
 精彩回答 2  元偷偷看……
易小木
2楼-- · 2019-07-15 21:17
DARLING` 发表于 2016-11-18 11:43
把p2=temp放到while外面

更改之后并没有什么变化 ,好像不是哪里的问题 。当num1<1000的时候都会闪烁
上官梦舞
3楼-- · 2019-07-15 23:28
unsigned char 最大255,你的10000 ,delay 永远到不了,所以卡在 delay了。num1 和num可以定为unsigned int;
上官梦舞
4楼-- · 2019-07-16 03:58
void delay(unsigned int time)//time最大到655535
{
    unsigned int i;
    while(time--)
    {
        for(i=0;i<100;i++);//i最大到65535
    }

}

评分

参与人数 1积分 +2 收起 理由 langzitianya + 2 您的付出是论坛的动力,感谢您一直支持!.

查看全部评分

zhifubao
5楼-- · 2019-07-16 06:26
上官梦舞 发表于 2016-11-18 13:15
unsigned char 最大255,你的10000 ,delay 永远到不了,所以卡在 delay了。num1 和num可以定为unsigned int;

这位才是正解。

评分

参与人数 1积分 +1 收起 理由 langzitianya + 1 您的付出是论坛的动力,感谢您一直支持!.

查看全部评分

zhifubao
6楼-- · 2019-07-16 06:26
 精彩回答 2  元偷偷看……

一周热门 更多>