/*************************************************************/
/* 【类型】流水灯各种用法 */
/* 【现象】流水灯按各种不同样式闪亮 */
/*************************************************************/
#include //52 单片机头文件,一般不要改动,里面包含特殊功能寄存器的定
义
#define uchar unsigned char //将 unsigned char 定义为 uchar ,简化输写。提高编程速度
#define uint unsigned int //将 unsigned char 定义为 uint ,简化输写。提高编程速度
uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义八个灯的工作状态。
/*延时子程序*/
void delay(uint time)
{
while(--time); // 当time 的值为非0 时,执行空语句。当time 为 0 时,跳出 while 语
句。
}
/*主程序*/
void main()
{
uchar i; //定义一个无符号字符变量。
while(1) //做一个死循环,让程序永远在while 下面的大括号里面运行。
{
/*流水灯从左向右快速流动*/
for(i=0;i<8;i++) //for 语句判断条,i<8 成立时,执行大括号里面程序
{
P2=table[i]; //P2 口对应取值,八个灯的状态
delay(10000); //延时子程序调用
}
/*流水灯从右向左快速流动*/
for(i=7;i>0;i--) //for 语句判断条,i>0 成立时,执行大括号里面程序
{
P2=table[i]; //P2 口对应取值,八个灯的状态
delay(10000); //延时子程序调用
}
/*流水灯间隔闪亮*/
for(i=10;i>0;i--)
{
P2=0x55;
delay(10000); //延时子程序调用
P2=0xaa;
delay(10000); //延时子程序调用
}
/*流水灯从左向右闪动*/
for(i=0;i<8;i++) //for 语句判断条
{
P2=table[i]; //P2 口对应取值,八个灯的状态
delay(10000); //延时子程序调用
P2=0xff;
delay(10000); //延时子程序调用
P2=table[i]; //P2 口对应取值,八个灯的状态
delay(10000); //延时子程序调用
}
/*流水灯从右