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