充電電池容量測試儀實(shí)現(xiàn)方案
圖1單只LED數(shù)碼管內(nèi)部都是由8只發(fā)光管組合而成,分別作為8的7段字型部分,以及一位小數(shù)點(diǎn)。這里使用的是共陽極數(shù)碼管,內(nèi)部8只發(fā)光管的陽極是并連共同引出的,作為使能控制。
在實(shí)際電路中,L1就是第一只數(shù)碼管的共陽極端。單片機(jī)的輸出、輸入接口數(shù)量都很有限,所以4位LED數(shù)碼管驅(qū)動(dòng)都是使用動(dòng)態(tài)顯示的方式。4只獨(dú)立數(shù)碼管LED的內(nèi)部a、b、c、d、e、f、g、dp這8段發(fā)光管相對應(yīng)的陰極都是并連的。統(tǒng)一由單片機(jī)P0口8位輸出進(jìn)行驅(qū)動(dòng)。數(shù)碼管要顯示出數(shù)碼還必須在共陽極端同時(shí)施加正電壓才行。所以要讓4位中某一數(shù)碼管進(jìn)行顯示,只要在P0口輸出字型碼的同時(shí),給這位數(shù)碼管共陽極端加上正電壓就行了,當(dāng)然與此同時(shí)其他三位數(shù)碼管的共陽極端要保持低電壓,才不致顯示出現(xiàn)混亂。數(shù)碼管共陽極端驅(qū)動(dòng)電流較大,所以采用了三極管進(jìn)行控制。以第一只數(shù)碼管為例,在P0端口輸出字型碼的同時(shí),P37輸出低電平,三極管T4導(dǎo)通,則共陽極端L1就得到高電平了,數(shù)字就會(huì)顯示在第一只數(shù)碼管上了。
程序設(shè)計(jì)是以單片機(jī)P37口作為計(jì)時(shí)控制端子,P37口輸入低電平,計(jì)時(shí)程序啟動(dòng),4只數(shù)碼管顯示時(shí)間。放電電路中按下啟動(dòng)按鍵,放電過程觸發(fā),VT1導(dǎo)通,電池端電壓降落到放電電阻R2兩端,A端對地為高電平,通過電阻R4迫使三極管VT3導(dǎo)通,P37口電平就被拉低了,單片機(jī)計(jì)時(shí)程序啟動(dòng)。電池電壓降到終止電壓以后,放電電路自動(dòng)關(guān)閉,A端電壓消失,VT3恢復(fù)截止?fàn)顟B(tài),計(jì)時(shí)程序停止,數(shù)碼管維持顯示當(dāng)前持續(xù)時(shí)間。
如要進(jìn)入下次測試,首先按動(dòng)單片機(jī)復(fù)位鍵,當(dāng)前計(jì)時(shí)清零,等待下一次測試開始。
程序設(shè)計(jì)比較簡單。它的大致流程如下:初始化,P3端口置位,設(shè)立常量a為時(shí)間計(jì)數(shù)器,依次對a的十進(jìn)制數(shù)值各位進(jìn)行提取,順序輸送到P0端口,P2端口中的P24、P25、P26、P27各位是依次作為四位數(shù)碼管的使能控制端,通過P2端口的配合,就可以完成對各位數(shù)碼管的驅(qū)動(dòng),時(shí)間的動(dòng)態(tài)顯示。程序進(jìn)行中要不斷地檢測P3端口數(shù)值以決定計(jì)時(shí)狀態(tài):如果電池處于放電過程之中,三極管VT3導(dǎo)通,將迫使P37端口電壓降到零,P3端口值就是127,單片機(jī)程序檢測到這一結(jié)果,時(shí)間常量a將自動(dòng)加1,指示期間放電時(shí)間已經(jīng)延續(xù)1秒種了。這1秒鐘的時(shí)間精確計(jì)算是比較麻煩的。計(jì)時(shí)程序是一個(gè)循環(huán)結(jié)構(gòu),每一周期耗用時(shí)間都是一致的。所以在使用keil軟件調(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)入新一次的容量測試過程了。
評論