版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 南 昌 工 程 學(xué) 院</p><p> 畢 業(yè) 設(shè) 計(jì) (論 文)</p><p> 機(jī)械與電氣工程學(xué)院 系(院) 電氣工程及其自動(dòng)化 專(zhuān)業(yè)</p><p> 畢業(yè)設(shè)計(jì)(論文)題目 基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng)設(shè)計(jì) </p><p> 學(xué)生姓名 紀(jì)煒煥 &l
2、t;/p><p> 班 級(jí) 電氣工程及其自動(dòng)化(1)班 </p><p> 學(xué) 號(hào) 2009100106 </p><p> 指導(dǎo)教師 饒繁星 </p><p> 完成日期 2013 年 5 月 20 日</p>
3、<p> 基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng)設(shè)計(jì)</p><p> Lithium-ion battery detection system design based on MCU</p><p> 總計(jì) 畢業(yè)設(shè)計(jì)(論文) 34 頁(yè)</p><p> 表 格 7 個(gè)</p><
4、;p> 插 圖 15 幅</p><p><b> 摘 要</b></p><p> 鋰離子電池與其他種類(lèi)的電池相比有著諸多優(yōu)勢(shì),已經(jīng)成為我們?nèi)粘I钪斜夭豢缮俚囊徊糠帧O嘈旁谑褂娩囯x子電池的過(guò)程中,我們常會(huì)考慮還剩多少電量的問(wèn)題,但是又找不到好的電量檢測(cè)方法,針對(duì)該要求,本文設(shè)計(jì)了一種基于單片機(jī)的鋰離子電池電量檢測(cè)系
5、統(tǒng),該檢測(cè)系統(tǒng)可以滿足我們?nèi)粘I钪袑?duì)鋰離子電池電量檢測(cè)的需求,以全面掌握鋰離子電池的電量狀態(tài)。</p><p> 本文主要敘述了基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng)的研究和設(shè)計(jì),該系統(tǒng)主要由模擬量采集、鋰離子電池檢測(cè)模塊、單片機(jī)模塊、以及LED驅(qū)動(dòng)顯示電量等相應(yīng)的部分組成,介紹了鋰離子電池的特點(diǎn)、電池電量檢測(cè)原理、系統(tǒng)的結(jié)構(gòu)及性能,重點(diǎn)介紹了該系統(tǒng)的軟硬件設(shè)計(jì)等。</p><p> 考
6、慮到檢測(cè)系統(tǒng)的復(fù)雜程度、精確性、可靠性等各個(gè)方面,本文介紹的設(shè)計(jì)方案能夠滿足我們對(duì)鋰離子電池電量檢測(cè)的要求。</p><p> 關(guān)鍵字:鋰離子電池 BQ2040 電池檢測(cè) 單片機(jī) LED顯示</p><p><b> Abstract</b></p><p> Compared with other types of batter
7、ies, the lithium-ion battery have many advantages, becoming an indispensable part of our daily lives. I believe that in the process of using lithium-ion battery, we often consider the question of how much power is left,
8、but they can not find a good power detection method. for the requirements, we design a lithium-ion battery detection system based on MCU, the detection system can meet the demand for lithium-ion battery detection in our
9、daily lives , in order to</p><p> This paper describes the research and design of lithium-ion battery detection system based on MCU The system consists of a Analog acquisition module, battery detection modu
10、le, MCU module and LED drive power display modules. the article describes the characteristics of the lithium-ion battery, the battery detection principle, structure and performance of the system,, focusing on the system
11、hardware and software design. </p><p> Taking into account the complexity of the detection system, accuracy, reliability, and other aspects, the article describes the design can meet the requirements of our
12、 lithium-ion battery detection. </p><p> Key words:Lithium-ion battery BQ2040 Battery detection MCU LED display</p><p><b> 目錄</b></p><p><b> 摘 要I</b>
13、;</p><p> AbstractII</p><p><b> 第一章 緒論1</b></p><p> 1.1 本課題研究的目的及意義1</p><p> 1.2 本課題研究?jī)?nèi)容1</p><p> 1.3 鋰離子電池的放電及溫度特性2</p>&
14、lt;p> 1.4 鋰離子電池電量檢測(cè)系統(tǒng)的發(fā)展方向3</p><p> 第二章 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)4</p><p> 2.1 系統(tǒng)總體結(jié)構(gòu)框圖4</p><p> 2.2 單片機(jī)的選擇5</p><p> 2.2.1 W78E365A40PL引腳說(shuō)明5</p><p> 2.2.
15、2 W78E365特性介紹6</p><p> 2.3 電池電量檢測(cè)芯片BQ20407</p><p> 2.3.1 BQ2040 引腳說(shuō)明7</p><p> 2.3.2 BQ2040的檢測(cè)原理8</p><p> 2.4 LED驅(qū)動(dòng)控制芯片TM16299</p><p> 2.4.1
16、 TM1629引腳說(shuō)明9</p><p> 2.4.2 TM1629特性介紹10</p><p> 2.5 數(shù)據(jù)傳輸存儲(chǔ)芯片24C6411</p><p> 2.5.1 24C64概述11</p><p> 2.5.2 24C64引腳說(shuō)明11</p><p> 2.5.3 24C64特性介
17、紹12</p><p> 2.6 時(shí)鐘芯片DS130212</p><p> 2.6.1 DS1302概述12</p><p> 2.6.2 DS1302引腳說(shuō)明12</p><p> 第三章 硬件系統(tǒng)設(shè)計(jì)14</p><p> 3.1 單片機(jī)與時(shí)鐘電路部分14</p>&
18、lt;p> 3.1.1 W78E365概述14</p><p> 3.1.2 電路圖設(shè)計(jì)14</p><p> 3.2 BQ2040部分15</p><p> 3.2.1 BQ2040概述15</p><p> 3.2.2 電路圖設(shè)計(jì)16</p><p> 3.3 TM1629驅(qū)
19、動(dòng)控制LED顯示部分16</p><p> 3.3.1 TM1629概述16</p><p> 3.3.2 LED數(shù)碼管16</p><p> 3.3.3 電路圖設(shè)計(jì)17</p><p> 第四章 軟件系統(tǒng)設(shè)計(jì)18</p><p> 4.1 程序設(shè)計(jì)流程18</p><
20、;p> 4.1.1 初始化18</p><p> 4.1.2 主程序流程圖19</p><p> 4.1.3 A/D轉(zhuǎn)換與中斷服務(wù)20</p><p> 4.2 BQ2040總線時(shí)序21</p><p> 第五章 系統(tǒng)測(cè)試23</p><p><b> 結(jié) 論24&l
21、t;/b></p><p><b> 參考文獻(xiàn)25</b></p><p><b> 致 謝26</b></p><p><b> 附 錄27</b></p><p><b> 第一章 緒論</b></p><
22、p> 1.1 本課題研究的目的及意義</p><p> 鋰離子電池自問(wèn)世以來(lái),到現(xiàn)在已經(jīng)發(fā)展成為我們每個(gè)人眾多生活必需品當(dāng)中的一部分,是如今人們?cè)谌粘I钪惺褂脴O其廣泛的一種電池。我國(guó)通訊、電力電子等相關(guān)行業(yè)的飛速發(fā)展,使人們對(duì)鋰離子電池的利用率和維護(hù)工作的重視程度不斷提高,鋰離子電池電量檢測(cè)的市場(chǎng)需求隨之越來(lái)越大。然而現(xiàn)在的實(shí)際情況卻是由于國(guó)內(nèi)目前的一些檢測(cè)設(shè)備的檢測(cè)方法不精確等原因,使其不能完全滿
23、足我們對(duì)鋰離子電池電量檢測(cè)的需求,同時(shí)國(guó)外的同類(lèi)檢測(cè)設(shè)備雖然性能較好,但是價(jià)格太高,不適合我們?nèi)粘z測(cè)使用。微處理器技術(shù)的發(fā)展與電池電量檢測(cè)方法的不斷改善,為提高鋰離子電池電量檢測(cè)系統(tǒng)的性能和降低其制造成本提供了可能。針對(duì)該要求,本文設(shè)計(jì)了一種基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng),該檢測(cè)系統(tǒng)的設(shè)計(jì)對(duì)全面掌握鋰離子電池的電量狀態(tài),提高其利用率具有現(xiàn)實(shí)意義。本設(shè)計(jì)的研究成果如果能夠得到大家的一致認(rèn)同,以致今后被廣泛應(yīng)用于我們的日常生活當(dāng)中,比
24、如應(yīng)用于生活中常用的或常見(jiàn)的便攜式電子產(chǎn)品領(lǐng)域,這必將提高人們的日常生活質(zhì)量,并且還能起到提高鋰離子電池利用率的作用,從另一方面看,這也是從某種程度上響應(yīng)了國(guó)家“節(jié)能減排”政策。</p><p> 1.2 本課題研究?jī)?nèi)容</p><p> 該課題是設(shè)計(jì)一個(gè)鋰離子電池電量檢測(cè)系統(tǒng),研究對(duì)象為符合國(guó)標(biāo)GB/T 18287-2000的鋰離子電池,其主要參數(shù)有:標(biāo)稱(chēng)電壓3.7V,標(biāo)稱(chēng)容量10
25、50mAH,充電電壓4.2V。在做畢業(yè)設(shè)計(jì)的這段時(shí)間里,自己通過(guò)互聯(lián)網(wǎng)查詢、圖書(shū)館書(shū)籍資料搜索等多種途徑,對(duì)該課題的研究?jī)?nèi)容進(jìn)行了充分的理解與學(xué)習(xí),使我對(duì)鋰離子電池的電量檢測(cè)原理,以及一些基于單片機(jī)的C程序編寫(xiě)等內(nèi)容,都有了進(jìn)一步的了解與掌握。</p><p> 本課題研究如何設(shè)計(jì)一個(gè)滿足我們?nèi)粘I钜蟮匿囯x子電池電量檢測(cè)系統(tǒng),要求適用于日常使用,必須控制成本,并且需要滿足精度的要求。本文的設(shè)計(jì)思路是利用單片
26、機(jī)及一些市場(chǎng)上常見(jiàn)的功能芯片,經(jīng)過(guò)綜合所有應(yīng)考慮的重要因素后,最終確定了該檢測(cè)系統(tǒng)里的一些重要器件類(lèi)型,其中單片機(jī)部分就選用W78E系列中的W78E365A40PL,鋰離子電池的電量檢測(cè)部分就選用流行于目前市場(chǎng)上并且較專(zhuān)業(yè)的電池電量檢測(cè)芯片BQ2040,輸出部分決定采用TM1629驅(qū)動(dòng)控制LED數(shù)碼輸出顯示。TM1629是一款專(zhuān)業(yè)用于驅(qū)動(dòng)控制LED數(shù)碼輸出顯示的芯片,已經(jīng)被廣泛應(yīng)用于目前的市場(chǎng)中,其次,輸出采用數(shù)碼顯示,易于用戶讀取所需
27、要的鋰離子電池的電量信息,更加人性化。綜上,最終設(shè)計(jì)出基于W78E365A40PL,利用電池電量檢測(cè)芯片BQ2040,并且數(shù)碼輸出顯示我們所需數(shù)據(jù)的鋰離子電池電量檢測(cè)系統(tǒng),該系統(tǒng)由模擬量參數(shù)采集部分、電量檢測(cè)部分、中央處理控制部分(單片機(jī))以及LED驅(qū)動(dòng)顯示等相應(yīng)模塊組成,前兩部分可由BQ2040完成。至此,該基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng)的整體框架便已明了。</p><p> 本文重點(diǎn)介紹了該鋰離子電池電
28、量檢測(cè)系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì)的主要職責(zé)就是將系統(tǒng)分割成的各個(gè)功能部分組合成一個(gè)合理的可行性方案;軟件設(shè)計(jì)則負(fù)責(zé)根據(jù)系統(tǒng)相關(guān)的功能要求,進(jìn)行模塊的編程等,最后用Protel等相關(guān)軟件畫(huà)出原理圖,并利用Proteus仿真,對(duì)檢測(cè)結(jié)果的準(zhǔn)確性進(jìn)行測(cè)試。</p><p> 1.3 鋰離子電池的放電及溫度特性</p><p><b> 放電特性</b><
29、/p><p> 本文必須先對(duì)鋰離子電池的放電特性進(jìn)行簡(jiǎn)單說(shuō)明,因?yàn)槿绻獧z測(cè)鋰離子電池的電量,對(duì)鋰離子電池進(jìn)行放電檢測(cè)是檢測(cè)過(guò)程中必須經(jīng)過(guò)的一道程序,大部分我們所需要的參數(shù)都是在對(duì)鋰離子電池進(jìn)行放電過(guò)程中得到的,但是對(duì)鋰離子電池進(jìn)行放電測(cè)試時(shí),其放電力度必須要得到精確的控制,鋰離子電池對(duì)過(guò)放電相當(dāng)?shù)拿舾?,一旦放電電壓或放電電流超過(guò)了本身的承受范圍,將會(huì)導(dǎo)致鋰離子電池自身快速升溫,影響鋰離子電池的使用壽命及使用性能。
30、</p><p><b> 溫度特性</b></p><p> 雖然在檢測(cè)過(guò)程中需要控制鋰離子電池的溫度在一定的范圍之內(nèi),因?yàn)椴贿m合的溫度,將導(dǎo)致鋰離子電池內(nèi)部生成許多影響檢測(cè)結(jié)果的無(wú)用化合物,這是鋰離子電池內(nèi)部化學(xué)反應(yīng)的結(jié)果,而且溫度影響著鋰離子的遷移速度,但是日常生活中的環(huán)境溫度不會(huì)超過(guò)鋰離子電池正常使用的溫度范圍,在進(jìn)行鋰離子電池電量檢測(cè)的過(guò)程中,我們不用對(duì)
31、鋰離子電池所在環(huán)境溫度進(jìn)行嚴(yán)格控制。不可以將鋰離子電池置于溫度過(guò)高或過(guò)低的環(huán)境中存儲(chǔ)或使用,不然嚴(yán)重影響鋰離子電池的使用壽命及使用性能。</p><p> 另外附帶一句,如果我們要存儲(chǔ)鋰離子電池時(shí),必須將溫度范圍控制在(-15一+55)℃,如果是使用鋰離子電池或?qū)ζ溥M(jìn)行放電測(cè)試,最好將溫度范圍控制在(-35一+75)℃。</p><p> 1.4 鋰離子電池電量檢測(cè)系統(tǒng)的發(fā)展方向&l
32、t;/p><p> 人性化設(shè)計(jì)是任何產(chǎn)品能否面向市場(chǎng)并取得成功的決定因素之一。需要為用戶提供直觀易懂方便操作的界面,鋰離子電池電量檢測(cè)系統(tǒng)的發(fā)展方向應(yīng)從以下幾個(gè)方面考慮:</p><p> 人機(jī)互動(dòng)。在用戶進(jìn)行操作使用的過(guò)程中,系統(tǒng)會(huì)根據(jù)用戶的操作反饋顯示出諸多的相關(guān)提示信息,用戶使用起來(lái)簡(jiǎn)單,提升該系統(tǒng)的用戶體驗(yàn)。</p><p> 系統(tǒng)的內(nèi)部結(jié)構(gòu)須采用插板式形
33、式。這樣就可以打消用戶擔(dān)心產(chǎn)品不易維修的顧慮,對(duì)于自己有相關(guān)維修經(jīng)驗(yàn)及能力的用戶,也提供了讓用戶維修的機(jī)會(huì),解決了與維修相關(guān)的一連串問(wèn)題。</p><p> 相關(guān)功能的延伸。善于挖掘、開(kāi)發(fā)出鋰離子電池電量檢測(cè)系統(tǒng)應(yīng)具備的功能,使產(chǎn)品具備更多有實(shí)用價(jià)值的相關(guān)功能,以適應(yīng)不同用戶對(duì)鋰離子電池電量檢測(cè)要求,進(jìn)一步完善用戶體驗(yàn)。</p><p> 當(dāng)然,在鋰離子電池的使用過(guò)程中,還存在諸多的實(shí)
34、際性問(wèn)題,比如說(shuō)老化,諸多其他不確定性因素也會(huì)對(duì)檢測(cè)結(jié)果有所影響。未來(lái)在開(kāi)發(fā)鋰離子電池電量檢測(cè)系統(tǒng)時(shí),必須全面考慮會(huì)對(duì)檢測(cè)過(guò)程中或者檢測(cè)結(jié)果造成多多少少影響的因素。這樣才能使該鋰離子電池電量檢測(cè)系統(tǒng)一直發(fā)展下去,隨著時(shí)間的推移而不被淘汰。</p><p> 第二章 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)</p><p> 2.1 系統(tǒng)總體結(jié)構(gòu)框圖</p><p> 該系統(tǒng)總體結(jié)
35、構(gòu)可以劃分為幾個(gè)重要部分:鋰離子電池模擬量參數(shù)采集部分、電量檢測(cè)部分、中央處理控制部分(單片機(jī))和LED驅(qū)動(dòng)顯示部分。每個(gè)部分重要器件的選型已經(jīng)在前面具體說(shuō)明,將系統(tǒng)總體結(jié)構(gòu)分為以上各部分后,整個(gè)系統(tǒng)的工作原理及重要模塊等信息便簡(jiǎn)單明了,系統(tǒng)每個(gè)部分都有著其自己重要的責(zé)任,只有系統(tǒng)內(nèi)的每個(gè)模塊都按其職責(zé)正常運(yùn)行,整個(gè)鋰離子電池電池檢測(cè)系統(tǒng)才能正常工作。如圖2-1所示,該圖為鋰離子電池電量檢測(cè)系統(tǒng)的總體結(jié)構(gòu)框圖,其中模擬量參數(shù)采集部分負(fù)責(zé)
36、通過(guò)傳感器及測(cè)量電路等來(lái)采集鋰離子電池的模擬量參數(shù),這些參數(shù)包括鋰離子在放電過(guò)程中的電流(壓)大小、檢測(cè)到的溫度值等相關(guān)參數(shù);電量檢測(cè)部分主要負(fù)責(zé)依據(jù)上部分已經(jīng)采集到的參數(shù),對(duì)鋰離子電池的電量進(jìn)行檢測(cè)與計(jì)算,這兩個(gè)部分可由BQ2040完成;中央處理控制部分即單片機(jī)負(fù)責(zé)對(duì)整個(gè)系統(tǒng)進(jìn)行控制;LED驅(qū)動(dòng)顯示部分負(fù)責(zé)驅(qū)動(dòng)LED,并對(duì)被測(cè)鋰離子電池的剩余電量信息進(jìn)行數(shù)碼輸出顯示。</p><p> 圖2-1 系統(tǒng)總體結(jié)
37、構(gòu)框圖</p><p> 2.2 單片機(jī)的選擇</p><p> 2.2.1 W78E365A40PL引腳說(shuō)明</p><p> 在能夠滿足鋰離子電池電量檢測(cè)系統(tǒng)相關(guān)功能的前提下,如何選擇一款合適的單片機(jī)是關(guān)鍵。本設(shè)計(jì)采用了W78E系列中的W78E365A40PL,其引腳如下圖所示</p><p> 圖2-2 W78E365A4
38、0PL引腳</p><p> 表2.1 W78E365A40PL引腳說(shuō)明</p><p><b> 續(xù)表2.1</b></p><p> 2.2.2 W78E365特性介紹</p><p><b> 電氣特性:</b></p><p> 表2.2 W78E365
39、電氣特性</p><p> 注釋?zhuān)菏褂眠^(guò)程中若長(zhǎng)時(shí)間超出最大額定值,將會(huì)對(duì)器件的使用壽命、使用性能、使用可靠性等多方面均造成嚴(yán)重?fù)p害。</p><p><b> ?。?)功能特性:</b></p><p> 全靜態(tài)設(shè)計(jì)的CMOS 8位微處理器</p><p> 64KB帶ISP功能的Flash EPROM</
40、p><p> 4KB輔助Flash EPROM用于存儲(chǔ)裝載程序</p><p> 4個(gè)8位雙向I/O口,一個(gè)附加4位I/O口</p><p><b> 3個(gè)16位定時(shí)器</b></p><p> 一個(gè)增強(qiáng)型全雙工串行口</p><p><b> 看門(mén)狗定時(shí)器</b>&l
41、t;/p><p> 8個(gè)中斷源,2級(jí)中斷能力</p><p> 電源管理帶空閑模式和掉電模式</p><p><b> 代碼保護(hù)</b></p><p> 2.3 電池電量檢測(cè)芯片BQ2040</p><p> 2.3.1 BQ2040引腳說(shuō)明</p><p>
42、 BQ2040引腳分布如下圖所示:</p><p> 圖2-3 BQ2040引腳分布</p><p> 表2.3 BQ2040引腳說(shuō)明</p><p><b> 續(xù)表2.3</b></p><p> 2.3.2 BQ2040的檢測(cè)原理</p><p> BQ2040的電量檢測(cè)原理我
43、們也需要做簡(jiǎn)單的了解,BQ2040內(nèi)置了溫度傳感器,它通過(guò)內(nèi)置的溫度傳感器和內(nèi)部計(jì)數(shù)器來(lái)估算被測(cè)鋰離子電池的放電程度,放電的同時(shí)還可以根據(jù)溫度需要進(jìn)行溫度補(bǔ)償,并且能夠通過(guò)鋰離子電池的放電周期,校準(zhǔn)鋰離子電池的實(shí)際容量,外接內(nèi)部寫(xiě)有初始化程序的EEPROM,負(fù)責(zé)控制電池的管理工作,串口和外部EEPROM可以用來(lái)編程。</p><p> 在日常生活中,使用鋰離子電池是一般都不需要進(jìn)行溫度保護(hù),因?yàn)槿粘G闆r下,鋰離
44、子電池工作所在環(huán)境溫度不會(huì)超過(guò)其工作溫度范圍之外,除非需要該鋰離子電池一直處于長(zhǎng)期的持續(xù)的工作狀態(tài),這時(shí)候應(yīng)該采取適當(dāng)?shù)臏囟缺Wo(hù)措施。但是BQ2040是一款流行與目前市場(chǎng)上相當(dāng)專(zhuān)業(yè)的電池電量檢測(cè)芯片,BQ2040對(duì)被測(cè)鋰離子電池進(jìn)行電量檢測(cè)的同時(shí),會(huì)檢測(cè)鋰離子電池的溫度情況,因?yàn)锽Q2040內(nèi)置了溫度傳感器,可以進(jìn)行過(guò)熱保護(hù)等控制措施,不需要外接熱敏電阻,如果檢測(cè)到溫度過(guò)低,這時(shí)候BQ2040還可以進(jìn)行溫度補(bǔ)償,不需要外接諧振器等相關(guān)器
45、件,進(jìn)一步減少了器件,降低了設(shè)計(jì)成本。</p><p> 2.4 LED驅(qū)動(dòng)控制芯片TM1629</p><p> 2.4.1 TM1629引腳說(shuō)明</p><p> 圖2-4 TM1629引腳分布</p><p> 表2.4 TM1629引腳說(shuō)明</p><p><b> 續(xù)表2.4<
46、;/b></p><p> 注意:在DIO端口輸出數(shù)據(jù)的時(shí)候,該引腳需要外接一個(gè)帶有一定阻值上拉電阻,推薦使用10K的上拉電阻,并且讀數(shù)時(shí)要選擇在時(shí)鐘的上升沿進(jìn)行,這樣才能保證讀數(shù)的穩(wěn)定性。讀數(shù)時(shí)若選擇在時(shí)鐘的下降沿,此時(shí)讀數(shù)并不穩(wěn)定,影響數(shù)據(jù)準(zhǔn)確性。</p><p> 圖2-5 芯片內(nèi)部電路</p><p> 2.4.2 TM1629特性介紹<
47、;/p><p> 采用功率CMOS工藝</p><p> 顯示模式16段×8位</p><p> 鍵掃描(8×4bit)</p><p><b> 輝度調(diào)節(jié)電路</b></p><p> 串行接口(CLK,STB,DIO)</p><p><
48、b> 內(nèi)置上電復(fù)位電路</b></p><p><b> 采用QFP44封裝</b></p><p> 2.5 數(shù)據(jù)傳輸存儲(chǔ)芯片24C64</p><p> 2.5.1 24C64概述</p><p> 24C64芯片屬于24C系列里面常見(jiàn)的一款,該系列的主要功能是數(shù)據(jù)的存儲(chǔ)及傳輸。既然是
49、數(shù)據(jù)傳輸存儲(chǔ)芯片,那么就會(huì)有每款芯片帶有多少存儲(chǔ)位的問(wèn)題,該系列的芯片擁有多少存儲(chǔ)位可以從24C后面的數(shù)字讀出來(lái)。如ATMEL的24C64,從后面的數(shù)字可以讀出其存儲(chǔ)位為64K。這個(gè)系列的芯片具有許多的優(yōu)勢(shì),例如能重復(fù)擦寫(xiě)1百萬(wàn)次以上,并且在其內(nèi)部已經(jīng)存儲(chǔ)成功的數(shù)據(jù)能夠長(zhǎng)期保持,時(shí)間達(dá)100年之久。24C64具有多種封裝形式可供選擇,現(xiàn)如今已被廣大電子行業(yè)從業(yè)者所接受,廣泛應(yīng)用于電力電子各個(gè)領(lǐng)域。</p><p>
50、; ATMEL的24C64是I2C 總線的EEPROM,I2C總線(Inter Integrated Circuit 內(nèi)部集成電路總線)是兩線式串行總線,只占用微處理器的2個(gè)I/O 引腳,僅需要時(shí)鐘和數(shù)據(jù)兩根線就可以進(jìn)行數(shù)據(jù)傳輸,令用戶使用起來(lái)十分便捷。</p><p> 2.5.2 24C64引腳說(shuō)明</p><p> 圖2-6 24C64引腳分布</p><
51、;p> 表2.5 24C64引腳說(shuō)明</p><p> 2.5.3 24C64特性介紹</p><p><b> 低功耗器件</b></p><p><b> 2線串行接口</b></p><p><b> 雙向數(shù)據(jù)傳輸協(xié)議</b></p>&
52、lt;p> 寫(xiě)保護(hù)引腳用于硬件數(shù)據(jù)保護(hù)</p><p><b> 高可靠性</b></p><p> 2.6 時(shí)鐘芯片DS1302</p><p> 2.6.1 DS1302概述</p><p> DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、
53、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。通過(guò)簡(jiǎn)單的串行接口,采用三線接口與CPU進(jìn)行同步通信,內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的靜態(tài)RAM。它具有主電源/后備電源雙電源引腳,VCC1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由VCC1或VCC2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),DS1302由VCC2供電;當(dāng)VCC2小于VCC1
54、時(shí),DS1302由VCC1供電。</p><p> DS1302功能:①日期時(shí)間信息;②每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整;③通過(guò)AM/PM指示決定采用24或12小時(shí)格式;④保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW。</p><p> 2.6.2 DS1302引腳說(shuō)明</p><p> 圖2-7 DS1302引腳分布</p><p> 表
55、2.6 DS1302引腳說(shuō)明</p><p> 第三章 硬件系統(tǒng)設(shè)計(jì)</p><p> 3.1 單片機(jī)與時(shí)鐘電路部分</p><p> 3.1.1 W78E365概述</p><p> W78E365是帶有在線編程(In System Program)功能的低功耗8位微控制器。在線編程功能使其具有開(kāi)發(fā)門(mén)檻較低的便捷性,只需要一
56、條ISP并行下載線,就可以把程序?qū)懭雴纹瑱C(jī)。</p><p> W78E365既含有主ROM,同時(shí)也帶有從ROM;既含有片內(nèi)RAM,同時(shí)也帶有從RAM。從ROM為Flash EPROM,這些存儲(chǔ)器的存儲(chǔ)容量分別為:64K字節(jié)主ROM;4K字節(jié)從Flash EPROM;256字節(jié)片內(nèi)RAM;1K字節(jié)從RAM。</p><p> W78E365具有高速和高可靠性,其I/O口功能強(qiáng)、驅(qū)動(dòng)能力
57、大,并且低功耗。同時(shí)具有程序保護(hù)性好等諸多有點(diǎn),當(dāng)用戶寫(xiě)入了程序后,單片機(jī)會(huì)對(duì)其進(jìn)行數(shù)據(jù)保護(hù),使用戶編寫(xiě)的程序不被讀出,防止用戶的成果被竊取。</p><p> 3.1.2 電路圖設(shè)計(jì)</p><p> 單片機(jī)與時(shí)鐘電路部分的電路圖如圖3-1所示,W78E365A40PL接口分別與DS1302時(shí)鐘電路部分、BQ2040鋰離子電池電量檢測(cè)部分及LED驅(qū)動(dòng)顯示部分相連,構(gòu)成一個(gè)完整的鋰離
58、子電池電量檢測(cè)系統(tǒng)。</p><p> DS1302與單片機(jī)的連接也僅需要3條線:CE引腳、SCLK串行時(shí)鐘引腳、I/O串行數(shù)據(jù)引腳,圖中VCC1為備用電源。外接32.768kHz晶振,為芯片提供計(jì)時(shí)脈沖。</p><p> 此處添加DS1302時(shí)鐘電路部分的目的是為了定時(shí)讀取測(cè)鋰離子電池電量時(shí)對(duì)應(yīng)的時(shí)間,然后存儲(chǔ)于24C64芯片中,以便在我們需要的時(shí)候,如系統(tǒng)出錯(cuò),需對(duì)其進(jìn)行檢修時(shí),
59、就可以把這些時(shí)間結(jié)果全部調(diào)用出來(lái),為排查故障提供條件。</p><p> 圖3-1 單片機(jī)與時(shí)鐘電路原理圖</p><p> 3.2 BQ2040部分</p><p> 3.2.1 BQ2040概述</p><p> 作為一款電池電量檢測(cè)芯片,BQ2040負(fù)責(zé)完成鋰離子電池的電量檢測(cè)模塊的功能,它先采集所需被測(cè)鋰離子電池的信號(hào)參
60、數(shù),然后按照原先已經(jīng)設(shè)定好的算法檢測(cè)計(jì)算出被測(cè)鋰離子電池的電量,通過(guò)I2C總線與單片機(jī)部分進(jìn)行數(shù)據(jù)交換,最終通過(guò)LED驅(qū)動(dòng)顯示部分?jǐn)?shù)碼輸出顯示鋰離子電池的電量信息給用戶。電量檢測(cè)結(jié)果用LED數(shù)碼輸出顯示,從而讓我們及時(shí)了解電量信息,完全掌握鋰離子電池的用電狀態(tài),提高利用率。</p><p> 本系統(tǒng)電量檢測(cè)部分采用電池電量檢測(cè)芯片BQ2040,除了支持對(duì)鋰離子電池的高精度電量檢測(cè),還滿足其他多種電池的電量檢測(cè)工
61、作,比如能夠很好的檢測(cè)鎳鎘電池、鎳氫電池的電量。</p><p> 3.2.2 電路圖設(shè)計(jì)</p><p> 圖3-2 BQ2040電路圖</p><p> 3.3 TM1629驅(qū)動(dòng)控制LED顯示部分</p><p> 3.3.1 TM1629概述</p><p> TM1629是一款專(zhuān)業(yè)LED驅(qū)動(dòng)控
62、制的芯片,支持驅(qū)動(dòng)的點(diǎn)數(shù)較多,其內(nèi)部集成了串行接口、RC振蕩器、鍵盤(pán)掃描存儲(chǔ)單元、命令譯碼器、顯示存儲(chǔ)器、輝度調(diào)節(jié)器、斷鎖存器、段驅(qū)動(dòng)器等部分,已經(jīng)被廣泛應(yīng)用于各種驅(qū)動(dòng)電路中,特別是專(zhuān)用于驅(qū)動(dòng)控制LED數(shù)碼顯示輸出。</p><p> 3.3.2 LED數(shù)碼管</p><p> 在實(shí)際的應(yīng)用中,如果需要顯示出的內(nèi)容只有數(shù)字和字母,則LED數(shù)碼管是不錯(cuò)的選擇,LED數(shù)碼管分為共陰極與共
63、陽(yáng)極兩種,如圖3-3所示。LED數(shù)碼管具有成本低廉、顯示清晰的優(yōu)點(diǎn)。綜上,本文選擇LED數(shù)碼管作為輸出顯示部分。輸出顯示模塊將系統(tǒng)檢測(cè)出的鋰離子電池剩余電量數(shù)碼顯示出來(lái),通過(guò)兩個(gè)數(shù)碼管就可以顯示出剩余電量的百分比。這樣我們就可以對(duì)當(dāng)前鋰離子電池的電量信息有一個(gè)更加直觀的了解。</p><p> 圖3-3 LED數(shù)碼管共陽(yáng)極和共陰極示圖</p><p> 3.3.3 電路圖設(shè)計(jì)<
64、;/p><p> 圖3-4 TM1629電路圖</p><p> 第四章 軟件系統(tǒng)設(shè)計(jì)</p><p> 軟件設(shè)計(jì)包括主程序和中斷服務(wù)程序。主程序完成單片機(jī)的初始化,以及等待中斷,中斷跳轉(zhuǎn)等;中斷服務(wù)程序包括上電中斷服務(wù)程序、定時(shí)器/計(jì)數(shù)器中斷服務(wù)程序等。</p><p> 4.1 程序設(shè)計(jì)流程</p><p&g
65、t; 4.1.1 初始化</p><p> 初始化程序流程圖如圖4-1所示:</p><p> 圖4-1 初始化程序流程圖</p><p> 初始化程序的功能就是初始化各個(gè)端口,使其各部件完成先前的準(zhǔn)備工作。設(shè)置好各個(gè)端口的功能,比如哪些端口設(shè)置為中斷的輸入口,哪些設(shè)置為外部模塊。設(shè)置完成以后就可以打開(kāi)各個(gè)中斷使能,使系統(tǒng)響應(yīng)相對(duì)應(yīng)的中斷跳轉(zhuǎn)程序。<
66、;/p><p> 4.1.2 主程序流程圖</p><p> 圖4-2 主程序流程圖</p><p> 主程序完成初始化后,便等待定時(shí)器中斷狀態(tài)或外部中斷的到來(lái),然后完成鋰電池電壓、電流和溫度值的信號(hào)采集,最后完成鋰離子電池電量的計(jì)算,并在LED輸出顯示屏上顯示出來(lái)。</p><p> A/D轉(zhuǎn)換與中斷服務(wù)</p>&l
67、t;p> 圖4-3 A/D轉(zhuǎn)換與中斷服務(wù)流程圖</p><p> 我們可以通過(guò)讀時(shí)鐘信息得到每一次鋰離子電池電量檢測(cè)時(shí)的時(shí)間,當(dāng)然還有另外一個(gè)重要作用,如果知道了每次電量檢測(cè)的結(jié)果及相對(duì)應(yīng)的時(shí)間,就能幫助我們有效地監(jiān)測(cè)該鋰離子電池電量檢測(cè)系統(tǒng)的工作情況是否正常,方便我們排查故障原因,及時(shí)對(duì)該系統(tǒng)進(jìn)行維護(hù)和檢修。</p><p> 參考子程序(以每50ms中斷一次舉例):<
68、;/p><p> void time0(void) interrupt 1 using 2</p><p><b> {</b></p><p><b> TH0=0x3c;</b></p><p><b> TL0=0xb0;</b></p><p&g
69、t; TIME_count++;</p><p> if(TIME_count==21)</p><p><b> {</b></p><p> TIME_count = 0;</p><p> TIME_seconds++;// 秒寄存器加1</p><p><b> }
70、</b></p><p><b> }</b></p><p> 4.2 BQ2040總線時(shí)序</p><p> BQ2040采用電源系統(tǒng)管理Veil.0(SMBus)協(xié)議,支持智能電池?cái)?shù)據(jù)管理命令(SBData)和智能電池充電控制(SBData)功能,通過(guò)串行接口可以檢測(cè)鋰離子電池的充電狀態(tài)、剩余電量、放電剩余時(shí)間、電池材
71、料等信息。</p><p> SMBus是System Management Bus的縮寫(xiě),譯為系統(tǒng)管理總線,SMBus是一種二線制串行總線,它大部分基于I2C(Inter-Integrated Circuit)總線規(guī)范。I2C兩線(串行數(shù)據(jù)SDA和串行時(shí)鐘SCL線)式串行總線,用于連接微控制器及其外圍設(shè)備,是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。I2C是同步通信的一種特殊形式,具有接口線少,控制方式簡(jiǎn)單,
72、器件封裝形式小,通信速率較高等優(yōu)點(diǎn)。和I2C一樣,SMBus不需增加額外引腳,但是工作頻率只能在10kHz到最高100kHz范圍內(nèi),且專(zhuān)門(mén)面向智能電池管理應(yīng)用。SMBus為系統(tǒng)電源管理等任務(wù)提供了一條控制總線,使用SMBus的系統(tǒng),設(shè)備之間發(fā)送和接收消息都是通過(guò)SMBus,而不是使用單獨(dú)的控制線,這樣可以節(jié)省設(shè)備的管腳數(shù)。</p><p> SMBus最初的目的是為智能電池、充電電池和與其他系統(tǒng)通信的微控制器之
73、間的通信鏈路而定義的,如今也被用來(lái)連接各種設(shè)備,包括電源相關(guān)設(shè)備,系統(tǒng)傳感器,EEPROM通訊設(shè)備等等,但SMBus最適用于筆記本電腦上,檢測(cè)各元件狀態(tài)并更新硬件設(shè)置。</p><p> 圖4-4 BQ2040總線時(shí)序</p><p> 表4.1 時(shí)序特性</p><p><b> 第五章 系統(tǒng)測(cè)試</b></p>&
74、lt;p> 硬件設(shè)計(jì)完成將待設(shè)計(jì)的系統(tǒng)分割成各個(gè)功能模塊,然后組合成一個(gè)合理的可行性方案的任務(wù),用Protel等相關(guān)軟件完成硬件原理圖的設(shè)計(jì)后,制成PCB板。軟件設(shè)計(jì)則負(fù)責(zé)根據(jù)系統(tǒng)相關(guān)的功能要求,進(jìn)行模塊的編程等,完成硬件設(shè)計(jì)后,我們可以通過(guò)Keil4.0等類(lèi)似軟件對(duì)單片機(jī)燒入程序,最后便可進(jìn)行鋰離子電池電量檢測(cè)系統(tǒng)的檢測(cè)試驗(yàn),定時(shí)記錄相關(guān)數(shù)據(jù),對(duì)鋰離子電池電量檢測(cè)結(jié)果的準(zhǔn)確性進(jìn)行測(cè)試。</p><p>
75、 系統(tǒng)測(cè)試的思路可以針對(duì)BQ2040內(nèi)的三個(gè)重要寄存器:Full Charge Capacity(FCC)、Remaining Capacity(RM)、Discharge Count Register(DCR)。通過(guò)每隔一定時(shí)間讀取這三個(gè)寄存器的數(shù)據(jù),這樣記錄多組數(shù)據(jù)后,可以通過(guò)以下幾個(gè)主要關(guān)系進(jìn)行驗(yàn)證分析系統(tǒng)的準(zhǔn)確性及可靠性:</p><p><b> RM ≤ FCC。</b>&l
76、t;/p><p> 放電的逆過(guò)程即充電,充電期間,若RM數(shù)值停止遞增,則RM=FCC,這時(shí)我們讀取的RM應(yīng)近似等于FCC,此時(shí)DCR=0。若要鋰離子電池充分充電,我們還可以根據(jù)BQ2040進(jìn)行充電控制,向RM寫(xiě)入一個(gè)用戶自定義的值。</p><p> DCR隨著RM的遞減逐漸增大,直到RM=0,鋰離子電池放電和自放電都會(huì)使DCR增大,但當(dāng)RM=0后,只有放電才使DCR增大。</p&g
77、t;<p><b> 結(jié) 論</b></p><p> 本文針對(duì)基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng)的設(shè)計(jì)進(jìn)行研究,對(duì)該系統(tǒng)的總體設(shè)計(jì)等方面進(jìn)行了詳細(xì)敘述,硬件系統(tǒng)設(shè)計(jì)主要包括模擬量信號(hào)采集部分,電量檢測(cè)部分,中央處理控制部分,LED驅(qū)動(dòng)輸出顯示等各個(gè)部分的設(shè)計(jì),檢測(cè)結(jié)果采用了直觀的數(shù)碼顯示,可直接顯示鋰離子電池的剩余電量信息,避免了人工計(jì)算。另外本文還完成了軟件系統(tǒng)的設(shè)計(jì)
78、,用C語(yǔ)言進(jìn)行編程,實(shí)現(xiàn)數(shù)據(jù)的采集、轉(zhuǎn)換、存儲(chǔ)和傳輸,進(jìn)一步證實(shí)了本設(shè)計(jì)的有效性和可行性,同時(shí)本文給出了硬件原理圖、軟件流程圖及源程序設(shè)計(jì)。</p><p> 在設(shè)計(jì)過(guò)程當(dāng)中,充分考慮了鋰離子電池的性能特點(diǎn),本系統(tǒng)的電路設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單,基于W78E365單片機(jī),用BQ2040進(jìn)行鋰離子電池電量檢測(cè),以TM1629驅(qū)動(dòng)控制LED數(shù)碼輸出顯示鋰離子電池的剩余電量,用較少的外部元件實(shí)現(xiàn)高精度測(cè)量,降低了開(kāi)發(fā)成本,提高了
79、鋰離子電池電量檢測(cè)效率。經(jīng)過(guò)反復(fù)多次的設(shè)計(jì)及修改,該系統(tǒng)的各項(xiàng)指標(biāo)均達(dá)到了設(shè)計(jì)要求,具有很高的實(shí)用價(jià)值。</p><p> 由于畢業(yè)設(shè)計(jì)的時(shí)間限制,希望今后在以下方面進(jìn)行更深一層的研究:</p><p> 硬件方面:硬件抗干擾能力上還需得到進(jìn)一步的提高。</p><p> 軟件方面:增加鋰離子電池電量檢測(cè)更多相關(guān)功能。</p><p>
80、<b> 參考文獻(xiàn)</b></p><p> [1] 趙靈智,汝強(qiáng).鋰離子電池材料的研究現(xiàn)狀[Z],2009:3~4.</p><p> [2] 李申飛,易菊蘭.電池電量精確測(cè)量方法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(17):244~224.</p><p> [3] 郭炳焜,鋰離子電池.長(zhǎng)沙:中南大學(xué)出版社,2002
81、.</p><p> [4] 王海明,鄭繩楦,劉興順.鋰離子電池的特點(diǎn)及應(yīng)用[Z],2004:132~134.</p><p> [5] 張俊謨.單片機(jī)中級(jí)教程[M].北京:北京航空航天大學(xué)出版社,2006.3.</p><p> [6] 張友德,趙志英,涂時(shí)亮.單片機(jī)微型機(jī)原理、應(yīng)用與實(shí)驗(yàn).上海:復(fù)旦大學(xué)出版社,2004.</p><p&
82、gt; [7] 張培根,孫占輝,張欣,張村峰.MCS-51單片機(jī)原理與應(yīng)用.北京:清華大學(xué)出版社.</p><p> [8] 戴仙金.51單片機(jī)及其C語(yǔ)言程序開(kāi)發(fā)實(shí)例[M]北京:清華大學(xué)出版社,2008.</p><p> [9] 朱清慧等.Proteus教程—電子線路設(shè)計(jì)、制版與仿真[M].北京:清華大學(xué)出版社,2008.</p><p> [10] bq
83、2040 Gas Gauge IC With SMBus Interface, Texas Instruments Incorporated,2005.</p><p> [11] Anbuky A.H,Pascoe P.E,VRLA.battery state-of-charge estimation in telecommunication power systems[J].Industrial Elect
84、ronics, IEEE Transactions on Volume 47, Issue 3, June 2000 Page(s):565~573.</p><p><b> 致 謝</b></p><p> 畢業(yè)設(shè)計(jì)象征著大學(xué)生涯的結(jié)束,這也是一個(gè)至關(guān)重要的環(huán)節(jié),它能有效地檢驗(yàn)我們的學(xué)習(xí)成果,也是我們理論聯(lián)系實(shí)際的一次機(jī)會(huì)。在這幾個(gè)月的時(shí)間里,饒繁星老師嚴(yán)謹(jǐn)
85、的治學(xué)態(tài)度和熱忱的工作作風(fēng)使我十分佩服,其淵博的專(zhuān)業(yè)知識(shí),嚴(yán)以律己、寬以待人的崇高風(fēng)范,樸實(shí)無(wú)華、平易近人的人格魅力對(duì)我影響深遠(yuǎn)。雖然在畢業(yè)設(shè)計(jì)的整個(gè)過(guò)程中我遇到過(guò)很多的問(wèn)題,但他的指導(dǎo)讓我受益匪淺,和我同一組的同學(xué)也給我了我極大的幫助,加上自己不斷的努力摸索,最終完成了畢業(yè)設(shè)計(jì)。在此對(duì)幫助我的老師和同學(xué)們表示深深的感謝。</p><p> 經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),我在理論知識(shí)、研究能力及外語(yǔ)水平等各方面的能力都有了
86、很大的提升,并且還提高了我的動(dòng)手能力與設(shè)計(jì)能力,同時(shí)還學(xué)會(huì)了使用Protel、KeilC、Autocad等軟件的常用操作。這些都是我在平時(shí)學(xué)習(xí)和生活中所得不到的鍛煉,更是我人生中寶貴的經(jīng)歷。</p><p> 大學(xué)四年,學(xué)到的不僅是書(shū)本上的知識(shí),對(duì)我來(lái)說(shuō)最重要的是學(xué)會(huì)如何做人,這才是這幾年得到的最寶貴,最值得珍惜的財(cái)富,相信在以后的人生道路上,會(huì)有我的一番作為。感謝母校四年來(lái)對(duì)我的培養(yǎng)與教導(dǎo)。</p>
87、;<p> 最后,我在此感謝在百忙之中為我的畢業(yè)設(shè)計(jì)評(píng)閱并提出寶貴意見(jiàn)的專(zhuān)家們!</p><p> 由于水平有限,本文難免有遺漏和錯(cuò)誤之處,懇請(qǐng)各位老師批評(píng)指正,謝謝!</p><p><b> 附 錄</b></p><p> #include <AT89X51.H></p><p>
88、; #include <absacc.h></p><p> #include <intrins.h></p><p> sbit SMBC=P1^6;//sbit SMBC=P1^4; //bq2040中SMbus的時(shí)鐘端</p><p> sbit SMBD=P1^7;//sbit SMBD=P1^5;
89、 //bq2040中SMbus的數(shù)據(jù)端</p><p> unsigned char bq2040_Command_RC=0x0f; //讀剩余電量的指令</p><p> signed char bq2040_Command_C=0x0a; //讀電流的指令</p><p> unsigned char bq2040_Comm
90、and_BS=0x16; //讀電池狀態(tài)</p><p> unsigned char ReceiveData_L, ReceiveData_H, Current_H_7, </p><p> BatteryStatus_L_6, BatteryStatus_L_5;</p><p> //從BQ2040接收數(shù)據(jù)的低位,高位,電流正負(fù)位(正表示充電,負(fù)
91、表示放電),電池狀態(tài)充放電判斷(0表示充電,0x40表示放電),電池狀態(tài)滿充判斷(0表示未充滿,0x20表示充滿)</p><p> unsigned char ack; //用于判斷接收確認(rèn)是否超時(shí),超時(shí)為1,未超時(shí)為0</p><p> void Delay(void) //延時(shí)子程序</p><p><b> {</b>
92、;</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p&g
93、t;<b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_()
94、;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p>
95、;<p><b> _nop_();</b></p><p><b> }</b></p><p> //以下函數(shù)詳見(jiàn)SMbus原理</p><p> void Star(void) //開(kāi)始子程序 當(dāng)SMBC為高電平時(shí),SMBD上出現(xiàn)一個(gè)下降沿。該條件啟動(dòng)一次傳輸過(guò)程</p>
96、<p><b> {</b></p><p><b> SMBC=0;</b></p><p><b> Delay();</b></p><p><b> SMBD=1;</b></p><p><b> Delay()
97、;</b></p><p><b> SMBC=1;</b></p><p><b> Delay();</b></p><p><b> SMBD=0;</b></p><p><b> Delay();</b></p>
98、<p><b> }</b></p><p> void Stop(void) //停止子程序 當(dāng)SMBC為高電平時(shí),SMBD上出現(xiàn)一個(gè)上升沿。該條件停止一次傳輸過(guò)程</p><p><b> {</b></p><p><b> SMBC=0;</b></p&g
99、t;<p><b> Delay();</b></p><p><b> SMBD=0;</b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><p><b>
100、 Delay();</b></p><p><b> SMBD=1;</b></p><p><b> Delay();</b></p><p><b> }</b></p><p> void Ackw(void) //ACKNOWLEDGE寫(xiě)子程序
101、 SMBC為高時(shí),采樣到SMBD為低電平</p><p><b> {</b></p><p> unsigned char a=0;</p><p><b> ack=0;</b></p><p><b> SMBC=0;</b></p><
102、p><b> Delay();</b></p><p><b> SMBD=1;</b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><p><b> Delay(
103、);</b></p><p><b> }</b></p><p> void Ackr(void) //ACKNOWLEDGE讀子程序 SMBC為高時(shí),采樣到SMBD為低電平</p><p><b> {</b></p><p><b> SMBC=0;<
104、;/b></p><p><b> Delay();</b></p><p><b> SMBD=0;</b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><
105、;p><b> Delay();</b></p><p><b> }</b></p><p> void Nack(void) //NOT ACKNOWLEDGE子程序 SMBC為高電平時(shí),采樣到SMBD為高電平</p><p><b> {</b></p>&l
106、t;p><b> SMBC=0;</b></p><p><b> Delay();</b></p><p><b> SMBD=1;</b></p><p><b> Delay();</b></p><p><b> SMBC
107、=1;</b></p><p><b> Delay();</b></p><p><b> }</b></p><p> void Send(unsigned char b) //發(fā)送子程序 將b按從最高位到最低位的順序,逐位的發(fā)送給bq2040</p><p>&l
108、t;b> {</b></p><p> unsigned char i,x,y,z;</p><p><b> z=0x80;</b></p><p> for(i=1;i<9;i++)</p><p><b> {</b></p><p>
109、<b> x=b&z;</b></p><p><b> if(x==0)</b></p><p><b> y=0;</b></p><p><b> else</b></p><p><b> y=1;</b>&
110、lt;/p><p><b> SMBC=0;</b></p><p><b> Delay();</b></p><p><b> SMBD=y;</b></p><p><b> Delay();</b></p><p>&l
111、t;b> SMBC=1;</b></p><p><b> Delay();</b></p><p><b> z>>=1;</b></p><p><b> }</b></p><p><b> }</b><
112、/p><p> unsigned char Receive(void) //接收子程序 將bq2040中的數(shù)據(jù)逐位的讀出</p><p><b> {</b></p><p> unsigned char i,g=0x00;</p><p> for(i=1;i<9;i++)</p>&
113、lt;p><b> {</b></p><p><b> SMBC=0;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> SMBD=1;&l
114、t;/b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><p><b> Delay();</b></p><p><b> g<<=1;</b></p>
115、;<p><b> if(SMBD)</b></p><p><b> g++;</b></p><p><b> Delay();</b></p><p><b> }</b></p><p><b> return g
116、;</b></p><p><b> }</b></p><p> void Read(unsigned char Command) //讀剩余電量子程序</p><p><b> {</b></p><p> unsigned int a; </p><
117、p> Star(); //開(kāi)始</p><p><b> a=0x16;</b></p><p> Send(a); //發(fā)送器件地址0x16</p><p> Ackw(); //發(fā)送確認(rèn)</p><p> if(ack) //未確認(rèn)則重新發(fā)送</p>&l
118、t;p><b> return;</b></p><p> Send(Command); //發(fā)送讀剩余電量指令</p><p> Ackw(); //發(fā)送確認(rèn)</p><p> if(ack) //未確認(rèn)則重新發(fā)送</p><p><b> return;</b>
119、</p><p><b> Star();</b></p><p> a=0x17; //發(fā)送器件地址0x17</p><p><b> Send(a);</b></p><p> Ackw(); //發(fā)送確認(rèn)</p><p> if(ack) /
120、/未確認(rèn)則重新發(fā)送</p><p><b> return;</b></p><p> ReceiveData_L=Receive(); //接收剩余電量低8位數(shù)據(jù)</p><p> Ackr(); //接收確認(rèn)</p><p> ReceiveData_H=Receive(); //接收剩余電量高8位
121、數(shù)據(jù)</p><p> Nack(); //非確認(rèn)</p><p> Stop(); //結(jié)束</p><p><b> }</b></p><p> void Delay2(void) //4s顯示延時(shí)</p><p><b> {</b><
122、/p><p> unsigned char i,j,k;</p><p> for(i=0;i<255;i++)</p><p> for(j=0;j<255;j++)</p><p> for(k=0;k<20;k++);</p><p><b> }</b></p
123、><p><b> main()</b></p><p><b> { </b></p><p> unsigned char RemainingCapacity_H,RemainingCapacity_L,Current_H,BatteryStatus_L;</p><p> TMOD=0x2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文--基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng)設(shè)計(jì)
- 開(kāi)題報(bào)告--基于單片機(jī)的鋰離子電池電量檢測(cè)系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的蓄電池電量檢測(cè)系統(tǒng)課程設(shè)計(jì)
- 基于avr單片機(jī)的鋰離子電池組充電電路設(shè)計(jì)
- 鋰電池電量檢測(cè)系統(tǒng)設(shè)計(jì).pdf
- 基于電池電量檢測(cè)的低功耗設(shè)計(jì).pdf
- 鋰離子電池,磷酸鐵鋰畢業(yè)論文
- 畢業(yè)論文---基于單片機(jī)的煙霧檢測(cè)系統(tǒng)
- 基于單片機(jī)的室內(nèi)甲醛檢測(cè)系統(tǒng)設(shè)計(jì)——畢業(yè)論文
- 基于單片機(jī)的電流智能檢測(cè)系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的居室環(huán)境檢測(cè)系統(tǒng)【畢業(yè)論文】
- 基于單片機(jī)的門(mén)控系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 鋰電池電量檢測(cè)原理
- 畢業(yè)論文——基于單片機(jī)的脈搏信號(hào)檢測(cè)
- 基于單片機(jī)的酒精氣體檢測(cè)系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 基于51單片機(jī)的無(wú)線溫度檢測(cè)系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的酒精氣體檢測(cè)系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 單片機(jī)畢業(yè)論文--基于單片機(jī)的自動(dòng)售貨機(jī)的系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)倒車(chē)?yán)走_(dá)系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
評(píng)論
0/150
提交評(píng)論