标题:
呼吸灯-一个LED灯加单片机最小系统
[打印本页]
作者:
昭通音响-小倪
时间:
2016-8-2 14:21
标题:
呼吸灯-一个LED灯加单片机最小系统
一个LED灯加单片机最小系统,就能组成一个呼吸灯
我用的是P3.4口,可以自己任意调换,建议用STC15F104W,一个是便宜另外一个原因就是小巧,精细。
用89系列做的话占地太大。
这个可以更改成一个指示灯,可以将程序做成一个函数加入到其他程序中,用来指示运行情况,例如,正常的时候是均匀闪,非正常的时候可以用呼吸灯快闪来表达程序运行问题。
#include<reg52.h>
#define N 2 //亮暗的速率
#define T 2000 //PWM的周期 15F104W运行速度比89系类快 1T
sbit led=P3^4;
void pwm(int x)
{
while(x--);
}
void main()
{
int t=0;
char f=0;//亮暗标志,0为亮
while(1)
{
led=0;
pwm(t);//Toff,亮的时间
led=1;
pwm(T-t);//Ton,暗的时间
if(!f) t+=N+4;//亮速率较快,模拟呼吸
else t-=N+2;//暗速率较慢
if(t>T) {f=1;t=T;}//超过最大值时,返回最大值,标志为暗
if(t<0) {f=0;t=0;}//超过最小值时,返回最小值,标志为亮
}
}
作者:
昭通音响-小倪
时间:
2016-8-2 14:22
#include<reg52.h>
#define N 2 //亮暗的速率
#define T 2000 //PWM的周期 15F104W运行速度比89系类快 1T
sbit led=P3^4;
void pwm(int x)
{
while(x--);
}
void main()
{
int t=0;
char f=0;//亮暗标志,0为亮
while(1)
{
led=0;
pwm(t);//Toff,亮的时间
led=1;
pwm(T-t);//Ton,暗的时间
if(!f) t+=N+4;//亮速率较快,模拟呼吸
else t-=N+2;//暗速率较慢
if(t>T) {f=1;t=T;}//超过最大值时,返回最大值,标志为暗
if(t<0) {f=0;t=0;}//超过最小值时,返回最小值,标志为亮
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1