智能充電器畢業(yè)論文_第1頁
智能充電器畢業(yè)論文_第2頁
智能充電器畢業(yè)論文_第3頁
智能充電器畢業(yè)論文_第4頁
智能充電器畢業(yè)論文_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、47智能充電器畢業(yè)論文題 目: 智能充電器 學生姓名: 邱咪咪 學生學號: 0908030227 系 (院): 電氣信息工程學院 專 業(yè): 電子信息工程 屆 別: 2013屆 指導教師: 張大雷 完成時間: 2013年5月 目錄摘 要(3)關鍵詞(3)Abstract(3)Key words(4)前言(4)緒論(4)1.1 課題研究的背景(4)1.1.1 課題研究的意義(5)1.2 課題研究的主要工作(6)2充電技術(6)2.1 2種電池的充電特性(6)2.1.1鎳氫/鎳鎘電池充電模式(6)2.1.2 鋰離子電池的特點及充電方式(6)2.2 智能充電器(7)2.3 設計的功能模塊(8)2.3.

2、1 單片機模塊(8)2.3.2充電過程控制模塊(8)2.3.3充電電壓提供模塊(9)2.3.4 光耦模塊(9)2.3.5 電壓測試模塊(10)3 設計方案充電過程(11)3.1 預充(11)3.2 快充(11)3.3 滿充(11)3.4 斷電(11)3.5 報警(12)4 鋰離子電池充電器硬件設計(12)4.1 單片機電路(12)4.1.1 AT89S52(13)4.2 充電部分(15)4.4 光耦控制部分(18)5 鋰離子電池充電器軟件設計(19)5.1 程序功能(19)5.2 程序流程圖(19)5.3 程序代碼及說明(21)附錄(46)致謝(47)參考文獻(48)智能充電器的設計學生:邱咪

3、咪指導教師:張大雷淮南師范學院 電氣信息工程學院摘 要:隨著移動電話用戶數(shù)量的不斷增長,相應的電池和電池充電器需求也將會有較大的增加。電子技術的快速發(fā)展使得人們對高性能、小尺寸、重量輕的智能電池充電器的需求也越來越大。目前,使用較多的是鎳鎘電池(Nicd)、鎳氫電池(NiMH)和鋰離子電池。由于不同類型電池的充電特性不同,通常對不同類型,甚至不同容量等級和電壓的電池使用不同充電器,實際使用中會帶來諸多不便。于是設計一種以AT89S52單片機為核心的智能充電器,較好地解決了上述電池的充電問題。在設計上,選擇了簡潔、高效的系統(tǒng)硬件,包括單片機電路、充電控制電路、電壓轉換及光耦隔離電路。實踐證明,設

4、計的充電器功耗低、成本低、系統(tǒng)工作穩(wěn)定可靠,智能化程度高,具有推廣價值。 關鍵詞:智能充電器;AT89S52單片機;硬件構成Intelligent Battery ChargerStudent:Qiu MimiTeacher:Zhang DaleiElectronics and communication engineering department of Huainan normal universityAbstract: In the growth number of mobile phone users, there will be a larger increase of the co

5、rresponding battery and battery charger requirements. The rapid development of electronic technology makes the high performance, small size, light weight of the intelligent battery charger requirements more and more big. At present, the nickel cadmium (Nicd), nickel metal hydride batteries (NiMH) ba

6、tteries and li-ion batteries are widely used. Because the different types of battery charging characteristic are different, usually to different types, even different capacity level and the voltage of the battery charger, but this has many inconveniences in practical use. So I design a AT89S52 singl

7、e-chip microcomputer as the core of intelligent charger, in order to solve the problem of the battery charge. In design, I chose the hardware which is simple and efficient system, including charging circuit, control circuit, voltage conversion and optical coupling isolation circui. Practice proves t

8、hat the design of the charger is low power consumption, low cost, the system work stable,reliable and high intelligent degree.It is a promoted value design method.Key words:intelligent battery charger;AT89S52 single-chip microcomputer;hardware structure前言現(xiàn)在社會信息化的不斷加快,人們對自己使用的各種家電設備、儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制

9、設備要求很高。尤其隨著手機在世界范圍內的普及,手機電池充電器的使用越來越廣泛的時候人們對高性能、小尺寸、重量輕的智能電池充電器的需求也越來越大,所以智能充電器有它的巨大發(fā)展空間。所謂智能充電器是單片機參與處理和控制的充電器,能根據(jù)用戶的需要自主選擇充電方式,并且在充電過程中能對被充電電池進行保護從而防止過電壓、電流和溫度過高的一種智能化充電器。該智能充電器具有檢測鋰離子電池的狀態(tài);自動切換充電模式以滿足充電電池的充電需要;充電器短路保護功能;充電狀態(tài)顯示的功能。在生活中更好的維護了充電電池,延長了它的使用壽命。因此,研究智能充電器的設計及推廣其應用,有著非?,F(xiàn)實的意義。·單片機模塊:

10、實現(xiàn)充電器的智能化控制,比如自動斷電、充電完成報警提示等。 ·充電過程控制模塊:采用專用的電池充電芯片實現(xiàn)對充電過程的控制。 ·充電電壓提供模塊:采用電壓轉換芯片將外部+12V電壓轉換為需要的+5V電壓。該電壓在送給充電控制模塊之前還需經(jīng)過一個光耦模塊。·C52程序:單片機控制電池充電芯片實現(xiàn)充電過程的自動化,并根據(jù)充電的狀態(tài)給出有關的輸出指示。 本論文從鋰離子電池技術特性、充電技術、充電器電路結構、充電器典型電路和電池保護等方面,多角度地闡述了充電技術發(fā)展和應用的智能化。緒論1.1 課題研究的背景社會信息化進程的加快對電力、信息系統(tǒng)的安全穩(wěn)定運行提出了

11、更高的要求。而各種用電設備都離不開可靠的電源,如果在工作中間電源中斷,人們的生產(chǎn)和生活都將受到不可估量的經(jīng)濟損失。對于由交流供電的用電設備,為了避免出現(xiàn)上述不利情況,所以要設計一種電源系統(tǒng),它能不間斷地為人們的生產(chǎn)和生活提供以安全和操作為目的可靠的備用電源。為此,以安全和操作為目的的備用電源設備上都使用可充電池。電池是一種化學電源,是通過能量轉換而獲得電能的器件。二次電池是可多次反復使用的電池,它又稱為可充電池或蓄電池。二次電池的工作原理:當對二次電池充電時,電能轉變?yōu)榛瘜W能,實現(xiàn)向負荷供電,伴隨吸熱過程。普通充電器多采用大電流的快速充電法,在電池充滿后如果不及時結束會使電池發(fā)燙,過度的充電也

12、會嚴重損害電池的壽命。一些低成本的充電器采用電壓比較法,為了防止過充,一般充電到90%就停止大電流快充,接著采用小電流涓流補充充電,這樣就使充電時間加長了。好的充電器不但能在短時間內將電量充足,而且對鋰電池起到一定維護作用,修復由于記憶造成的記憶效應。于是設計出的智能充電器是采用單片機控制的,可以檢測出電池充電飽和時發(fā)出的電壓變化信號,比較精確的停止充電工作,通過單片機對充電芯片的控制實現(xiàn)充電過程的智能化,以縮短充電時間,延長電池使用壽命。智能充電器還增加了充電電壓的顯示,讓我們能看到電池的預充、快充、滿充充電階段,從而加強對電池的維護。1.1.1 課題研究的意義此課題研究的對象主要是鋰離子電

13、池的充電原理和充電控制。鋰離子電池的充電設備需要解決的問題有:·通過單片機的控制,簡化外圍電路的復雜性,增加自動化管理設置,減輕充電過程的勞動強度和勞動時間,從而使充電器具有更大的靈活性、更高的可靠性和成本低。·改善充電控制不合理而造成過充、欠充等問題,提高電池的使用性能和使用壽命。·可以進行充電前處理,包括電池充電狀態(tài)的鑒定和預處理。·需解決充電時間長、效率低等問題。研究課題的意義:·掌握鋰離子電池的充放電方式和特點,從中找到最佳充電方式及電池管理途徑。·完善充電設備的適時處理功能和自診斷功能。·實現(xiàn)充電器具備強大的功能擴

14、展性,為智能充電器的功能升級提供平臺。1.2 課題研究的主要工作本課題主要研究鋰離子電池的充放電方法,在此基礎上進行硬件設計和軟件設計,并通過調試結果對充電控制方法測試驗證。為了完成智能充電器的設計,我需做如下工作:·了解鋰離子電池的特點和在應用中存在的主要問題從而分析實現(xiàn)電池的充放電方法和智能充電器的實現(xiàn)方法,從而選擇合適的充電電池芯片。·進行硬件電路的設計,繪制充電電路原理圖。·進行軟件設計,以C語言為開發(fā)工具,進行詳細設計和編寫程序代碼。·調試硬件和軟件電路,驗證整個設計。2充電技術2.1 2種電池的充電特性2.1.1鎳氫/鎳鎘電池充電模式這2種鎳

15、類電池具有相似的充電特性曲線,因而可以用一樣的充電算法。這2種電池的主要充電控制參數(shù)為-V和溫度對鎳氫鎳鎘電池由預充電到標準充電轉換的判據(jù)為:單節(jié)電池電壓水平0.61V;電池溫度-50oC電池飽和充電的判據(jù)為:電池電壓跌落或接近零增長 V= 615 mV節(jié);電池最高溫度max50;電池溫度上升率d/dt 1.0min。由于溫度的變化容易受環(huán)境影響,因而實際用于判別充電各階段的變量主要為V、max,其中對V的檢測需要有足夠的AD分辨率和較高的電流穩(wěn)定度-V的測量與A/D分辨率、充電電流的穩(wěn)定性與電池內阻之間有以下關系:當電池內阻等于50(接近飽和充電)時,充電電流=1200mA,電流漂移等于5%

16、,單節(jié)電池的最高充電電壓為1.58V,則此時電流漂移可能引起的電池電壓變化為3 mV。 2.1.2 鋰離子電池的特點及充電方式鋰離子電池的正極材料通常由鋰的活性化合物組成,常見的正極材料主要成分為LiCo02,負極則是特殊分子結構的碳。充電時,加在電池兩級的電勢迫使正極化合物釋出鋰離子,嵌入在負極分子排列呈片層結構的碳中。放電時,鋰離子則從片層結構的碳中析出,重新與正極的化合物結合。于是鋰離子的移動產(chǎn)生了電流。重量方面:鋰離子電池為3.6V,鋰離子電池的電壓是鎳氫、鎳鎘電池的3倍。但鋰離子電池因端電壓為3.6V,在輸出同電池的情況下,單個電池組合時數(shù)目可減少2/3從而使成型后的電池組重量和體積

17、都減小。自放電率:鎳鎘電池為15%30%,鎳氫電池為25%35%,鋰離子電池為2%5%。鎳氫電池的自放電率最大,而鋰離子電池的自放電率最小。記憶效率:鋰離子電池很少有鎳鎘電池的記憶效應,記憶效應的原理是結晶化,但在鋰電池中幾乎不會出現(xiàn)這種反應。鋰離子電池在幾次充電放電后容量仍然會下降,主要的原因從分子層里來看,正負極材料本身的變化,正負極上容納鋰離子的空穴結構會逐漸塌陷,堵塞;從化學角度來看,是正負極材料活性鈍化,出現(xiàn)副反應生成穩(wěn)定的其他化合物。在物理上還會出現(xiàn)正極材料逐漸剝落等情況,降低了電池中可以自由在充放電過程中移動的鋰離子數(shù)目。記憶效應一般認為是長期不正確的充電導致的,它可以使電池早衰

18、,使電池無法進行有效的充電,出現(xiàn)一充就滿、一放就完的現(xiàn)象。嚴格遵循“充足放光”的原則,即在充電前最好將電池內殘余的電量放光,充電時要一次充足,可防止電池出現(xiàn)記憶效應。對于由于記憶效應而引起容量下降的電池,可以通過一次充足再一次性放光的方法反復數(shù)次,大部分電池都可以得到修復。充電方式:過度充電和過度放電,將對鋰離子電池的正負極造成永久的損壞,從分子層面看,過度放電導致負極碳過度釋放出鋰離子而使得其片層結構出現(xiàn)塌陷,過度充電將把太多的鋰離子硬塞進負極碳結構里去,而使得其中一些鋰離子再也無法釋放出來。這就是鋰離子電池為什么通常配有充放電的控制電路的原因。鋰離子電池以恒流轉恒壓方式進行充電。采用1C充

19、電速率充電至4.1V時,充電器應立即轉入恒壓充電,充電電流逐漸減小;當電池充足電后,進入涓流充電過程。為避免過充電或過放電,鋰離子電池不僅在內部設有安全機構,充電器也必須采取安全保護措施,以監(jiān)測鋰離子電池的充放電狀態(tài)。2.2 智能充電器在人們日常工作和生活中,充電器的使用越來越廣泛。從隨身聽到數(shù)碼相機,從手機到筆記本電腦,幾乎所有用到電池的電器設備都需要用到充電器。充電器為人們的外出旅行和出差辦公提供了極大的方便。隨著手機在世界范圍內的普及使用,手機電池充電器的使用也越來越廣泛。所謂智能充電器是單片機參與處理和控制,能根據(jù)用戶的需要自主選擇充電方式,并且在充電過程中能對被充電電池進行保護從而防

20、止過電壓、電流和溫度過高的一種智能化充電器。本課題將通過一個典型實例介紹AT89S52單片機在實現(xiàn)手機電池充電器方面的應用。此次設計所要實現(xiàn)的充電器是一種智能充電器,它在單片機的控制下,具有預充、充電保護、自動斷電、電壓顯示和充電完成報警提示功能。2.3 設計的功能模塊2.3.1 單片機模塊智能的實現(xiàn)需要利用單片機控制,經(jīng)過分析后單片機芯片可以選擇Atmel公司的AT89S52,通過中斷控制光耦器件通電和斷電。2.3.2充電過程控制模塊鋰離子電池一般都具有管理芯片和充電控制芯片。其中管理芯片中有一系列的寄存器,用來存儲電容容量、溫度、ID、充電狀態(tài)、放電次數(shù)等數(shù)值。這些數(shù)值在使用中會逐漸變化。

21、充電控制芯片主要控制電池的充電過程。鋰離子電池的充電過程分為兩個階段,恒流快充階段(電池指示燈呈黃色時)和恒壓電流遞減階段(電池指示燈呈綠色閃爍)。恒流快充階段,電池電壓逐步升高到電池的標準電壓,隨后在控制芯片下轉入恒壓階段,電壓不再升高以確保不會過充現(xiàn)象,電流則隨著電池電量的上升逐步減弱到0,而最終完成充電。電量統(tǒng)計芯片通過記錄放電曲線(電壓、電流、時間)可以抽樣計算出電池的電量。而鋰離子電池在多次使用后,放電曲線是會改變的,如果芯片一直沒有機會再次讀出完整的一個放電曲線,其計算出來的電量也就是不準確的。所以我們需要深充放來校準電池的芯片。定時電容C和充電時間Tchg的關系式滿足:C=34.

22、33×Tchg 最大充電電流Imax和限流電阻Rset的關系式滿足:Imax1400/Rset 2.3.3充電電壓提供模塊由于一般家用電壓是+220V交流電壓,需要設計一個電壓轉換電路將+220V交流電壓轉換成+5V直流電壓。首先用變壓器將220V交流電壓轉換成7V交流電壓,經(jīng)過橋式整流變成直流電壓,再利用電壓轉換芯片LM7805將7V直流電轉換為5V直流電壓。2.3.4 光耦模塊為了在充滿電后能及時關斷充電電源,則需要引入一個光耦模塊芯片6N137。6N137光耦合器是一款用于單通道的高速光耦合器,其內部由一個850 nm波長AlGaAs LED和一個集成檢測器組成,其檢測器由一個

23、光敏二極管、高增益線性運放及一個肖特基鉗位的集電極開路的三極管組成。具有溫度、電流和電壓補償功能,高的輸入輸出隔離,LSTTL/TTL兼容,高速(典型為10MBd),5mA的極小輸入電流。工作參數(shù):·最大輸入電流,低電平:250uA ·最大輸入電流,高電平:15mA·最大允許低電平電壓(輸出高):0.8v ·最大允許高電平電壓:Vcc ·最大電源電壓、輸出:5.5V ·扇出(TTL負載):8個(最多) ·工作溫度范圍:-40°C to +85°C ·典型應用:高速數(shù)字開關,馬達控制系統(tǒng)和A/D轉

24、換等 6N137光耦合器的內部結構、管腳如下圖所示圖1 6N137光耦合器6N137光耦合器的電源管腳旁應有個0.1uF的去耦電容。在選擇電容類型時,應盡量選擇高頻特性好的電容器,如陶瓷電容或鉭電容,并且盡量靠近6N137光耦合器的電源管腳;另外,輸入使能管腳在芯片內部已有上拉電阻,無需再外接上拉電阻。6N137光耦合器的引腳:第6腳Vo輸出電路屬于集電極開路電路,必須上拉一個電阻;第2腳和第3腳之間是一個LED,必須串接一個限流電阻。6N137光耦合器的真值表如下:6N137光耦合器的真值輸入“+”ENOUTPUT輸入“+”ENOUTPUT1100010111NC01010NC1表1 6N1

25、37光耦合器的真值2.3.5 電壓測試模塊該部分采用AD轉換來實現(xiàn)充電電壓的現(xiàn)實。采用中斷觸發(fā),基本原理是將一段時間內的輸入模擬電壓 Ui 和參考電壓UR 通過兩次積分,變換成與輸入電壓平均值成正比的時間間隔,再變換成正比于輸入模擬信號的數(shù)字量。把模擬信號轉換成數(shù)字信號,轉換原理為:其中,n為準換后的二進制位數(shù),dn-1d0為具體二進制位。UR為參考電壓,UA為顯示電壓。3 設計方案充電過程3.1 預充在安裝好電池之后,接通輸入直流電源,當充電其檢測到電池時將定時器復位,從而進入預充過程,在此期間充電器以快充電流的10給電池充電,使電壓、溫度恢復到正常狀體,預充電時間由外接電容C9確定,如果在

26、預充時間內電池電壓達到2.5V,且電池溫度正常,則進入快充過程;如果超過預充時間后,電池電壓低于2.5V,則認為電池不可充電,充電器顯示電池故障,由單片機發(fā)出故障指令,LED指示燈閃爍。3.2 快充快充就是以恒定電流對電池充電,恒流充電時,電池的電壓緩慢上升,一旦電池電壓達到所設定的終止電壓時,恒流充電終止,充電電流快速遞減,充電進入滿充過程。3.3 滿充在滿充過程中,充電電流逐漸遞減,直到充電速率降到設置值以下,或滿充超時時,轉入頂端截止充電,頂端截止充電時,充電器以極小的充電電流為電池補充能量,由于充電器在檢測電池電壓是否達到終止電壓時有充電電流通過電池電阻,盡管在滿充和頂端截至充電過程中

27、充電電流逐漸下降,減小了電池內阻和其它串聯(lián)電阻對電池端電壓的影響,但串聯(lián)在充電回路中的電阻形成的壓降仍然對電池終止電壓的檢測有影響,一般情況下,滿充和頂端截止充電可以延長電池510的使用時間。3.4 斷電當電池充滿后,MAX1898芯片的2腳/CHG發(fā)送的脈沖電平會由低變高,這將會被單片機檢測到,引起單片機的中斷,在中斷中,如果判斷出充電完畢,則單片機將通過P2.O口控制光耦切斷L7805向MAX1898供電,從而保證芯片和電池的安全,同時也減小功耗。3.5 報警當電池充滿后,MAX1898芯片的2引腳/CHG發(fā)送。LED燈會閃爍。但是,為了安全起見,單片機在檢測到充滿狀態(tài)的脈沖后,不僅會自動

28、切斷MAX1898芯片的供電,而且會通過蜂鳴器報警,提醒用戶及時取出電池。4 鋰離子電池充電器硬件設計4.1 單片機電路單片機控制設計,電路如下圖:圖2 單片機控制電路電路說明如下:·P3.1腳控制發(fā)出報警聲提示。·P3.0腳輸出控制光耦器件,在需要的時候可以及時關斷充電電源。·外部中斷0由充電芯片MAX1898的充電狀態(tài)輸出信號經(jīng)過反向后觸發(fā)。4.1.1 AT89S52圖3 AT89S52AT89S52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用

29、ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,AT89S52單片機在電子行業(yè)中有著廣泛的應用。主要功能特性:·兼容MCS51指令系統(tǒng)·8kB可反復擦寫(大于1000次)Flash ROM·32個雙向I/O口·256x8bit內部RAM·3個16位可編程定時/計數(shù)器中斷·時鐘頻率0-24MHz·2個串行中斷,可編程UART串行通道·2個外部中斷源,共8個中斷源·2個讀寫中斷口線,3級加密位·低功耗空閑和掉電模式,軟件設置睡

30、眠和喚醒功能·有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應不同產(chǎn)品的需求管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時

31、,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管

32、腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89S52的一些特殊功能口,如下表2所示:管腳備選功能P3.0/RXD(串行輸入口)P3.1/ TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)表2 P3口P3口同時為閃爍編程和編程校驗接收一些控制信

33、號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。EA/VPP:當EA

34、保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,EA將內部鎖定為RESET;當EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。4.2 充電部分該部分為設計的主核心部分,電路圖如下:圖4 智能充電器的主核心電路4.3充電電壓轉換,實現(xiàn)電路

35、模塊如下:圖6 充電電壓轉換電路首先用變壓器將220V交流電壓轉換成7V交流電,經(jīng)過橋式整流變成直流電,再利用電壓轉換芯片LM7805將7V直流電壓轉換為5V直流電壓。4.4 光耦控制部分,實現(xiàn)電路如下:圖7 6N137光耦控制電路充電電壓顯示,該部分其實就是一個AD轉換,原理圖如下:圖8 5 鋰離子電池充電器軟件設計5.1 程序功能單片機AT89S2052和LM7805的智能電池充電器的程序需要完成以下的功能:·通過CHG信號引起INT0外中斷。·在兩次中斷中使用T0計數(shù),判斷是否充電完畢。·如果充電完畢,則控制P1.2和P1.3引腳,輸出低電平。5.2 程序流

36、程圖智能充電器的程序流程圖簡介:外部中斷0設為邊沿觸發(fā);中斷第一個下降沿T0開始計數(shù)第二次下降沿停止T0計數(shù)讀取T0計數(shù)器中斷返回圖9 等待外部信號輸入圖10 外部中斷程序關閉T0中斷和外部中斷充電出錯t _count +關閉T0計數(shù)t _count >600?定時器0服務子程序int 0_count=1?充電完畢,蜂鳴器報警,切斷電源返回YesNoNoYes啟動T0計數(shù),同時進行A/D轉換,顯示電壓圖11 定時程序5.3 程序代碼及說明#include <reg52.h>#include <lcd12864.h>/lcd12864相關控制#include <

37、;DS18B20.h>#include <math.h> sbit CTRL_UP=P20;sbit CTRL_DOWN=P21;sbit ADCOE=P26;sbit ADCSTART=P27;sbit ADCALE=P25;sbit ADCA=P24;sbit ADCB=P23;sbit POWERKK=P14;#define ADCDATE P0sbit KEY1=P37;sbit KEY2=P35;sbit KEY3=P36;void InitSys();/初始化系統(tǒng)void InitInt();/初始化外部中斷void InitTimer();/初始化定時

38、器,串口中斷void SendSerialData();/啟動并發(fā)送一組串口數(shù)據(jù)void StartADC();/選擇通道n,開始轉換void ShowAllTime();/顯示完整的時間unsigned char g_myPar15,g_CurSend;/g_t10,g_t11,g_t20,g_t21,g_t30,g_t31,g_n,g_U0,g_U1p,g_U1f,g_U2,g_U3,g_Th,g_Tm,g_Ts;參數(shù)順序bit bSerialSending;unsigned char g_time6;unsigned char g_CurIn;unsigned char code g_a

39、dda=0,1,1,0,1;unsigned char code g_addb=1,0,0,0,1;unsigned char code g_ctrlu=1,1,1,0,0;unsigned char code g_ctrld=0,1,0,1,1;unsigned char g_tt10,g_tt11,g_tt20,g_tt21,g_tt30,g_tt31;unsigned char CutState;bit CurTR0,Curctrlu,Curctrld;float SqrtDuty;unsigned char g_Percent;void main()/DelayMs(10);/Dela

40、y4us(10);InitSys();DelayMs(1200);InitLCD();InitLCDshow(0);InitInt();/初始化外部中斷0InitTimer();/初始化定時器0,串口中斷bSerialSending = 0;/     bLinking = 0;/WriteLCD(0,0x80);/DspNumber(123);StartADC();while(1)if(KEY1=0)/充電TR1 = 0;CutState = 0;POWERKK = 1;InitLCDshow(0);TR0 = 1;g_myPar0=g_tt

41、10;g_myPar1=g_tt11;g_myPar2=g_tt20;g_myPar3=g_tt21;g_myPar4=g_tt10;g_myPar5=g_tt11;/SqrtDuty = sqrt(float)g_myPar1/(g_myPar0+g_myPar1);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);TR1 = 1;StartADC();ShowAllTime();DelayMs(100);else if(KEY2=0)/放電TR1 = 0;CutState = 1;POWERKK = 1;InitLCDshow(1);TR0 = 0;g_CurI

42、n = 0;CTRL_UP = 1;CTRL_DOWN = 0;TR1 = 1;StartADC();ShowAllTime();DelayMs(100);else if(KEY3=0)/維護TR1 = 0;POWERKK = 0;CutState = 2;InitLCDshow(2);TR0 = 1;g_myPar0=0xff;g_myPar1=0xf0;g_myPar2=0xfe;g_myPar3=0x74;g_myPar4=0xff;g_myPar5=0xf2;/SqrtDuty = sqrt(float)g_myPar1/(g_myPar0+g_myPar1);/Duty=g_myPa

43、r0*100/(g_myPar0+g_myPar1);TR1 = 1;StartADC();ShowAllTime();DelayMs(100); /初始化系統(tǒng)void InitSys()unsigned char i;for(i=0;i<6;i+)g_timei =;ADCOE = 1;ADCALE = 0;ADCSTART = 0;POWERKK = 1;g_myPar0=0xff;/0x30g_myPar1=0x30;g_myPar2=0xff;g_myPar3=0x30;/0x30g_myPar4=0xff;g_myPar5=0x30;g_tt10 = 0xff;g_t

44、t11 = 0x30;g_tt20 = 0xff;g_tt21 = 0x30;/*g_myPar0 = 0x80;/g_TH1g_myPar1 = 0x00;/g_TH2g_myPar2 = 0x00;/g_TH3*/g_myPar6 = 6;SqrtDuty = sqrt(0.5);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);/初始化外部中斷void InitInt()IT0 = 1;/ 0/1 低電平/下跳變PX0 = 1;/ 中斷優(yōu)先級/EX0 = 1;/EA = 1;/初始化定時器,串口中斷void InitTimer()TMOD

45、= 0x11;/ 使用高4位 0/1/2/3  13位/16位/8位自動重載/雙8位TH0 = (65536 - 49235) / 256;TL0 = (65536 - 49235) % 256;PT0 = 1;TR0 = 1;/開啟定時器0ET0 = 1;TH1 = (65536 - 49235) / 256;TL1 = (65536 - 49235) % 256;TR1 = 1;/開啟定時器1ET1 = 1; TCLK=1;RCLK=1;TH2=0xFF;  /19200bps  22.1184MHz

46、的時鐘頻率TL2=0xDC;RCAP2H=0xFF;  /方式1和方式3的波特率fosc/(32-(65535-(RCAP2H,RCAP2L)RCAP2L=0xDC;TR2=1;/ET2=1;SCON = 0x50;/串口方式1,允許接收PCON = 0x00;/關閉波特率加倍PS = 1;/設置串口中斷為高優(yōu)先級ES = 1;/開串口中斷/TH1 = 0xfd;/串口通信使用定時器1,設定波特率9600/TH1 = 0xf3;/串口通信使用定時器1,設定波特率2400 EA = 1;/開始發(fā)送串口數(shù)據(jù)void SendSerialData()if(!bSeria

47、lSending)bSerialSending = 1;g_CurSend = 0;SBUF = g_myParg_CurSend;g_CurSend+; /開始ADC轉換void StartADC()CurTR0 = TR0;TR0 = 0;g_CurIn=0;ADCA = g_addag_CurIn;ADCB = g_addbg_CurIn;CTRL_UP = g_ctrlug_CurIn;CTRL_DOWN = g_ctrldg_CurIn;Curctrlu = CTRL_UP;Curctrld = CTRL_DOWN;ADCALE = 1;ADCALE = 0;ADCSTAR

48、T = 1;ADCSTART = 0;EX0 = 1;/倒序轉換unsigned char Reverse(unsigned char num)unsigned char i,rtTmp;rtTmp = 0x00;for(i=0; i<8; i+)rtTmp <<=1;rtTmp |= num & 0x01;num >>= 1;return rtTmp;/顯示完整的時間void ShowAllTime()WriteLCD(0,0x98+4);WriteLCD(1,g_time0);/時WriteLCD(1,g_time1);WriteLCD(1,:);Wr

49、iteLCD(1,g_time2);/分WriteLCD(1,g_time3);WriteLCD(1,:);WriteLCD(1,g_time4);WriteLCD(1,g_time5); /外部中斷0服務程序void Int0() interrupt 0g_myPar7+g_CurIn = ADCDATE;g_CurIn+;if(g_CurIn<5)ADCA = g_addag_CurIn;ADCB = g_addbg_CurIn;CTRL_UP = g_ctrlug_CurIn;CTRL_DOWN = g_ctrldg_CurIn;ADCALE = 1;ADCALE = 0

50、;ADCSTART = 1;ADCSTART = 0;elseTR0 = CurTR0;EX0 = 0;CTRL_UP = Curctrlu;CTRL_DOWN = Curctrld; /定時器0中斷服務程序void Timer0() interrupt 1static unsigned char i;static bit j;if(j)j = 0;i+;if(i>g_myPar6)i = 0;CTRL_UP = 1;CTRL_DOWN = 0;TH0 = g_myPar4;TL0 = g_myPar5;elseCTRL_UP = 1;CTRL_DOWN = 1;TH0 = g

51、_myPar2;TL0 = g_myPar3;elsej = 1;CTRL_UP = 0;CTRL_DOWN = 1;TH0 = g_myPar0;TL0 = g_myPar1;/定時器1中斷服務程序void Timer1() interrupt 3static unsigned char i,j;unsigned char temp_data2;unsigned char presence,k; TH1 = (65536 - 60730) / 256;TL1 = (65536 - 60730) % 256;i+;if(i>24)/時間顯示i=0;g_time5+;g_myPa

52、r14+;if(g_time5 > 0x39)/秒個位g_time5 = 0x30;g_time4+;if(g_time4 > 0x35)/秒十位g_time4 = 0x30;g_time3+;g_myPar14 = 0;g_myPar13+;if(g_time3 > 0x39)/分個位g_time3 = 0x30;g_time2+;if(g_time2 > 0x35)/分十位g_time2 = 0x30;g_time1+;g_myPar13 = 0;g_myPar12+;if(g_time1 > 0x33)/時個位g_time1 = 0x30;g_time0+;

53、if(g_time0 > 0x39)/時十位g_time0 = 0x30;g_myPar12=0;/時十位/時個位WriteLCD(0,0x98+4);WriteLCD(1,g_time0);WriteLCD(1,g_time1);/分十位WriteLCD(0,0x98+5);WriteLCD(1,:);WriteLCD(1,g_time2);/分個位WriteLCD(0,0x98+6);WriteLCD(1,g_time3);/秒十位/秒個位WriteLCD(0,0x98+7);WriteLCD(1,g_time4);WriteLCD(1,g_time5); /顯示充/放電狀

54、態(tài)j+;switch(j)case 1:WriteLCD(0,0x98+2);WriteLCD(1, );WriteLCD(1, );WriteLCD(1, );StartADC();break;case 2:WriteLCD(0,0x98+2);WriteLCD(1,.);break;case 3:WriteLCD(0,0x98+2);WriteLCD(1,.);WriteLCD(1,.);break;case 4:WriteLCD(0,0x98+3);WriteLCD(1,.);j = 0;break;default:j = 0;presence = Init_DS18B20();if(presence=0)WriteOneChar(0xCC); /跳過ROM匹配操作Delay4us(10)

溫馨提示

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

評論

0/150

提交評論