樓俊君 程啟明 趙永熹
摘要:該文提出了將仿真軟件PROTEUS應(yīng)用于單片機(jī)實(shí)踐課程教學(xué),并以簡易電子琴的設(shè)計(jì)為實(shí)例說明如何具體應(yīng)用該軟件輔助實(shí)踐教學(xué)。因?yàn)榉抡孳浖娂此?,直觀高效,提高了學(xué)生的學(xué)習(xí)興趣,達(dá)到了事半功倍的效果。
關(guān)鍵詞:仿真軟件;單片機(jī);實(shí)踐
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)30-0091-02
1 前言
單片機(jī)作為微型計(jì)算機(jī)的一個(gè)分支,具有可靠性高、體積小、抗干擾能力強(qiáng)等優(yōu)點(diǎn),現(xiàn)在已經(jīng)廣泛應(yīng)用于工業(yè)控制、智能儀器儀表、機(jī)電一體化等領(lǐng)域。單片機(jī)課程在高校理工科專業(yè)都已普遍開設(shè)。《單片機(jī)系統(tǒng)實(shí)踐》是我院為自動(dòng)化和測控兩個(gè)專業(yè)大學(xué)生開設(shè)的必修課,是學(xué)生完成《單片機(jī)原理》這一理論課程的學(xué)習(xí)后開設(shè)的理論和實(shí)踐結(jié)合的綜合性課程。眾所周知,單片機(jī)課程的學(xué)習(xí)不能僅以接觸了單片機(jī)原理以及單片機(jī)編程語言,就算完成了單片機(jī)的學(xué)習(xí)任務(wù),而應(yīng)以單片機(jī)應(yīng)用系統(tǒng)的開發(fā)與設(shè)計(jì)為學(xué)習(xí)目標(biāo)。單片機(jī)應(yīng)用系統(tǒng)的電路設(shè)計(jì)、PCB板制作、元器件焊接等內(nèi)容,是單片機(jī)應(yīng)用系統(tǒng)的開發(fā)與設(shè)計(jì)的一個(gè)重要環(huán)節(jié),是一個(gè)從硬件到軟件、從理論到實(shí)踐的系統(tǒng)工程,這些也是單片機(jī)課程需要掌握的知識(shí)。因此,與時(shí)俱進(jìn),應(yīng)用新的教學(xué)工具軟件和新的教學(xué)方法,進(jìn)行單片機(jī)實(shí)踐課程的教學(xué)改革,對(duì)提高單片機(jī)課程的教學(xué)質(zhì)量有非常重要的意義。
傳統(tǒng)的單片機(jī)實(shí)踐課程中,學(xué)生編寫的程序需要在硬件電路完成制板、元器件焊接完成的情況下才能進(jìn)行調(diào)試,這樣很不直觀。而且一旦硬件電路有改動(dòng),則要重新制板焊接才能調(diào)試,這需要學(xué)生投入大量的時(shí)間和精力,導(dǎo)致學(xué)生的工作效率不高。
為了解決上述問題,我院使用PROTEUS仿真軟件,建立單片機(jī)虛擬實(shí)驗(yàn)平臺(tái),應(yīng)用于單片機(jī)課程的課堂教學(xué)和實(shí)踐課程中,取得了很好的教學(xué)效果。
Proteus軟件是由英國LABCENTER公司推出的一款功能強(qiáng)大的電子設(shè)計(jì)自動(dòng)化軟件,它具有單片機(jī)系統(tǒng)仿真功能,能夠很好地支持多種單片機(jī),系統(tǒng)器件庫包含大量元器件,并提供了多種虛擬儀器,使得僅用一臺(tái)PC在純軟件環(huán)境中完成單片機(jī)系統(tǒng)設(shè)計(jì)、調(diào)試、運(yùn)行成為可能,是單片機(jī)實(shí)踐課最理想的開發(fā)平臺(tái)。
2 基于仿真軟件PROTEUS的單片機(jī)實(shí)踐教學(xué)實(shí)例
下面就以一款簡易電子琴的設(shè)計(jì)為例介紹PROTEUS在整個(gè)實(shí)踐教學(xué)中的應(yīng)用。這款電子琴基本結(jié)構(gòu)雖然簡單,但是它能夠彈奏出聲音,而且能夠簡單的播放內(nèi)置歌曲,同時(shí)在彈奏和播放的時(shí)候會(huì)顯示出對(duì)應(yīng)的音階,方便尋找音感。這款電子琴比較適用于兒童初學(xué)音樂,內(nèi)置音樂都是旋律簡單但卻又耳熟能詳,方便學(xué)習(xí)。另外設(shè)計(jì)操作簡便,沒有任何復(fù)雜操作,簡單明了,通過簡單的按鍵選擇播放或者彈奏,非常適合作為音樂啟迪玩具,
2.1 電子琴的仿真演示
在課堂提出電子琴如何用單片機(jī)為內(nèi)核設(shè)計(jì)實(shí)現(xiàn)的問題后學(xué)生們都感覺很新奇有趣、貼近生活,然后教師調(diào)出PROTEUS仿真軟件里已經(jīng)畫好的電子琴原理圖在線仿真運(yùn)行,開始仿真后,首先會(huì)看到顯示模塊顯示的預(yù)設(shè)字樣,會(huì)發(fā)現(xiàn)代表著彈奏的LED在亮著,按下矩陣鍵盤的左上角第一個(gè)按鍵后,會(huì)聽到響亮的聲音“dao”,同時(shí)會(huì)顯示出該鍵的鍵號(hào)。若一直按著不送開,它便會(huì)一直響,松開此按鍵,聲音消失。依次按其他的按鍵后,會(huì)發(fā)出“re”“mi”“fa”等不同的聲音,同時(shí)顯示不同的鍵號(hào)。接下來選擇到播放按鍵,按下矩陣鍵盤的一個(gè)按鍵后,代表彈奏的LED燈滅,代表播放的LED會(huì)亮起來,在顯示模塊的上半部分會(huì)顯示變化的字符,也就是不斷變化著的音調(diào),還有歌曲的序號(hào),在下半部分會(huì)顯示出歌曲名字的拼音,與此同時(shí)揚(yáng)聲器會(huì)播放出這首歌的旋律,一首歌曲放完之后,仍然會(huì)處于播放狀態(tài),但是聲音會(huì)停下來,也就是它不會(huì)按著順序自動(dòng)播放,必須要人為的按下按鍵之后,它才可以繼續(xù)的播放。教師可以即興彈奏一首流行歌曲如小蘋果,輕快的旋律響起,自然激發(fā)起學(xué)生的學(xué)習(xí)興趣。
接下來教師就可以趁熱打鐵,介紹電路的工作原理、用到的關(guān)鍵技術(shù)、電路原理圖設(shè)計(jì)、軟件程序設(shè)計(jì)等知識(shí)。從原理上來說,本設(shè)計(jì)以stc89c52型號(hào)的單片機(jī)為控制中心,控制該設(shè)計(jì)的發(fā)聲,顯示等功能。通過電源電路向單片機(jī)等整個(gè)電路系統(tǒng)供電,晶振電路向單片機(jī)提供基準(zhǔn)頻率,保證工作頻率的穩(wěn)定,同時(shí)可以提供時(shí)鐘信號(hào),復(fù)位電路的設(shè)計(jì)防止系統(tǒng)跑飛,可以回到程序的初始位置,通過燒錄電路方便修改程序后,將程序下載到單片機(jī)內(nèi)部,實(shí)現(xiàn)其功能。通過中斷的方式選擇播放還是彈奏,然后掃描矩陣鍵盤確定是哪一個(gè)按鍵按下,通過功放電路播放相應(yīng)的歌曲或發(fā)出相應(yīng)的音階的響聲,顯示電路顯示出相應(yīng)的歌曲名字和對(duì)應(yīng)音符。
2.2 建立PROTEUS原理圖
由之前的分析可以確定電子琴的硬件模塊結(jié)構(gòu)如圖2所示。
在電子琴的設(shè)計(jì)中最關(guān)鍵的技術(shù)就是如何彈奏出音樂。眾所周知,聲音是由振動(dòng)產(chǎn)生的,振動(dòng)的頻率越高,音調(diào)也會(huì)越高,振幅越大,聲音也就會(huì)越大。所以本設(shè)計(jì)的原理就是通過單片機(jī)發(fā)出不同頻率的電流,通過放大器放大電流,通過揚(yáng)聲器將電流的頻率轉(zhuǎn)換為振動(dòng)的頻率,從而能夠發(fā)出不同音調(diào)的聲音。
在本設(shè)計(jì)中若要產(chǎn)生不同的聲音,也就意味著對(duì)于每個(gè)音符都要產(chǎn)生音頻脈沖。音頻脈沖的頻率要與各個(gè)音符的頻率一致,每個(gè)音符都會(huì)對(duì)應(yīng)一個(gè)特定的頻率,單片機(jī)雖然不能直接控制聲音,但是它可以發(fā)出高低電平,而且可以控制高低電平轉(zhuǎn)換時(shí)間。而程序開發(fā)者需要做的就是將音符所對(duì)應(yīng)的頻率,通過T0計(jì)時(shí)器,計(jì)算出固定的時(shí)間,然后轉(zhuǎn)換高低電平信號(hào),自然也就出現(xiàn)了所謂的電平脈沖,然后經(jīng)過揚(yáng)聲器便可以發(fā)出聲音。
2.3 軟件程序設(shè)計(jì)、編譯、調(diào)試和仿真
軟件編程最簡單的理解方式就是人與計(jì)算機(jī)之間的對(duì)話,計(jì)算機(jī)只會(huì)明白編程語言。為了使計(jì)算機(jī)能夠明白人的意圖,人必須要將自己解決問題的思路方法,創(chuàng)新創(chuàng)意以計(jì)算機(jī)的語言傳遞過去,使得計(jì)算機(jī)一步步按照人初始的意愿執(zhí)行下去。本設(shè)計(jì)的編程語言采用的是C語言,是一門高級(jí)語言,非常適合硬件編程。但是單片機(jī)只能理解機(jī)器語言,所以必須使用keil這一款編譯軟件,通過編譯器將C語言轉(zhuǎn)為匯編語言,進(jìn)而翻譯成機(jī)器語言,然后燒錄到單片機(jī)中。
通過畫出流程圖,可以看出整個(gè)程序的編程思路。在確定編程任務(wù)后,不能馬上就去寫程序,更重要的是先理清邏輯,把思路理清楚,避免到編程后期出現(xiàn)錯(cuò)誤,程序混亂的問題。在畫好程序框圖后,對(duì)于程序的修改也會(huì)變得非常的方便,只要明白需要修改的功能,順著程序流程圖的思路,便能很快找到需要修改的部分。
如下圖3所示是主程序設(shè)計(jì)的流程圖。
本設(shè)計(jì)控制播放或者彈奏的按鍵是由中斷來控制的。這樣做的優(yōu)點(diǎn)是通過中斷設(shè)置按鍵處理程序會(huì)得到立即執(zhí)行,會(huì)使按鍵的反應(yīng)速度大大提升。另外重要的是通過檢測下降沿來確定按鍵是否按下,所以又可以達(dá)到一定的消除抖動(dòng)的作用。在中斷程序內(nèi)寫入控制LED燈的程序,有同時(shí)可以判斷是否按鍵是有效的,從而避免出現(xiàn)操作上的失誤。
課堂演示講解成功后,學(xué)生的學(xué)習(xí)興趣正濃,教師應(yīng)布置學(xué)生到實(shí)驗(yàn)室進(jìn)行實(shí)踐,讓學(xué)生先在PROTEUS仿真環(huán)境下調(diào)試通過,再完成實(shí)際電路板的焊接制作。當(dāng)然這個(gè)過程中可能會(huì)出現(xiàn)不少問題,如學(xué)生可能把LED正負(fù)極接錯(cuò)、單片機(jī)引腳接錯(cuò)、編寫的軟件程序有語法錯(cuò)誤編譯失敗等,當(dāng)學(xué)生出現(xiàn)問題時(shí)提倡學(xué)生自己去查找原因,找資料或互相討論,實(shí)在找不到原因時(shí)教師再給予幫助。當(dāng)學(xué)生成功地完成了仿真和實(shí)物后,就十分有成就感,對(duì)單片機(jī)產(chǎn)生濃厚的興趣了。
3 結(jié)論
通過將仿真軟件PROTEUS應(yīng)用于單片機(jī)實(shí)踐課程教學(xué),取得了非常不錯(cuò)的效果。因?yàn)榉抡孳浖娂此茫庇^高效,提高了學(xué)生的學(xué)習(xí)興趣,達(dá)到了事半功倍的效果,值得在后期的實(shí)踐課教學(xué)中推廣。
參考文獻(xiàn):
[1] 樓俊君,程啟明,黃云峰,趙永熹.PROTEUS仿真軟件在單片機(jī)課程創(chuàng)新教改中的應(yīng)用[J].蘭州石化職業(yè)技術(shù)學(xué)院學(xué)報(bào),2017,17(01):64-66.
[2] 王偉.基于PROTEUS與KEIL C51軟件平臺(tái)的單片機(jī)仿真教學(xué)[J].電子制作,2015,13.
[3] 林立.單片機(jī)原理及應(yīng)用——基于Proteus和Keil C[M].北京:電子工業(yè)出版社,2009.
【通聯(lián)編輯:梁書】