PWM-DAC调节LED灯

2019-03-24 17:00发布

通过AD转化读取电位器的值,根据电位器的值调节占空比,进而调节输出的直流电压,调节LED的亮度,通俗地说电位器是台灯旋钮,LED是台灯
主函数:
main()
{
temp1=Read_AD_Data(0x94)//转换电位器值
if(counts>100)
{
  counts=0;
if(DIR==1)//控制变量value的增加或减少
value++;
if(DIR==0)
value--;
}
if(value==1000)
DIR=0;
if(value==0)
DIR=1;
if(temp1<value)
PWM=1;
else
PWM=0;
}
定时器1:
void Timer(void) interrupt 3
{
THI=0XFF;
TL1=0XFf;
  counts++;
}
为什么LED会闪,不能实现亮度的调节
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
ywlzh
1楼-- · 2019-03-24 23:35
问题是 现实中 你的LED台灯能支持你使用PWM来控制开关吗?
赵薇0317
2楼-- · 2019-03-25 05:25
 精彩回答 2  元偷偷看……
半亩先生
3楼-- · 2019-03-25 10:40
赵薇0317 发表于 2018-5-9 17:44
根据PWM生成的直流电压会连接给LED,硬件是没有问题的,我的全部程序中还有另一部分,里面会用到延时,和 ...

定时器并没有打开
万年落第生
4楼-- · 2019-03-25 12:25
看不太明白你写的程序,我以前做过单片机LED的调光,把家里的台灯都改了,用到现在也没问题。不过是用按钮调节的。有些MCU带有PWM功能这种最简单了,直接配置就好了。另外我也做过用定时器的,我使用了两个定时器,一个控制频率,一个控制占空比。调节效果非常好,

一周热门 更多>