新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 充電電池容量自動測試儀設計與實現

        充電電池容量自動測試儀設計與實現

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

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

          電池接入后,按動輕觸按鍵“啟動”,就會進入一次測試過程,期間電池取出接入,都不會影響到單片機計時。電池放電完畢,單片機數碼管顯示鎖定,給出總放電持續時間,單位為秒。可以自行人工計算放電小時數。當然也是可以自行對程序進行改進,直接以小時分鐘形式進行顯示。只要單片機不斷電,數碼管將持續顯示當前放電時長。如果要進入下次測量過程,只需要按動單片機復位鍵,數碼管清零,單片機程序轉入起點,你就可以進入新一次的測試過程了。

          如果較長時間閑置,它的實際將受到影響,重新啟用第一次能夠釋放的容量遠遠達不到標注容量,放電電壓也很不平穩。至少要經過三次以上的充電放電循環,電池完全激活,容量才能恢復到應有的水平。充分考慮這種因素的影響,所以容量測試一般采取多次平均的方式,或者循環充放電三次以后放電持續時間為準,以此衡量電池容量才算是恰當。

          #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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 萝北县| 藁城市| 达尔| 西安市| 剑川县| 沂南县| 布拖县| 洛隆县| 沙田区| 绥滨县| 崇仁县| 龙南县| 天峨县| 什邡市| 盐源县| 海南省| 尉氏县| 康乐县| 合阳县| 囊谦县| 灵山县| 武隆县| 崇仁县| 二手房| 肥西县| 临湘市| 南部县| 南澳县| 尉氏县| 偏关县| 碌曲县| 改则县| 蒙城县| 巍山| 周口市| 嘉峪关市| 南京市| 织金县| 塘沽区| 固镇县| 井冈山市|