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