摘要:單片機應用技術所涉及到的實驗實踐環節比較多,而且硬件投入比較大。在具體(ti) 的工程實踐中,如果因為(wei) 方案有誤而進行相應的開發設計,會(hui) 浪費較多的時間和經費。本文以學校單片機課程的實驗教學為(wei) 背景,較為(wei) 全麵地闡述采用仿真實驗的方法。
關(guan) 鍵詞:proteus軟件 單片機 仿真 虛擬實驗室
引 言
單片機課程是機電、自動化等專(zhuan) 業(ye) 的一門重要課程,可以充分體(ti) 現學生利用已學知識解決(jue) 實際工程問題的能力。由於(yu) 該學科是多基礎、多理論的實踐性學科,在教學過程中必須軟件硬件結合,因此有學生感到難學,教師感到難教這樣的尷尬。
現代科技的發展,促進了計算機技術在軟件和硬件上的飛速發展,利用計算機軟件的仿真技術,可以充分地仿真諸如電路的工作等實際的工程問題。作者無意中找到一款軟件Proteus,解決(jue) 了許多的問題,而單片機虛擬實驗室也是以該軟件為(wei) 核心建立起來的。
1 Proteus介紹
Proteus與(yu) 其它單片機仿真軟件不同的是,它不僅(jin) 能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與(yu) 的其它電路的工作情況。因此在仿真和程序調試時,關(guan) 心的不再是某些語句執行時單片機寄存器和存儲(chu) 器內(nei) 容的改變,而是從(cong) 工程的角度直接看程序運行和電路工作的過程和結果。對於(yu) 這樣的仿真實驗,從(cong) 某種意義(yi) 上講,是彌補了實驗和工程應用間脫節的矛盾和現象。
(1)proteus的工作過程
運行 proteus的ISIS程序後,進入該仿真軟件的主界麵。在工作前,要設置view菜單下的捕捉對齊和system下的顏色、圖形界麵大小等項目。通過工具欄中的p(從(cong) 庫中選擇元件命令)命令,在pick devices窗口中選擇電路所需的元件,放置元件並調整其相對位置,元件參數設置,元器件間連線,編寫(xie) 程序;在source菜單的Define code generation tools菜單命令下,選擇程序編譯的工具、路徑、擴展名等項目;在source菜單的Add/remove source files命令下,加入單片機硬件電路的對應程序;通過debug菜單的相應命令仿真程序和電路的運行情況。
(2)Proteus軟件所提供的元件資源
Proteus 軟件所提供了30多個(ge) 元件庫,數千種元件。元件涉及到數字和模擬、交流和直流等,具體(ti) 情況如表1所列。
(3)Proteus軟件所提供的儀(yi) 表資源
對於(yu) 一個(ge) 仿真軟件或實驗室,測試的儀(yi) 器儀(yi) 表的數量、類型和質量,是衡量實驗室是否合格的一個(ge) 關(guan) 鍵因素。在Proteus軟件包中,不存在同類儀(yi) 表使用數量的問題,其提供的儀(yi) 表如表2所列。
除了表2所列的測試儀(yi) 表外,Proteus還提供了一個(ge) 圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與(yu) 示波器相似但功能更多。圖形顯示功能如表3所列。
(4)Proteus軟件所提供的調試手段
Proteus提供了比較豐(feng) 富的測試信號用於(yu) 電路的測試。這些測試信號包括模擬信號和數字信號,如表4所列。
對於(yu) 單片機硬件電路和軟件的調試,Proteus 提供了兩(liang) 種方法:一種是係統總體(ti) 執行效果,一種是對軟件的分步調試以看具體(ti) 的執行情況。
對於(yu) 總體(ti) 執行效果的調試方法,隻需要執行debug菜單下的execute菜單項或F12快捷鍵啟動執行,用debug菜單下的pause animation菜單項或pause鍵暫停係統的運行;或用debug菜單下的stop animation 菜單項或shift-break組合鍵停止係統的運行。其運行方式也可以選擇工具欄中的相應工具進行。
對於(yu) 軟件的分步調試,應先執行 debug菜單下的start/restart debugging 菜單項命令,此時可以選擇step over 、step into 和 step out命令執行程序(可以用快捷鍵F10、F11和ctrl+F11),執行的效果是單句執行、進入子程序執行和跳出子程序執行。在執行了start / restart debuging命令後,在debug菜單的下麵要出現仿真中所涉及到的軟件列表和單片機的係統資源等,可供調試時分析和查看。
2 實驗的組織
在單片機的理論教學和實驗中,所涉及到的內(nei) 容包括了四方麵,即單片機係統資源、軟件技術、硬件接口電路、軟件和硬件結合的應用係統。因此教師在進行教學時,應該充分考慮課程的特點並作合理的模塊劃分,在每次實驗課程前作適當的準備工作,以使教學任務能集中和突出。以下例子中所涉及到的單片機均為(wei) 51係列。
(1)係統資源的實驗教學
任何一種單片機均提供了一定的係統資源。對於(yu) 51係列單片機來講,其所提供的資源是以寄存器和存儲(chu) 器的方式體(ti) 現出來的。對於(yu) 寄存器內(nei) 容的查看,可以采用多種可以模擬仿真51單片機的軟件來實現。對於(yu) Proteus 軟件來講,可以執行在debug菜單下registers菜單項命令打開相應的窗口。對於(yu) 係統內(nei) 部存儲(chu) 器的查看,同樣是執行debug 菜單下的 internal memory 菜單項命令打開相應的窗口。
(2)軟件技術
在軟件技術的實驗中所涉及到的內(nei) 容主要包括對語言中具體(ti) 語句的執行效果驗證、算法的具體(ti) 實現、程序中語法錯誤的檢查和邏輯錯誤的驗證等內(nei) 容。對於(yu) 純軟件的實驗教學內(nei) 容,教師在實驗設置時應充分考慮到學生的能力並作好具體(ti) 的準備工作,以達到預期的教學目的。
例如,對於(yu) 兩(liang) 個(ge) 16位二進製數的乘法運算R4R5×R6R7=R3R4R5R6R7的匯編語言實現。為(wei) 了較為(wei) 直觀地驗證程序執行的正確性,教師在之前應該設計一個(ge) 硬件電路,能完成數據的輸入(帶顯示)和結果的輸出(顯示),並設計主程序、bcd碼到二進製的轉換、二進製碼到bcd碼的轉換、bcd碼到顯示碼的轉換、顯示等程序的設計,學生隻在實驗中進行乘法運算的算法設計並作為(wei) 子程序加入係統中即可。
(3)硬件接口電路
單片機的接口電路所涉及到的知識涵蓋了電子電路設計的相關(guan) 領域,也涉及到單片機應用係統具體(ti) 的工作需要。接口電路部分涉及到線路的連接、元器件的選擇、工作方式的設置、電路工作的穩定性和可靠性、電路的空間需求等等許多方麵的知識和內(nei) 容;但就學生實驗來講,所涉及到的並不需要這麽(me) 全麵。作為(wei) Proteus 仿真軟件,其仿真電路時所模擬的元件真實工作情況,和單片機應用係統的實際工作環境還是有一定的差別。因此隻能根據教學的需要,讓學生自行設計電路並設置其工作方式。其實驗可以通過兩(liang) 種方式組織實施,一是根據具體(ti) 的要求,讓學生設計接口電路並編寫(xie) 相應的程序;一是根據程序的要求,設計單片機接口電路。
例如,對於(yu) 鍵盤輸入和顯示(數碼管)接口電路的設計,可以采用比較多的方法來實現。選擇何種方法,與(yu) 鍵盤中鍵的數量和數碼管的個(ge) 數以及顯示的方式等都有關(guan) 係。選擇一種采用幾種方法都能實現的鍵盤鍵數(如12個(ge) )和顯示位數(如4位或4位半),提出具體(ti) 的諸如必須預留的口地址、成本控製等要求,讓學生自行設計接口電路。當然,對於(yu) 如A/D轉換等接口電路的設計,教師應該在事先設計出單片機電路的其它部分,並以模塊的方式進行處理,給學生提供電路的接口信號。
(4)軟件和硬件結合的應用係統
軟件和硬件的結合,就是一個(ge) 單片機的應用係統了。這一步的實驗可以在課程設計中以課題的方式提出來處理,也可以將其分解成不同的接口部分在接口電路的多次實驗中分次完成。在這一階段,硬件電路的設計已經不是最為(wei) 關(guan) 鍵的了,而軟件係統的設計、調試和運行才是實驗的主要內(nei) 容。因此可以以建議性的意見給出具體(ti) 的硬件電路,並提出該電路所需要完成的具體(ti) 工作,由學生進行軟件的設計和調試。
(5)觀摩實驗
學生自行設計的硬件係統和軟件,一般存在著某方麵的不足,當給出了相應的實驗設計任務後,學生就算能順利的完成,但其中所涉及到的有些方式方法並不能在自己的設計中充分領悟。Protues係統提供了相應的一些範例,比如單片機係統中的計算器示例,當教師講述了其中涉及到的所有(子)程序的功能並將其合理地組織在一起的時候,結合該係統的硬件,將對學生進行程序的設計和係統硬件的設計方法,產(chan) 生比較大的影響。
3 用Proteus軟件虛擬單片機實驗的優(you) 點
采用Proteus 仿真軟件進行虛擬單片機實驗,具有比較明顯的優(you) 勢,如涉及到的實驗實習(xi) 內(nei) 容全麵、硬件投入少、學生可自行實驗、實驗過程中損耗小、與(yu) 工程實踐最為(wei) 接近等。當然其存在的缺點也是有的。
(1)內(nei) 容全麵
內(nei) 容全麵包括其能實驗的內(nei) 容包括軟件部分的匯編、C51等語言的調試過程,也包括硬件接口電路中的大部分類型。對同一類功能的接口電路,可以采用不同的硬件來搭建完成,因此采用Protues仿真軟件進行實驗教學,克服了用單片機實驗教學板教學中硬件電路固定、學生不能更改、實驗內(nei) 容固定等方麵的局限性,可以擴展學生的思路和提高學生的學習(xi) 興(xing) 趣。
(2)硬件投入少,經濟優(you) 勢明顯
對於(yu) 傳(chuan) 統的采用單片機實驗教學板的教學實驗,由於(yu) 硬件電路的固定,也就將單片機的CPU和具體(ti) 的接口電路固定了下來。在單片機的實際教學中,如果要涉及到51係列,也要涉及到PIC16係列,那麽(me) 為(wei) 了教學必然要投入兩(liang) 種單片機的實驗教學板;同時在教學過程中所涉及到的接口電路,也需要有較大的投入和儲(chu) 備,以利於(yu) 實驗的進行和在實驗過程中元件損毀後的更換。Protues所提供的元件庫中,大部分可以直接用於(yu) 接口電路的搭建,同時該軟件所提供的儀(yi) 表,不管在質量還是數量上,都是可靠和經濟的。如果在實驗教學中投入這樣的真實的儀(yi) 器儀(yi) 表,僅(jin) 儀(yi) 表的維護來講,其工作量也是比較大的。因此采用軟件的方式進行教學,其經濟優(you) 勢是比較明顯的。
(3)學生可自行實驗,鍛煉解決(jue) 實際工程問題的能力
實驗能力和實驗設計能力的培養(yang) ,是工科學生解決(jue) 實際工程問題能力中較為(wei) 重要的。傳(chuan) 統的實驗教學中,忽視了學生實驗能力的培養(yang) ,對於(yu) 實驗設計能力的培養(yang) ,則很少涉及到。因此學生學習(xi) 了理論,要想將其應用到實際的工程實踐中,其難度是比較大的。還有,學生畢業(ye) 後想對單片機控製技術或智能儀(yi) 表等有較深的研究和學習(xi) ,如果采用傳(chuan) 統的實驗教學方法,則學生需要購置的設備比較多,增加了他們(men) 學習(xi) 和研究的投入。采用仿真軟件後,學習(xi) 的投入變得比較的小,而實際工程問題的研究,也可以先在軟件環境中模擬通過,再進行硬件的投入,這樣處理,不僅(jin) 省時省力,也可以節省因方案不正確所造成的硬件投入的浪費。
(4)實驗過程中損耗小,基本沒有元器件的損耗問題
在傳(chuan) 統的實驗教學過程中,都涉及到因操作不當而造成的元器件和儀(yi) 器儀(yi) 表的損毀,也涉及到儀(yi) 器儀(yi) 表等工作時所造成的能源消耗。采用Protues仿真軟件進行的實驗教學,則不存在上述的問題,其在實驗的過程中是比較安全的。
(5)與(yu) 工程實踐最為(wei) 接近,可以了解實際問題的解決(jue) 過程
在進行課程設計或進行大實驗的時候,可以具體(ti) 的在Protues中做一個(ge) 工程項目,並將其最後移植到一個(ge) 具體(ti) 的硬件電路中,讓學生了解將仿真軟件和具體(ti) 的工程實踐如何結合起來,利於(yu) 學生對工程實踐過程的了解和學習(xi) 。
(6)大量的範例,可供學生參考處理
在係統的設計時,存在對已有資源的借鑒和引用處理,而該仿真係統所提供的較多的比較完善的係統設計方法和設計範例,可供學生參考和借鑒。同時也可以在原設計上進行修改處理。
(7)協作能力的培養(yang) 和鍛煉
一個(ge) 比較大的工程設計項目,是由一個(ge) 開發小組協作完成的。了解和把握別人的設計意圖和思維模式,是團結協作的基礎。在Proteus中進行仿真實驗時,所涉及到的內(nei) 容並不全是學生獨立設計完成的,因此對於(yu) 鍛煉學生的團結協作意識,是有好處的。
4 一個(ge) 具體(ti) 的課程實踐
該實驗為(wei) 對8051單片機外圍電路進行寫(xie) 數據仿真的電路。課程要求學生設計電路並提供仿真和驗證的方法。
(1)電 路
為(wei) 了簡化電路,將單片機的時鍾電路直接用CLOCK信號處理;對於(yu) 數據的寫(xie) 入,采用邏輯分析的方法進行,電路如圖1所示。
(2)驗證方法
邏輯仿真驗證程序執行的正確性和電路工作的情況,可通過時序圖的方式進行驗證,如圖2所示。
(3)程 序
對1234H單元寫(xie) 入數據AAH,循環進行。
ORG 0
loop1: MOV DPTR,#1234H
MOV A,#0AAH
MOVX @DPTR,A
MOVX A,@DPTR
JMP LOOP1
END
結 語
Proteus 不僅(jin) 可以作為(wei) 學校單片機(電子等)實驗的模擬仿真,也可以作為(wei) 個(ge) 人工作室的仿真實驗。作為(wei) 電子技術或控製類相關(guan) 專(zhuan) 業(ye) 的學生和工程技術人員,在學習(xi) 了該軟件後,可以充分地利用它所提供的資源,幫助自己提高工程應用能力。
在教學中利用該軟件,除了能教單片機的具體(ti) 課程內(nei) 容外,還可以教會(hui) 學生應用該工具的能力,為(wei) 今後的工作打下基礎。