朱學華
(安徽工程大學,安徽蕪湖,241000)
單片機課程是一門重要的基礎性實踐教學課程。該課程不僅具有較強的理論體系,也是一門具有很強實踐性的課程,其涉及的知識點多,難度大,對學生的抽象思維和邏輯思維能力要求較高,很多學生在學習時感到困難,為此,我們對這門課程的理論教學、實踐教學、課程設計等方面進行了探索,使用Proteus仿真軟件設計項目式教學法培養學生對單片機的靈活運用能力。
在以往的單片機教學中,由于理論教學與實驗教學分開教學,整個課程的重點在與理論講解,實驗僅作為理論課的驗證。傳統的課堂教學多采用 PPT講解的形式,老師講解學生記錄,但這種灌輸式的教育方式使得學生被動接受、缺乏思考,從而對知識的理解不深,無法靈活運用;實驗課程多采用實驗箱來教學,學生通過閱讀實驗手冊只需接插少量的單片即可完成對硬件電路的搭建,然后加載程序運行得出正確實驗結果。整個實驗過程幾乎是軟硬件分離,實驗現象只是對代碼的驗證。長此以往,學生對單片機運行機制不清,缺乏思考和獨自做項目的能力,最終導致許多學生無法靈活的使用單片機。
單片機教學中存在軟硬件分離的問題,該問題可通過在課堂教學中引入proteus仿真軟件解決。在理論教學的同時,采用Proteus仿真軟件搭建出虛擬的硬件電路,并根據硬件電路在Kei l編譯器中編寫代碼部分。同學們能充分的明白每條代碼的意義,怎樣控制硬件電路。代碼在Kei l中編寫完成后,可通編譯器編譯生成HEX文件,然后將生成的HEX文件加載至Proteus中的虛擬單片機上運行,同時獲得了與實驗課同樣的效果。軟硬件無縫對接,聯合調試是的學生可以直接從工程的角度觀察單片機的軟硬件運行過程,從而達到事半功倍的效果。
Proteus仿真軟件是一款電子設計自動化軟件,它包括原理圖輸入系統ISIS、混合模型仿真器Prospice、虛擬系統模型 VSM等。該軟件具有強大的單片機系統設計與仿真能力。利用該軟件并聯合Keil我們在其中搭建出了一套軟硬件相結合體系進行項目式教學。
針對單片機學習過程中易出現軟件代碼抽象難以理解以及運行機制模糊等問題,通過在課堂中引入Proteus仿真軟件得以解決。在仿真的虛擬的環境中實現了軟硬件的結合,通過仿真運行、單步調試可以更直觀的展示每一條語句執行后外在邏輯表現。同時也省去了實際制作電路板的費用,在節省制作PCB的的同時節省了教學成本,提高了教學質量。
基于Proteus仿真的單片機項目式教學可分為以下幾步。
(1)電路原理圖設計操作。利用Proteus進行單片機系統硬件設計,在ISIS平臺上完成元器件選擇、電路連接、電氣檢測等系統設計工作。
(2)單片機系統程序編寫操作。利用Keil軟件對單片機系統程序進行編寫、編譯、調試,生成hex文件。
(3)對代碼進行編譯,將生成的HEX文件導入Proteus中的虛擬單片機系統上運行,如果實驗現象與預期結果不符,則返回Kei l檢查代碼邏輯并修改,再次編譯后導入虛擬單片機中運行。直至出現正確的實驗現象。
理論結合實際,采用項目式教學能更好的鍛煉學生解決實際問題的能力,同時提升學生的社會競爭力, 而項目是教學的難點在于如何設計合理的訓練項目,即合理的教學內容。這是對項目設計者的考驗,同時也是項目式教學的核心所在,所設計的項目必須從實際應用出發,走產學結合的道路,由淺及深、循序漸進,在輕松學習的同時又提升了將來學生就業的競爭力。
從項目驅動教學的角度合理設計教學項目是重中之重,利用Proteus可設計出多種教學案例,例如DAC0832產生三角波實驗、矩陣鍵盤的狀態讀取實驗、單片機與PC機通信實驗、PCF8591采集模擬量實驗等等。以下給出一個基于PCF8591采集模擬量單片機項目式教學案例。
項目名稱: PCF8591采集模擬量實驗(仿真)
(1)功能要求:通過單片機IO口讀取模擬電壓值,并通過lcd1602液晶顯示器顯示讀取到的模擬電壓。
(2)簡要介紹控制原理。本設計的核心是利用單片機通過PCF8591讀取模擬電壓值,并用液晶顯示器顯示出來。
為了實現對模擬電壓的讀取功能,需要使用PCF8591的AD采樣功能。AD轉換器是模擬量到數字量的轉換的硬件集成電路,主要用于模擬電壓量的采集。它就如同一個標桿,可直接測量出模擬電壓的大小。AD的主要參數有:①AD的位數: 表明這個AD共有2^n個刻度,8位AD輸出的刻度是0~255。②分辨率:就是AD轉換器能夠分辨出的模擬電壓值最小變化量,假有一個5.10V的參考電壓, 那么用8位的AD采樣,它能分辨的最小電壓就是5.10/255=0.02 V。③INL:即積分的非線性度,它代表的是某一數值點上測量值與真實值的最大誤差。也就是輸出數值偏離線性最大的距離,單位是LSB(即最低位所表示的量)。比如12位ADC:TLC2543,INL值為1LSB。④基準源:分為有內部基準源和外部基準源,其作用是供參考的電壓值給AD轉換器用于和帶測量的比較。⑤轉換速率:就是一次電壓模擬量轉換至數字量所需要的時間,轉換周期的倒數即為轉換速率。

圖1 PCF8591采集模擬量硬件電路圖
為了實現顯示讀取的模擬電壓量功能,需要用到顯示器,這里采用lcd1602液晶顯示器顯示。晶液顯示器作為輸出器件有顯示質量高、不需要動態刷新、數字式接口、顯示內容多、功耗低等優點。
(3)PCF8591采集模擬量實驗電路圖設計。根據預定的功能,分析控制原理以及硬件電路,并在Proteus中繪制硬件電路圖。啟動Proteus ISIS程序,進入軟件主界面,選擇實驗所用的元件,如 AT89 C51、 lcd1602、PCF8591、電阻等,在編輯區域按電路原理圖繪制硬件電路。 硬件電路圖如圖1所示。
(4)PCF8591采集模擬量實驗程序流程圖與軟件編程。在編寫代碼之前先畫好程序流程圖,即確定整個軟件系統的架構,硬件資源分配。
首先,編寫系統控制程序。需根據要求并結合圖中的硬件連接進行程序設計在Keil中進行匯編程序的設計。Kei l中集成了C語言和匯編語言的編譯環境,可靈活選用計算機語言進行將軟件流程圖代碼化。如圖2所示。

圖2 Kei l編譯軟件輸入程序界面
其次,軟件代碼可通過Kei l編寫,編譯檢查邏輯錯誤,生成HEX文件。該HEX文件可在Proteus中運行,模擬實現現象。聯合Proteus和kei l對所涉及的單片機系統進行軟硬件聯調,可觀察到程序的運行情況。
如果仿真結果沒有達到預定效果,對與要對軟硬件進行修改,對硬件電路的修改直接在Proteus中進行即可,軟件問題則需要返回到Kei l中進行修改,代碼修改完成后再次編譯形成新的HEX文件重新加載入單片機中運行,再次觀察實驗現象,如此反復至滿足預設功能。
對于學生而言學習單片機主要難在軟件編程方面,對于紙上談兵式的教學方法無疑加大學生對本課程的枯燥感。通過將 Proteus軟件應用到單片機仿真教學中,使得原本枯燥的程序代碼變得更加的生動形象,方便了教師的教與學生的學,加深了學生對軟件程序的理解和硬件結構知識的掌握,提高了學生的學習興趣,對于教學質量的提高起到了事半功倍的效果,同時還可以激發學生的創新能力。
[1]朱嶸濤,徐愛鈞.Proteus仿真軟件在電類專業課程中的應用研究[J].微型機與應用,2017,(08):88-91.
[2]高香梅,劉春梅.基于p roteus和keil的仿真技術在單片機教學中的應用[J].電子世界,2017,(07):88+90.
[3]翟文正.Proteus仿真在高職“電路與模電基礎”課程項目化教學中的應用探索與實踐[J].工業和信息化教育 ,2017,(02):60-64.
朱學華(1986.10--),男,漢,安徽安慶人,講師,博士,主要從事電子技術等本科課程的教學研究工作。