|
发表于 2005-11-2 17:30:44| 字数 1,509| - 中国–上海–上海 东方有线
|
显示全部楼层
|阅读模式
可能没有用这个的,发这里备份一下吧:)
SANYO M54充电器的OEM产品众多,我的就是SONY BC-34HMP,其不爽之处是有充电时间限制:快充
145分钟;慢充290分钟。于是有DX提出了解决办法:在145分钟定时时间到之前RESET单片机一次(之后应
该也可以)。原文见http://www.fj007.com/news/lijia_shownews.asp?id=31626
如此可以把充电容量扩展到3600mAH,但是文中所说该法有缺点:
1.只要插上就开始计时,如果插了很久了,那么可以充的电池容量会相应减少,直至不起作用(超过135分钟
时)。所以只能插上就立即充电。不能做到和原来充电器那样电池随放随充。
2.即使没放电池,135分钟定时到的时候也会产生多余的一个RESET信号。
兄弟我是单片机初学者,这是个不错的课题,于是开始继续研究,顺便提高单片机水平:)经过改造,已经达到了很好的效果,如下:
1.和原来充电器一样方便,充电器可以一直插在插座,只有放上电池才开始计时。可以充多批电池,而无需拔下充电器。
2.电池在135分钟内冲完了或者取下电池,那么在135分钟时将不会发出多余的复位信号。
3.增加充电指示:加电常亮;充电闪烁;充完常亮。
实现方法:
1.使用AT89C2051贴片IC,直接用原机晶振,即AT89C2051的5脚接原机MCU-1脚,输入4MHZ频率。
2.2051的P3.2作为输入,断开原机MCU-12脚驱动充电LED指示的0欧姆电阻,把MCU-12接到2051的P3.2
,这样,原机一充电就会发出一个低电平信号给2051,驱动它开始计时并驱动LED闪烁。
3.把2051 P1.0输出驱动原来的充电指示LED,接到LED前的390欧姆电阻。这样,加电常亮,充电闪烁。
4.2051 P1.1输出接原机MCU-27脚,用于在135分钟时产生RESET信号。
5.2051 10脚是GND,接原机MCU-14,20脚是VCC,接原机MCU-28。
我写了一个程序,虽然垃圾,但是能用:)搞MCU的DX请帮忙指正,谢谢!!
ORG 0000H
AJMP START
ORG 001BH
AJMP TIMER
START: CLR P2.0
SETB P3.2
MOV C,P3.2
JC START
SETB P2.2
MOV R7,#00H
MOV R6,#00H
MOV R5,#00H
SETB EA
SETB ET1
MOV TH1,#0B1H
MOV TL1,#0E0H
SETB TR1
CALL TIMER
LOOP: SETB P2.0
LCALL DELAY2
CLR P2.0
LCALL DELAY2
MOV C,P3.2
JC START
AJMP LOOP
TIMER: INC R7
CJNE R7,#200,TRET ;200
MOV R7,#00H
INC R6
CJNE R6,#133,TRET ;133
MOV R6,#00H
INC R5
CJNE R5,#40,TRET ;40 ;4MHz Crystal ;set 40 for 61 second base when R6=10,R7=20
RESET: MOV C,P3.2
JC START
CLR P2.2
LCALL DELAY
SETB P2.2
CALL LOOP
TRET: MOV TH1,#0B1H
MOV TL1,#0E0H
RETI
DELAY: MOV R0,#5
D0: MOV R1,#200 ;200
D1: MOV R2,#200 ;200
D2: DJNZ R2,D2
DJNZ R1,D1
DJNZ R0,D0
RET
DELAY2: MOV R3,#200
D3: MOV 21H,#3
D4: MOV R4,#200
D5: DJNZ R4,D5
D6: DJNZ 21H,D4
DJNZ R3,D3
RET
LAST: NOP
END
看看连线简单至极,晶振都省了 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|