/*功能说明: 1、单个LED流水灯从左到右 2、单个LED流水灯从右到左 3、从左边一个个点亮8个LED 4、从右边一个个点亮8个LED 5、所有的LED开关8次 6、左右闪烁8次 7、8个流水灯两边向中间依次点亮8次 8、8个流水灯中间向两边依次点亮8次 晶振:11.0592 *************************************************************/ #include<reg51.h> //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
sbit leds=P1^4;
void delay(uint); //声明延时函数
void main(void); //声明主函数
/***********************************************************
主程序
/***********************************************************/
void main(void)
{
uint i;
uchar temp;
leds=0;
P2=P2&0x7f; //将p2.7置0,锁存段选74hc573,使得所有数码管熄灭
while(1)
{
/***********************************************************
8个流水灯逐个闪动
/***********************************************************/
temp=0x01;
for(i=0;i<8;i++)
{
P0=~temp;
delay(100);
temp<<=1;
}
/***********************************************************
8个流水灯反向逐个闪动
/***********************************************************/
temp=0x80;
for(i=0;i<8;i++)
{
P0=~temp;
delay(100);
temp>>=1;
}
/***********************************************************
8个流水灯依次全部点亮
/***********************************************************/
temp=0xFE;
for(i=0;i<8;i++)
{
P0=temp;
delay(100);
temp<<=1;
}
/***********************************************************
8个流水灯依次全部熄灭
/***********************************************************/
temp=0xFE;
for(i=0;i<8;i++)
{
P0=~temp;
delay(100);
temp<<=1;
}
/***********************************************************
8个流水灯依次反向全部点亮
/***********************************************************/
temp=0x7F;
for(i=0;i<8;i++)
{
P0=temp;
delay(100);
temp>>=1;
}
/***********************************************************
8个流水灯依次反向全部熄灭
/***********************************************************/
temp=0x7F;
for(i=0;i<8;i++)
{
P0=~temp;
delay(100);
temp>>=1;
}
/***********************************************************
8个流水灯全部点亮关闭8次
/***********************************************************/
temp=0xfF;
for(i=0;i<8;i++)
{
P0=temp;
delay(100);
P0=~temp;
delay(100);
}
/***********************************************************
8个流水灯左右晃动8次
/***********************************************************/
temp=0xAA;
for(i=0;i<8;i++)
{
P0=temp;
delay(200);
P0=~temp;
delay(200);
}
/***********************************************************
8个流水灯两边向中间点亮8次
/***********************************************************/
P0=0XFF;
delay(200);
for(i=0;i<8;i++)
{
P0=0x7e;
delay(100);
P0=0xbd;
delay(100);
P0=0xdb;
delay(100);
P0=0xe7;
delay(100);
}
/***********************************************************
8个流水灯中间向两边点亮8次
/***********************************************************/
P0=0XFF;
delay(200);
for(i=0;i<8;i++)
{
P0=0xe7;
delay(100);
P0=0xdb;
delay(100);
P0=0xbd;
delay(100);
P0=0x7e;
delay(100);
}
}
}
/***********************************************************
延时程序
/***********************************************************/
void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt<155;bt++);
}
|