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