#include <REGX52.H> //右键添加而来
void Delay500ms() //@12.000MHz,这里使用stc软件可以生成
{
unsigned char i, j, k;
//_nop_();生成的这里可以不要,如果你不是要的特别精确的化,你要加上这个,
//就需要加一个头文件#include<INTRINS.H>
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2=0xFE;//代表0000 0001 所以显示第一个灯
Delay500ms(); //调用上面
P2=0xFF;//ff代表0000 0000 是所有led都不亮
//只有上面的话由于单片机的速度问题,导致
//亮,暗变化太快,而导致看起来没变化
Delay500ms();//调用上面
}
}
//也可以采用下面的代码,只不过不是特别的精确,50000在我的电脑上大约是450ms
#include"reg52.h"
sbit led1=P2^0;
//下面是延时代码
typedef unsigned int u16;//定义成两个字节,用u16
void delay(u16 xus)
{
while(xus--);
}
void main()
{
while(1){
led1=0;//点亮
delay(50000);//大约450ms
led1=1;//熄灭
delay(50000);
}
}
/*上面那个延时代码,可以写为//简略写法,只是时间不太准;
void delay(xus)
{
while(xus--);
}*