基于單片機的汽車組合電子儀表
2、硬件描述
圖1
? PLL:外部晶振32.768k;內(nèi)部總線倍頻至4M;
? SCI:用于上位機通訊,比特率9600,中斷方式;
? SPI:時鐘1M,作為MC33970的控制,用兩個通用管腳作為SPI的片選信號;
? LCD:使用26×4模式,即26前極、4背極的模式,動態(tài)驅(qū)動;因為設(shè)計中用到6位LCD模塊,所以使用FP1~FP12、BP0~BP3已經(jīng)足夠;
? Flash:利用常駐內(nèi)存函數(shù)(ROM-Resident Routine)將里程數(shù)據(jù)以32位數(shù)據(jù)的形式保存于用戶閃存中。
選取SWITEC公司出品的步進電機作為執(zhí)行器。六位筆段式動態(tài)驅(qū)動液晶模塊,用于里程,單次里程或時間日期的顯示。出于習慣,汽車儀表需要一直保持帶電狀態(tài),無需重置時間參數(shù),為了方便演示,用兩個按鈕實現(xiàn)LCD顯示模式的切換。六個發(fā)光二極管分別用于顯示制動、危險、機油壓力、電瓶、發(fā)動機以及空檔信息,利用MC1413作為發(fā)光二極管的驅(qū)動。
MC33970由微控制器的SPI直接驅(qū)動;車速和發(fā)動機轉(zhuǎn)速為脈寬調(diào)制信號或來自串口輸入,通過定時器模塊的輸入捕捉功能得到其頻率,換算得數(shù)據(jù)。
(1) 電源及掉電保護
輸入端使用7805。為了在掉電的時候也可以及時地保存里程數(shù)據(jù),在電源地輸入端加一個1000uF或兩個470uF的電解電容。電源斷開的時候在IRQ管腳會產(chǎn)生一個中斷信號,大電容可以維持單片機電源足夠長的時間,使得單片機可以完成外部中斷的服務(wù)程序。
(2)調(diào)理電路
為了改善波形,在定時器管腳外添加了調(diào)理電路。
(3)整體設(shè)計
本設(shè)計面向的是市場上的中低檔轎車,為了表現(xiàn)這個初衷,根據(jù)長安轎車的儀表外殼及內(nèi)部尺寸設(shè)計了儀表的PCB,并重新布局。
圖2 系統(tǒng)框圖
(1) 初始化函數(shù)
內(nèi)部總線倍頻至4M;設(shè)置定時器模塊的通道為捕捉功能;SCI波特率9600,開接收中斷;SPI時鐘頻率1M;LCD模塊26×4模式;使能Real Time Clock模塊;MC33970與指針初始化;從用戶Flash中讀取先前記錄的里程數(shù)據(jù),并根據(jù)ODO/TRIP信號加以顯示。
(2) 中斷服務(wù)程序
? 外部中斷:斷電后短時間內(nèi)利用大電容的放電使指針回零。
? SCI中斷:遵循一定的上位機協(xié)議,接受命令,改變LCD顯示內(nèi)容;改變車速和轉(zhuǎn)速數(shù)據(jù)。
? RTC中斷:每秒記錄一次里程數(shù)據(jù);根據(jù)車速信號換算里程數(shù)據(jù)。
(3) 主函數(shù)
定時讀取里程數(shù)據(jù),并在LCD上顯示;每一次主循環(huán)結(jié)束的時候重啟WATCHDOG;當車速或轉(zhuǎn)速信號改變之后通過指針位置的變化作出反應(yīng)。
圖3 主程序流程圖
評論