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