茄子视频APP

茄子视频APP > 行業資訊 > 智能型充電器的電源和顯示的設計

智能型充電器的電源和顯示的設計

  AVR單片機是Atmel公司1997年推出的RISC單片機。RISC(精簡指令系統計算機)是相對于CISC(復雜指令系統計算機)而言的。RISC并非只是簡單地去減少指令,而是通過使計算機的結構更加簡單合理而提高運算速度的。RISC優先選取使用頻率最高的簡單指令,避免復雜指令;并固定指令長度,減少指令格式和尋址方式的種類,從而縮短指令周期,提高運算速度。由于AVR采用了RISC這種結構,使AVR系列的單片機都具備了1MIPS/MHz的高速處理能力。
   AVR單片機吸收了DSP雙總線的特點,采用Harvard總線結構,因此單片機的程序存儲器和數據存儲器是分離的,并且可對具有相同地址的程序存儲器和數據存儲器進行獨立的尋址。
目前,AVR單片機具有多個系列,包括ATtiny、AT90和ATmega。雖然在功能和存儲器容量等方面有很大的不同,但基本結構和原理都類似。同傳統的MCS51單片機相比,AVR單片機的主要特點有:
(1) AVR單片機中,CPU執行當前指令時取出將要執行的下一條指令放入指令寄存器中,從而避免了傳統MCS51系列單片機中多指令周期的出現。
(2) 傳統的MCS51系列單機所有的數據處理都是基于一個累加器的,因此累加器與程序存儲器、數據存儲器之間的數據交換就成了單片機的瓶頸;在AVR單片機中,寄存器由32個通用寄存器組成,并且任何一個寄存器都可以充當累加器,從而有效地避免了累加器的瓶頸效應,提高了系統的性能。
(3) AVR單片機具有良好的集成性能。AVR系列的單片機都具備在線編程接口,含有片內看門狗電路、片內程序Flash、同步串口SPI等;AVR單片機的I/O接口還具有很強的驅動能力,灌電流可直接驅動繼電器、LED等器件,從而省去驅動電路,節約系統成本。
(4) AVR單片機采用低功率、非揮發的CMOS工藝制造,除具有低功耗、高密度的特點外,還支持低電壓的聯機Flash、EEPROM寫入功能。
(5) AVR單片機支持Basic、C等高級語言編程。
此外在傳統的單片機系統中,都是用匯編語言作為系統的編程語言。匯編語言作為嵌入式系統的編程語言,具有執行效率高等優點,但其本身是一種低級語言,編程效率低下,且可移植性和可讀性差,維護極不方便,從而導致整個系統的可靠性也較差。而C語言以其結構化和能產生高效代碼等優勢滿足了電子工程師的需要。用C語言進行嵌入式系統的開發,具有匯編語言編程所不可比擬的優勢
1.  AVR單片機的主要特征,系統概況,指令系統以及系統的擴展技術的學習和掌握。
2.  電源電路的設計
3.  熟悉智能充電器的工作過程
4.編寫LCD顯示的C程序設計
本設計要求用AVR單片機完全實現電池充電器設計,可以對各種流行的電池類型進行快速充電而無須修改硬件,從而圍繞單個硬件平臺實現一個完整的充電器
1.  弄懂弄清智能充電器的基本原理
    電池充電是通過逆向化學反應將能量存儲到化學系統里實現的。由于使用的化學物質的不同,電池有自己的特性。設計充電器時要仔細了解這些特性以防止過度充電而損壞電池。
電池技術現代消費類電器主要使用如下四種電池:
? 密封鉛酸電池 (SLA)
? 鎳鎘電池 (NiCd)
? 鎳氫電池(NiMH)
? 鋰電池(Li-Ion)
電池的安全充電
停止充電的判別
2.  硬件的實現
1.  電源電路的設計
2.  PC接口的設計
3.  LED和按鍵的設計
4.  ISP 接口的設計
5.  Buck 變換器
6.  電壓基準的設定
7.  電池溫度的設定
8.  測量電路的設計(包括電池電壓和充電電流等參數的計算)
1.  軟件的實現
   在編譯時要確定電池類型。軟件可以進行擴展以支持多個電池同時充電。一個直接的方案是在進行涓流充電時對各個電池進行分時充電。若每個電池的電池單元數目一樣,則SLA 電池和Li-Ion 電池 可以恒定電壓的方式并行充電。每個電池單元的充電電流是受限的,電壓也一樣。“電池特性” (b_car.h)的所有數據都根據標度因子計算得到。這些數據在包含文件里定義,在編譯時計算,在程序運行時以常數方式處理。所有從ADC 輸出的數據都可以直接與這些常數進行比較。也就是說,在程序運行過程當中不需要進行實時計算,從而節省了計算時間和程序空間。計算公式以及數據都是從“測量電路”一節獲取的。 對于NiCd 電池,如果電池溫度在允許范圍之內,充電程序就會啟動。在溫度超出限制,或電壓超過最大值,或超出最大快速充電時間時停止。檢測電池已經充滿的普通方法是檢測溫度上升速率(dT/dt) 和電壓降低速率(-dV/dt)。因此,充電器會每隔一分鐘檢測一次溫度,每隔一秒鐘檢測一次電壓。這些數據將與上一次數據進行比較。一旦電池充滿,充電狀態就自動切換到涓流充電,充電程序跳轉到trickle_charge() 函數。trickle_charge() 循環檢測充電狀態、溫度/ 電壓的改變,并適當地調節充電電流。一旦溫度或電壓超標,錯誤標志置位,函數終止。若沒有錯誤,用戶也沒有改變充電狀態,函數將一直循環工作。
2.  編制LCD的顯示程序
 
特點
?完整的電池充電器設計方案
?模塊化的“C”源代碼和極緊湊的匯編代碼
?低成本
?支持多數電池類型
?快速充電算法
?可選的串行接口
?充電參數易修改
?片內(nei)EEPROM 可用(yong)于存(cun)儲電池信息

返回
頂部
lutube-lutube下载-lutube下载地址-lutube最新地址 lutube-lutube下载-lutube下载地址-lutube最新地址 lutube-lutube下载-lutube下载地址-lutube最新地址