基于AT89C52的汽車駕駛模擬器單片機(jī)系統(tǒng)設(shè)計
由于本系統(tǒng)中需要處理的開關(guān)量和模擬量較多,因此選用8255對輸入輸出接口進(jìn)行了擴(kuò)展。將AT89C52的P1口作為A/D、D/A轉(zhuǎn)換接口,用于模擬量的輸入和輸出,A/D、D/A轉(zhuǎn)換芯片分別選用ADC0809和DAC0832,片選信號由高位地址線P2口提供。8255的擴(kuò)展接口用作開關(guān)量的輸入和輸出,8255的端口選擇和片選信號由經(jīng)74LS373鎖存后的低位地址線提供。
另外,AT89C52還提供了一個具有多級 通訊功能的全雙工串行接口,可以用作與主控計算機(jī)之間進(jìn)行通訊。由于RS-232串行通信端口是PC機(jī)的標(biāo)準(zhǔn)接口,而且RS-232用作雙向數(shù)據(jù)通信時接線十分簡潔,因此選用RS-232作為通訊接口[4]。但是,RS-232的輸出信號不但有正電壓,還有負(fù)電壓,所以選用半導(dǎo)體公司的RS-232接口芯片MAX232實現(xiàn)信號轉(zhuǎn)換。圖2為汽車駕駛模擬器單片機(jī)系統(tǒng)硬件電路簡圖。
圖2 系統(tǒng)硬件電路簡圖
2.3軟件系統(tǒng)的設(shè)計
汽車駕駛模擬器單片機(jī)軟件系統(tǒng)需要完成模擬量和開關(guān)量的采集和處理、串行數(shù)據(jù)的發(fā)送與接收、控制信號的輸出與顯示、故障的監(jiān)控與保護(hù)等功能。軟件采用模塊化設(shè)計思想,通過匯編語言編制而成,主要由主程序、定時器中斷服務(wù)程序、串行口中斷服務(wù)程序、數(shù)據(jù)采集和處理程序、信號的輸出與顯示程序等幾部分構(gòu)成。
圖3 軟件系統(tǒng)程序流程圖
主程序主要完成系統(tǒng)的初始化工作;定時器中斷服務(wù)程序主要完成看門狗功能,在單片機(jī)發(fā)生異常情況時,能使程序及時復(fù)位,保證單片機(jī)系統(tǒng)能夠正常工作;串行口中斷服務(wù)程序主要實現(xiàn)單片機(jī)與主控計算機(jī)之間的通訊;數(shù)據(jù)采集和處理程序主要完成模擬量和開關(guān)量的采集,獲取駕駛員的操控數(shù)據(jù);信號的輸出與顯示程序?qū)⒅骺赜嬎銠C(jī)的控制信息傳送給單片機(jī),用于控制指示燈和儀表的顯示輸出。圖3為汽車駕駛模擬器單片機(jī)軟件系統(tǒng)的程序流程圖。
3結(jié)論
基于單片機(jī)的數(shù)據(jù)采集系統(tǒng)成本相對較低,接口的可擴(kuò)展性好,同時,模擬量和開關(guān)量的預(yù)處理工作也可以由單片機(jī)來完成。系統(tǒng)完全可以滿足汽車駕駛模擬器的交互性和實時性要求,已在所開發(fā)的汽車駕駛模擬器中得到了應(yīng)用,取得了較好的效果。
模擬信號相關(guān)文章:什么是模擬信號
光電開關(guān)相關(guān)文章:光電開關(guān)原理
評論