網站首頁 文學常識 簡歷 公文文書 文學名著 實用文 人生哲理 作文 熱點話題作文
當前位置:文萃咖 > 實用範文 > 論文

淺析基於STC12C5A60S2 單片機的電量監測技術研究論文

欄目: 論文 / 發佈於: / 人氣:9.85K

1 引言

淺析基於STC12C5A60S2 單片機的電量監測技術研究論文

隨着國家“節約發展”理念的提出,越來越多的人們青睞於新能源交通工具。電動車作為一種人們生活中首選的代步工具,保有量逐年提升,而電動車續航、電量檢測和電池狀況監測的問題,也成為了大家所關心的重要問題。本文設計了一種利用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 單片機模數轉換的電動車電量監測技術,並在實踐中得到應用,經過團隊成員的努力,實現了預期功能效果,希望能夠促進電動車的未來發展,方便人們的生活。