这是我在KEIL5中写下的以STC89C52单片机为核心的,从第一到第八,再从第八到第一盏LED循环亮,亮起的时间持续一秒。其中的延时函数delay(int x)是我已经在reg52.h头文件中写入,x的单位是毫秒。delay(1000)即延时一秒。
#include<reg52.h>
void main()
{
int i;
while(1)
{
P0 = 0xfe;
for(i=0;i<=6;i++)
{
delay(1000);
P0 = P0 << 1;
P0 = P0 | 0X01;
}
P0 = 0x7f;
for(i=0;i<=6;i++)
{
delay(1000);
P0 = P0 >>1;
P0 = P0 | 0x80;
}
}
}
将此程序下载到德飞莱LY-51S开发板中可以看到,LED以此从左到右再从右到左循环亮起。