面向對象技術(shù)在單片機系統設計中的應用
2.2.4 雙向通道類(lèi)
雙向通道類(lèi)包括串行通信類(lèi)和預留的I/O類(lèi)。該類(lèi)可以和單片機類(lèi)相互交換數據。本系統的串行通信類(lèi)是RS-232接口,主要由MAX232芯片來(lái)完成該項功能。由于單片機的I/O資源有限,所以在單片機類(lèi)設計中,留出了RAM的0FF00H~0FFFFH的256字節的地址空間做I/O口,供用戶(hù)擴展使用。
2.3消息驅動(dòng)在本系統的實(shí)現
在某個(gè)事件發(fā)生時(shí),監控程序將設置該事件相對應的消息標志,監控程序對這些標志進(jìn)行判斷來(lái)決定執行請求處理的事件。如外部中斷0請求處理中斷的事件的處理:當外部中斷0請求處理時(shí),監控程序暫停當前任務(wù),判斷當前任務(wù)數,如果當前任務(wù)數大于等于MAX_TASK(系統所允許的最大任務(wù)數),刪除優(yōu)先級最小的任務(wù)(優(yōu)先級的級數從0~MAX_TASK-1共有MAX_TASK個(gè),所以不存在優(yōu)先級相同的任務(wù),其中優(yōu)先級級數為0的優(yōu)先級最高),然后針對 INT0的請求設置消息標志(修改消息隊列),并判斷它的優(yōu)先級與當前任務(wù)優(yōu)先級的高低,以決定是否繼續當前任務(wù)。消息驅動(dòng)的實(shí)現如圖2所示:
圖2 消息驅動(dòng)的實(shí)現示意圖
2.4 系統設計
我們將單片機系統類(lèi)對象化,即組合成了一個(gè)通用板,提供了如下資源:64K的RAM和64K的ROM存儲器、4K的flash存儲器、A/D轉換芯片 AD574A和ADC0809的接口、D/A轉換芯片DAC0832的接口、一個(gè)16鍵的鍵盤(pán)接口、8個(gè)外部中斷接口、256個(gè)I/O口、一個(gè)4行16字的字符型液晶顯示器接口、一個(gè)320×240點(diǎn)陣式液晶顯示器接口和一個(gè)RS-232串行通訊口。原理框圖如圖3所示:
圖3 系統原理框圖
2.5 監控程序設計
當外部設備象單片機對象發(fā)送信號時(shí),監控程序必須對鍵盤(pán)操作進(jìn)行解釋?zhuān)缓笳{用相應的功能模塊,完成預定的任務(wù),并通過(guò)顯示等方式給出執行的結果。
系統投入運行的最初時(shí)刻,應對系統進(jìn)行自檢和初始化。開(kāi)機自檢在系統初始化之前執行,如果自檢無(wú)誤,則對系統進(jìn)行正常初始化,通常包括硬件初始化和軟件初始化兩個(gè)方面。硬件初始化工作是對系統中的各種硬件資源設定明確的初始狀態(tài),如對各種可編程芯片進(jìn)行編程、對各I/O端口設定初始狀態(tài)和為單片機的硬件資源分配任務(wù)等。軟件初始化包括對中斷的安排、對堆棧的安排、狀態(tài)變量的初始化、各種軟件標志的初始化、系統時(shí)鐘的初始化和各種變量存儲單元的初始化等。除自檢和初始化之外,監控程序的任務(wù)還有:處理鍵盤(pán)命令、處理接口命令、處理條件觸發(fā)、及時(shí)啟動(dòng)輸出和顯示功能等。
評論