王超+楊蓮紅
摘 要: 針對單片機實踐教學中的不足,以單片機演奏“草原上升起不落的太陽”樂曲為例,將Proteus仿真軟件作為一種輔助手段引入到教學中。采用軟硬件協(xié)同調(diào)試和仿真圖表,能有效解決單片機理論知識抽象難懂、理解困難等問題,借助虛擬儀器等測試手段可以提高單片機實踐教學效果,激發(fā)學生的學習興趣。
關(guān)鍵詞: Proteus; 實踐教學; 輔助教學手段; Keil C
中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2014)14?0084?04
Application of Proteus simulation software in MCU practical teaching
WANG Chao, YANG Lian?hong
(Department of Physics, Changji University, Changji 831100, China)
Abstract: By taking an example that “Unsetting Sun Rises on the Grassland” was performed by MCU, the Proteus simulation software as an auxiliary teaching means was introduced into teaching to solve the deficiency in the practical teaching of MCU. The application of hardware and software synergy debugging and emulation chart can effectively solve some problems, such as MCU knowledge abstract and difficult understanding. The learning efficiency of the students can be improved and ttheir learning interest can be stimulated in MCU practical teaching by the aid of virtual instruments and other testing means.
Keywords: Proteus; practical teaching; supplementary teaching means; Keil C
0 引 言
目前,多數(shù)高校單片機原理課程基本采用的是先講理論后實驗的教學方式,其實驗主要采用的是實驗箱來完成,實驗箱提供的是配置好的實驗電路和實驗程序,實驗過程中學生只需按照實驗指導書要求連線和輸入程序,這種實驗完成的多數(shù)是演示性和驗證性的實驗,由于單個實驗項目的學時有限,加上受到客觀條件的限制,設(shè)備、場地、時間等諸多因素制約了實驗的數(shù)量和質(zhì)量,難以有過多的設(shè)計和創(chuàng)新,實驗教學多流于形式,學生積極性不高。
利用仿真軟件Proteus和第三方編程調(diào)試軟件:比如Keil C51等,在沒有硬件的環(huán)境下建立虛擬仿真平臺,為單片機實踐教學提供一個方便靈活的環(huán)境,可以隨時更換仿真元器件,修改電路和程序極為方便,即豐富了實驗內(nèi)容,又能節(jié)約實驗費用,而且仿真成功的電路可以直接在產(chǎn)品開發(fā)中使用。
1 Proteus仿真軟件
英國Labcenter公司開發(fā)的Proteus仿真軟件,實現(xiàn)了混合式的SPICE電路仿真,它將虛擬儀器、高級圖表應(yīng)用、單片機仿真、第三方程序開發(fā)與調(diào)試環(huán)境有機結(jié)合,在搭建硬件模型之前即可在PC上完成原理圖設(shè)計、電路分析與仿真及單片機程序?qū)崟r仿真、測試及驗證[1?3]。
Proteus仿真軟件的調(diào)試方式對比[4?7],如表1所示。
表1 仿真軟件調(diào)試方式對比
2 仿真舉例
以單片機控制歌曲“草原上升起不落的太陽”播放為例,詳細介紹歌曲演奏原理和仿真調(diào)試過程
2.1 單片機實現(xiàn)歌曲演奏的原理
單片機演奏音樂基本都是單音頻率,不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能演奏出各種音色的聲音,音調(diào)和節(jié)拍是單片機奏樂的兩個重要概念,音調(diào)表示了一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間[8]。
若用程序控制單片機的某個I/O口,使其輸出一定頻率的矩形波,經(jīng)放大電路驅(qū)動無源蜂鳴器即可發(fā)出一定頻率的聲音。要產(chǎn)生音頻脈沖,只要計算出某一音頻的周期,將此周期除以2即為半周期的時間,利用定時器實現(xiàn)定時,定時到后將脈沖倒相后從I/O口輸出,重復操作。
2.1.1 T值計算方法
51單片機內(nèi)部有兩個定時/計數(shù)器,T0和T1,定時/計數(shù)器工作于模式1,最大計數(shù)次數(shù)為65 536,改變計數(shù)初值T,就可在I/O引腳得到不同頻率的脈沖。
利用T=65 536-Fi÷2÷Fr 就可以計算出給定頻率下的定時器計數(shù)初值,其中,F(xiàn)i為單片機晶振頻率,一般取12 MHz,F(xiàn)r為要產(chǎn)生的頻率。
2.1.2 不同音符T值的求取
鋼琴鍵盤的大字組音調(diào)從低到高依次是C,#C,D,#D,E,F(xiàn),#F,G,#G,A,#A,B共12個半音,每個等半音的音程是[212=1.059 363 1],即相鄰兩個音調(diào)的相同音符的頻率關(guān)系是:音高的是音低的[212]倍[9]。這個規(guī)律適合所有的音調(diào),比如[#C]調(diào)比C調(diào)高1位,各音符頻率比C調(diào)對應(yīng)音符頻率后推1位,E調(diào)音符頻率比C調(diào)對應(yīng)的音符向后順推4位,根據(jù)表2就可以順利推出其他音調(diào)對應(yīng)的頻率,可以根據(jù)所選的曲目構(gòu)成自己的T值表。