查看: 1849|回复: 0
打印 上一主题 下一主题

给你的51单片机作品加个呼吸灯(程序)

[复制链接]
跳转到指定楼层
沙发
发表于 2016-6-14 19:11:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看着笔记本待机的时候,电源灯变成忽明忽暗,手就不自在了。

研究了一番,写出了代码,加到自己做的“玩具”上。

可能会觉得这个东西没有什么实在意义,只不过看起来没闪烁那么单调而已。

如果觉得有用,也可以加到自己的作品上,据说某mp3用呼吸频率来表示系统电量得多少,咱觉得还是蛮创意的。

如果你的系统有空余的定时器,或者已经使用了定时器,那不妨试试,唯一就是要占用两个字节的ram,和几十微秒的时间。

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;    //由暗变亮标识
                }
        }
}

这里有一个效果视频 希望大家喜欢。

点击此处下载 ourdev_529415.rar(文件大小:474K) (原文件名:20100127.rar)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表