#include <reg52.h>
#define u8 unsigned char
#define u16 unsigned int
sbit LED0 = P1^0;
sbit LED1 = P1^1;
sbit LED2 = P1^2;
sbit LED3 = P1^3;
sbit LED4 = P1^4;
void delay();
void main()
{
u8 cnt = 0,dir = 0;
LED4 = 0;
LED3 = 1;
LED2 = 1;
LED1 = 1;
LED0 = 0;
while(1)
{
if(dir == 0) //dir=0时LED从左往右移动
{
P2 = ~(0x80>>cnt);
if(P2 == 0xfe)
dir = 1;
}
else //dir=1时LED从右往左移动
{
P2 = ~(0x01<<cnt);
if(P2 == 0x7f)
dir = 0;
}
delay();
cnt++; //计数值自加
if(cnt > 7)
cnt=0;
}
}
void delay() //延时函数
{
u16 i;
for(i=0;i<20000;i++);
}


相关推荐