<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于51單片機的智能快速充電器設計

          基于51單片機的智能快速充電器設計

          作者: 時間:2008-09-27 來源:網絡 收藏

          1.引言

            本控制系統(tǒng)是為120w智能快速穩(wěn)壓電源設計的。

            該快速充電器是為部隊在野戰(zhàn)條件下工作而研制的,因此要求其具有體積小、重量輕、智能化程度高、操作簡便等優(yōu)點,同時對電源的可靠性和抗干擾性提出了很高的要求。有穩(wěn)壓供電和充電兩種工作方式。穩(wěn)壓供電時輸出恒定的24V;處于充電狀態(tài)時有四種充電方式:常規(guī)充電、快速充電、電池浮沖、電池訓練,可以為鎘鎳、氫鎳蓄電池充電。

          2. 控制系統(tǒng)總體設計要求

            根據(jù)實際情況,本控制系統(tǒng)要完成以下功能:

           ?。?) 能自動識別電池的類型(鎳鎘電池、鎳氫電池、鋰電池)。

            (2) 有穩(wěn)壓供電和充電兩種工作模式。

            (3) 采用最高電壓Vmax、最高溫度Tmax、最長充電時間tmax、電壓負增長-△V、溫度變化率△T/△t等快速充電中止法。

           ?。?) 具有輸入交流過壓保護、輸出直流過流保護、過充電保護等

           ?。?) 通電后能自動檢測整個電源系統(tǒng),有故障報警。

            (6) 設有電池開路、短路、反接保護。

           ?。?) 具有硬件和軟件相結合的雙重保護功能。

           ?。?) 良好的抗干擾能力。

          3. 統(tǒng)硬件電路的設計

          3.1 AT89S52簡介

            AT89S52是ATMEL公司研制的通用。它在AT89S51的基礎上為P1口定義了第二功能,有六個外部中斷、三個定時/計數(shù)器,以及四個全雙工的串行通信口,同時在指令上與AT89S51兼容,對監(jiān)控系統(tǒng)較為適用。

          3.2 基于AT89S52的監(jiān)控系統(tǒng)硬件電路設計

            按照上述系統(tǒng)設計要求,設計了如圖1所示的監(jiān)控系統(tǒng)。

            
          圖1 AT89S52監(jiān)控系統(tǒng)框圖

            (1) 微處理器:AT89S52非常適用于控制,他的主要結構和特點在前面已經介紹過了,為了滿足外圍接口電路的需要,一般都要在輸出口處接鎖存驅動電路,這里我們采用的是SN74HC573。

            (2) 壓頻變換裝置:將模擬的電壓量轉化成頻率值,這是一種A/D轉化方式,將輸出電壓U0采樣通過壓頻變換裝置傳給單片機,壓頻轉化裝置我們用的是National Semiconductor的LM331。

           ?。?) 輸出控制電路:單片機的輸出控制信號通過電阻解碼網絡轉化成模擬電壓值,控制電壓和電流比較器的基準值,實現(xiàn)對外圍功率電路的控制。

            (4) 上電復位電路:為了防止單片機的程序飛跑,出現(xiàn)死鎖,我們采用MAXIM公司的MAX813L系統(tǒng)監(jiān)控集成芯片來實現(xiàn)對單片機的監(jiān)控,該芯片具有看門狗電路、門限值檢測器、手動復位等功能。

            (5) 輸入控制和數(shù)碼顯示電路:包括按鍵和顯示部分。通過簡單的按鍵選擇,實現(xiàn)運行方式選擇、復位及故障的顯示。顯示部分采用SN74HC573驅動兩個8位七段LED顯示;同時通過發(fā)光二極管和蜂鳴器提示運行狀態(tài)。

           ?。?) 護告警電路:通過硬件電路實現(xiàn)保護,給單片機中斷管腳發(fā)出脈沖信號,引發(fā)中斷程序實現(xiàn)保護,并引發(fā)蜂鳴器告警。

            下面介紹本系統(tǒng)中的一些關鍵性電路

          3.2.1 恒壓恒流模塊

            恒壓恒流電路是整個智能充電器的關鍵部分,電路結構見圖2。恒流恒壓電路由SR12單片機片內模擬電路模塊和片外的MOSFET開關管、肖特基二極管、濾波電感、濾波電容等器件組成。模擬電路模塊是SR12的特有部件,圖3為它的結構框圖。它由輸入多路開關、兩組溫 度 傳 感器Rsense0.01Ω可程控放大器、片內溫度傳感器、電流檢測電路等組成??沙炭胤糯笃骺偡糯蟊稊?shù)為1~256。放大器的輸入可選擇為兩路模擬輸入腳(ATD0、ATD1)、片內溫度傳感器、模擬地輸入(VSSAM)。ATD0和VSSAM間可接一個電流檢測電阻,用于測量外部電流,它還連接至電流檢測電路,可在電流超過指定值時產生中斷并輸出信號。

          圖2 恒壓恒流電路

          3.2.2 放電模塊

            快速充電的硬件電路圖如下所示

            
          圖3 放電器部分電路

            快速充電的原理是通過電池兩端不斷的充放電來提高充電效率,從而減少了充電時間。放電器部分利用電壓比較器,在5腳設置電壓基準,6腳通過一個二極管和電阻同單片機相連,單片機接受外部控制指令,通過計數(shù)器控制TDIS端電平的高低;比較器的輸出應用兩個三極管級聯(lián),改善了靜態(tài)工作點。

            快速充電時,AT89S52單片機必須不斷檢測以下幾項關鍵技術指標:電路是否出現(xiàn)斷路、電池是否出現(xiàn)不均衡現(xiàn)象、電池是否達到規(guī)定的安全電壓、電池是否溫度過高、電池是否滿足-△V或△T/△t條件。

          壓頻變換器本質上是A/D變換器,上圖是由LM331N組成的壓頻變換電路,它將輸出的電壓信號轉變成頻率,接入單片機的計數(shù)器接口,通過計數(shù)器的計數(shù)計算出輸出電壓的大小。該型號壓頻變換器V/F變換公式是:


          4. 系統(tǒng)軟件設計

            
          圖4 軟件流程圖

            主程序流程圖如圖2所示。系統(tǒng)上電復位后,首先對單片機、外圍芯片及控制狀態(tài)進行初始化;然后設置輸出控制口的電壓閥值,通過讀取輸出電壓的值來判斷系統(tǒng)是否正常,若正常則進入功能設置模塊,否則轉故障處理;進入功能控制模塊后,用戶可以通過按鍵設置系統(tǒng)的工作狀態(tài),是供電模式還是充電模式。然后按下確定按鈕,系統(tǒng)進入相應的工作模式。若是供電模式,單片機將實時監(jiān)測各主要參量若發(fā)現(xiàn)故障或過流過壓則轉故障處理模塊,沒有的話繼續(xù)監(jiān)測。若是充電模式,插入電池后系統(tǒng)將監(jiān)測是否反接,是則提出告警,否則將進入充電狀態(tài),在此過程中故障檢測的過程和供電模式相同,但充電模塊中有充電中止算法和定時算法,都是判斷電池是否充滿的算法。

          5. 結束語

            以單片機AT89S52為核心的智能充電器制成后,經過半年的調試和運行,各項指標基本上達到了設計要求,由于在制作過程中充分利用了各模塊的功能,使該充電器的集成度大大提高,從而減小
          了體積,更有利于在野外條件下工作,提高了系統(tǒng)的可靠性。

          參考文獻:
          [1] 周航慈.單片機應用程序設計技術[M].北京:北京航空航天出版社,1991.
          [2] 周航慈.單片機程序設計基礎[M].北京:航空航天大學出版社,1999.
          [3] 胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,1996.

          蜂鳴器相關文章:蜂鳴器原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();