淺析基於STC12C5A60S2 微控制器的電量監測技術研究論文

淺析基於STC12C5A60S2 微控制器的電量監測技術研究論文

  1 引言

  隨著國家“節約發展”理念的提出,越來越多的人們青睞於新能源交通工具。電動車作為一種人們生活中首選的代步工具,保有量逐年提升,而電動車續航、電量檢測和電池狀況監測的問題,也成為了大家所關心的重要問題。本文設計了一種利用STC12C5A60S2 微控制器的電動車電量監測系統,利用微控制器模數轉換的功能,實現了電動車蓄電池電量的實時顯示、監督、管理以及異常情況警報。該系統成本較低,使用較方便,具有較高的應用價值。

  2 系統總體設計

  本文所研究的系統主要由採集電路、資料處理部分和顯示部分等組成。透過採集電路對蓄電池的電壓等資料進行取樣,然後將採集的資料透過微控制器的A/D 轉換功能得到電量資料,並將結果存入到相關的暫存器。微處理器透過相關介面將所需引數讀到微處理器內部,並將電量、經緯度等資料在LCD 屏中顯示,讓使用者直觀地觀察到實時的資料。

  3 系統硬體組成

  本系統採用的微控制器是STC12C5A60S2 微控制器,利用微控制器具有的A/D 轉換功能,實現了將模擬訊號(電壓)轉化為數字訊號,以便後續的傳輸和處理。

  3.1 STC12C5A60S2 微控制器

  STC12C5A60S2 微控制器是STC 生產的一款單時鐘/ 機器週期(IT)的微控制器,是一款新一代的8051 微控制器。STC12C5A60S2 微控制器執行速度高,可以達到傳統的8051 微控制器速度的8-12 倍,功率耗損很低,而且在干擾很強大的環境中也可以穩定執行,同時指令程式碼完全相容傳統的8051 微控制器。工作電壓 3.5V—5.5V,工作頻率範圍 0-35MHz。STC12C5A60S2 微控制器包含 CPU、儲存 Flash、SRAM、定時/ 計時器、I/O 介面、高速A/D 轉換器、SPI 介面、PAC、看門狗及片內R/C 振盪器和外部晶體振盪電路等模組。

  3.2 STC12C5A60S2 微控制器的高速A/D 轉換

  3.2.1 A/D 轉換器結構

  STC12C5A60S2 系列帶A/D 轉換的.微控制器的A/D轉換口在P1 口(P1.7-P1.0) ,有 8 路 10 位高速A/D 轉換器 , 速度可達到250KHz。8 路電壓輸入型A/D,可做溫度檢測、電池電壓檢測、按鍵掃描、頻譜檢測等。上電覆位後P1 口為弱上拉型I/O 口,使用者可以透過軟體設定將8 路中的任何一路設定為A/D 轉換,不需作為A/D 使用的口可繼續作為I/O 口使用。

  3.2.2 逐次比較法A/D 轉換

  STC12C5A60S2 微控制器採用的是逐次比較型A/D轉換電路,該電路使用了二分搜尋演算法。啟動轉換後,先將逐次比較暫存器SAR 最高位置“1”,其餘位置“0”,相當於取參考電壓VREF 的1/2 與輸入電壓VIN 進行比較。若VREF/2>VIN,那麼將最高位置“0”;此後次高位置1,相當於在1/2 範圍中再對半搜尋。若VREF/2< VIN, 那麼最高位和次高位均為1, 這相當於在另一個1/2 範圍中再作對半搜尋. 如此進行直到SAR的所有位都在逐次比較過程中被確定。SAR 的輸出即為所需的二進位制數字量。由此可見,這類A/D 轉換器在一個時鐘週期只完成一位轉換. 若要獲得N 位的解析度, 它就必須執行N 次比較操作, 因此轉換速度慢。它的優點是佔用面積小, 複雜度和功耗通常低於其它型別的A/D 轉換電路,同時解析度也較高,且不存在延遲問題。

  4 程式的設計與編寫實現

  在程式設計之初,我首先想到的是要對暫存器進行設計。因此,我在innit()初始化函式中對暫存器值進行了設計。利用sfr P1ASF = 0x9D 與P1ASF=0x01語句對I/O 口進行定義。考慮到轉換精度的問題,本文采取兩種措施來保證轉換精確度。第一種方法是捨棄了取8 位結果的方式,轉而用了取完整10 位結果的方式,雖然增加了運算量,但因為STC12C5A60S2 微控制器的高速運算能力,因此並不會降低轉換能力,同時對特殊暫存器ADRJ 置0,即sfr ADC_RES 為高8 位、sfrADC_RESL 為低2 位,並採取下面的計算公式:1 0 - b i t A / D C o n v e r s i o n R e s u l t : ( A D C _RES[7:0],ADC_RESL[1:0])=1024*Vin/Vcc。第二種方法是對所示的轉換速度控制暫存器ADC_SPEEDLL 利用宏定義將其置0 具體實現方法為#define ADC_SPEEDLL 0X00。目的是提高模數轉換的時鐘週期數,以此來提高轉換精度。最後通後ADCCONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|0 語句對暫存器控制的最終實現。當模數轉換開始後,需要檢測轉換是否完成,此時只需要一個while 語句將ADC 控制暫存器ADC_CONTR 與ADC標誌位ADC_FLAG 相與後取反檢測。此時需要注意的是,當檢測完成後要清除轉換完成標誌。由於我們用了取完整10 位結果的方式而STC12C5A60S2 微控制器的暫存器位8 位,因此要對轉換結果高8 位左移兩位並與低2 位進行或操作。

  5 硬體電路的實現方法

  電量監控是利用STC12C5A60S2 微控制器自有的模數轉換功能, 透過大電阻分壓的技術將電池的電壓透過放大器構成的電壓跟隨器隔離、RC 低通濾波電路的濾波後,送入微控制器進行轉換。採用此大電阻分壓方法的另一優點是降低整個系統的功耗,節約能源。

  本文介紹利用 STC12C5A60S2 微控制器來實現模數轉換,並使用微控制器的擴充套件性以及對輸入訊號的變化自適應性來適應輸入輸出裝置的變化。當開發者需要詳細的轉換隻需要對程式進行修改並下載即可。這樣方便了開發者對轉換的結果進行處理與對比,並根據自己的需要不用改動硬體就能對其轉換結果加以處理。本系統為了A/D 轉換能被更好的使用,我們實現了把A/D 轉換的結果透過顯示屏展示出來。為了滿足開發人的需求,系統設計了一個通訊串列埠,利用CH340G 晶片將USB轉為串列埠,有利於電腦與微控制器傳輸資料,開發者可以編寫自己需要的程式並下載到微控制器。

  6 總結與展望

  本文詳細的介紹了基於STC12C5A60S2 微控制器模數轉換的電動車電量監測技術,並在實踐中得到應用,經過團隊成員的努力,實現了預期功能效果,希望能夠促進電動車的未來發展,方便人們的生活。

最近訪問