刚刚弄了一个呼吸灯程序,喜欢的就拿去把
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; //由暗变亮标识
}
}
} 回复【楼主位】guyong2012
-----------------------------------------------------------------------
这个只是一个中断服务程序,需要自己将主函数补上才可以正常运行 很好用,看了才发现我原来写的那个占空比太小了才导致的闪烁 纯硬件可以实现吗 什么是呼吸灯?
就是变暗变亮的过程? mark{:smile:} linred 发表于 2012-8-28 22:39 static/image/common/back.gif
纯硬件可以实现吗
rc、LC震荡,,,,555,,,之类的纯硬件,可以实现 linred 发表于 2012-8-28 22:39 static/image/common/back.gif
纯硬件可以实现吗
完全可以,而且程序也是十分简单 linred 发表于 2012-8-28 22:39 static/image/common/back.gif
纯硬件可以实现吗
这个是纯硬件的 raxb 发表于 2012-8-31 15:45 static/image/common/back.gif
这个是纯硬件的
Protel设计的一个简单的电路,运放可以采用电压反馈型的双运放,推荐使用ST的TL082CN,效果最理想。
电阻 左起 100,47K,47K,47K,100K,47K,1.2K
电容是100U 耐压12V以上就可以 三极管是9013 接1.2K电阻的是正 直流12V 可以并联4个LED
软件的可变性更好,而且可以做出很多其他的效果 刚才试了下,还不错,只是在灯较暗的时候感觉有点闪烁。 看看程序都很短的. 这个不错,不用占用主程序的时间吧
谢谢分享! 还好程序很短,如果很长的话看到这么多0.1标志位,就头晕了。 呼吸灯由暗变亮和由亮变暗的变化过程应该是线性的还是某种曲线,才能看起来更自然呢 mark{:lol:}{:lol:}{:lol:}喜欢 留个脚印 这个必须赞一个!!! 这是极好的 路过路过了顺便看看
页:
[1]