//--------------------------------------------------------
//项目: 灯闪控制
//设计: 程序匠人
//--------------------------------------------------------
/*
匠人按:一般的流水灯,LED都是固定亮度的。本程序在此基础上,实现渐明渐暗的效果。原理就是采用软件实现PWM,通过调节每个LED的亮灭时间比(占空比)来调节LED的亮度。本程序在EDN提供的51助学板上测试通过。
*/
//--------------------------------------------------------
/*
版本说明:
程序01_P0口灯闪_V01: 2008-5-21 22:53
8个LED一起闪烁
程序01_P0口灯闪_V02: 2008-5-21 22:53
8个LED流水灯
程序01_P0口灯闪_V03: 2008-5-22 21:36
仍旧是8个LED流水灯,规范程序
程序01_P0口灯闪_V04: 2008-5-22 21:52
优化程序
程序01_P0口灯闪_V05: 2008-5-22 23:19
渐明渐暗动态流水灯效果
*/
//--------------------------------------------------------
//插入文件包
//--------------------------------------------------------
#i nclude<at89x52.h> //加入头文件;
//--------------------------------------------------------
//重新命名数据类型
//--------------------------------------------------------
typedef unsigned char tU08; //unsigned 8 bit definition
typedef unsigned char tU8; //unsigned 8 bit definition
typedef unsigned int tU16; //unsigned 16 bit definition
typedef unsigned long tU32; //unsigned 32 bit definition
typedef signed char tS08; //signed 8 bit definition
typedef signed char tS8; //signed 8 bit definition
typedef signed int tS16; //signed 16 bit definition
typedef signed long tS32; //signed 32 bit definition
typedef float tF32;
//--------------------------------------------------------
//--------------------------------------------------------
#define LED_ON 0 //LED点亮
#define LED_OFF 1 //LED熄灭
/*
//--------------------------------------------------------
//延时子程序
//--------------------------------------------------------
void delay(tU16 a)
{
tU16 b;
for(b=0;b<a;b++); //根据输入A 的值达到某一定时间的延时;