求大神帮我看一下,为什么灯总是亮着不会闪啊!
#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--);
}
把p2=temp放到while外面
更改之后并没有什么变化 ,好像不是哪里的问题 。当num1<1000的时候都会闪烁
unsigned char 最大255,你的10000 ,delay 永远到不了,所以卡在 delay了。num1 和num可以定为unsigned int;
void delay(unsigned int time)//time最大到655535
{
unsigned int i;
while(time--)
{
for(i=0;i<100;i++);//i最大到65535
}
}
这位才是正解。
就别忽悠人家了。
哈哈哈哈。
不懂 跟着小编一起学习一下
延时程序搞好应该没有问题了
uchar 最大是255,赋值不符合要求.我上机试了下你的程序.修改一下,能看到效果了:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num1,num;
void delay() ;
void main()
{
P1=0x00;
delay();
P1=0xff;
temp=0xfe;
while(1)
{
P1=temp;
delay();
temp=_crol_(temp,1);
}
}
void delay()
{
for(num1=200;num1>0;num1--)
for(num=200;num>0;num--);
}
又马虎一次~~~~还不赶快谢谢4楼的姐姐!