基于單片機的車輛蓄電池報警器設計
2.2 軟件設計
蓄電池報警器軟件采用模塊化設計,分成main ,B T _timer,SD16 三個模塊。每個模塊由C 語言編程的若干子程序塊組成。其中包括主程序,數據采集及處理子程序,顯示子程序,超限判斷及報警子程序,中斷處理子程序等。
2.2.1 main模塊。
Main 模塊由系統主程序與PORT 中斷程序組成,主程序用于完成自檢和初始化。自檢包括RAM 工作區、A /D 轉換器及其模擬采樣通道、顯示模塊等的自檢。初始化將對儀器初始狀態給予設定,包括定時器和串口的設定及分配、中斷系統的開放、看門狗的啟動等,系統初始化完成后進入LPM0 低功耗模式。PORT 中斷處理程序完成對按鍵輸入的處理。
2.2.2 BT_timer模塊。
BT_timer 模塊由BT_timer 初始化程序,BT_timer 中斷處理程序,LED 顯示處理程序組成,其中BT_timer 初始化程序主要完成對基本定時器的初始化,設定的定時周期為250ms;BT_timer 中斷處理程序完成報警后1 分鐘報警解除處理,刷新LED 處理,定時啟動SD16 模塊等功能,其程序流程圖如圖5 所示。LED 顯示處理程序,主要根據程序的顯示字,顯示模式字來完成對L E D ,蜂鳴器硬件操作,包括顯示、閃爍、鳴叫等。

圖5 BT_timer中斷處理程序
2.2.3 SD16模塊。
SD16 模塊主要包括SD16模塊初始化程序,SD16(ADC)中斷處理程序。SD16模塊初始化程序主要完成MSP430 內置數/ 模轉換模塊SD16 的初始化設置;SD16(ADC)中斷處理程序,主要完成電壓數據采集,處理,判定,顯示字與顯示模式字的修改等功能,該程序是數據處理的核心程序。
SD16 中斷處理程序流程圖如圖6 所示。

圖6 SD16中斷處理程序流程圖
2.2.4 報警判定處理。
設立一個先進先出的緩沖隊列,存放端電壓值隨時間變化曲線。依據緩沖隊列中的電壓采樣值監測車輛蓄電池電壓范圍,判斷蓄電池啟動、內阻大、充電等狀態變化并伺機報警。當端電壓值超過或低于門限值達3000ms,即做高(低)報警;如端電壓值單位時間內下降幅度較大,則意味著蓄電池性能變差,做內阻大報警;如端電壓值單位時間內變化超過一定值,則可判別發動機啟動,充電等狀態,在單次起動時間超過5 s 、相鄰兩次啟動時間少于1 5 s、連續啟動次數超過3 次時,做非規范啟動報警。
3 結束語
產品設計中的技術路線選擇,以滿足設計功能基礎上的合用性為原則,同時綜合考慮實際使用條件,安裝,成本等因素。
以上設計的報警器結構緊湊小巧,安裝方便,使用直觀,功能齊全,為駕、修人員提供一個方便的車輛蓄電池監測手段,產品已投入實際使用。
評論