充電電池容量測試儀實(shí)現方案
圖1單只LED數碼管內部都是由8只發(fā)光管組合而成,分別作為8的7段字型部分,以及一位小數點(diǎn)。這里使用的是共陽(yáng)極數碼管,內部8只發(fā)光管的陽(yáng)極是并連共同引出的,作為使能控制。
在實(shí)際電路中,L1就是第一只數碼管的共陽(yáng)極端。單片機的輸出、輸入接口數量都很有限,所以4位LED數碼管驅動(dòng)都是使用動(dòng)態(tài)顯示的方式。4只獨立數碼管LED的內部a、b、c、d、e、f、g、dp這8段發(fā)光管相對應的陰極都是并連的。統一由單片機P0口8位輸出進(jìn)行驅動(dòng)。數碼管要顯示出數碼還必須在共陽(yáng)極端同時(shí)施加正電壓才行。所以要讓4位中某一數碼管進(jìn)行顯示,只要在P0口輸出字型碼的同時(shí),給這位數碼管共陽(yáng)極端加上正電壓就行了,當然與此同時(shí)其他三位數碼管的共陽(yáng)極端要保持低電壓,才不致顯示出現混亂。數碼管共陽(yáng)極端驅動(dòng)電流較大,所以采用了三極管進(jìn)行控制。以第一只數碼管為例,在P0端口輸出字型碼的同時(shí),P37輸出低電平,三極管T4導通,則共陽(yáng)極端L1就得到高電平了,數字就會(huì )顯示在第一只數碼管上了。
程序設計是以單片機P37口作為計時(shí)控制端子,P37口輸入低電平,計時(shí)程序啟動(dòng),4只數碼管顯示時(shí)間。放電電路中按下啟動(dòng)按鍵,放電過(guò)程觸發(fā),VT1導通,電池端電壓降落到放電電阻R2兩端,A端對地為高電平,通過(guò)電阻R4迫使三極管VT3導通,P37口電平就被拉低了,單片機計時(shí)程序啟動(dòng)。電池電壓降到終止電壓以后,放電電路自動(dòng)關(guān)閉,A端電壓消失,VT3恢復截止狀態(tài),計時(shí)程序停止,數碼管維持顯示當前持續時(shí)間。
如要進(jìn)入下次測試,首先按動(dòng)單片機復位鍵,當前計時(shí)清零,等待下一次測試開(kāi)始。
程序設計比較簡(jiǎn)單。它的大致流程如下:初始化,P3端口置位,設立常量a為時(shí)間計數器,依次對a的十進(jìn)制數值各位進(jìn)行提取,順序輸送到P0端口,P2端口中的P24、P25、P26、P27各位是依次作為四位數碼管的使能控制端,通過(guò)P2端口的配合,就可以完成對各位數碼管的驅動(dòng),時(shí)間的動(dòng)態(tài)顯示。程序進(jìn)行中要不斷地檢測P3端口數值以決定計時(shí)狀態(tài):如果電池處于放電過(guò)程之中,三極管VT3導通,將迫使P37端口電壓降到零,P3端口值就是127,單片機程序檢測到這一結果,時(shí)間常量a將自動(dòng)加1,指示期間放電時(shí)間已經(jīng)延續1秒種了。這1秒鐘的時(shí)間精確計算是比較麻煩的。計時(shí)程序是一個(gè)循環(huán)結構,每一周期耗用時(shí)間都是一致的。所以在使用keil軟件調試過(guò)程中,通過(guò)對時(shí)間計數寄存器sec的觀(guān)察計算,可以得出一次循環(huán)大致需要的時(shí)間。以此為據再通過(guò)適當改變延時(shí)子程序循環(huán)次數將常量a計時(shí)周期控制在1秒以下,剩余微小的時(shí)間差就可以通過(guò)插補空指令來(lái)校正了。計時(shí)精度只要控制在千分之一以下就可以了。在51單片機使用11.0592MHz晶體振蕩器的情況下,指令周期大約1.085微秒,所以將計時(shí)精度控制在千分之一以下問(wèn)題不大。誤差總是會(huì )有的,只能通過(guò)精確計算來(lái)控制了,也可以通過(guò)更換更高頻率的晶體振蕩器提高單片機時(shí)鐘頻率的方法來(lái)進(jìn)一步提高計時(shí)的精度。如果放電過(guò)程中,意外原因或者人為終止放電過(guò)程,P37端口變?yōu)楦唠娖?,程序循環(huán)依舊會(huì )進(jìn)行下去,只是時(shí)間常量a停止自動(dòng)加一,時(shí)間顯示維持不變。
編譯后,寫(xiě)入單片機內部,做好放電電路部分與51單片機的連接,便可投入使用。
電池接入后,按動(dòng)輕觸按鍵“啟動(dòng)”,就會(huì )進(jìn)入一次容量測試過(guò)程,期間電池取出接入,都不會(huì )影響到單片機計時(shí)。電池放電完畢,單片機數碼管顯示鎖定,給出總放電持續時(shí)間,單位為秒??梢宰孕腥斯び嬎惴烹娦r(shí)數。當然也是可以自行對程序進(jìn)行改進(jìn),直接以小時(shí)分鐘形式進(jìn)行顯示。只要單片機不斷電,數碼管將持續顯示當前放電時(shí)長(cháng)。如果要進(jìn)入下次測量過(guò)程,只需要按動(dòng)單片機復位鍵,數碼管清零,單片機程序轉入起點(diǎn),你就可以進(jìn)入新一次的容量測試過(guò)程了。
評論