C51 流水灯多样显示程序
流水, 多样, 程序
功能说明:
1、单个 LED 流水灯从左到右
2、单个 LED 流水灯从右到左
3、从左边一个个点亮 8 个 LED
4、从右边一个个点亮 8 个 LED
5、所有的 LED 开关 8 次
6、左右闪烁 8 次
7、8 个流水灯两边向中间依次点亮 8 次
8、8 个流水灯中间向两边依次点亮 8 次
测试环境:在 ME300B 开发板上测试通过
*************************************************************/
#include
//51 系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int
//定义无符号整数
void delay(uint);
void main(void);
//声明延时函数
//声明主函数
/***********************************************************
主程序
/***********************************************************/
void main(void)
{
uint i;
uchar temp;
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(100);
P0=~temp;
delay(100);
}
/***********************************************************
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<255;bt++);
}