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]