kinoko 发表于 2010-1-27 03:46:11

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

看着笔记本待机的时候,电源灯变成忽明忽暗,手就不自在了。

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

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

如果觉得有用,也可以加到自己的作品上,据说某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)

cat_li 发表于 2010-1-27 08:25:24

用硬件设计一个也不麻烦,呵呵

b57203493 发表于 2010-1-27 08:36:06

有创意!顶!

bg6agf 发表于 2010-1-27 08:41:27

呼吸灯是什么东西?

yanxinboy 发表于 2010-1-27 09:26:43

记号.学习拉. PWM控制呼吸灯.感谢

zheshiwo 发表于 2010-1-27 16:11:45

unsigned char t1=0,t2=0,c1=1;

这里是cl?

zhames 发表于 2010-1-27 17:07:50

good!

fuanzwg 发表于 2010-1-27 18:14:46

应该是:c1吧 并非cl

freud 发表于 2010-2-10 22:10:24

mark 呼吸LED

tonydh 发表于 2010-2-18 00:09:38

有创意,学习了

arbol 发表于 2010-2-20 00:09:24

在实验板上试验不成功,表现为led慢闪,led无呼吸现象。

zc3909 发表于 2010-2-20 00:23:11

通常单片机系统都有一个或几个LED作为系统状态和异常指示,根据这些led的状态,可以判断出系统的工作情况,可以节省很多后期维护的成本

arbol 发表于 2010-2-20 00:30:10

TL1 = 0x3C;    //200us   
    TH1 = 0xFF;

这里搞错了,我用的定时器0,没改过来,呵呵,谢谢LZ的程序!

jiongeyes 发表于 2010-6-24 16:39:26

学习,我回去试试

billtian 发表于 2010-6-24 16:50:39

回复【11楼】zc3909
通常单片机系统都有一个或几个led作为系统状态和异常指示,根据这些led的状态,可以判断出系统的工作情况,可以节省很多后期维护的成本
-----------------------------------------------------------------------

很早就这么用,几个LED可以表示很多状态,调试也很方便

stely 发表于 2010-8-10 10:04:15

标记学习,待会试试。

nicolas2010 发表于 2010-8-11 01:14:06

成功了,感谢分享

fshunj 发表于 2010-8-11 01:24:43

很好啊

millwood0 发表于 2010-8-11 03:40:40

you should google "gamma correction".

wozhiaihe 发表于 2010-10-8 21:30:16

mark

wxx116zh 发表于 2010-10-8 21:41:42

mark

kinoko 发表于 2010-10-8 21:49:04

嘿嘿,“小时候”的帖子被顶上来了…

zhuyi25762 发表于 2010-10-8 21:53:38

PWM调光?

licongdwqx 发表于 2010-10-8 23:57:36

有电路图吗?

iokou 发表于 2010-10-18 20:46:56

闪得好厉害啊……

wcm_e 发表于 2010-10-18 22:51:00

活学活用

techer 发表于 2010-10-19 10:45:18

mark

arvidwen 发表于 2010-10-19 11:34:36

回复【21楼】kinoko
嘿嘿,“小时候”的帖子被顶上来了…
-----------------------------------------------------------------------

是你长得快

leequanhu 发表于 2010-11-3 14:11:14

我学习lz的帖子,为何LED闪烁,而不是渐变,在原有参数下运行

ssmart 发表于 2010-11-3 16:55:20

创意不错,mark一下

adyzj 发表于 2010-11-3 18:04:06

原来呼吸是这个意思啊

wangyi1e 发表于 2010-11-3 21:22:17

mark,不错不错,嘻嘻,最好再做一个霹雳游侠车前的那个效果

stm8s 发表于 2010-11-4 18:29:40

mark

lastry 发表于 2010-11-4 23:26:23

哇塞~相当好

imcc 发表于 2010-12-2 16:30:22

初次接触PWM

imcc 发表于 2010-12-3 14:25:31

在板上的效果就是像飞机上的闪烁信号灯,没有呼吸效果

ideadz 发表于 2011-1-24 12:52:12

回复【36楼】imcc
-----------------------------------------------------------------------

TMOD = 0x02; //定时器0,工作方式2,自动重装

ERDTxiduoduo 发表于 2011-1-25 01:44:42

mark

rockgoogle 发表于 2011-1-25 08:49:18

记号!

skynet 发表于 2011-1-25 11:19:55

有BUG,初始要等很久才会出效果
if(!c)
                {
                  cl--;
                  if(cl == 3) c=1;    //由暗变亮标识
                }

这里有问题,cl-- 变成255,然后要减到3,要等很久

myljd01 发表于 2011-1-25 11:25:16

感谢楼主无私奉献mark 呼吸灯

hhui02 发表于 2011-1-25 12:18:53

mark

www5911839 发表于 2011-6-11 12:57:35

mark 感谢分享

jinzhifeng 发表于 2011-7-19 11:20:11

并一个合适的电容试试 !

laicelc 发表于 2011-7-19 11:32:37

标记一下   以备需用

newhand1991 发表于 2011-7-19 15:01:49

实验现象·· 什么都没有

ligouning 发表于 2011-7-23 20:55:14

用PWM调光?有意思!

Bicycle 发表于 2011-7-23 21:02:32

mark

mdj-fish 发表于 2011-7-24 01:53:53

PWM调光?有意思!

my_love 发表于 2011-7-24 10:45:12

shou

aheadlead 发表于 2011-7-24 12:28:48

回复【18楼】millwood0
-----------------------------------------------------------------------

视频?

28571840 发表于 2011-7-26 11:56:34

视频在压缩包里啊

LINER 发表于 2011-7-28 00:29:19

嗯,不错!

287355586 发表于 2011-8-11 14:55:41

mark

super0peng 发表于 2011-8-11 15:03:52

MARK

hzc171 发表于 2011-8-11 15:21:56

MARK

segeal 发表于 2011-8-11 15:22:57

有时候蛮有用的,留下

1021477601 发表于 2011-8-11 23:21:13

mark

wenjin0386 发表于 2011-8-11 23:48:35

mark

futilu 发表于 2011-8-12 10:22:13

很好

caesar_song 发表于 2011-9-15 17:17:51

krstc 发表于 2011-9-15 17:27:28

mark

kkkkllll1111 发表于 2011-9-15 23:03:15

回去试试 感谢分享

bankhi 发表于 2011-9-28 12:52:38

好东西一下子我找到了

liudaolunhui 发表于 2011-9-28 13:12:39

很不错

huhushuai123 发表于 2011-9-28 13:19:20

和楼主的想法完全的一样啊真好需要

sonnybird 发表于 2011-9-28 13:59:37

mark

ancos 发表于 2011-9-28 14:06:43

好创意!

289457095 发表于 2011-9-30 11:48:09

感觉也就楼主取的名字好听而已,也就是PWM调光

liudaolunhui 发表于 2011-9-30 13:11:27

我烧录这个程序还是不得行???

xsmjc98 发表于 2011-11-18 14:27:57

先是IO模拟,再到定时器调制~

ourgalaxy 发表于 2011-11-18 15:29:45

有几点是初学的没注意的:
1.这个变化除了与程序有关,主要的还是硬件
2.首先确定电路里最大的电流是多少。如果是51的高电平点亮,就没什么戏了。5ma的变化能哟多大。
3.其次是你用什么灯,普通亮度就不必试了,本身就没什么变化。
4.还有一个rgb三色的话,记得蓝光的效率最高,限流电阻要大一些。但最大是多少,需要你自己摸索。
5.如果以上还是解决不了,那就提高电压吧!

wanjiong_123 发表于 2011-11-18 17:26:43

谢谢楼主分享!!记下了!

pyx038 发表于 2011-11-18 18:21:50

硬件就行了

samll_ant 发表于 2011-11-19 14:14:17

先学习下,刚接触51呢

chenxiaohu 发表于 2011-11-20 03:19:44

向楼主学习

luyanqing0828 发表于 2011-11-21 16:54:51

mark

zy0818 发表于 2011-12-6 08:25:53

学习了

Beigai 发表于 2011-12-6 19:04:04

mark,呼吸灯要是有pwm很好做的

ahncoo 发表于 2011-12-7 21:39:23

六个mark

huangpeifeng 发表于 2012-2-17 18:31:59

bucuo

wangbo2012 发表于 2012-2-19 20:55:05

谢谢!试验通过,可以加在以后的东东上了

captain2012 发表于 2012-5-18 23:23:28

我用430实验一下呢

snwuzhisheng 发表于 2012-6-30 17:15:48

{:3_48:}周末回去用stc的单片机试试

vjcmain 发表于 2012-6-30 17:23:20

要定时器够用才行

zhdo1983 发表于 2012-7-1 01:19:09

mark ,学习下

GNMXD 发表于 2012-7-1 07:20:48

程序不错。谢谢分享!

sdf159372008 发表于 2012-7-1 10:21:08

频繁中断容易导致18B20之类的时序紊乱

xyr 发表于 2012-7-1 14:19:34

弱到强,强到弱

jqbkl007 发表于 2012-7-1 18:34:20

mark    感觉蛮有意思的!!

曹世鹏 发表于 2012-7-12 11:11:26

好有意思呀。哈哈

fickle 发表于 2012-9-5 18:38:31

不错,有代码,有演示。

顶一个。

hyue9281 发表于 2012-9-5 19:36:33

顶一下-------------
页: [1]
查看完整版本: 给你的51单片机作品加个呼吸灯(程序)