数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 7461|回复: 9

[另类] 自制磷酸铁锂保护板

[复制链接]
发表于 2019-7-12 17:28:29 | 显示全部楼层 |阅读模式
电池单节设定2.9V~3.70V超范围关MOS 管,双节电压5.8V~7.4V超范围关MOS 管。
电压采集比较费劲,差分放大分别测量单体电池电压,最后串联采集电压。
芯片用PIC16F676 10位AD转换。
c程序
/*
**********/
#include<pic.h>
__CONFIG(0X3BB1);
#define uchar unsigned char
#define uint unsigned int
void Delay_ms(uint xms);
//void  Compare(int x);
void timer1_init();
void port_init();
void caiji (void );
void didi_n(uint k);
#define LED RC3
#define K RC4
//int  SDZ=96;//382  //设定值
//uchar  FW =24;// 96 //范围
uchar counter=0;
uchar con1=0;
uchar con2=0;
uchar con3=0;
char F=0;
char W1=0;
char W2=0;
char W3=0;
char a1=0;
char a2=0;
char a3=0;
//uchar a4=0;
//uchar const seg_data[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
//{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳极

/************短延时函数******************/
/*******DIDI*******/
void didi_n(uint k)
  {
   TRISC&=0xfe;
   char m;
        for(m=k;m>0;m--)
{
        RC1=1;
        Delay_ms(300);
        RC1=0;
     Delay_ms(200);
}
  }

/****************************/




/************延时函数******************/
void Delay_ms(uint xms)
{
        int i,j;
        for(i=0;i<xms;i++)
        {
                for(j=0;j<71;j++);}
}
/**********数制转换函数*********/
void conv(int x)
{
        float temp;

        //temp=x*5.0/255;       
        temp=(x*5.0/1023);

}
/*********显示函数**********/

void timer1_init()
{
        GIE=1;
        PEIE=1;
        T1CKPS0=1;T1CKPS1=1;                //1:8
        TMR1CS=0;
    TMR1IE=1;
        TMR1ON=1;
        TMR1GE=0;
        T1OSCEN=1;
        TMR1H=0xfb;
        TMR1L=0x1e;

}

/************T0**********/
void interrupt ISR(void)
{

  if(TMR1IF==1)
  {
                //TMR1GE=0;
                TMR1IF=0;
                TMR1H=0xfb;
                TMR1L=0x1e;
        if(++counter>=200)
           {
        //        LED=~LED;
          F=1;       
                  counter=0;
          }
   }

}

/************port_init**********/

void port_init()
{
        PORTA=0XF0;

        TRISA=0XFF;
        ANSEL=0X07;
        TRISC=0X00;
        PORTC=0X00;
       
//        ADCON0=0X41;
}
       
/*************主函数***********/
void main()
{
       
        port_init();
        LED=1;
        K=0;
        Delay_ms(500);
        LED=0;
        Delay_ms(500);
        didi_n(5);
    timer1_init();
         //caiji ( );
        while(1)
        {
               
         caiji ( );
        if(F==1)
                {
                        F=0;
                        LED=1;       
                        Delay_ms(100);
                                if(++con1>=2)
                                           {
                                        //        LED=~LED;
                                                  W1=1;
                                                con1=0;       
                                          }
               
        if(++con2>=4)
                                           {
                                        //        LED=~LED;
                                                  W2=1;
                                                con2=0;       
                                                W1=0;
                                          }
                }
        if(++con3>=6)
                                           {
                                        //        LED=~LED;
                                                  W3=1;
                                                con3=0;       
                                                W1=0;
                                                W2=0;
                                          }
                        else LED=0;
                if(((a1==1)&&(a2==1))&&(a3==1))
                                { K=1;RC2=1;}
                                        else
                                         {
                                         K=0;
                                        RC2=0;       
                                        }
/**************
                                if(K==0)
                                        {
                                                 Delay_ms(20);
                                        if(++a4>200)       
                                        didi_n(2);                               
                                        }
            
*****************/       
                }
        }
/******************************/
void caiji (void )
{
        if(W1==1)
        {

                int result=0x00;
                W1=0;
                ADCON1=0X10;//8分频
                ADCON0=0X81;//A0通道,右对齐,内部参考电压
                        char i;
                result=0x00;                //转换结果清零
                for(i=3;i>0;i--)
                {
                       
                        GO_DONE=1;                        //开启转换
                        while(GO_DONE);   //等待转换完成
                        result=result+ADRESL+ADRESH*256;//累计转换结果
                }
                result=result/3;                        //求5次结果平均值
            if((result<757)&&(result>590))
                        {
                                        a1=1;
                                }
                                        else
                                         {
                                                //        K=1;
                                                        a1=0;
                                                       
                        }
                                                        }               
        if(W2==1)
        {

                int result=0x00;
                W2=0;
                ADCON1=0X10;//8分频
                ADCON0=0X85;//A1通道,右对齐,内部参考电压
                        char i;
                result=0x00;                //转换结果清零
                for(i=3;i>0;i--)
                {
                       
                        GO_DONE=1;                        //开启转换
                        while(GO_DONE);   //等待转换完成
                        result=result+ADRESL+ADRESH*256;//累计转换结果
                }
                result=result/3;                        //求5次结果平均值
            if((result<757)&&(result>590))
                        {
                                a2=1;
                                }
                                        else
                                         {
                                                        //K=1;
                                                        a2=0;
                                                }
        }       
//////       
        if(W3==1)
        {

                int result=0x00;
                W3=0;
                ADCON1=0X10;//8分频
                ADCON0=0X89;//A2通道,右对齐,内部参考电压
                        char i;
                result=0x00;                //转换结果清零
                for(i=3;i>0;i--)
                {
                       
                        GO_DONE=1;                        //开启转换
                        while(GO_DONE);   //等待转换完成
                        result=result+ADRESL+ADRESH*256;//累计转换结果
                }
                result=result/3;                        //求5次结果平均值
            if((result<606)&&(result>475))
                        {
                                        a3=1;
                                }
                                        else
                        {
                                //        K=1;
                                        a3=0;
                                        didi_n(2);
                                }
        }               


}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 2家元 +50 收起 理由
邓穿石 + 20 謝謝分享
青柠 + 30 以資鼓勵

查看全部打赏

发表于 2019-7-12 19:10:30 | 显示全部楼层
:sweat: 不错的焊工。
回复 支持 反对

使用道具 举报

发表于 2019-7-12 22:53:49 | 显示全部楼层
板子做得还行,就是这个焊接质量和元件摆放啊
回复 支持 反对

使用道具 举报

发表于 2019-7-14 21:48:22 | 显示全部楼层
量产的比较有优势
回复 支持 反对

使用道具 举报

发表于 2019-7-17 21:56:23 来自手机浏览器 | 显示全部楼层
这是个高人
回复 支持 反对

使用道具 举报

发表于 2020-7-9 15:51:07 | 显示全部楼层
这焊接质量。。。
回复 支持 反对

使用道具 举报

发表于 2020-12-11 14:30:51 | 显示全部楼层
电池是32650的螺丝头吧    26650比这个细一些哦
回复 支持 反对

使用道具 举报

发表于 2022-10-22 16:17:59 | 显示全部楼层
感谢楼主提供分享!
回复 支持 反对

使用道具 举报

发表于 2022-10-22 20:33:13 | 显示全部楼层
一个保护板搞这么大工程
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-30 09:30 , Processed in 0.218400 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表