一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 5089|回复: 19
收起左侧

无功不受禄,上N个1位、8位、16位、32位的循环呼吸灯

  [复制链接]
发表于 2010-6-22 21:43 | 显示全部楼层 |阅读模式
本帖最后由 bluefeel 于 2010-6-23 17:15 编辑

昨天收到从王老板这里买的2样东西,发现还送了几个小的LED点阵
送了几次了,感觉都有点不好意思了 ,所以从昨天晚上起到现在把这几个呼吸灯做完放出来,帮王老板增人气。
根据自己对呼吸灯的理解,程序都是独立编写的,没有参考任何其他人的程序,如有雷同,纯属巧合。

------------------------------程序----------------------------------
普通51使用的程序:1位、8位、16位、32位的循环呼吸灯,11.0592M时钟
普通51呼吸灯.rar (32.3 KB, 下载次数: 647)
增强51使用的程序:1位、8位、16位、32位的循环呼吸灯,11.0592M时钟
增强51呼吸灯.rar (33.49 KB, 下载次数: 586)
AVR使用的程序:1位、8位、16位的循环呼吸灯,8M内部RC时钟
AVR呼吸灯.rar (26.11 KB, 下载次数: 588)
以前从我这里拿AVR开发板的朋友可以直接下载到单片机来看效果了。
使用前请先看下程序里的备注。

来两个自己拍的视频
呼吸灯视频.rar (5.25 MB, 下载次数: 932)

------------------------------原理图---------------------------------
51的:
1.jpg
AVR的:
2.jpg

我是用这个51开发板的,有32路端口LED,方便得很
4002M.jpg

贴个1位呼吸灯的源程序凑字数
/******************************************************************************
程序功能:1位呼吸灯
程序设计:***
设计时间:2010.06.21
所在单位:社会大学
版权信息:本程序版权由***所有,可以随意使用、拷贝、修改;
              可用于商业目的的嵌入式项目当中;
              不管用于任何目的,必须保留本版权信息,并公开源代码
备注:      占用代码空间79字节,必须使用增强型51,例如C8051F,STC12C,时钟11.0592M
******************************************************************************/
#include "reg52.h"
sbit LED = P2^0;   //需要呼吸的灯
unsigned char i, j, k;
bit Turn;
void main()
{
    while(1)
    {
        Turn = ~Turn;   //第一次为1,第二次为0,第三次为1......依次类推
        for(i=0; i<16; i++)    //16级亮度,从低到高,或者从高到低
        {
            while(--j)   //每级亮度包含255个周期
            {
                do
                {
                    if(k < (i << 1))
                        LED = ~Turn;   //k小于i*2时为非Turn
                    else
                        LED = Turn;   //k大于等于i*2时为Turn
                }
                while(++k != 30);   //i*2最大为30,这个循环是占空比调节
                k = 0;
            }
        }
    }
}

何为呼吸灯
顾名思义,灯光在微电脑控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸。广泛被用于数码产品,电脑,音响,汽车等各个领域,起到很好的视觉装饰效果。

编程思路
1.建立一个N次的一级循环,循环的每一次改变LED的亮度,从低到高或者从高到低,也就是N级亮度;
2.在第一级循环内建一个M次的二级循环,作用是产生M个周期,也就是每级亮度有M个周期(方波);
3.在第二级循环内建一个循环,这个循环根据第一级循环产生对应占空比的方波,占空比决定了LED的亮度。

别急,还有下文,准备推出花样呼吸灯,呼吸数码管......


有朋友说直接烧了程序后灯闪得非常快,现在查明原因,是我编译的时候选择的是M32,朋友的是M16,只要把包含的头文件和项目器件选择这两个地方改过来重新编译就可以了。

评分

参与人数 2一乐金币 +20 收起 理由
snn_snn + 10 不错
无锡风 + 10 有创意

查看全部评分

发表于 2010-6-23 06:17 | 显示全部楼层
能否上个电路图,说明一下连线情况?
能否程序加一些注释......


所谓“能者不难,难者不能”
请 楼主同时起一些启蒙引导作用?
发表于 2010-6-23 07:08 | 显示全部楼层
貌似喘得有点快呐
发表于 2010-6-23 07:57 | 显示全部楼层
值得关注,看看有什么实际用途没有
发表于 2010-6-23 08:51 | 显示全部楼层
期待呼吸数码管
发表于 2010-6-23 09:57 | 显示全部楼层
不知道什么叫做呼吸灯,留个足印。
发表于 2010-6-23 11:00 | 显示全部楼层
发表于 2010-6-23 17:29 | 显示全部楼层
貌似喘得有点快呐
chillmax 发表于 2010-6-23 07:08 https://www.yleee.com.cn/images/common/back.gif



    试试这个,是根据楼主的提示改的~~

AVR呼吸灯(M16适用).rar

31.1 KB, 下载次数: 453, 下载积分: 一乐金币 -1

发表于 2010-6-23 20:10 | 显示全部楼层
上个呼吸的效果看看 哈哈
发表于 2010-6-23 20:29 | 显示全部楼层
上个呼吸的效果看看 哈哈
benxiong22 发表于 2010-6-23 20:10 https://www.yleee.com.cn/images/common/back.gif



    笨熊,视频里有啊~~

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-27 15:36 , Processed in 0.083548 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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