过年回家用自己的台式练练c51,写了一个流水灯程序。其中延时函数有两个for循环构成。现在的问题是进入了第一个for循环下,正常应该执行第二个for循环,但是实际上,并没有执行。我看了j的变量。根本没有赋值。那也就是说,根本没有进入第二个循环。然后我就开始测试,发现流水灯也不是按照1s的速度进行的。这就很奇怪了。我用笔记本时候,就很正常。用台式机就这样。代码如下:
#include"reg52.h"
#include"intrins.h"
#define u8 unsigned char
#define u16 unsigned int
/*延时函数*/
void delay(u8 ten)
{
u8 i,j;
for(i=ten;i>0;i--)
{
for(j=110;j>0;j--);
}
}
main()
{
u8 temp ;//定义一个变量
temp=0xfe;//给变量赋值
P2=temp;//把变量的值赋予P2端口
while(1)
{
temp=_crol_(temp,1);//把变量移位
P2=temp;//赋值给P2端口
delay(1000); //延时1s
}
}