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