unsigned char t1=0,t2=0,c1=1;
bit c=1;
void timer_1() interrupt 3 using 3 //呼吸灯程序
{
TL1 = 0x3C; //200us
TH1 = 0xFF;
t1++; t2++;
if(t1 <= cl) led = 0; //这三行通过t1与cl比较,控制led亮灭,也就是PWM调光。
if(t1 > cl) led = 1; //
if(t1 == 40) t1 = 0; //
if(t2 == 250) //250次中断以后,进入以下语句,更改cl值,改变亮度。改变比较的值(250)
{ //可以调整闪烁速度。
t2=0;
if(c)
{
cl++;
if(cl == 41) c=0; //由亮变暗标识
}
if(!c)
{
cl--;
if(cl == 3) c=1; //由暗变亮标识
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
完全可以,而且程序也是十分简单
这个是纯硬件的
Protel设计的一个简单的电路,运放可以采用电压反馈型的双运放,推荐使用ST的TL082CN,效果最理想。
电阻 左起 100,47K,47K,47K,100K,47K,1.2K
电容是100U 耐压12V以上就可以 三极管是9013 接1.2K电阻的是正 直流12V 可以并联4个LED
一周热门 更多>