摘要:為了設計一款結構簡單、性能優良的信號發生器。采用了AT89C51單片機為控制核心。在Proteus下仿真可以產生正弦波、方波、三角波、鋸齒波,而且可以方便地設定輸出信號的頻率及幅度,得到的輸出波形失真度低,頻譜純度高。
關鍵詞:信號發生器;D/A轉換;AT89C51;頻率;幅度
0 引言
在計算機控制技術、電子技術飛速發展的今天,信號發生器的應用越來越廣,對信號發生器的頻率穩定度、頻譜純度、頻率范圍和輸出信號的頻率微調分辨率提出越來越高的要求,普通的頻率源已經不能滿足現代電子技術的高標準要求。國內外紛紛設計制作先進的信號發生器,從實用價值來看,各高校中信號發生器應用極為廣泛,能夠設計出低成本、高精度的信號發生器并推廣使用具有非常重要的意義。
基于單片機的信號發生器的設計,以性價比相對較高的AT89C51單片機為核心,以簡單、廉價的元器件構筑,能夠產生高精度、高純度的方波、三角波、鋸齒波、正弦波,同時可以實現波形自由切換,以及頻率和幅度在線調整。目前購買的信號發生器價格昂貴,功能強大,實際在高校開展實驗過程中用到最多的是低頻函數信號發生器。如果能夠在高校實驗領域應用本文設計的儀器取代它們,將具有重要的實際意義。
1 系統硬件設計
信號發生器的設計涉及到程序固化與存儲能力、電源電路設計、波形選擇電路、時鐘電路與復位電路、波形轉換與電壓放大功能、輸出控制電路等部分。系統總體設計框圖如圖1所示。
其中復位電路通過確定的電壓值啟動復位操作,同時排除瞬間干擾的影響,又有防止MCU在電源啟動和關閉期間的誤操作有效,保證數據安全。輸入電路用于檢測各按鍵與撥動開關的狀態,并通過運算處理實現相應控制,顯示電路用于顯示波形頻率與幅度。DAC0808是系統的核心部分,為使芯片正常工作,必須提供一個基準頻率,可以是晶體振蕩器也可以是高精度振蕩電路。為了使信號輸出有一定的幅度與功率,在波形產生電路后增加放大電路模塊,放大電路可以增加輸出信號的準確度,具有更好的控制特性與準確性。為了對輸出波形進行選擇,由單片機控制多路模擬開關輸入四路信號中的一路。將輸入信號經電路轉換后送入單片機。
2 系統軟件設計
2.1 系統主程序流程圖
信號發生器的軟件設計包括按鍵處理程序、正弦波產生程序、方波產生程序、三角波產生程序、鋸齒波產生程序幾個主要部分。主程序的主要功能接收用戶鍵盤輸入的數據(信號參數的預制、選擇)和控制指令,單片機發送數據及控制指令,按要求輸出信號。系統主程序流程圖如圖2所示。
根據功能要求,本軟件設計了按鍵輸入程序,用戶可通過DIP開關設置輸出信號的頻率,或選擇輸出正弦波、方波、三角波、鋸齒波等。當用戶設定輸出時,程序把參數送至單片機,并對單片機發出控制命令使其按要求輸出需要的信號。
主程序模塊主要完成的任務是對系統的初始化,初始化同時掃描是否有相應的功能鍵按下,如有,則轉入相應的功能子程序進行相應的操作。
2.2 系統仿真
在PROTEUS電子設計平臺下,先繪制電路,然后對設計的程序進行編譯,生成*.HEX文件,加載到單片機中,得到的仿真圖如圖3所示。
2.2.1 波形選擇仿真
在運行過程中,改變接在P3口的拔碼開關,得到仿真結果如圖4所示。
2.2.2 波形頻率調整
在運行過程中,通過改變P2口的值,觀察波形的頻率變化,圖5是正弦波頻率變化的情況。
2.2.3 幅值調整
在運行中,通過調整RV1的值,觀察到波形幅度發生改變,圖6是當RV1分別處于20%和50%時的正弦波波形。
3 結語
基于AT89C51的信號發生器可以輸出正弦波、方波、三角波、鋸齒波,波形失真小,幅值輸出準確,波形頻率穩定度取決于頻率基準信號,輸出信號失真度低,在低頻到高頻部分都能有較好波形輸出,達到了預期的設計目的。這種信號發生器操作簡單,顯示直觀而且價格低廉、可靠性高、靈活性好,具有很大的應用價值。