杜忠昀
(延邊大學工學院,吉林 延吉 133002)
單片機課程具有很強的實踐性,一般學校都安排一定的實驗學時使學生在實踐過程中更好的掌握相關的理論知識。一般情況下理論課和實驗課是獨立教學,在理論課完成一定學時后,學生再通過實驗課加強理解并驗證相關操作。結合Proteus軟件的特點,在理論課的講授過程中進行仿真演示,更好的加深學生對相關知識的理解。
Proteus是近幾年在國內應用廣泛的一款電子設計自動化軟件,它可以仿真 51 系列、AVR、 PIC等常用的MCU和所有常見的外設。提供了大量的元器件,有RAM、ROM、鍵盤、電動機、LED/LCD顯示、AD/DA 等數千種元器件。Proteus還提供了許多虛擬儀器和分析工具,可以實時顯示系統的輸入和輸出狀態,使用戶在不使用單片機硬件開發板的情況下也可直觀地從Proteus界面看到單片機運行和仿真結果[1]。
低頻函數信號發生器是一種應用較多的實驗室用信號源,應用Proteus仿真設計演示,具有演示功能種類較多,實用性較強等特點,根據設計功能需求,應該可以產生矩形波、鋸齒波、三角波和正弦波幾種常見波形。應該能搞對信號的幅度和頻率進行調節。應用到的單片機知識點主要有:單片機的最小應用系統、D/A轉換、鍵盤及顯示電路的應用、電流電壓轉換等。
在理論課程中應用投影儀將Proteus仿真過程投影到屏幕上,結合信號發生器硬件電路的各部分功能對單片機的引腳功能進行說明。再結合仿真結果,說明應用匯編語言對單片機編程的注意事項。這樣的示例可以使得相關知識點的學習更加清晰易懂,也能夠一定程度上提高學生的學習興趣。
低頻函數發生器要求能夠產生輸出連續模擬的正弦波、三角波、方波、鋸齒波等信號,并且頻率和幅度能夠做相對簡單的變化。采用AT89c51作為系統中心,控制數模轉換器件進行數模轉換輸出,同時,配合中斷鍵盤掃描、LED、滑動變阻器等進行信號選擇,信號標示,頻率調整,幅度調整,最后在輸出端連接電流電壓轉換,集成放大和濾波電路實現波形處理。系統硬件電路圖如圖1所示。

圖1 系統硬件電路圖
系統的D/A轉換功能由DAC0832芯片實現,DAC0832是使用廣泛的8位DAC芯片之一,由美國半導體公司(national scmiconductor corporation)研制, 8位輸入輸入寄存器用于存放CPU送來的數字量,使數字量得到緩沖和鎖存,由加以控制。8位DAC寄存器用于存放待轉換數字量,由控制。8位DA轉換電路由8位T型電阻網絡和電子開關組成,電子開關受8位DAC寄存器輸出控制,T型網絡能輸出與數字量成正比的模擬電流。因此,DAC外部需要接運算放大器才能得到模擬電壓[2]。
運算放大器通常比較小的電壓或者電流放大成比較大的方便后續處理的電壓信號。對于一個給定的運放,輸入失調電壓已經確定了,但是由輸入失調電流所帶來的失調電壓與所采用的電路有關,為了不使用調整電路的情況下減小偏置電流所帶來的失調電壓,應該使同相反相的直流電阻相等,是偏置電流在輸入電阻上的壓降所帶來的失調電壓相互抵消。在低頻內阻信號源放大器中,運放的輸入失調電壓將成為失調電壓的誤差的主要來源,對于高內阻信號源放大器,運放的輸入偏置電流在信號源內阻上壓降成為誤差的主要來源。
在高輸入阻抗的情況下,失調電壓可以采用R2的電阻來調節,利用輸入偏置電流在其上的壓降來對輸入失調電壓做出補償。也就是用這個壓降來抵消輸入失調電壓。第一級運算放大器的作用是將DAC0832輸出的電流信號轉化為電壓信號V1,第二級運算放大器的作用是將V1通過反向放大電路來達到放大(R2/R1)倍的效果。在第二個運算放大器的輸出端連了一個低通濾波器。如果不加低通濾波器,也能夠生成波形,但是產生的信號中毛刺很多,加一個低通濾波器不僅起到的濾波的作用,還起到了平滑的作用。
軟件設計上,根據功能分了幾個模塊編程。模塊主要有:主程序模塊、外部中斷0模塊,外部中斷1模塊,正弦波子模塊,鋸齒波子模塊,三角波子模塊,方波子模塊。首先初始化(外部中斷INT0、INT1、標志位20H),然后根據標志位循環執行相應的波形程序,程序中兩個外部中斷分別起到控制波形和頻率的作用,正弦波實現方法是通過查表的方式實現,事先將要輸出的正弦波的一個周期按相位分成等分成64分,將各點幅值制作成ROM表,儲存在單片機的ROM中,程序運行時按順序進行輸出,具體ROM表可以通過MATLAB來生成。變頻是函數發生器的主要功能之一,它是通過軟件的方法來實現;具體而言,在延時子程序中加入一個變量參數,來改變延時時間來達到改變頻率的目的。例子中工作寄存器R5為延時子程序中的變量參數,同時只有在外部中斷響應INT0中才可以改變R5的值。
完成Proteus的軟硬件聯調后,系統的仿真波形如圖2所示,從圖中可以看出系統可以生產正弦波、鋸齒波、三角波、方波。

圖2 系統仿真波形
通過Proteus仿真設計低頻函數發生器的設計舉例,在單片機的理論課教學過程中引入了應用單片機設計實例的整個過程,一方面使學生直觀的對應用單片機開發具有特定功能的簡單的系統有了一定的了解,另一方面對單片機的幾個主要知識點,如D/A轉換,I/O口的應用,中斷系統的應用都有了十分詳細的示例分析,加深學生的理解。將Proteus仿真軟件引入到單片機教學的理論課程中,可以更好的銜接單片機實驗與理論教學環節,獲得較好的教學效果。
[1]馬華玲.Proteus+Kei l在單片機教學中的應用[J].高等函授學報(自然科學版),2012(04).
[2]賈莉娜,王燕,劉震.Proteus軟件在單片機實踐性教學環節中的應用[J]. 遼寧科技學院學報,2010(03).