|
网上一直有很多脉冲修复相关的产品,其原理及实现方式都是玄乎其玄,偶尔在网上闲逛找到一段比较靠谱的原理介绍,按照此原理制作了脉冲电池修复器
此修复器使用常见的不能再常见的19-24V电源,单片机选择stc最低端那种104,定时器中断产生稳定的一逼的方波信号,吊打各类555,外置两只MOS功率管分别充放电,采用最简单的电阻限流。一切向没钱看。
此玩意的功效真的是2333,智商产品,反正打了几个版,多余的我准备在m币商城卖2333m包邮,有兴趣的欢迎捧场,当然了我实验用的电池基本都是别人丢掉不要的那种,我想就算神仙也救不过来。
- #include"stc15f2k.h"
- #include"intrins.h"
- //使用内部振荡12M
- typedef unsigned char UINT8;
- typedef unsigned int UINT16;
- sbit chgpin = P3^4;//充电MOS
- sbit discpin = P3^3;//放电MOS
- unsigned char cnt=0;
- void Timer1Init(void) //0.12毫秒@12.000MHz
- {
- AUXR |= 0x40; //定时器时钟1T模式
- TMOD &= 0x0F; //设置定时器模式
- TL1 = 0x60; //设置定时初值
- TH1 = 0xFA; //设置定时初值
- TF1 = 0; //清除TF1标志
- TR1 = 0; //定时器1开始计时
- }
- void Timer0Init(void) //10毫秒@12.000MHz
- {
- AUXR &= 0x7F; //定时器时钟12T模式
- TMOD &= 0xF0; //设置定时器模式
- TL0 = 0xF0; //设置定时初值
- TH0 = 0xD8; //设置定时初值
- TF0 = 0; //清除TF0标志
- TR0 = 1; //定时器0开始计时
- }
- //***************************************************************************
- void main()
- {
- chgpin=0; //初始化端口状态
- discpin = 0;
- P3M0=0x18;
- cnt=0;
- Timer0Init();
- Timer1Init();
- EA=1; //启动中断系统
- ET0=1; //-->TF0 控制位置1,表明当TF0置1时,中断系统将介入
- ET1=1; //-->TF1
- while(1)
- {
- }
- }
- void TIM0_isr() interrupt 1 //10ms 进入一次
- {
- if (cnt==0){
- discpin = 0;
- TR1 = 1;
-
- }
- if (cnt==90){
- TR1 = 0;
- chgpin=0;
- discpin = 0;
- }
- if (cnt==91){
- chgpin=0;
- discpin = 1;
- }
- if (cnt==101){
- chgpin=0;
- discpin = 0;
- }
- if (cnt>111){
- cnt = 0;
- }
- else{
- cnt++;
- }
- }
- void TIM1_isr() interrupt 3 //0.12ms 进入一次
- {
- chgpin=!chgpin;//输出方波
- }
复制代码
坛友实测:https://www.mydigit.cn/forum.php?mod=viewthread&tid=248586
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|