基于單片機的車(chē)輛蓄電池報警器設計
2.2 軟件設計
蓄電池報警器軟件采用模塊化設計,分成main ,B T _timer,SD16 三個(gè)模塊。每個(gè)模塊由C 語(yǔ)言編程的若干子程序塊組成。其中包括主程序,數據采集及處理子程序,顯示子程序,超限判斷及報警子程序,中斷處理子程序等。
2.2.1 main模塊。
Main 模塊由系統主程序與PORT 中斷程序組成,主程序用于完成自檢和初始化。自檢包括RAM 工作區、A /D 轉換器及其模擬采樣通道、顯示模塊等的自檢。初始化將對儀器初始狀態(tài)給予設定,包括定時(shí)器和串口的設定及分配、中斷系統的開(kāi)放、看門(mén)狗的啟動(dòng)等,系統初始化完成后進(jìn)入LPM0 低功耗模式。PORT 中斷處理程序完成對按鍵輸入的處理。
2.2.2 BT_timer模塊。
BT_timer 模塊由BT_timer 初始化程序,BT_timer 中斷處理程序,LED 顯示處理程序組成,其中BT_timer 初始化程序主要完成對基本定時(shí)器的初始化,設定的定時(shí)周期為250ms;BT_timer 中斷處理程序完成報警后1 分鐘報警解除處理,刷新LED 處理,定時(shí)啟動(dòng)SD16 模塊等功能,其程序流程圖如圖5 所示。LED 顯示處理程序,主要根據程序的顯示字,顯示模式字來(lái)完成對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 報警判定處理。
設立一個(gè)先進(jìn)先出的緩沖隊列,存放端電壓值隨時(shí)間變化曲線(xiàn)。依據緩沖隊列中的電壓采樣值監測車(chē)輛蓄電池電壓范圍,判斷蓄電池啟動(dòng)、內阻大、充電等狀態(tài)變化并伺機報警。當端電壓值超過(guò)或低于門(mén)限值達3000ms,即做高(低)報警;如端電壓值單位時(shí)間內下降幅度較大,則意味著(zhù)蓄電池性能變差,做內阻大報警;如端電壓值單位時(shí)間內變化超過(guò)一定值,則可判別發(fā)動(dòng)機啟動(dòng),充電等狀態(tài),在單次起動(dòng)時(shí)間超過(guò)5 s 、相鄰兩次啟動(dòng)時(shí)間少于1 5 s、連續啟動(dòng)次數超過(guò)3 次時(shí),做非規范啟動(dòng)報警。
3 結束語(yǔ)
產(chǎn)品設計中的技術(shù)路線(xiàn)選擇,以滿(mǎn)足設計功能基礎上的合用性為原則,同時(shí)綜合考慮實(shí)際使用條件,安裝,成本等因素。
以上設計的報警器結構緊湊小巧,安裝方便,使用直觀(guān),功能齊全,為駕、修人員提供一個(gè)方便的車(chē)輛蓄電池監測手段,產(chǎn)品已投入實(shí)際使用。
評論