杜忠昀
(延邊大學(xué)工學(xué)院,吉林 延吉 133002)
單片機(jī)課程具有很強(qiáng)的實踐性,一般學(xué)校都安排一定的實驗學(xué)時使學(xué)生在實踐過程中更好的掌握相關(guān)的理論知識。一般情況下理論課和實驗課是獨(dú)立教學(xué),在理論課完成一定學(xué)時后,學(xué)生再通過實驗課加強(qiáng)理解并驗證相關(guān)操作。結(jié)合Proteus軟件的特點(diǎn),在理論課的講授過程中進(jìn)行仿真演示,更好的加深學(xué)生對相關(guān)知識的理解。
Proteus是近幾年在國內(nèi)應(yīng)用廣泛的一款電子設(shè)計自動化軟件,它可以仿真 51 系列、AVR、 PIC等常用的MCU和所有常見的外設(shè)。提供了大量的元器件,有RAM、ROM、鍵盤、電動機(jī)、LED/LCD顯示、AD/DA 等數(shù)千種元器件。Proteus還提供了許多虛擬儀器和分析工具,可以實時顯示系統(tǒng)的輸入和輸出狀態(tài),使用戶在不使用單片機(jī)硬件開發(fā)板的情況下也可直觀地從Proteus界面看到單片機(jī)運(yùn)行和仿真結(jié)果[1]。
低頻函數(shù)信號發(fā)生器是一種應(yīng)用較多的實驗室用信號源,應(yīng)用Proteus仿真設(shè)計演示,具有演示功能種類較多,實用性較強(qiáng)等特點(diǎn),根據(jù)設(shè)計功能需求,應(yīng)該可以產(chǎn)生矩形波、鋸齒波、三角波和正弦波幾種常見波形。應(yīng)該能搞對信號的幅度和頻率進(jìn)行調(diào)節(jié)。應(yīng)用到的單片機(jī)知識點(diǎn)主要有:單片機(jī)的最小應(yīng)用系統(tǒng)、D/A轉(zhuǎn)換、鍵盤及顯示電路的應(yīng)用、電流電壓轉(zhuǎn)換等。
在理論課程中應(yīng)用投影儀將Proteus仿真過程投影到屏幕上,結(jié)合信號發(fā)生器硬件電路的各部分功能對單片機(jī)的引腳功能進(jìn)行說明。再結(jié)合仿真結(jié)果,說明應(yīng)用匯編語言對單片機(jī)編程的注意事項。這樣的示例可以使得相關(guān)知識點(diǎn)的學(xué)習(xí)更加清晰易懂,也能夠一定程度上提高學(xué)生的學(xué)習(xí)興趣。
低頻函數(shù)發(fā)生器要求能夠產(chǎn)生輸出連續(xù)模擬的正弦波、三角波、方波、鋸齒波等信號,并且頻率和幅度能夠做相對簡單的變化。采用AT89c51作為系統(tǒng)中心,控制數(shù)模轉(zhuǎn)換器件進(jìn)行數(shù)模轉(zhuǎn)換輸出,同時,配合中斷鍵盤掃描、LED、滑動變阻器等進(jìn)行信號選擇,信號標(biāo)示,頻率調(diào)整,幅度調(diào)整,最后在輸出端連接電流電壓轉(zhuǎn)換,集成放大和濾波電路實現(xiàn)波形處理。系統(tǒng)硬件電路圖如圖1所示。
圖1 系統(tǒng)硬件電路圖
系統(tǒng)的D/A轉(zhuǎn)換功能由DAC0832芯片實現(xiàn),DAC0832是使用廣泛的8位DAC芯片之一,由美國半導(dǎo)體公司(national scmiconductor corporation)研制, 8位輸入輸入寄存器用于存放CPU送來的數(shù)字量,使數(shù)字量得到緩沖和鎖存,由加以控制。8位DAC寄存器用于存放待轉(zhuǎn)換數(shù)字量,由控制。8位DA轉(zhuǎn)換電路由8位T型電阻網(wǎng)絡(luò)和電子開關(guān)組成,電子開關(guān)受8位DAC寄存器輸出控制,T型網(wǎng)絡(luò)能輸出與數(shù)字量成正比的模擬電流。因此,DAC外部需要接運(yùn)算放大器才能得到模擬電壓[2]。
運(yùn)算放大器通常比較小的電壓或者電流放大成比較大的方便后續(xù)處理的電壓信號。對于一個給定的運(yùn)放,輸入失調(diào)電壓已經(jīng)確定了,但是由輸入失調(diào)電流所帶來的失調(diào)電壓與所采用的電路有關(guān),為了不使用調(diào)整電路的情況下減小偏置電流所帶來的失調(diào)電壓,應(yīng)該使同相反相的直流電阻相等,是偏置電流在輸入電阻上的壓降所帶來的失調(diào)電壓相互抵消。在低頻內(nèi)阻信號源放大器中,運(yùn)放的輸入失調(diào)電壓將成為失調(diào)電壓的誤差的主要來源,對于高內(nèi)阻信號源放大器,運(yùn)放的輸入偏置電流在信號源內(nèi)阻上壓降成為誤差的主要來源。
在高輸入阻抗的情況下,失調(diào)電壓可以采用R2的電阻來調(diào)節(jié),利用輸入偏置電流在其上的壓降來對輸入失調(diào)電壓做出補(bǔ)償。也就是用這個壓降來抵消輸入失調(diào)電壓。第一級運(yùn)算放大器的作用是將DAC0832輸出的電流信號轉(zhuǎn)化為電壓信號V1,第二級運(yùn)算放大器的作用是將V1通過反向放大電路來達(dá)到放大(R2/R1)倍的效果。在第二個運(yùn)算放大器的輸出端連了一個低通濾波器。如果不加低通濾波器,也能夠生成波形,但是產(chǎn)生的信號中毛刺很多,加一個低通濾波器不僅起到的濾波的作用,還起到了平滑的作用。
軟件設(shè)計上,根據(jù)功能分了幾個模塊編程。模塊主要有:主程序模塊、外部中斷0模塊,外部中斷1模塊,正弦波子模塊,鋸齒波子模塊,三角波子模塊,方波子模塊。首先初始化(外部中斷INT0、INT1、標(biāo)志位20H),然后根據(jù)標(biāo)志位循環(huán)執(zhí)行相應(yīng)的波形程序,程序中兩個外部中斷分別起到控制波形和頻率的作用,正弦波實現(xiàn)方法是通過查表的方式實現(xiàn),事先將要輸出的正弦波的一個周期按相位分成等分成64分,將各點(diǎn)幅值制作成ROM表,儲存在單片機(jī)的ROM中,程序運(yùn)行時按順序進(jìn)行輸出,具體ROM表可以通過MATLAB來生成。變頻是函數(shù)發(fā)生器的主要功能之一,它是通過軟件的方法來實現(xiàn);具體而言,在延時子程序中加入一個變量參數(shù),來改變延時時間來達(dá)到改變頻率的目的。例子中工作寄存器R5為延時子程序中的變量參數(shù),同時只有在外部中斷響應(yīng)INT0中才可以改變R5的值。
完成Proteus的軟硬件聯(lián)調(diào)后,系統(tǒng)的仿真波形如圖2所示,從圖中可以看出系統(tǒng)可以生產(chǎn)正弦波、鋸齒波、三角波、方波。
圖2 系統(tǒng)仿真波形
通過Proteus仿真設(shè)計低頻函數(shù)發(fā)生器的設(shè)計舉例,在單片機(jī)的理論課教學(xué)過程中引入了應(yīng)用單片機(jī)設(shè)計實例的整個過程,一方面使學(xué)生直觀的對應(yīng)用單片機(jī)開發(fā)具有特定功能的簡單的系統(tǒng)有了一定的了解,另一方面對單片機(jī)的幾個主要知識點(diǎn),如D/A轉(zhuǎn)換,I/O口的應(yīng)用,中斷系統(tǒng)的應(yīng)用都有了十分詳細(xì)的示例分析,加深學(xué)生的理解。將Proteus仿真軟件引入到單片機(jī)教學(xué)的理論課程中,可以更好的銜接單片機(jī)實驗與理論教學(xué)環(huán)節(jié),獲得較好的教學(xué)效果。
[1]馬華玲.Proteus+Kei l在單片機(jī)教學(xué)中的應(yīng)用[J].高等函授學(xué)報(自然科學(xué)版),2012(04).
[2]賈莉娜,王燕,劉震.Proteus軟件在單片機(jī)實踐性教學(xué)環(huán)節(jié)中的應(yīng)用[J]. 遼寧科技學(xué)院學(xué)報,2010(03).