PWM——用按键控制用按键控制LED的亮度的亮度
利用 LED 也能通过亮度来表现出 PWM 参数的变化,用实物进行测试,效果很好,但是用 PROTEUS 进行仿真
试验,却只是看到闪烁的厉害,基本上看不出亮度的变化。
以前写过一篇关于PWM的博文,已经有一年了,链接如下:
http://www.eeskill.com/article/id/50651。
文中使用了示波器来显示不同占空比的波形。
其实,利用LED也能通过亮度来表现出PWM参数的变化,用实物进行测试,效果很好,但是用PROTEUS进行仿真试验,却
只是看到闪烁的厉害,基本上看不出亮度的变化。
近来发现,加上一个大电容,就可以减弱LED的闪烁,亮度就能够稳定一些,这样一来,就可以用PROTEUS软件直接观察亮
度的变化了。
电路见下图。图中的大电容(C6)的容量是4700uF,这个是可以随便调整的,实际的电路就不需要它了。
图中的占空比参数是10,LED(D1)的显示为“半亮”状态。
C语言的程序,在去年就发表出来了,可见上面的链接,现在略加改动如下:
#include<reg52.h>
unsignedchara,b;
sbitK1=P3^2;//定义两个调整占空比的按键
sbitK2=P3^3;
//------------------------------------------
voiddelay(unsignedinti)
{
unsignedcharj;
while(i--)for(j=0;j<60;j++);
}
//------------------------------------------
voidmain()
{
TMOD=0x01;//T0定时方式1
TH0=(65536-500)/256;//500us@12MHz
TL0=(65536-500)%256;
TR0=1;
ET0=1;
EA=1;
a=0;
b=10;
while(1){
if(!K1){delay(20);if(!K1){b++;if(b>19)b=19;while(!K1);}}
if(!K2){delay(20);if(!K2){b--;if(b<1)b=1;while(!K2);}}