久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15150|回復(fù): 17
打印 上一主題 下一主題
收起左側(cè)

51單片機鋰電池均衡測試儀的制作 附源程序原理圖PCB bms保護板供電

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:672765 發(fā)表于 2021-1-26 20:39 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于51單片機的鋰電池充電相關(guān)制作分享
可以用于16Sbms保護板的均衡測試,及供電。總電壓為52.4V.可以為16節(jié)的BMS供電及測試均衡。

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)



制作出來的實物圖如下:

成品:


單片機源程序如下:
  1. #include <REG52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char           
  4. sbit key1=P1^0;                                          //手動啟動,自動,停止
  5. sbit key2=P1^1;                                          //上一節(jié)
  6. sbit key3=P1^2;                                     //下一節(jié)
  7. sbit JKpower=P1^4;                                //繼電器供電
  8. sbit beep=P1^5;                                        //蜂鳴器
  9. sbit LED_stop=P3^2;                                //停止?fàn)顟B(tài)燈
  10. sbit LED_manual=P3^3;                        //手動模式狀態(tài)燈
  11. sbit LED_auto=P3^4;                                //自動模式狀態(tài)燈
  12. uchar mode=0;                                        //停止=0,手動=1,自動=2
  13. uchar current_cell=1,num,ms_20=0,second=0,time_flag=0;                                    
  14. void keyscan();        
  15. void delayms(uint xms)                //延時xms毫秒
  16. {
  17.         uint i,j;
  18.         for(i=xms;i>0;i--)
  19.                 for(j=110;j>0;j--);
  20. }
  21. void init()                                   //初始化
  22. {
  23.         JKpower=1;
  24.         P0=0x00;
  25.         P2=0x00;
  26.         delayms(100);
  27.         JKpower=0;
  28.         EA=1;
  29.         ET0=1;
  30.         TMOD=0x01;
  31.         TH0=(65536-50000)/256;
  32.         TL0=(65536-50000)%256;
  33.         beep=0;
  34.         delayms(500);
  35.         beep=1;                                   
  36. }

  37. void main()                                         
  38. {
  39.         init();
  40.         while(1)
  41.         {        
  42.                 keyscan();                    //調(diào)用按鍵掃描子程序
  43.                 if(mode==0)                        //停止?fàn)顟B(tài)
  44.                 {
  45.                         LED_stop=0;LED_manual=1;LED_auto=1;        //狀態(tài)燈
  46.                         P0=0x00; P2=0x00;                                        //繼電器都不通電
  47.                 }
  48.                  if(mode==1)                        //手動狀態(tài)
  49.                 {
  50.                         LED_stop=1;LED_manual=0;LED_auto=1;        //狀態(tài)燈
  51.                         switch(current_cell)
  52.                         {
  53.                                 case 1: P0=0x01; P2=0x00;break;
  54.                                 case 2: P0=0x02; P2=0x00;break;
  55.                                 case 3: P0=0x04; P2=0x00;break;
  56.                                 case 4: P0=0x08; P2=0x00;break;
  57.                                 case 5: P0=0x10; P2=0x00;break;
  58.                                 case 6: P0=0x20; P2=0x00;break;
  59.                                 case 7: P0=0x40; P2=0x00;break;
  60.                                 case 8: P0=0x80; P2=0x00;break;
  61.                                 case 9: P0=0x00; P2=0x01;break;
  62.                                 case 10: P0=0x00; P2=0x02;break;
  63.                                 case 11: P0=0x00; P2=0x04;break;
  64.                                 case 12: P0=0x00; P2=0x08;break;
  65.                                 case 13: P0=0x00; P2=0x10;break;
  66.                                 case 14: P0=0x00; P2=0x20;break;
  67.                                 case 15: P0=0x00; P2=0x40;break;
  68.                                 case 16: P0=0x00; P2=0x80;break;
  69.                         }
  70.                         delayms(200);
  71.                 }
  72.                 if(mode==2)                   //自動狀態(tài)
  73.                 {
  74.                         LED_stop=1;LED_manual=1;LED_auto=0;        //狀態(tài)燈
  75.                         if(time_flag==1)
  76.                         {
  77.                                 current_cell++;
  78.                                 time_flag=0;
  79.                                 if(current_cell>16)                        //16節(jié)自動均衡結(jié)束后關(guān)定時器,拉低繼電器IO口,響蜂鳴器1秒
  80.                                 {
  81.                                         TR0=0;
  82.                                         mode=0;
  83.                                         current_cell=0;
  84.                                         P0=0x00;P2=0x00;
  85.                                         beep=0;
  86.                                         delayms(1000);
  87.                                         beep=1;
  88.                                 }
  89.                         }
  90.                         switch(current_cell)
  91.                         {
  92.                                 case 1: P0=0x01; P2=0x00;break;
  93.                                 case 2: P0=0x02; P2=0x00;break;
  94.                                 case 3: P0=0x04; P2=0x00;break;
  95.                                 case 4: P0=0x08; P2=0x00;break;
  96.                                 case 5: P0=0x10; P2=0x00;break;
  97.                                 case 6: P0=0x20; P2=0x00;break;
  98.                                 case 7: P0=0x40; P2=0x00;break;
  99.                                 case 8: P0=0x80; P2=0x00;break;
  100.                                 case 9: P0=0x00; P2=0x01;break;
  101.                                 case 10: P0=0x00; P2=0x02;break;
  102.                                 case 11: P0=0x00; P2=0x04;break;
  103.                                 case 12: P0=0x00; P2=0x08;break;
  104.                                 case 13: P0=0x00; P2=0x10;break;
  105.                                 case 14: P0=0x00; P2=0x20;break;
  106.                                 case 15: P0=0x00; P2=0x40;break;
  107.                                 case 16: P0=0x00; P2=0x80;break;
  108.                         }
  109.                 }
  110.         }
  111. }

  112. void keyscan()
  113. {
  114.         if(key1==0&&mode==0)        //停止?fàn)顟B(tài)下按下啟動和停止鍵
  115.         {
  116.                 delayms(5);
  117.                 if(key1==0)
  118.                 {
  119.                         while(!key1);
  120.                         mode=1;
  121.                         current_cell=1;
  122.                         beep=0;
  123.                         delayms(50);
  124.                         beep=1;        
  125.                 }
  126.         }
  127.         if(key1==0&&mode==1)        //手動狀態(tài)下按下啟動和停止鍵
  128.         {
  129.                 delayms(5);
  130.                 if(key1==0)
  131.                 {
  132.                         while(!key1);
  133.                         mode=2;
  134.                         current_cell=1;
  135.                         beep=0;
  136.                         delayms(50);
  137.                         beep=1;
  138.                         TR0=1;
  139.                 }
  140.         }
  141.         if(key1==0&&mode==2)        //自動狀態(tài)下按下啟動和停止鍵
  142.         {
  143.                 delayms(5);
  144.                 if(key1==0)
  145.                 {
  146.                         while(!key1);
  147.                         mode=0;
  148.                         current_cell=1;
  149.                         TR0=0;
  150.                         beep=0;
  151.                         delayms(50);
  152.                         beep=1;                                
  153.                 }
  154.         }
  155.         if(key3==0&&mode==1)        //手動狀態(tài)下按“下一節(jié)”鍵
  156.         {
  157.                 delayms(5);
  158.                 if(key3==0)
  159.                 {
  160.                         while(!key3);
  161.                         current_cell++;
  162.                         if(current_cell>16)
  163.                                 current_cell=1;
  164.                         beep=0;
  165.                         delayms(50);
  166.                         beep=1;
  167.                 }
  168.         }
  169.         if(key2==0&&mode==1)        //手動狀態(tài)下按“上一節(jié)”鍵
  170.         {
  171.                 delayms(5);
  172.                 if(key2==0)
  173.                 {
  174.                         while(!key2);
  175.                         current_cell--;
  176.                         if(current_cell<1)
  177.                                 current_cell=16;
  178. ……………………

  179. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
原理圖及pcb圖紙.rar (9.43 MB, 下載次數(shù): 287)
程序.rar (27.71 KB, 下載次數(shù): 212)

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏34 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:503203 發(fā)表于 2021-1-27 13:14 | 只看該作者
666,做的可以,還有外殼
回復(fù)

使用道具 舉報

板凳
ID:880257 發(fā)表于 2021-2-8 09:10 | 只看該作者
牛叉的!
回復(fù)

使用道具 舉報

地板
ID:880257 發(fā)表于 2021-2-8 09:10 | 只看該作者
很有技術(shù)內(nèi)涵!
回復(fù)

使用道具 舉報

5#
ID:147106 發(fā)表于 2021-2-20 13:42 | 只看該作者
支持一下,我也是做鋰電池保護板的
回復(fù)

使用道具 舉報

6#
ID:466474 發(fā)表于 2021-6-19 17:37 | 只看該作者
膜拜大佬,看一下參考
回復(fù)

使用道具 舉報

7#
ID:210978 發(fā)表于 2021-8-2 15:11 | 只看該作者
請問一下,停止、手動、自動指示燈好像沒有看到相關(guān)電路。謝謝
回復(fù)

使用道具 舉報

8#
ID:896794 發(fā)表于 2021-8-4 16:55 | 只看該作者
有電感試的嗎
回復(fù)

使用道具 舉報

9#
ID:292518 發(fā)表于 2021-8-7 07:59 | 只看該作者

牛叉的!
666,做得漂亮,還有外殼
回復(fù)

使用道具 舉報

10#
ID:317571 發(fā)表于 2021-8-9 14:39 | 只看該作者
板子很漂亮
回復(fù)

使用道具 舉報

11#
ID:586915 發(fā)表于 2022-5-20 09:11 | 只看該作者
瘋了用繼電器 你好歹也用固態(tài)繼電器 或者電源管理芯片呀
回復(fù)

使用道具 舉報

12#
ID:1049892 發(fā)表于 2022-10-31 14:29 | 只看該作者
牛叉,學(xué)習(xí)一下很有技術(shù)內(nèi)涵!
回復(fù)

使用道具 舉報

13#
ID:951974 發(fā)表于 2022-12-12 19:25 | 只看該作者
89C52RC帶AD嗎?我手上的好像不帶AD呀
回復(fù)

使用道具 舉報

14#
ID:33544 發(fā)表于 2023-4-13 15:03 | 只看該作者
我也在找鋰電保護板的資料,正好學(xué)習(xí)一下
回復(fù)

使用道具 舉報

15#
ID:33544 發(fā)表于 2023-4-20 11:13 | 只看該作者
改成三極管輸出的板子就小多了
回復(fù)

使用道具 舉報

16#
ID:57414 發(fā)表于 2023-4-20 17:34 | 只看該作者
怎么檢測每節(jié)電池電壓的?
回復(fù)

使用道具 舉報

17#
ID:1034262 發(fā)表于 2023-9-9 21:24 | 只看該作者
鋰電池均衡我現(xiàn)在用的是電容式的。
回復(fù)

使用道具 舉報

18#
ID:1093842 發(fā)表于 2024-2-1 17:08 | 只看該作者

板子很漂亮
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区在线观看 | 91大片| 午夜成人在线视频 | 丁香婷婷在线视频 | 成年人在线观看视频 | 欧美aⅴ片 | 日本a视频 | 国产欧美一区二区精品久导航 | 日本一区二区在线视频 | 亚洲精品一区中文字幕乱码 | 一区二区av| 久久亚洲春色中文字幕久久久 | 正在播放国产精品 | 亚洲黄色片免费观看 | 欧美在线视频观看 | 一级毛片大全免费播放 | 视频一区二区三区中文字幕 | 一级片在线播放 | 欧美日韩视频在线 | 午夜欧美一区二区三区在线播放 | 一区二区av| 国产成人精品久久二区二区91 | 一区二区av| 日产精品久久久一区二区福利 | 欧美日韩在线不卡 | 欧美日韩大陆 | 国产东北一级毛片 | 蜜桃在线一区二区三区 | 国产精品久久久久久久久久久久久 | 99精品一区二区 | 亚洲免费网站 | 狠狠亚洲| 国产在线观看一区二区三区 | 国产一区2区 | 日韩免费视频一区二区 | 韩国av网站在线观看 | 欧美一区二区三区在线播放 | 中国一级毛片免费 | 狠狠亚洲 | 亚洲乱码一区二区三区在线观看 | 日日射夜夜骑 |