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

標題: 單片機構成的電瓶放電容量檢測儀 [打印本頁]

作者: dzdiy    時間: 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. }
復制代碼





作者: wuyibin2003    時間: 2016-9-1 15:27
很不錯 改天也做個玩玩
作者: qqlong11    時間: 2016-12-23 20:06
不錯,那天也可以做一個玩玩
作者: sanils    時間: 2017-2-27 13:53
請問樓主放電電流怎么看
作者: 胡明    時間: 2017-6-2 08:53
放電下限10.5V怎么算的




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: www.天天操 | 国产精品亚洲综合 | 龙珠z在线观看 | 国产精品久久久久久久免费大片 | 欧美一区二区三区 | 97综合在线 | 在线中文字幕av | 国产在线精品一区二区三区 | 草久久 | 日韩中文一区 | 草草视频在线免费观看 | 精品一区二区三区四区五区 | 久久婷婷av | 中文日韩在线视频 | 亚洲一区二区三区在线视频 | 国产成人网 | 狠狠干狠狠插 | 色av一区二区三区 | 一区二区三区视频在线 | 欧美一区二区黄 | 九九爱这里只有精品 | 国产中文字幕亚洲 | 精品国产免费人成在线观看 | 毛片电影| 黑人精品欧美一区二区蜜桃 | 欧美精品日韩精品 | 亚洲视频精品 | 成人av久久 | 国产激情片在线观看 | 中文在线一区二区 | 毛片免费在线观看 | 日本成人二区 | 国产精品一区在线 | 中文字幕加勒比 | 亚洲视频 欧美视频 | 两性午夜视频 | 久久精品国产一区二区三区 | 欧美日韩综合精品 | 久久精品色欧美aⅴ一区二区 | 国产欧美一区二区三区在线播放 | 国产一区二区精品在线观看 |