魏鳳旗 李軍紅 洪鎮南

摘要: 以8086CPU為控制核心,選用8255A和DAC0832等集成芯片設計了一種簡易的波形發生器。該波形發生器能產生頻率可調的脈沖波、三角波、鋸齒波、正弦波等,電路簡單,應用方便;并運用了Proteus對系統進行了仿真,仿真實驗結果表明:系統運行效果良好,符合預期,驗證了設計方案的合理性和有效性。
關鍵詞:8086CPU;Proteus;波形發生器
波形發生器是一種常用的信號源,能產生不同頻率的脈沖波、三角波、鋸齒波、正弦波等,廣泛應用于電子電路測量與設計、自動控制系統和實驗教學等領域[1]。從電路形式來看,波形發生器可以由運放和分立元器件構成,也可由微處理器和少許外圍電路構成,后者通過軟件和硬件結合,充分利用軟件的優點,盡可能地減少硬件開銷,性能穩定,方便靈活[2]。
本文采用微處理器8086和DAC0832設計波形發生器,可產生脈沖波、三角波、鋸齒波、正弦波等,波形的頻率可用程序改變,具有電路簡單、結構緊湊、性能優越等特點。
1 硬件設計
系統硬件結構如圖1 所示,以8086CPU為核心進行電路設計,包括輸入模塊、8086控制模塊、數模轉換與運放模塊等三大部分組成。輸入模塊由3個按鍵和8255A構成,實現波形的切換和頻率的步進調節,其中按鍵K1、K2分別實現頻率的增加和減小的調節,K0實現“脈沖波、三角波、鋸齒波、正弦波”的選擇,每按一次向下一種波形切換,并循環進行下去。數模轉換模塊選用8位的D/A 轉換集成芯片DAC0832,將數字量轉換成模擬量輸出,再由運算放大器將電流輸出轉換為電壓輸出,產生各種波形。
2 軟件設計
本系統軟件采用模塊化程序設計方法,功能模塊各自獨立,由主程序和產生波形的子程序組成。 頻率的改變可采用插入延時子程序的方法來實現。系統主程序流程如圖2所示。
2.1 脈沖波產生子程序
8086CPU先向DAC0832輸送00H,D\A轉換器將轉化一個低電平;延時一段時間后,再傳送0FFH,D\A轉換器將輸出一個高電平。
2.2 三角波產生子程序
8086CPU向DAC0832輸送的數據從最小值開始逐漸上升,到達最大值之后再逐漸減小到最小,每輸出一個數據中間插入一定延時。
2.3 鋸齒波產生子程序
與三角波類似,只是鋸齒波到達最大值之后,直接跳到最小值。
2.4 正弦波產生子程序
采用查表法,先把正弦值按順序做好表格,然后依次發送給D/A 轉換器,每輸出一個數據中間插入一定延時。
3 proteus電路仿真
Proteus是英國Lab Center Electronics公司研發的電路分析與仿真的多功能工具[3],Proteus7.5以上的版本新增了最小模式下8086微處理器的仿真。本文在Proteus平臺下,添加了外部匯編語言編譯器MASM32,實現軟硬件聯調。Proteus軟件中設計的系統硬件電路如圖3所示,利用Proteus軟件中的虛擬示波器觀察電路輸出的波形如圖4~7所示。波形效果良好,符合預期,驗證了電路設計的正確性。
4 結語
本設計以8086CPU為控制核心,選用8255A和DAC0832等集成芯片設計了多功能波形發生器,并在Proteus環境下,對系統進行了仿真,仿真實驗結果表明:系統運行效果良好,符合預期,驗證了設計方案的合理性和有效性。
參考文獻:
[1]孫克楠.基于8086的多功能波形發生器的設計[J].科技向導, 2014,21.
[2]洪惠宇.基于單片機的簡易波形發生器電路的設計[J].南京工程學院學報(自然科學版),2012,4.
[3]陳輝,陳梅,等.基于AT89C51單片機波形發生器的Proteus設計[J].自動化與儀器儀表,2012,3.
*通信作者:李軍紅(1971),男,漢族,湖南耒陽人,碩士,副教授,主要從事電力電子技術、電機控制、智能控制及應用等方面的研究工作。