新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 充電電池容量自動(dòng)測試儀設(shè)計(jì)與實(shí)現(xiàn)

充電電池容量自動(dòng)測試儀設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2011-11-08 來源:網(wǎng)絡(luò) 收藏
l軟件調(diào)試過程中,通過對時(shí)間計(jì)數(shù)寄存器sec的觀察計(jì)算,可以得出一次循環(huán)大致需要的時(shí)間。以此為據(jù)再通過適當(dāng)改變延時(shí)子程序循環(huán)次數(shù)將常量a計(jì)時(shí)周期控制在1秒以下,剩余微小的時(shí)間差就可以通過插補(bǔ)空指令來校正了。計(jì)時(shí)精度只要控制在千分之一以下就可以了。在51單片機(jī)使用11.0592MHz晶體振蕩器的情況下,指令周期大約1.085微秒,所以將計(jì)時(shí)精度控制在千分之一以下問題不大。誤差總是會(huì)有的,只能通過精確計(jì)算來控制了,也可以通過更換更高頻率的晶體振蕩器提高單片機(jī)時(shí)鐘頻率的方法來進(jìn)一步提高計(jì)時(shí)的精度。如果放電過程中,意外原因或者人為終止放電過程,P37端口變?yōu)楦唠娖?,程序循環(huán)依舊會(huì)進(jìn)行下去,只是時(shí)間常量a停止自動(dòng)加一,時(shí)間顯示維持不變。

  編譯后,寫入單片機(jī)內(nèi)部,做好放電電路部分與51單片機(jī)的連接,便可投入使用。

  電池接入后,按動(dòng)輕觸按鍵“啟動(dòng)”,就會(huì)進(jìn)入一次測試過程,期間電池取出接入,都不會(huì)影響到單片機(jī)計(jì)時(shí)。電池放電完畢,單片機(jī)數(shù)碼管顯示鎖定,給出總放電持續(xù)時(shí)間,單位為秒??梢宰孕腥斯び?jì)算放電小時(shí)數(shù)。當(dāng)然也是可以自行對程序進(jìn)行改進(jìn),直接以小時(shí)分鐘形式進(jìn)行顯示。只要單片機(jī)不斷電,數(shù)碼管將持續(xù)顯示當(dāng)前放電時(shí)長。如果要進(jìn)入下次測量過程,只需要按動(dòng)單片機(jī)復(fù)位鍵,數(shù)碼管清零,單片機(jī)程序轉(zhuǎn)入起點(diǎn),你就可以進(jìn)入新一次的測試過程了。

  如果較長時(shí)間閑置,它的實(shí)際將受到影響,重新啟用第一次能夠釋放的容量遠(yuǎn)遠(yuǎn)達(dá)不到標(biāo)注容量,放電電壓也很不平穩(wěn)。至少要經(jīng)過三次以上的充電放電循環(huán),電池完全激活,容量才能恢復(fù)到應(yīng)有的水平。充分考慮這種因素的影響,所以容量測試一般采取多次平均的方式,或者循環(huán)充放電三次以后放電持續(xù)時(shí)間為準(zhǔn),以此衡量電池容量才算是恰當(dāng)。

  #include “reg51.h”

  char

  code disp[]={40,235,50,162,225,164,36,234,32,160};

  //字形碼

  void delay(unsigned int dt)

  { unsigned int j=0;

  for(;dt>0;dt--)

  { for(j=0;j125;j++)

  {;}

  }

  }

  void main()

  { int a,b,c,led1,led2,led3,led4;

  P3=255;

  a=0;

  for(;;)

  {b=a;

  led1=b%10;

  P2=239;

  P0=disp[led1];

  delay(6);

  P2=255;

  b=b/10;

  led2=b%10;

  P2=223;

  P0=disp[led2];

  delay(6);

  P2=255;

  b=b/10;

  led3=b%10;

  P2=191;

  P0=disp[led3];

  delay(6);

  P2=255;

  b=b/10;

  led4=b%10;

  P2=127;

  P0=disp[led4];

  delay(6);

  P2=255;

  for(c=44;c>0;c--)

  {

  P2=239;

  P0=disp[led1];

  delay(5);

  P2=255;

  P2=223;

  P0=disp[led2];

  delay(5);

  P2=255;

  P2=191;

  P0=disp[led3];

  delay(5);

  P2=255;

  P2=127;

  P0=disp[led4];

  delay(5);

  P2=255;

  }

  if(P3==127)

  delay(3);

  if(P3==127)

  a=a+1;

  else a=a;

  }

  }


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉