刚刚弄了一个呼吸灯程序,喜欢的就拿去把

2020-01-23 14:48发布

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;    //由暗变亮标识
                }
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
guyong2012
1楼-- · 2020-01-23 16:36
 精彩回答 2  元偷偷看……
吴甄
2楼-- · 2020-01-23 19:51
很好用,看了才发现我原来写的那个占空比太小了才导致的闪烁
linred
3楼-- · 2020-01-23 21:47
纯硬件可以实现吗
x11223y
4楼-- · 2020-01-24 00:47
什么是呼吸灯?
就是变暗变亮的过程?
lcmdw
5楼-- · 2020-01-24 02:36
mark
wkman
6楼-- · 2020-01-24 04:07
 精彩回答 2  元偷偷看……

一周热门 更多>