浅谈手电筒原理(MCU五档功能)7135*3典型应用电路(含原程序)
本帖最后由 huau8 于 2014-1-7 09:11 编辑1) 原理分析:上图原理图中,(+)圆圈接LED正极,(-)圆圈接LED负极;二极管D1与电容C1组成单片机MCU电源,其作用是用于电筒断电后,能给单片机提供几秒的连续应急电源,D1于用断电后防止MCU电源上的电反向流出;C1调节断电维持时间,增大C1,可以延长手电筒断电换档时间,不会复位!MCU中1脚是IC电源正极,8脚是负极,4脚用于断电检测,R1是其下拉电阻,6脚控制LED(实际是通过恒流IC-AMC7135的电源正极来控制LED功能);Q1是三个恒流IC-AM7135并联,每个恒流IC通过电流大约是350mA。
2) 电路工作过程:当K1开关接通时,4脚为高电位,MCU正常工作在第一档功能,在K1快速断开,接通时,MCU的4脚在开关断开时,检测到低电位,(由于C1上的电被D1二极管反向截止,通过R1下拉电阻到负极);当4脚为低电位,单片机MCU关闭输出,LED不亮,同时进入睡眠模式(睡眠模式时,单片机的工作电流很小,几个uA),这样可以延长C1工作时间,也就是开关K断电时间!当开关K接通时,MCU的4脚被单片机内部上拉电阻接通到电池正极,为高电位,MCU被唤醒,通过MCU程序被执行下一档功能(对6脚进行控制);再按开关,MCU如此循环工作!此手电筒为5档功能(强光,中光,弱光,爆闪,SOS闪),当然也可以自行编程其功能!
3)如果要把MCU脚位全部利用起来,可以增加档位选择功能,如把2脚接负极,则手电筒只有2档,如3脚接负极,则手电筒有3档功能,7脚接负极,手电筒为4档,所有3个脚不接负极,为默认5档功能,有的在PCB板上把此三脚画成五角星。
4)注意:此贴能火的话,再附PCB图纸,程序!
-- 觉得好的话,麻烦回个贴哦!
---为满足手电爱好者的动手兴趣,特附上PCB图,可直接打印1:1大小,另再附上原程序,供单片机爱好者参考!
---程序是义隆单片机,型号是EM78P153K
---本人不是专业手电制作者,只是一位有点喜好者,旧电筒线路板坏了,工作之余,特为止重新制作了,包PCB,程序;呵呵。。以上资料大家业余学习参考!
**********怎么不可以传送附件?只能传图片格式!版主有方法吗?****************
*****************原程序供大家参考****************************
;EM78P153K
;P63--KEY(低电位有效)对应P61--LED
;看门狗唤醒
CONT==0X01
IOCB==0X0B
PORT6==0X06
TCC==0X01
STATUS==0X03
IOCF==0X0F
IOCE==0X0E
RF==0X0F
TURN==0X11
DLY1==0X12
DLY2==0X13
FLAG==0X14
LMF==FLAG.0 ;中断中亮灭灯标志
BSF==FLAG.1 ;爆闪标志
SOF==FLAG.2 ;SOS标志
SSF==FLAG.3 ;SOS中快慢标志
SST==FLAG.4 ;SOS中灭灯标志
SKK==FLAG.5 ;SOS中第二次快闪
NUMK==0X16
NUM==0X17
PAR==0X18
ORG 0X00
JMP START
ORG 0X08
JMP TCC_INT
;=====================调光
TCC_INT:
JBC SOF ;SOS
JMP IN_SOS
JBC BSF
JMP IN_BS ;爆闪
JBC LMF
JMP MD
BS PORT6,1
DJZ PAR
JMP OUT
BS LMF ;亮灭标志
COMA NUM
MOV PAR,A
JMP OUT
MD:
BC PORT6,1
DJZ PAR
JMP OUT
BC LMF
MOV A,NUM
MOV PAR,A
JMP OUT
OUT:
MOV A,@250
MOV TCC,A
BC RF,0
RETI
;---------------------爆闪
IN_BS:
DJZ PAR
JMP OUT1
MOV A,@0B00000010
XOR PORT6,A
MOV A,@20
MOV PAR,A
OUT1:
MOV A,@200
MOV TCC,A
BC RF,0
RETI
;--------------------SOS
IN_SOS:
JBC SST
JMP STT ;灭灯
JBC SKK
JMP KK2
DJZ PAR
JMP OUT2
MOV A,@0B00000010
XOR PORT6,A
JBC SSF ;快慢标志
JMP SOK ;慢闪部分
SOM: ;快闪部分
MOV A,@80
MOV PAR,A
DJZ NUM
JMP OUT2
MOV A,@6
MOV NUM,A
BS SSF ;开快闪标志
JMP OUT2
SOK: ;慢闪部分
MOV A,@200
MOV PAR,A
DJZ NUM
JMP OUT2
MOV A,@6
MOV NUM,A
MOV A,@80
MOV PAR,A
BC SSF
BS SKK ;第二次快
BC PORT6,1
JMP OUT2
OUT2:
MOV A,@1
MOV TCC,A
BC RF,0
RETI
;-------------------------
KK2:
DJZ PAR
JMP OUT2
MOV A,@0B00000010
XOR PORT6,A
;----------------------- ;快闪部分
MOV A,@80
MOV PAR,A
DJZ NUM
JMP OUT2
MOV A,@4
MOV NUM,A
BS SST ;开灭灯
JMP OUT2
;------------------------
STT: ;灭灯部分
BC PORT6,0
DJZ PAR
JMP OUT2
MOV A,@200
MOV PAR,A
DJZ NUM
JMP OUT2
BC SST ;关灭灯
BC SSF ;开慢闪
BC SKK
BC PORT6,1
MOV A,@6
MOV NUM,A
JMP OUT2
;===================
;===================
START:
MOV A,@0B11111101;P61输出
IOW PORT6
MOV A,@0B11111101;P61下拉
IOW IOCB
MOV A,@0X00
MOV PORT6,A
IOW IOCE
MOV A,@10
MOV TURN,A
;-----------------------------
BEG:
MOV A,@0X00
MOV PORT6,A
MOV FLAG,A
IOW IOCE
MOV A,@6
MOV NUMK,A
;------------------功能1强光
G1:
MOV A,@6
SUB A,NUMK
JBS STATUS,0
JMP G2
MOV A,@0X00
IOW IOCF
BS PORT6,1
JMP KEY
;------------------功能2 中光
G2:
MOV A,@5
SUB A,NUMK
JBS STATUS,0
JMP G3
MOV A,@0B00000000
CONTW
MOV A,@170
MOV NUM,A
MOV PAR,A
MOV A,@0B00000001
IOW IOCF
MOV A,@250
MOV TCC,A
ENI
JMP KEY
;------------------功能3 弱光
G3:
MOV A,@4
SUB A,NUMK
JBS STATUS,0
JMP G4
MOV A,@85
MOV NUM,A
MOV PAR,A
MOV A,@0B00000000
CONTW
MOV A,@0X01
IOW IOCF
MOV A,@250
MOV TCC,A
ENI
JMP KEY
;-----------------功能4 爆闪
G4:
MOV A,@3
SUB A,NUMK
JBS STATUS,0
JMP G5
BS BSF ;爆闪标志
MOV A,@0B00000101
CONTW
MOV A,@20
MOV PAR,A
MOV A,@200
MOV TCC,A
MOV A,@0X01
IOW IOCF
ENI
JMP KEY
;-----------------功能5 SOS
G5:
MOV A,@2
SUB A,NUMK
JBS STATUS,0
JMP BEG
BC BSF ;关爆闪标志
BS SOF ;开SOS标志
MOV A,@0B00000100
CONTW
BS PORT6,1
MOV A,@5
MOV NUM,A ;闪次数
MOV A,@80
MOV PAR,A
MOV A,@1
MOV TCC,A
MOV A,@0X01
IOW IOCF
ENI
JMP KEY
;===============开关检测
KEY:
JBC PORT6,3
JMP KEY
CALL DELAY1
JBC PORT6,3
JMP KEY
DISI
MOV A,@0X00
IOW IOCF ;关所有中断
MOV PORT6,A ;关开关时,要关输出
;------------------
SL:
WDTC ;清除WDT和预分频器
CLR TCC ;清TCC
MOV A,@0B00011110;设置WDT分频比,大于1:1
CONTW
MOV A,@0X00 ;禁止WDT
IOW IOCE
MOV PORT6,PORT6
DISI
MOV A,@0B00000010;设置唤醒功能
IOW IOCF
SLEP
NOP
WDTC
CLRA
IOW IOCE ;禁止WDT
IOW IOCF ;禁止唤醒
;===========================
K1:
JBS PORT6,3
JMP K1
CALL DELAY2
JBS PORT6,3
JMP K1
DEC NUMK
JMP G1
;================
DELAY1:
MOV A,@15
MOV DLY1,A
D1: MOV A,@10
MOV DLY2,A
D2: DJZ DLY2
JMP D2
DJZ DLY1
JMP D1
RET
;---------------
DELAY2:
MOV A,@40
MOV DLY1,A
E1: MOV A,@50
MOV DLY2,A
E2: DJZ DLY2
JMP E2
DJZ DLY1
JMP E1
RET
第一次离楼主这么近 技术贴 超赞,顶一个。
我想转载,可以不?
我会注明出处的 mark漫漫看 phantomfire 发表于 2014-1-4 19:18 static/image/common/back.gif
超赞,顶一个。
我想转载,可以不?
我会注明出处的
可以,没关系,当着业余学习用!
好帖!那种没有记忆档位,开关后直接变到下一档的电路,是编程问题还是少了零件? 顶一下,学习了 搭车问个问题:
如果为了驱动大功率LED,能不能让几个小功率的驱动电路并行工作? 11521 发表于 2014-1-4 19:38 static/image/common/back.gif
好帖!那种没有记忆档位,开关后直接变到下一档的电路,是编程问题还是少了零件? ...
嗯?无论是单片机还是SoC AP都带内部存储的啊,就是多与少的问题。
学习备用~~~~~~~~~~~ 好帖,mark 好贴!手上有一个山寨筒的电路只有一个三脚的管——型号HDF2t、一个小电容,2个电阻就可以3档调光!好NB,不知道什么原理。 对于我这种喜欢折腾电路的人来说,此贴是必回复的技术帖子。7135真是长盛不衰啊! 本帖最后由 whseen 于 2014-1-4 22:01 编辑
狂飙的太阳 发表于 2014-1-4 21:36 static/image/common/back.gif
对于我这种喜欢折腾电路的人来说,此贴是必回复的技术帖子。7135真是长盛不衰啊! ...
移动电源可以搭配 DIY好的USB加强过流保护7135x8充电线(一定要用单档电路以免造成脉冲电流充坏手机等) ,也可以根据各种移动电源的保护电流调整7135的数量定制保护电流,防止移动电源保护板动作造成外出时用不了。
http://image.shoudian.org/attachments/forum/201312/30/035918fibqxqrpd3bffrlb.jpghttp://image.shoudian.org/attachments/forum/201312/30/035523lsa1t9ls9yhxpps3.jpg
一般的移动电源直接保护板动作。
http://image.shoudian.org/attachments/forum/201312/30/0355417d97d29ioiddio1h.gif
用上后级保护USB充电线可防止移动电源保护板动作,去除短路故障即可恢复输出。
http://image.shoudian.org/attachments/forum/201312/30/035528d4u212k47okeobqe.gif
http://www.shoudian.org/thread-368508-1-1.html
感谢楼主分析, 常见的AK-47电路也是同样的原理,补充下:C1上一般并联个泄放电阻,调整阻值可调节断电复位时间。 11521 发表于 2014-1-4 19:38 static/image/common/back.gif
好帖!那种没有记忆档位,开关后直接变到下一档的电路,是编程问题还是少了零件? ...
如果带了MCU的电路,都会做编程处理,如果没有MCU的,且有强光,中光,弱光的,很多都会在开关上面处理,开关是特殊开关,有多个引脚,除了公共端,每个脚接一个功能!
异行者 发表于 2014-1-4 20:09 static/image/common/back.gif
搭车问个问题:
如果为了驱动大功率LED,能不能让几个小功率的驱动电路并行工作? ...
这种用7135恒流IC的并联可以方面处理,如果用带电感恒流的电路,共同驱动一个LED,不太可行! wuqiu 发表于 2014-1-4 21:30 static/image/common/back.gif
好贴!手上有一个山寨筒的电路只有一个三脚的管——型号HDF2t、一个小电容,2个电阻就可以3档调光!好NB, ...
能方便提供原理图,或图片不? jackyi 发表于 2014-1-4 22:51 static/image/common/back.gif
感谢楼主分析, 常见的AK-47电路也是同样的原理,补充下:C1上一般并联个泄放电阻,调整阻值可调节断电复位 ...
你说的也是一种调节断电时间的方法,但不建议这样用,增加成本,并且对电容容值会要增大,如果方便,直接调节C1容值就行!呵呵。。。。