【電氣工程及其自動化】智能型單片機(jī)電池容量測試儀的設(shè)計_第1頁
【電氣工程及其自動化】智能型單片機(jī)電池容量測試儀的設(shè)計_第2頁
【電氣工程及其自動化】智能型單片機(jī)電池容量測試儀的設(shè)計_第3頁
【電氣工程及其自動化】智能型單片機(jī)電池容量測試儀的設(shè)計_第4頁
【電氣工程及其自動化】智能型單片機(jī)電池容量測試儀的設(shè)計_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

更多相關(guān)文檔資源請訪問/lzj781219完整設(shè)計文件及源代碼,資料請聯(lián)系68661508索要PAGE○○A基礎(chǔ)理論●B應(yīng)用研究○C調(diào)查報告○D其他本科生畢業(yè)論智能型單片機(jī)電池容量測試儀的設(shè)計二級學(xué)院:信息科學(xué)與技術(shù)學(xué)院專業(yè):電氣工程及其自動化完成日期:2015年5月25日目錄1.緒論 11.1研究的背景與意義 11.1.1論文研究的背景 11.2國外相關(guān)技術(shù)發(fā)展現(xiàn)狀及趨勢 11.3國內(nèi)相關(guān)技術(shù)發(fā)展現(xiàn)狀及趨勢 21.4論文研究的意義 31.4.1維護(hù)消費者權(quán)益 31.4.2安全保障方面 41.5本設(shè)計的研究內(nèi)容 42.電池容量檢測模塊原理簡述 42.1檢測原理 42.1.1電壓檢測原理 42.2測試方法選擇 52.3電池容量測量說明 62.4容量計算方法 62.5整體設(shè)計 92.6放電電路的介紹 93.硬件設(shè)計 103.1單片機(jī)電路模塊 103.2時鐘振蕩電路 113.3電源穩(wěn)壓電路的設(shè)計 123.4放電電路的設(shè)計 133.5數(shù)字顯示模塊 143.6繼電器控制電路模塊 154.軟件的設(shè)計 154.1軟件整體設(shè)計 164.2各子程序功能的簡單介紹 164.3單片機(jī)的I/O分配表 164.4鍵盤輸入控制子程序模塊 164.5電壓檢測控制子程序模塊 174.6顯示輸出控制子程序模塊 184.7繼電器控制子程序模塊 194.8中斷程序模塊 204.9主程序控制模塊 215.系統(tǒng)的實現(xiàn)與調(diào)試 225.1電路圖的繪制 225.1.1原理圖的繪制 225.1.2PCB板的生成 225.1.3硬件的焊接 235.2硬件調(diào)試 236.結(jié)論與展望 24參考文獻(xiàn) 25附錄 26附錄A 26附錄B 27附錄C 28致謝更多相關(guān)文檔資源請訪問/lzj781219完整設(shè)計文件及源代碼,資料請聯(lián)系68661508索要基于單片機(jī)的智能型電池容量測試儀摘要:本設(shè)計使用了STC12C5A60S2單片機(jī)為系統(tǒng)控制器設(shè)計了一個電池容量檢測儀,外圍有串電阻放電電路,晶振時鐘電路,LCD1602顯示屏、按鍵等元件組成。通過硬件和軟件結(jié)合,可對鋰電池和鎳氫等充電電池的容量進(jìn)行自動測試,并以數(shù)字形式顯示其測試結(jié)果。關(guān)鍵詞:控制器;電池容量;STC12C5A60S2單片機(jī)。IntelligentbatterycapacitytesterbasedonMCUAbstract:ThisdesignisbasedonSTC12C5A60S2microcontroller,accordingtothedesignrequirements,setupthehardwarecircuit,andwritingprogram,peripheryhaveaseriesresistordischargingcircuit,vibrationcrystalclockcircuit,theLCD1602display,buttonsandothercomponents.Throughacombinationofhardwareandsoftware,butforlithiumbatteryandnickelmetalhydriderechargeablebatterycapacityforautomatictest,andaccordingtothetestresultsindigitalform..Keywords:controller;batterycapacity;STC12C5A60S2microcontroller.PAGE271.緒論1.1研究的背景與意義1.1.1論文研究的背景隨著世界不可再生能源的日益短缺以及移動電子設(shè)備的迅猛發(fā)展,移動電源業(yè)得到了快速的發(fā)展。同時,隨著空間、微電子等高新技術(shù)的發(fā)展,對于移動能源,尤其是能夠提供高能量密度和較長壽命的二次電池(電池組)的需求量越來越大[1][2]。因此,對于二次充電電池的檢測與生產(chǎn)就提出了更高的要求。制造商和消費者都希望自己生產(chǎn)和使用的電池(組)具有可靠的長壽命工作性能。鑒于這個現(xiàn)狀,個人使用也有必要建立一個完整的評估體系,作為長期選購、使用的指導(dǎo)參考。為了更好地維護(hù)消費者的權(quán)益,更好地規(guī)范市場,通過查找資料掌握課題相關(guān)方面的一些最新動態(tài)和設(shè)計方法,通過深入分析充電電池的性能特點,在了解測試原理的基礎(chǔ)上,利用單片機(jī)設(shè)計一種電池容量測試儀。1.2國外相關(guān)技術(shù)發(fā)展現(xiàn)狀及趨勢伴隨著手機(jī)、數(shù)碼相機(jī)、掌上電腦(PDA)和便攜式攝像機(jī)等消費和移動電子產(chǎn)品的繼續(xù)走強(qiáng),以及鋰離子等動力電池所呈現(xiàn)的巨大應(yīng)用潛力,未來鋰離子電池的市場需求將保持相當(dāng)?shù)脑鲩L速度。在2003~2006年世界鋰離子電池生產(chǎn)規(guī)模復(fù)合增長率達(dá)到23.2%,銷售收入復(fù)合增長率達(dá)到12.25%[3]。鋰離子電池行業(yè)的發(fā)展和壯大是鋰離子電池檢測設(shè)備賴以生存的土壤,目前很多電子設(shè)備,例如手機(jī)、筆記本電腦等移動設(shè)備的普及,最關(guān)鍵的技術(shù)之一就是電源技術(shù)。世界各個發(fā)達(dá)國家對于二次能源開發(fā)都給予很高的重視。自1994年以來鋰離子電池發(fā)展相當(dāng)迅速,加上電池材料技術(shù)研究進(jìn)步,大幅降低了它的成本,世界范圍內(nèi)自1994~2005年鋰離子電池的產(chǎn)量、平均價格及增長率如表1-1所示。表1-11994~2005年世界鋰離子電池產(chǎn)量和平均價格及增長率電池檢測設(shè)備是數(shù)字化測量技術(shù)在電池領(lǐng)域一個成功的應(yīng)用[4][5],早在90年代,歐美國家就憑借著電子檢測技術(shù)方面的優(yōu)勢實現(xiàn)了電池檢測的自動化,并且一直處于領(lǐng)先地位。隨著電子信息技術(shù)迅猛的發(fā)展,電池檢測也經(jīng)歷了由手動分選測試到大規(guī)模、高品質(zhì)的數(shù)字化檢測設(shè)備的發(fā)展進(jìn)程,檢測設(shè)備的性能(如可靠度、準(zhǔn)確性、自動化水平等)得到了大幅度的提高。最初,電池檢測設(shè)備是以單片機(jī)作為核心處理器,實現(xiàn)電池性能的檢測。但是這種方法仍然存在很大問題:單片機(jī)系統(tǒng)資源比較少,實現(xiàn)功能比較單一;其次,很多單片機(jī)通常是與某種特定型號計算機(jī)相連,這就增加了系統(tǒng)成本,同時系統(tǒng)可移植性很差。因此,又出現(xiàn)了以PC機(jī)作為上位機(jī),單片機(jī)作為下位機(jī)的二級系統(tǒng)。單片機(jī)進(jìn)行數(shù)據(jù)的測量和采集,PC機(jī)負(fù)責(zé)數(shù)據(jù)的管理和分析。但是隨著數(shù)字化檢測技術(shù)的飛速發(fā)展,數(shù)字化電池檢測設(shè)備也紛紛出現(xiàn)。通過以上分析,國外的電池檢測技術(shù)發(fā)展的比較早,技術(shù)領(lǐng)先于國內(nèi)水平,發(fā)展迅速。但是國外的檢測設(shè)備價格比較高,這限制了它在國內(nèi)的普及。1.3國內(nèi)相關(guān)技術(shù)發(fā)展現(xiàn)狀及趨勢進(jìn)入20世紀(jì)90年代以后,我國的一些科研單位相繼進(jìn)入鋰離子電池檢測領(lǐng)域。如:哈爾濱子木科技有限公司、廣州電科所、北京有色金屬研究總院、燕山大學(xué)等紛紛研制出各自的鋰離子電池檢測設(shè)備投入到鋰離子電池市場[6]。但是國內(nèi)大多數(shù)科研單位研制的電池檢測設(shè)備都還停留在PC機(jī)-單片機(jī)的模式下,通常效率比較低下。哈爾濱子木科技有限公司率先提出了一種以DSP為核心處理器的新概念的鋰離子電池檢測系統(tǒng)[7]。和傳統(tǒng)設(shè)備相比較,該系統(tǒng)具有一些獨特的性能,如能夠?qū)崿F(xiàn)電池放電能量利用、連續(xù)測量分選、智能操作監(jiān)控等。同時該系統(tǒng)具有的軟件升級功能是數(shù)字化系統(tǒng)都有的特點,在不增加任何硬件成本的情況下,給系統(tǒng)增加各種功能。這大大加快了國內(nèi)數(shù)字化電檢測設(shè)備的發(fā)展。綜上所述,隨著電池產(chǎn)品不斷向體積小、重量輕、容量大、壽命長、安全性好、無環(huán)境污染、國際標(biāo)準(zhǔn)化、通用化方向發(fā)展,因此,對電池化成檢測設(shè)備也提出了更高的要求。電池測試設(shè)備的發(fā)展趨勢主要集中在以下幾個方面[8~10]:1.高可靠性、高準(zhǔn)確度,以適合高質(zhì)量生產(chǎn)的需要;2.向大功率發(fā)展,以適應(yīng)電動工具、數(shù)字通訊、電動汽車等發(fā)展的需要;3.多參數(shù)檢測,可檢測除電壓、電流以外更多的電池參數(shù);4.具有大規(guī)模檢測能力,即一臺設(shè)備能同時檢測的電池數(shù)量要多,以適應(yīng)電池大規(guī)模生產(chǎn)的需要;5.具有多功能,如提高用戶對電池檢測過程設(shè)置的靈活性,對檢測數(shù)據(jù)查看方式的多樣性等,以滿足不同用戶或不同電池的需要;6.向自動化發(fā)展,以提高電池檢測的效率,適應(yīng)大規(guī)模全自動化生產(chǎn)的需要;7.向組合結(jié)構(gòu)、模塊化發(fā)展,形成一個滿足多種電池的生產(chǎn)及科研需要的一個通用的測試平臺;8.向智能化發(fā)展,充分利用智能控制、現(xiàn)代控制等理論,建立電池各種情況下的模型,更深層次的檢測電池電化學(xué)性能。1.4論文研究的意義研究的意義體現(xiàn)在以下幾個方面:1.4.1維護(hù)消費者權(quán)益近年以來,手機(jī)、數(shù)碼市場迅速發(fā)展,市場競爭異常激烈。一些經(jīng)銷商為了完成廠家指定的銷售任務(wù),獲得更多的銷售獎勵和返點,往往把利潤預(yù)期鎖定在電池、手機(jī)配件、存儲卡、相機(jī)包等附件上,故意將價格低廉的低容量電池的容量標(biāo)高,以次充好。廣東產(chǎn)品質(zhì)量監(jiān)督檢驗研究院曾對流通領(lǐng)域的手機(jī)電池商品質(zhì)量進(jìn)行市場專項監(jiān)測。共抽查了31家銷售企業(yè),37家生產(chǎn)企業(yè)生產(chǎn)的手機(jī)電池60款,合格30款,合格率為50.0%。抽查檢驗結(jié)果表明,此次抽查手機(jī)電池的放電性能,包括0.2C5A放電性能、1C5A放電性能存在明顯質(zhì)量問題。省工商局消保處有關(guān)負(fù)責(zé)人表示,抽查結(jié)果與市場上普遍存在虛標(biāo)電池容量的現(xiàn)象相吻合。即手機(jī)電池制造廠商為追求利潤,將價格低廉的低容量電池的容量標(biāo)高出售,如果消費者購買了虛標(biāo)容量的手機(jī)電池,會影響手機(jī)的待機(jī)時間,縮短手機(jī)的使用壽命,損害的是消費者的利益。1.4.2安全保障方面首例手機(jī)電池爆炸致人死亡事件在蘭州發(fā)生后,電池的安全問題再一次引起最大限度的關(guān)注,令人擔(dān)憂的是,一些山寨充電電池,充電寶存在安全隱患,引發(fā)爆炸。這是由于采用了質(zhì)量不過關(guān)的保護(hù)板。當(dāng)好的保護(hù)板遇到強(qiáng)電流會像電閘一樣自動跳閘,質(zhì)量差的則完全沒有反應(yīng)。使用電池容量檢測儀,可以提前檢查出一些偽劣產(chǎn)品,可以更好的避免危險的發(fā)生。1.5本設(shè)計的研究內(nèi)容(1)電池容量測試儀電路由單片機(jī)電路、電池串電阻放電電路、穩(wěn)壓電源電路和數(shù)碼顯示電路等部分組成。(2)軟件采用C語言編寫,程序由主程序和中斷服務(wù)子程序、延時子程序等部分組成。(3)電路采用對電池容量測試電路,設(shè)定電池的放電終止電壓,取基準(zhǔn)電壓,設(shè)定電池放電電流。(4)研究方法:將電池進(jìn)行串電阻放電,每隔幾秒監(jiān)測一次電池電壓,在放電的同時監(jiān)測電池的端電壓當(dāng)端電壓下降到一定值時,停止放電記錄放電時間,放電電壓與所串電阻的商與放電時間的積分就是電池的容量。2.電池容量檢測模塊原理簡述2.1檢測原理2.1.1電壓檢測原理讀ADC測量外部電壓,使用內(nèi)部基準(zhǔn)計算電壓。選擇具有內(nèi)置AD轉(zhuǎn)換的stc12系列單片機(jī),STC系列單片機(jī)的參考電壓源就是輸入工作電壓Vcc,所以一般不用外接參考電壓源,為了參考電壓的準(zhǔn)確,本設(shè)計使用7805三端穩(wěn)壓塊,是輸出穩(wěn)定電壓5.0V。測量電壓輸入接在P1.0口,P1.3口AD后的值為VP1.0,參考電壓源AD轉(zhuǎn)換后的值為VPx。則P1.0口實際值為:

VP1.0

V

=

×

5.0

(V)………….(1)

VPx2.2測試方法選擇電池容量是衡量電池質(zhì)量的重要指標(biāo)。充電電池的容量測試有很多的方法。多,如傳統(tǒng)容量測試方法,曲線比較方法,恒定電流放電,串電阻放電法。(1)傳統(tǒng)容量測試方法費時費力,難以實現(xiàn)自動檢測,故本設(shè)計不考慮。(2)曲線比較方法可以依據(jù)電池的放電曲線,進(jìn)行短時間放電,從而粗略得出電池容量。這種方法最大的優(yōu)點是快速,但是充電電池的放電曲線并不具有普遍性,很多劣質(zhì)電池放電初期電壓也很平穩(wěn),一旦進(jìn)入中后期,電壓下降非常迅速,所以采用這種方法得出的結(jié)論將非常不準(zhǔn)確的。(3)恒定電流放電是目前較可靠準(zhǔn)確無誤的方法,以標(biāo)準(zhǔn)電流放電,全程測量實際放電時間的方式。不同的放電電流,充電電池最終能夠釋放出的電量是不同的,有一定的差距。不過該方法放電電路復(fù)雜,很難滿足兩種不同種類電池的智能選擇檢測。經(jīng)一番研究后放棄使用。(4)串電阻放電法,放電的同時監(jiān)測電池的端電壓,當(dāng)端電壓下降到一定值時停止放電,每段時間的電壓除以放電電阻與每段時間的積分就是電池的容量。該串電阻放電方法電路簡單,實用性高,使用積分的方法算電池容量較為準(zhǔn)確。按實際情況分析,本方案采用恒電阻放電的方法檢測,該方法電路結(jié)構(gòu)簡單,調(diào)整方便。該串電阻放電方法電路簡單,實用性高,使用積分的方法算電池容量較為準(zhǔn)確。電池容量一般用mAh毫安時表示,1mAh表示:1毫安電流放電1個小時.把電池充滿電,單只鋰電池充充滿電后的電壓是4.2V;鎳氫二次電池是1.2V.電池總?cè)萘坑肅表示,,一般以相對于電池容量而言的0.5C放電,我們按照放電倍率選擇不同阻值的大功率電阻。2.3電池容量測量說明電池容量是指在一定充電或放電條件下,供給電池或從電池獲得的電量。一般電池負(fù)極容量過剩,正極容量控制整個電池的容量。電池的額定容量定義為:以規(guī)定的放電率放電至終止電壓時電池所能提供的電量。在電池測量的過程中,電池的容量不是直接測量單位,而是導(dǎo)出單位,它是由式(2)電流與時間的乘積在一定的電壓限制條件下計算得出的。C=I?t…………..(2)式中C——電池的容量,單位Ah;I——電池的放電電流,單位A;t——電池放電至終止電壓的時間,單位h。電池容量是一個受多種因素影響的物理量,它與電池自身的特性,測量時的環(huán)境溫度以及放電電流大小、波形等條件均有關(guān)。因此,在涉及電池的容量時,應(yīng)注明測量條件。容量測試是以滿電電壓和設(shè)定的終止電壓為參數(shù)的,鋰電池終止電壓設(shè)定為3.2v;鎳氫二次電池是1v。因為充電電池不能超過終止電壓,小于終止電壓對電池有害。2.4容量計算方法本設(shè)計采用恒電阻放電的方法檢測,在放電的同時監(jiān)測電池的兩端電壓,當(dāng)兩端電壓下降到一定值時停止放電,每段時間的電壓除以放電電阻與每段時間的積分就是電池的容量。原理圖如圖2.4.1,使用單片機(jī)制作的電池容量測試電路,可對鎳氫,鋰離子電池的容量進(jìn)行測試,實現(xiàn)自動計時和電壓測量,并進(jìn)行容量計算和數(shù)字顯示。由于單片機(jī)的AD轉(zhuǎn)換功能在量化時使用的對比電壓是單片機(jī)的輸入電壓,在某一時刻可能存在波動,使得經(jīng)過AD轉(zhuǎn)換量化的電壓也存在波動,所以需要采取一定的濾波措施。在本設(shè)計中采用均值濾波的方式,把多次測量到的電壓值進(jìn)行累加,然后取平均值,在一定程度上,達(dá)到了取得相對穩(wěn)定的測量電壓的效果。圖2.4.1測試方法原理圖以鋰電池和鎳氫電池容量檢測為例,電池放電曲線圖分別如圖2.4.2和圖2.4.3,容量積分計算原理簡圖如圖2.4.4,圖4.4.4陰影部分面積就是電池容量圖2.4.2鎳氫電池放電曲線圖圖2.4.3鋰電池容量積分計算原理簡圖圖4.4.4電池容量積分曲線圖電池容量積分公式,………..(3)其中t是停止的時間,R是放電所串電阻,U是所測電壓。2.5整體設(shè)計電池容量測試儀電路由單片機(jī)電路、電池串電阻放電電路、+5V直流穩(wěn)壓電源電路和數(shù)碼顯示電路等部分組成,系統(tǒng)框圖如下:單單片機(jī)顯示模塊按鍵輸入電壓檢測電路時鐘電路電源穩(wěn)壓電路放電電路圖2.5.1系統(tǒng)框圖2.6放電電路的介紹將電池進(jìn)行串電阻放電,每隔幾秒監(jiān)測一次電池電壓,在放電的同時監(jiān)測電池的端電壓當(dāng)端電壓下降到一定值時,通過繼電器控制停止放電,記錄放電時間,放電電壓與所串電阻的商與放電時間的積分就是電池的容量。圖2.6放電電路圖3.硬件設(shè)計電池容量測試儀電路由單片機(jī)電路、電池串電阻放電電路、+5V穩(wěn)壓電源電路和數(shù)碼顯示電路等部分組成。單片機(jī)通過I/O接口將信號輸入內(nèi)部模擬信號比較器,并將模擬信號比較器比較的結(jié)果存入對應(yīng)的寄存器中。電源電壓經(jīng)過分壓后作為基準(zhǔn)電壓,使電池電壓與基準(zhǔn)電壓相比較,并用1、0表示其比較結(jié)果。片段譯碼器采用集成電路,把BCD碼轉(zhuǎn)換成字段碼供數(shù)碼顯示,工作狀態(tài)用發(fā)光二極管來指示。電池放電過程二極管亮。單片機(jī)的電源由5V穩(wěn)壓電源提供,并附帶單片機(jī)的復(fù)位電路。3.1單片機(jī)電路模塊根據(jù)設(shè)計的要求,對于單片機(jī)控制模塊的選擇要有以下幾個方面的功能:運算速度快、有AD轉(zhuǎn)換。由于51系列單片機(jī)本身沒有AD轉(zhuǎn)換功能,必須額外增加AD轉(zhuǎn)換器,這樣做使得硬件復(fù)雜,穩(wěn)定性降低,而且成本增加,所以本控制器設(shè)計選擇使用STC系列具有ad轉(zhuǎn)換的單片機(jī)--STC12C5A60S2系列單片機(jī)。STC12C5A60S2系列單片機(jī),是單時鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),內(nèi)部集成MAX810專用復(fù)位電路,STC12C5A60S2單片機(jī)中包含中央處理器(CPU)、程序存儲器(Flash)、數(shù)據(jù)存儲器(SRAM)、定時/計數(shù)器、、I/O接口、高速A/D轉(zhuǎn)換、看門狗及片內(nèi)R/C振蕩器和外部晶體振蕩電路等模塊。STC12C5A60S2系列單片機(jī)主要特點:(1)高速:1個時鐘/機(jī)器周期,增強(qiáng)型8051內(nèi)核,速度比普通的快8-12倍;(2)寬電壓:5.5-3.3V;(3)工作溫度范圍:0℃~75℃;(4)1280字節(jié)片內(nèi)SRAM數(shù)據(jù)存儲器;(5)8通道,10位高速ADC,速度可達(dá)25萬次/秒;(6)60K字節(jié)內(nèi)Flash程序存儲器,擦寫數(shù)十萬次以上;(7)4個16位定時器,兼容普通8051的定時器T0/T1;(8)芯片內(nèi)EEPROM功能,可掉電保存信息;(9)硬件看門狗(WDT);(10)通用I/O口(36個),可設(shè)成四種模式:準(zhǔn)雙向口/弱上拉,僅輸入/高阻,開漏,并且每個I/O口驅(qū)動能力均可達(dá)20mA。據(jù)以上特點,所以本設(shè)計的單片機(jī)模塊選用STC12C5A60S2芯片。單片機(jī)管腳圖如圖3.1圖3.1單片機(jī)管腳圖3.2時鐘振蕩電路外接石英晶體(或陶瓷振蕩器)及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1、C2雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷振蕩器建議選擇30pF±10pF。圖3.2時鐘振蕩電路為確保微機(jī)系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。單片機(jī)在啟動時都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。STC系列單片機(jī)的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機(jī)器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位。如圖3.2.所示。圖3.3復(fù)位電路圖3.3電源穩(wěn)壓電路的設(shè)計為了達(dá)到設(shè)計要求的精確度和避免測試過程中的電源之間的影響,所各個芯片或者模塊必須要用穩(wěn)壓電源經(jīng)行供電。圖3.4是用三端式穩(wěn)壓器LM7805構(gòu)成的單電源電壓輸出穩(wěn)壓電源的實驗電路圖。其中整流部分采用了由四個二極管組成的橋式整流器。濾波電容C4、C7一般選取幾百~幾千微法。當(dāng)穩(wěn)壓器距離整流濾波電路比較遠(yuǎn)時,在輸入端必須接入電容器C5(數(shù)值為0.1μF),以抵消線路的電感效應(yīng),防止產(chǎn)生自激振蕩。輸出端電容C4(0.1μF)用以濾除輸出端的高頻信號,改善電路的暫態(tài)響應(yīng)。二極管D7做反向保護(hù)作用。圖3.4+5V直流穩(wěn)壓電源電路3.4放電電路的設(shè)計為了檢測充電電池的容量,需要對電池進(jìn)行串大功率電阻放電,。隨著放電的進(jìn)行,電路原理圖如圖3.5,鋰電池端可測4~5V的鋰電池,鎳氫電池端可測1.~1.5V的二次鎳氫電池。圖3.5放電電路圖由于檢查不同種類的電池時,要求所串的電阻的大小不同,通過兩個繼電器來選擇放電電阻。3.5數(shù)字顯示模塊顯示模塊選用LCD1602液晶顯示模塊,如圖3.6,該液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點,LCD1602液晶顯示模塊,它可以顯示兩行,每行16個字符,因此可相當(dāng)于32個LED數(shù)碼管,而且比數(shù)碼管顯示的信息還多。采用單+5V電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。圖3.6LCD16021602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VDD接5V

第2腳:VSS接地

第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生"鬼影",使用時可以通過一個10K的電位器調(diào)整對比度

第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。

第5腳:RW為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù)。

第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。

第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。電路連接圖如圖3.7,圖3.7LCD1602電路連接圖3.6繼電器控制電路模塊本設(shè)計中需要單片機(jī)自動控制放電電路的通斷,所以加入兩個繼電器,由于繼電器的驅(qū)動電壓比較高,需要用三極管來放大單片機(jī)的輸出電壓,并在繼電器兩端加二極管保護(hù)。繼電器模塊電路圖如圖3.8圖3.8繼電器模塊電路圖4.軟件的設(shè)計4.1軟件整體設(shè)計本設(shè)計的源程序主要由各個子程序組成,通過調(diào)用子程序,把各個硬件模塊的功能協(xié)調(diào)在一起,達(dá)到本設(shè)計的設(shè)計要求。程序整體設(shè)計框圖如圖4.1 主程序主程序鍵盤輸入控制子程序電壓檢測控制子程序顯示輸出控制子程序繼電器控制子程序中斷程序子程序功能控制子程序圖4.1程序整體設(shè)計框圖4.2各子程序功能的簡單介紹(1)鍵盤輸入控制子程序檢測按鍵的狀態(tài);(2)電壓檢測控制子程序檢測當(dāng)前的電池的電壓值;(3)功能控制子程序?qū)崿F(xiàn)選擇不同電池檢測等功能;(4)顯示輸出子程序?qū)崿F(xiàn)時間、電池容量、當(dāng)前電池電壓等的顯示;(5)繼電器控制子程序控制放電電路的通斷狀態(tài);4.3單片機(jī)的I/O分配表表2I/O分配表單片機(jī)管腳編號器件端口編號功能描述P0AD0~AD7LCD1602段選P2.0A8指令/數(shù)據(jù)寄存器P2.1A9讀寫選擇引腳P2.2A10使能引腳P2.4Key1上移和開始P2.5Key2上移P2.6Key3選擇確認(rèn)P2.7Key4暫停P1.0Voltage電壓檢測P1.1Relay繼電器控制P1.2Relay繼電器控制4.4鍵盤輸入控制子程序模塊本設(shè)計的鍵盤主要用來進(jìn)行功能切換、選擇電池類型、開始檢測容量等功能,采取獨立按鍵的式接口,根據(jù)IO口的高低電平來判斷鍵的狀態(tài),因而鍵盤輸入控制子程序則是檢測相應(yīng)按鍵的IO口的高低電平,判斷按鍵是否按下,并返回鍵值。鍵盤輸入控制子程序流程圖如圖4.2所示。KKey2=0?返回鍵值開始Key1=0?Key3=0?Key4=0?結(jié)束YYYYNNNN圖4.2鍵盤輸入控制子程序流程圖4.5電壓檢測控制子程序模塊電壓檢測是本設(shè)計中的重點,電壓的采集主要通過放電電路所接的電池的電壓來實現(xiàn)的,把采集到的電壓值進(jìn)行均值濾波后使用到容量計算中去。電壓檢測控制子程序流程圖如下圖4.3所示。由于單片機(jī)的AD轉(zhuǎn)換功能在量化時使用的對比電壓是單片機(jī)的輸入電壓,在某一時刻可能存在波動,使得經(jīng)過AD轉(zhuǎn)換量化的電壓也存在波動,為了減少誤差,所以需要采取一定的濾波措施。在本設(shè)計中采用均值濾波的方式,把多次測量到的電壓值進(jìn)行累加,然后取平均值,在一定程度上,達(dá)到了取得相對穩(wěn)定的測量電壓的效果。開始開始初始化內(nèi)部ADC外部電壓采樣基準(zhǔn)電壓比較ADC轉(zhuǎn)換結(jié)束返回電壓值圖4.3電壓檢測控制子程序流程圖4.6顯示輸出控制子程序模塊LCD1602屏幕上所需要的顯示都由本子程序來實現(xiàn),把需要顯示的數(shù)字、字符和需要顯示的功能指示標(biāo)志的值輸入進(jìn)來,,然后驅(qū)動相應(yīng)的程序,顯示出數(shù)字和字符等。顯示輸出控制子程序流程圖如下圖4.4所示。圖4.4顯示輸出控制子程序流程圖4.7繼電器控制子程序模塊當(dāng)開始檢測電池容量時,則要調(diào)用本子程序,通過I/O口輸出高電平使三極管導(dǎo)通,使得繼電器通電,接通所選擇的放電電路,使其放電。但檢測到放電電池電壓低于設(shè)定的終止電壓,通過I/O口輸出低電平使三極管截止,使得繼電器斷電,斷開所選擇的放電電路,使其停止放電。繼電器控制子程序流程圖如下圖4.5所示。開始開始始輸入值開繼電器?YN關(guān)繼電器開繼電器結(jié)束圖4.5繼電器控制子程序流程圖4.8中斷程序模塊 由于需要執(zhí)行大量的任務(wù)處理,并且執(zhí)行顯示輸出、顯示更新、按鍵信號檢測、壓力檢測、蜂鳴器響停等子程序必需要及時響應(yīng),而按鍵信號處理、時間處理等則可以稍微在響應(yīng)完需要及時處理的任務(wù)后再進(jìn)行處理。這樣保證了系統(tǒng)的實時性,保證了單片機(jī)運算和控制的高效性。所以本設(shè)計里采用定時中斷的方法,每250us進(jìn)行一次定時中斷,在中斷服務(wù)程序里進(jìn)行1ms,100ms,500ms時間的判斷,并設(shè)置相應(yīng)的標(biāo)志位,讓主程序在相應(yīng)的時間段里執(zhí)行相應(yīng)的任務(wù),從而保證對輸入信號和輸出信號的響應(yīng)的實時性[12]。 中斷服務(wù)程序模塊流程圖如下圖4.5所示。圖4.5中斷服務(wù)程序模塊流程圖4.9主程序控制模塊主程序則負(fù)責(zé)調(diào)度、協(xié)調(diào)各個子程序模塊,執(zhí)行初始化外圍器件,故障處理等任務(wù),循環(huán)執(zhí)行各項功能,其控制流程如下圖4.6所示。開始開始始I/O口初始化鍵盤檢測電壓檢測功能模塊顯示檢測結(jié)束圖4.6主程序控制流程圖5.系統(tǒng)的實現(xiàn)與調(diào)試5.1電路圖的繪制5.1.1原理圖的繪制第一步:打開Protel軟件,新建“電池容量測試儀”項目,并保存到目標(biāo)文件夾。第二步:先添加創(chuàng)建一個名為“電池容量測試儀”.Sch的原理圖文件。第三步:建立PCB電路文件“電池容量測試儀.Lib”。第四步:畫出需要的STC12C5A60S2單片機(jī)、電阻電容、按鍵開關(guān)、LCD1602、三極管,繼電器,lm7805等等。第五步:生成PCB文件并進(jìn)行布局和布線。5.1.2PCB板的生成 第1步:創(chuàng)建PCB圖文件保存;第2步:建立文件并命名為“電池容量測試儀.Pcb”;第3步:進(jìn)行電路板的PCB轉(zhuǎn)換,建立PCB封裝文件,命名為“PCB.Lib”;第4步:將轉(zhuǎn)換過來的元件根據(jù)電路的電氣特點進(jìn)行PCB排版;第5步:輸出出PCB板圖待做板使用。制作PCB板電路時,要仔細(xì)考慮,合理布置器件,妥善布線。合理布置器件要全面考慮電路結(jié)構(gòu),要做到布置有利于器件的焊接和布線。PCB印板圖見附錄A;5.1.3硬件的焊接對于硬件的焊接,在進(jìn)行硬件焊接時,要使用適合的電烙鐵,使用適合的溫度來進(jìn)行焊接,并且做好電烙鐵接地,以防止靜電損壞元器件,元器件要對號入座,特別是有極性的二極管、電解電容、三極管、芯片等,要注意其引腳的位置和極性。焊接過程中盡可能的使得焊點加錫量適合,焊點光滑飽滿,減少漏焊、虛焊的現(xiàn)象。對于主要芯片等應(yīng)加底座,這樣就可以方便芯片的接入,并能避免主要芯片在焊接過程中引腳的損壞或靜電損害芯片。這樣焊接好的電路比較容易進(jìn)行檢測,并查找出存在的問題。5.2硬件調(diào)試先對電路板進(jìn)行加個制作,對元件進(jìn)行焊接,焊接后對各個元件的位置進(jìn)行再次確認(rèn)檢查,檢查合格后就可以進(jìn)行一下電路的檢測調(diào)試。1)做好焊接的工作做后,先用萬用表進(jìn)行電路關(guān)鍵點的檢測,檢查短路是否發(fā)生,待一切檢測正常后,接通電源進(jìn)行帶電檢測,檢測電路的通斷是否正常,如出現(xiàn)異常則需要再次檢查,直至一切工作正常。2)單片機(jī)控制電路、LCD顯示模塊、按鍵部分接上電源,將單片機(jī)下載好編寫的程序,分開對各個模塊的的功能進(jìn)行檢測,主要檢查的模塊有按鍵檢測控制模塊、LCD顯示電路模塊、單片機(jī)最小系統(tǒng)模塊、穩(wěn)壓電源模塊、繼電器模塊等是否符合電路的控制要求。對以上各個部分調(diào)節(jié)好以后。至此,系統(tǒng)的整個過程結(jié)束。出現(xiàn)問題就進(jìn)行分析檢測,最后完成設(shè)計的所有要求。電路原理圖見附錄B。完整程序見附錄C。6.結(jié)論與展望設(shè)計采用STC系列單片機(jī)為核心,使系統(tǒng)呈現(xiàn)單片化結(jié)構(gòu)。尤其是采用了直觀的數(shù)字顯示,可直接顯示放電容量,避免了人工計算。在定電阻放電狀態(tài)下,也可方便地測量出其準(zhǔn)確的充電電池容量,且體積小、可靠性高、價格低廉、測量方便、具有很高的性能價格比,可以得到廣泛的應(yīng)用。參考文獻(xiàn)[1]郭炳,徐徽,王先友,肖立新.鋰離子電池[M].科學(xué)出版社,2002:3-60.[2]王海明.鋰離子電池的特點及應(yīng)用[J].電氣時代,2004,6(3):54-58.[3]揚(yáng)林.中、日、韓三國鋰離子電池發(fā)展概況[J].電池工業(yè),2003,8(3):137-139.[4]王海明.鋰離子電池的特點及應(yīng)用.[J]電氣時代,2004,6(3):54-58.[5]陳洪超,李相東.鋰離子電池原理、研究現(xiàn)狀與應(yīng)用前景[J].軍事通信技術(shù),2001,23(6):56-57.[6]蔡生民.我國鋰離子電池行業(yè)的發(fā)展現(xiàn)狀及趨勢.[J]通訊電源,2004,6(3):17-18.[7]何銀吉,趙林英,樂浪,李革臣.一種新型的鋰離子電池化成檢測系統(tǒng)[N].哈爾濱理工大學(xué)學(xué)報,2005.10:29-33.[8]蔡生民.我國鋰離子電池行業(yè)的發(fā)展現(xiàn)狀及趨勢[J].通訊電源,2004,6(3):17-18.[9]樂浪,安愛民,朱磊,李革臣.現(xiàn)場總線在鋰離子電池檢測系統(tǒng)中的應(yīng)用研究[N].哈爾濱理工大學(xué)學(xué)報.2006,11(1):5-7.[10]JonTitus.高性能鋰離子電池[J].電源技術(shù),2004,6:53-58.[11]W.KozakiandT.Yamazaki.Remainingbatterycapacitymeterandmethodforcomputingremainingcapacity.U.S.Patent,1997,(11):25-28[12]趙建領(lǐng)等.51系列單片機(jī)開發(fā)寶典[M].2版.北京:電子工業(yè)出版社,2012.2,337-389.附錄附錄A附錄BPAGE38附錄C#include"stc.h"#include"lcd1602.h"#include"key.h"#include"delay.h"#include"adc.h"#include"menu.h"http://#include"lamp.h"#defineucharunsignedchar#defineuintunsignedintsbitP_OUT_NI_RELAY=P2^4;//鎳氫電池繼電器sbitP_OUT_LI_RELAY=P2^5;//鋰電池繼電器externunsignedcharkeyvalue;ucharmenu=1;ucharr_res_value;//放電電阻值uintr_stop_voltage;//終止放電電壓ucharr_t1ms,r_t100ms,r_t500ms;//中斷時間相關(guān)寄存器bitb_t1ms,b_t100ms,b_t500ms;//中斷時間相關(guān)標(biāo)志位bitb_runing_test;//測試運行標(biāo)志位bitb_adc_need;//需要ad轉(zhuǎn)換標(biāo)志位bitb_adc_ok;//ad轉(zhuǎn)換okucharr_time,r_time_hour,r_time_min,r_time_sec;//計時時間寄存器floatr_voltage_test;//測量電壓值floatr_rongliang_test;//測量容量值uintr_voltage_disp;//顯示電壓值uintr_rongliang_disp;//顯示容量值voidinit_myself(void);//初始化voidkeyhandle(void);//按鍵信號處理voidmenu_up_handle(void);//菜單上移voidmenu_down_handle(void);//菜單下移voidmenu_enter_handle(void);//進(jìn)入菜單voidmenu_esc_handle(void);//退出菜單voidli_ion_test(void);//鋰電池測試voidni_cd_test(void);//鎳氫電池測試voidtimer_process(void);//時鐘處理voiddisplay(void);//顯示輸出處理voiddispaboutme(void);//顯示相關(guān)信息voidmain(){ init_myself(); InitADC(); LCD1602_Initial(); dispwelcome(); delay(5000); dispmenu(); while(1) { keyhandle(); }}/*********鋰電池測試函數(shù)*********/voidli_ion_test(void){ LCD1602_WriteCommand(0x01);//指令"清屏" LCD1602_DispString(0,0,"::.V"); LCD1602_DispString(0,1,"mAh"); r_time=0;r_time_hour=0;r_time_min=0;r_time_sec=0; r_voltage_test=0;r_rongliang_test=0; r_res_value=9;//電阻為9歐 r_stop_voltage=3200;//終止放電電壓為3.2V b_adc_ok=0; while(1) {if((b_adc_need==1)&&(b_runing_test==1))//需要ad轉(zhuǎn)換 { b_adc_need=0; b_adc_ok=1; r_voltage_test=GetadcAndFilter(0); r_rongliang_test=r_rongliang_test+(((r_voltage_test/r_res_value)*250)/3600000);///36000000 } if(b_t1ms) { b_t1ms=0; //======================================// if((keyvalue==1)&&(b_runing_test==0))//開始測試 { P_OUT_LI_RELAY=0;//開繼電器 b_runing_test=1;//啟動測試 keyvalue=0;//清鍵值 } if((keyvalue==2)&&(b_runing_test==1))//暫停測試 { P_OUT_LI_RELAY=1;//關(guān)繼電器 b_runing_test=0;//停止測試 keyvalue=0;//清鍵值 } if(keyvalue==4)//退出測試 { P_OUT_LI_RELAY=1;//關(guān)繼電器 b_runing_test=0;//停止測試 r_voltage_test=0;//清電壓值 r_rongliang_test=0;//清容量值 menu_esc_handle();//退出控制 keyvalue=0;//清鍵值 break; } display();//顯示輸出 } if(b_t100ms) { b_t100ms=0; }if(b_t500ms){b_t500ms=0;timer_process();//時鐘處理} }}/*********鎳氫電池測試函數(shù)*********/voidni_cd_test(void){ LCD1602_WriteCommand(0x01);//指令"清屏" LCD1602_DispString(0,0,"::.V"); LCD1602_DispString(0,1,"mAh"); r_time=0;r_time_hour=0;r_time_min=0;r_time_sec=0; r_voltage_test=0;r_rongliang_test=0; r_res_value=3;//電阻為3歐 r_stop_voltage=1000;//終止放電電壓為1.0V b_adc_ok=0; while(1) {if((b_adc_need==1)&&(b_runing_test==1))//需要ad轉(zhuǎn)換 { b_adc_need=0; b_adc_ok=1; r_voltage_test=GetadcAndFilter(0); r_rongliang_test=r_rongliang_test+(((r_voltage_test/r_res_value)*250)/3600000);///36000000 } if(b_t1ms) { b_t1ms=0; //======================================// if((keyvalue==1)&&(b_runing_test==0))//開始測試 { P_OUT_NI_RELAY=0;//開繼電器 b_runing_test=1;//啟動測試 keyvalue=0;//清鍵值 } if((keyvalue==2)&&(b_runing_test==1))//暫停測試 { P_OUT_NI_RELAY=1;//關(guān)繼電器 b_runing_test=0;//停止測試 keyvalue=0;//清鍵值 } if(keyvalue==4)//退出測試 { P_OUT_NI_RELAY=1;//關(guān)繼電器 b_runing_test=0;//停止測試 r_voltage_test=0;//清電壓值 r_rongliang_test=0;//清容量值 menu_esc_handle();//退出控制 keyvalue=0;//清鍵值 break; } display();//顯示輸出 } if(b_t100ms) { b_t100ms=0; }if(b_t500ms){b_t500ms=0;timer_process();//時鐘處理} } }/*********顯示輸出函數(shù)*********/voiddisplay(void){ LCD1602_DispOneChar(0,0,(r_time_hour/10%10+0x30));//小時的十位 LCD1602_DispOneChar(1,0,(r_time_hour%10+0x30));//小時的個位 LCD1602_DispOneChar(3,0,(r_time_min/10%10+0x30));//分的十位 LCD1602_DispOneChar(4,0,(r_time_min%10+0x30));//分的個位 LCD1602_DispOneChar(6,0,(r_time_sec/10%10+0x30));//秒的十位 LCD1602_DispOneChar(7,0,(r_time_sec%10+0x30));//秒的個位 r_voltage_disp=(int)(r_voltage_test*1000);//顯示電壓值 if((b_runing_test==1)&&(b_adc_ok==1)) { if(r_voltage_disp<=r_stop_voltage)//測試電壓小于或等于終止放電電壓 { b_runing_test=0;//停止測試 P_OUT_LI_RELAY=1;//關(guān)鋰電池繼電器 P_OUT_NI_RELAY=1;//關(guān)鎳氫電池繼電器 b_adc_ok=0; } } LCD1602_DispOneChar(11,0,(r_voltage_disp/1000+0x30));//電壓值的千位 LCD1602_DispOneChar(13,0,(r_voltage_disp/100%10+0x30));//電壓值的百位 LCD1602_DispOneChar(14,0,(r_voltage_disp/10%10+0x30));//電壓值的十位 r_rongliang_disp=(int)(r_rongliang_test); LCD1602_DispOneChar(4,1,(r_rongliang_disp/1000+0x30));//電壓值的千位 LCD1602_DispOneChar(5,1,(r_rongliang_disp/100%10+0x30));//電壓值的百位 LCD1602_DispOneChar(6,1,(r_rongliang_disp/10%10+0x30));//電壓值的十位 LCD1602_DispOneChar(7,1,(r_rongliang_disp%10+0x30));//電壓值的十位}/*********單片機(jī)初始化函數(shù)*********/voidinit_myself(void){ P_OUT_NI_RELAY=1;//關(guān)繼電器 P_OUT_LI_RELAY=1;//關(guān)繼電器 AUXR&=0x7F;//定時器時鐘12T模式 TMOD&=0xF0;//設(shè)置定時器模式3 TMOD|=0x02;//設(shè)置定時器模式(8位自動重裝) TL0=0x06;//設(shè)置定時初值 250微秒 TH0=0x06;//設(shè)置定時重載值 TR0=1;//定時器0開始計時,250微秒 ET0=1;//開定時器0中斷 EA=1;//開全局中斷}/*********中斷服務(wù)函數(shù)*********/voidtime0_isr()interrupt1{ keyscan();if((b_adc_need==0)&&(b_runing_test==1)) { b_adc_need=1;//需要ad轉(zhuǎn)換 } r_t1ms++; if(r_t1ms>=8)//1ms { r_t1ms=0; b_t1ms=1; r_t100ms++; if(r_t100ms>=5)//100ms { r_t100ms=0; b_t100ms=1; r_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論