按下按键1灯变亮,按下按键2灯变暗,用PWM调光,C程序怎么写

zxc2023-09-19 21:33:45陶瓷1

一、按下按键1灯变亮,按下按键2灯变暗,用PWM调光,C程序怎么写

#include#include #define uchar unsigned char #define uint unsigned int #define LED P1 //8个发光二级管 sbit key1=P3^5; sbit key2=P3^6; #define LED_ON() LED=0x00 //所有灯亮 #define LED_OFF() LED=0xff //灭 #define LED_PWM_MAX 99 #define LED_PWM_MIN 0 uchar LED_Direction=0; //LED方向控制 0:变亮 1:变暗 uchar LED_PWM_Counter=0; //LED占空比 uchar count=0; //中断计数 bit flag=0;//按键扫描标志位 void main() { P3=0xff; //做输入口先写1 TMOD=0x01; TH0=0xff; TL0=0x47; EA=1; ET0=1; TR0=1; while(1) { if(flag) { if(key1==0) { if((LED_PWM_CountLED_PWM_MAX) { LED_PWM_Count=LED_PWM_MAX; LED_Direction=1; } } } if(key2==0) { if((LED_PWM_Count>=LED_PWM_MIN)&&(LED_Direction==1)) { LED_PWM_Count--; if(LED_PWM_count { LED_PWM_Count=LED_PWM_MIN; LED_Direction=0; } } } if(LED_PWM_Count>0) { LED_ON(); LED_PWM_Count--; } else { LED_OFF(); } } } } void timer0() interrupt 1 { TH0=0xff; TL0=0x47; if(++count>=10)//2ms扫描一次按键(不行可以把时间改小) { count=0; flag=1; } } 大概就这个思路,如果不行你自己改改吧!

二、我准备做一个利用调节PWM占空比自动调节12W的LED灯亮度,但不知道怎么做

道理和那个电容充放电的一样啊,只是把电容充放电的那个波形直接用PWM代替掉而已。就是用产生的PWM波去控制可控硅的导通和关闭就可以了啊。然后调节pwm的占空比就可以调节亮度了。

三、白光LED的调光方式为什么只能用PWM方式,而不能采用调整正向电流大小的方式来实现LED亮度的调整?

据我了解,如果直接调节正向电流,白光LED的色温会发生较大的漂移,而色温是灯具的一个很重要的属性,色温漂移是不能被灯具厂家接受的,所以目前主流是PWM调光。

四、pwm控制led灯渐明渐暗

模拟PWM,要求不严格的情况下可以直接用延时模拟,严格的话用定时器。去了解下PWM的原理,弄明白之后很容易写程序,祝成功~

五、pwm调光开关的相关技术哪家做的比较好

你好,深圳阿达电子主要PWM调光开关、LED调光开关主要IC有:ADA01AL/ADPT005/ADPT008等。 PWM调光就是通过调整灯亮的时间与灯灭时间的比 例来调 整平均感观亮度的方法。

ADA01AL是一款单通道电容式触摸IC, 专门针对LED灯的应用,内置强大的电容感应式触摸算法,广泛适用于各种类型的LED灯具控制产品。

请注意,当触摸介质比较厚时,单个触摸点的面积要相对的大一些,比如用3mm以上的非导电介质时,单个按键的触摸面积最好在直径为15mm左右 以上是我们为您整理阿达电子公司的部分PWM调光开关。

六、请问LED驱动电源可控硅调光与PWM调光有什么区别?哪个会比较好点。

可控硅调光是一种物理性质的调光,

PWM调光是通过脉冲调光.

调光原理是不一样的.

可控调光用普通的调光器就可以, 但是PWM必须要用专用的才可以.

PWM的成本贵太多, 自家用可控硅就可以了.

有100灯以上就得用PWM