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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12405|回復: 4
收起左側

單片機構成的電瓶放電容量檢測儀

[復制鏈接]
ID:76686 發表于 2015-4-12 02:50 | 顯示全部樓層 |閱讀模式
      電瓶是電動車的能量來源,直接關系到電動車性能的好壞,是電動車最容易損壞的部件,直接關系到電動車的經濟成本,在一定周期內對電瓶的容量檢測,能及時了解電瓶性能及發現個別電池容量的不足,對電瓶組進行調整配對,使電瓶充分發揮其性能。單片機構成的電瓶放電容量檢測儀,由89C2051單片機組成的時鐘電路及電池電壓檢測和放電控制電路組成。原理圖如圖所示。

       單片機構成的電瓶放電容量檢測儀工作原理:電瓶電壓經接線端子SP1輸入分成三路,一路經7805供電給由89C2051組成的時鐘電路,一路經7808供電給由集成塊U4 LM358組成的電池電壓檢測電路,另一路為主放電通路,由Q5,Q6,繼電器JDQ1及放電負載組成。當電池接入電路后, U4 LM358檢測電池電壓,如果電池電壓高于放電下限10.5V,取樣電壓經RP1,R19與電阻R20分壓后加至比較器反相輸入端,此時反相輸入端電壓高于同相輸入端電壓,LM358輸出低電平,單片機89C2051的P3.4端口檢測到低電平,等待啟動,按下啟動按鈕K1,單片機啟動,時鐘電路開始計時,端口P3.7輸出低電平,Q5 ,Q6導通,繼電器JDQ1吸合,放電通路接通,開始放電,當電池放電到放電極限10.5V時,比較器反相端電壓低于同相端電壓,LM358輸出高電平,單片機檢測到高電平后,時鐘電路停止,并保持時鐘數據顯示,端口P3.7輸出高電平,Q5 ,Q6截止,繼電器JDQ1釋放,放電停止,此時可記下放電時間,然后乘以放電電流就是電瓶容量。只有斷開電瓶線或重新按下啟動按鈕,時鐘電路才清零重新計時。
       電瓶放電容量檢測儀裝于一個機箱內,引出兩對接電池的接線夾子,機箱后安裝了兩對接線端子,用于接放電負載,測試時先用電動車充電器充滿電,然后拆開電瓶外殼,接好本放電器,啟動電路,兩塊電瓶同時放電,這樣,48V電瓶只需兩次就可測完,最后根據電瓶放電記錄,就可估測出電瓶的容量,如果電瓶容量相差懸殊,那就要對電瓶重新配對,使一組電瓶的各個電池容量相近,如果電瓶容量低于標稱容量的50%,那就需要根據實際情況加水或去硫化處理了。
       本電瓶放電容量檢測儀還可用于電瓶放電保護器,只要通過本電路接上12V照明燈具就可放心使用,不必擔心過放電損壞電池。注意,本電路只適用于12V電池。
       單片機構成的電瓶放電容量檢測儀源程序:
  1. //89C2051單片機電瓶容量檢測儀
  2. #include<reg51.h>
  3. // 包含51單片機寄存器定義的頭文件
  4. unsigned char code Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  5. //數字0~9的段碼
  6. unsigned char int_time ;
  7. //中斷次數計數變量
  8. unsigned char minute; //分鐘計數變量
  9. unsigned char hour; //小時計數變量
  10. unsigned char second; //秒計數變量
  11. sbit out=P3^7; //將OUT位定義為P3.7
  12. sbit shuru=P3^4;
  13. //將SHURU位定義為P3.4
  14. sbit S1=P3^5; //將K1位定義為P3.5
  15. sbit led0=P3^0;
  16. sbit led1=P3^1;
  17. sbit led2=P3^2;
  18. sbit led3=P3^3;
  19. void delay(void) ; 數碼管掃描延時
  20. {
  21. unsigned char j;
  22. for(j=0;j<200;j++)
  23. }
  24. /******函數功能:鍵盤掃描延時**********/
  25. void delay60ms(void)
  26. {
  27. unsigned char i,j;
  28. for(i=0;i<200;i++)
  29. for(j=0;j<100;j++)
  30. }
  31. void DisplayMinute(unsigned char m)
  32. {
  33. led1=0; // P3.1引腳輸出低電平
  34. P1=Tab[m/10]; //顯示十位
  35. delay();
  36. led0=1; //關閉所有數碼管
  37. led1=1;
  38. led2=1;
  39. led3=1;
  40. delay();
  41. led0=0; // P3.0引腳輸出低電平
  42. P1=Tab[m%10]; //顯示個位
  43. delay();
  44. led0=1; //關閉所有數碼管
  45. led1=1;
  46. led2=1;
  47. led3=1;
  48. }
  49. void DisplayHour(unsigned char h)
  50. {
  51. led3=0; //P3.3引腳輸出低電平
  52. P1=Tab[h/10]; //顯示十位
  53. delay();
  54. led0=1; //關閉所有數碼管
  55. led1=1;
  56. led2=1;
  57. led3=1;
  58. delay();
  59. led2=0; //P3.2引腳輸出低電平
  60. P1=Tab[h%10]; //顯示個位
  61. delay();
  62. led0=1; //關閉所有數碼管
  63. led1=1;
  64. led2=1;
  65. led3=1;
  66. }
  67. void key_scan(void)
  68. {
  69. if(S1==0) //如果是K1鍵按下
  70. {
  71. delay60ms(); //延時60ms再檢測
  72. if(S1==0) //如果是K1鍵按下
  73. {
  74. second=0;
  75. minute=0;
  76. hour=0;
  77. out=0; //啟動輸出
  78. TR0=1; //啟動定時器T0
  79. }
  80. }
  81. if(shuru==1) //如果SHURU是高電平
  82. {
  83. delay60ms(); //延時60ms再檢測
  84. if(shuru==1) //如果是SHURU高電平
  85. {
  86. TR0=0; //停止定時器T0
  87. out=1; //停止輸出
  88. }
  89. }
  90. }
  91. /*******函數功能:主函數************/
  92. void main(void)
  93. {
  94. TMOD=0x01; //使用定時器T0 EA=1; //開中斷總允許
  95. ET0=1; //允許T0中斷
  96. TH0=(65536-46083)/256;
  97. //定時器高八位賦初值
  98. TL0=(65536-46083)%256;
  99. //定時器低八位賦初值
  100. out=0;
  101. int_time=0; //中斷計數變量初始化
  102. second=0; //秒計數變量初始化
  103. minute=0; //分鐘計數變量初始化
  104. hour=0; //小時計數變量初始化
  105. while(1)
  106. {
  107. key_scan(); //執行鍵盤掃描 DisplayMinute(minute);
  108. //調用分鐘顯示子程序
  109. DisplayHour(hour);
  110. //調用小時顯示子程序
  111. }
  112. }
  113. void interserve(void ) interrupt 1 using 1 //using Time0
  114. {
  115. TR0=0; //關閉定時器T0
  116. int_time++; //中斷次數加1
  117. if(int_time==20) //如果中斷次數滿20
  118. {
  119. int_time=0; //中斷計數變量清0
  120. second++; //秒計數變量加1
  121. }
  122. if(second==60) //如果秒計滿60
  123. {
  124. second=0;
  125. //如果秒計滿60,將秒計數變量清0
  126. minute++; //分鐘計數變量加1
  127. }
  128. if(minute==60) //如果分鐘計滿60
  129. {
  130. minute=0;
  131. //如果分鐘計滿60,將分鐘計數變量清0
  132. hour++; //小時計數變量加1
  133. }
  134. if(hour==24) //如果小時計滿24
  135. {
  136. hour=0;
  137. //如果小時計滿24,將小時計數變量清0
  138. }
  139. TH0=(65536-46083)/256;
  140. //定時器T0高四位賦值
  141. TL0=(65536-46083)%256;
  142. //定時器T 0低四位賦值
  143. TR0=1; //啟動定時器T0
  144. }
復制代碼




回復

使用道具 舉報

ID:138155 發表于 2016-9-1 15:27 | 顯示全部樓層
很不錯 改天也做個玩玩
回復

使用道具 舉報

ID:147474 發表于 2016-12-23 20:06 | 顯示全部樓層
不錯,那天也可以做一個玩玩
回復

使用道具 舉報

ID:162109 發表于 2017-2-27 13:53 | 顯示全部樓層
請問樓主放電電流怎么看
回復

使用道具 舉報

ID:206961 發表于 2017-6-2 08:53 | 顯示全部樓層
放電下限10.5V怎么算的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色呦呦在线 | 一级毛片成人免费看a | 久久伊人精品一区二区三区 | 97精品国产 | 成人免费看 | 精品一区二区久久久久久久网精 | 91精品国产91久久久久久吃药 | 久久亚洲综合 | 国产专区视频 | cao在线| 亚洲精品三级 | 人人玩人人干 | 毛片视频观看 | 91精品一区 | 91偷拍精品一区二区三区 | 欧美亚洲高清 | 视频二区国产 | 国产精品久久久久久吹潮日韩动画 | 日日夜夜影院 | 精品一二区 | 成人免费看黄 | 日韩高清成人 | 性色av一区二区三区 | 精品国产免费人成在线观看 | 欧美专区在线观看 | 久久国产精品视频免费看 | 国产中文字幕在线观看 | 亚洲人成一区二区三区性色 | 欧美久久一区二区 | 亚洲欧美精 | 欧美一级大片免费看 | 免费久久视频 | 国产91在线观看 | 亚洲最大成人综合 | 国产一区二区免费 | 欧美极品在线 | 日韩av福利在线观看 | www.久久| 97色在线观看免费视频 | 亚洲精品免费视频 | 国产成人99久久亚洲综合精品 |