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