- 积分
- 207
- 在线时间
- 238 小时
- 最后登录
- 2012-8-17
- 阅读权限
- 50
- 精华
- 0

- UID
- 327390
- 帖子
- 142
- 精华
- 0
- 经验
- 207 点
- 金钱
- 152 ¥
- 注册时间
- 2011-5-1
|

楼主 |
发表于 2011-8-22 14:13
|
显示全部楼层
在这里向大家道个歉,昨天的那个呼吸灯程序我试了一下,亮是可以亮,但是在渐变过程中有闪烁,程序是有漏洞的,再此向大家道歉,我重新发一个呼吸灯的程序。如果大家觉得LED亮度太亮的话可以加个电阻。
#include<reg52.h>
sbit LED=P3 ^ 4;
void Delay(unsigned int t){ //延时函数
while(--t);
}
void main (void){
unsigned int a=2000,b=0;//修改a的值可以改变渐变时间,但不能太低,太低LED会闪烁
while (1) { //无限循环下面的程序
LED = 1; //熄灭LED
Delay(60000); //特意加延时,可以看到熄灭的过程,删掉这句(用//屏蔽)LED不会完全熄灭
for(b=1;b<a;b++){//b表示低
LED = 0; //点亮LED
Delay(b);//延时长度,2000次循环中从1加至1999
LED = 1; //熄灭LED
Delay(a-b);//延时长度,2000次循环中从1999减至1
}
LED = 0;
for(b=a-1;b>0;b--){//与逐渐变亮相反的过程
LED = 0;
Delay(b);
LED = 1;
Delay(a-b);
}
}
}
在这里再次向大家道歉。
程序:
呼吸灯.rar
(16.58 KB, 下载次数: 206)
|
|