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

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

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