灯光控台编程,怎么让LED灯单色渐变?

如题所述

这个灯光渐变用数字电路控制的话,可以通过PWM波来实现,将占空比由小到大渐变,可以是灯光强度由弱变强,反之则可以由强变弱。
具体实现可以用定时器来做,比如:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint zhouqi,pwmh;
uchar mode;
sbit keyup=P1^0;
sbit keydn=P1^1;
sbit pwm=P1^7;
void t0isr() interrupt 1
{
TH0=(65536-pwmh)/256;
TL0=(65536-pwmh)%256;
pwm=~pwm;
pwmh=zhouqi-pwmh;
switch(mode)
{
case 0:pwmh++;if(pwmh>zhouqi)pwmh=zhouqi;break;//模式1,渐亮

case 1:if(pwmh>0)pwmh--;break; //模式2,渐暗

default:break;

}

}
main()
{
zhouqi=10000;
pwmh=100;
TMOD=0x01;
TH0=(65536-pwmh)/256;
TL0=(65536-pwmh)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(keyup==0){mode=0;while(keyup==0);}

if(keydn==0){mode=1;while(keydn==0);}

}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-12
保证刷新够的情况下,增加减少点亮灯的时间,就可以控制亮度了追答

保证刷新够的情况下,增加减少点亮灯的时间,就可以控制亮度了

追问

没懂,能具体点吗?

追答

这是高级一点的灰度控制,给你个图,你看懂了,就知道怎么实现了

本回答被提问者采纳
相似回答