#include <reg52.h> //特殊功能寄存器头文件
sbit ADDR0 = P1^0; //位声明
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void delay();
void main()
{
unsigned char cnt=0,dir=0;
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
while(1)
{
if(dir==0) //dir=0时LED从左往右移动
{
P0 = ~(0x80>>cnt);
if(P0== 0xfe) dir = 1;
}
else //dir=1时LED从右往左移动
{
P0 = ~(0x01<<cnt);
if(P0== 0x7f) dir = 0;
}
delay();
cnt++; //计数值自加
if(cnt>7) cnt=0;
}
}
void delay() //延时函数
{
unsigned int i;
for(i=0;i<20000;i++);
}