您好:
我写了一下程序,在我的开发板上可以运行,希望可以帮到您。
/*
首先点亮第一个,然后约0.5秒之后第二个被点亮,约1秒之后第三个被点亮,约1.5秒之后第四个
被点亮。以此类推,知道第8个被点亮。之后八个发光二极管闪烁3次,接着熄灭8个,悦0.5秒后
熄灭第7个,以此类推,直到所有灯熄灭,并重复上述过程。
*/
/*
51系列单片机,晶振频率12MHz,P0口接共阳发光二极管(给低电平时点亮)。
*/
#include
#include
#define uint unsigned int
#define uchar unsigned char
void delay() //延时0.5s函数
{
uint i,j;
for(i=0;i<500;i++)
for(j=0;j<114;j++);
}
void main()
{
uchar i;
while(1)
{
P2=0xfe; //1111 1110
delay();
for(i=0;i<7;i++)
{
P2=_crol_(P2,1); //循环左移
delay();
}
for(i=0;i<3;i++) //闪烁
{
P2=0xff;
delay();
P2=0x00;
delay();
}
P2=0x7f; //0111 1111
delay();
for(i=0;i<7;i++) //循环右移
{
P2=_cror_(P2,1);
delay();
}
}
}