杜路泉
(阿壩師范學(xué)院 電子信息與自動(dòng)化學(xué)院,四川 阿壩州 623002)
信號(hào)發(fā)生器是電子信息領(lǐng)域一種非常重要的實(shí)驗(yàn)儀器。在電子信息專業(yè)中,也是應(yīng)用最廣泛最重要的信號(hào)測試設(shè)備之一,它的功能主要是提供被測電路需要的測試信號(hào)。隨著通信、電子、網(wǎng)絡(luò)行業(yè)的發(fā)展,需要的頻率段逐漸密集,更加要求有高精度、高可靠性的信號(hào)源。信號(hào)發(fā)生器是一種廣泛地應(yīng)用于電路測試、通信測試、教學(xué)實(shí)驗(yàn)測試和控制系統(tǒng)仿真測試等領(lǐng)域的常用信號(hào)源[1]。
在設(shè)計(jì)中主要是以產(chǎn)生常用的波形(正弦波、方波、三角波、鋸齒波)為目的設(shè)計(jì)的簡易信號(hào)發(fā)生器。以STC89C52單片機(jī)為核心和DAC0832數(shù)/模轉(zhuǎn)換相結(jié)合實(shí)現(xiàn)正弦波、方波、三角波和鋸齒波常用波形的產(chǎn)生,以及LCD1602液晶屏顯示波形種類和頻率值。在Keil軟件上對(duì)各種波形的產(chǎn)生以及頻率的改變進(jìn)行程序的編寫,并將程序下載到STC89C52單片機(jī)中。當(dāng)單片機(jī)上電時(shí),接收到外界的指令需要輸出波形,調(diào)節(jié)相應(yīng)的中斷服務(wù)程序在通過數(shù)/模轉(zhuǎn)換以及運(yùn)算放大器處理后,在示波器上得到輸出的波形,并且可以通過按鍵切換波形的類型,在顯示不同的波形時(shí)相應(yīng)的LED燈點(diǎn)亮,以便于識(shí)別當(dāng)前顯示的是哪種波形,給人更加直觀的觀察[2]。
可以實(shí)現(xiàn)信號(hào)發(fā)生器的方法有多種,下面是一些常用實(shí)現(xiàn)信號(hào)發(fā)生器的方案。如表1所示。
鑒于方案1輸出頻率不夠穩(wěn)定,操作復(fù)雜;方案2編寫程序復(fù)雜,成本高;方案3電路復(fù)雜,DDS芯片價(jià)格高。所以選擇方案4的設(shè)計(jì)方法。它軟硬件結(jié)合,使用的幾種元器件都是常用的元器件,成本較低,電路設(shè)計(jì)簡單,容易實(shí)現(xiàn),得到的信號(hào)頻率的穩(wěn)定性和準(zhǔn)確性能得到保證[3~4]。
當(dāng)單片機(jī)上電后,液晶屏上默認(rèn)顯示波形為方波,頻率默認(rèn)為10Hz.當(dāng)按下波形切換按鍵時(shí),進(jìn)行波形的切換。按下設(shè)置頻率步進(jìn)值按鍵時(shí),液晶屏上顯示當(dāng)前頻率。按下對(duì)頻率、步進(jìn)值進(jìn)行加或減的按鍵時(shí),執(zhí)行對(duì)應(yīng)的功能。實(shí)現(xiàn)的大致功能如下:
1)可實(shí)現(xiàn)四種波形的產(chǎn)生:正弦波、方波、三角波和鋸齒波;
2)四種波形的頻率在10~100Hz內(nèi)可調(diào);
3)頻率的步進(jìn)值可以改變;
4)有四個(gè)指示燈分別指示發(fā)出的是哪種波形,方便明了;
5)LCD1602液晶顯示波形種類和頻率值。
表1 信號(hào)發(fā)生器方案分析
在設(shè)計(jì)中采用STC89C52單片機(jī),使用軟件編程的方法實(shí)現(xiàn)波形信號(hào)的輸出。由以下幾部分組成(如圖1所示):鍵盤輸入、LCD顯示、單片機(jī)、數(shù)模轉(zhuǎn)換、運(yùn)算放大與輸出[5~6]。
圖1 信號(hào)發(fā)生器原理框圖
采用STC89C52單片機(jī)芯片設(shè)計(jì)信號(hào)發(fā)生器的中心處理器件,通過C語言編程實(shí)現(xiàn)各種波形的產(chǎn)生,最后通過數(shù)/模轉(zhuǎn)換和運(yùn)算放大電路將波形輸出到示波器,結(jié)構(gòu)簡單,思路清晰[7,8]。根據(jù)設(shè)計(jì)要求,將要實(shí)現(xiàn)的功能分為不同的模塊,各個(gè)模塊間相互協(xié)調(diào),實(shí)現(xiàn)最終的功能。整體電路的原理框圖如圖2所示。
圖2 電路的原理框圖
采用STC89C52單片機(jī)實(shí)現(xiàn)硬件核心,通過Keil uVision5編程的方法實(shí)現(xiàn)軟件的核心功能。通過編程實(shí)現(xiàn)四種波形的切換、頻率的改變以及設(shè)置頻率步進(jìn)值的大小。通過Proteus軟件仿真以及Keil聯(lián)機(jī)調(diào)試后,就可以通過編程器將程序下載到STC89C52的芯片中,這樣就可以完成圍繞該芯片的所有控制[9~10]。
軟件系統(tǒng)的總設(shè)計(jì)思路:初始化時(shí)輸出的波形為正弦波,在LCD1602上顯示波形的種類和初始頻率。最后通過按鍵來實(shí)現(xiàn)波形改變以及頻率的設(shè)置。設(shè)計(jì)的思路如圖3所示。
圖3 軟件設(shè)計(jì)思路圖
通過Proteus仿真軟件以及Keil的聯(lián)機(jī)調(diào)試可以看到初步結(jié)果,在示波器上觀察。
正弦波仿真結(jié)果如圖4所示:
圖4 仿真圖與PCB電路設(shè)計(jì)
按照設(shè)計(jì)原理圖焊接好電路后,下載程序到單片機(jī)中,進(jìn)行測試。示波器的作用就是用來測試設(shè)計(jì)的信號(hào)發(fā)生器輸出的波形是否正常。圖5就是示波器檢測結(jié)果。
圖5 信號(hào)發(fā)生器實(shí)物測試
硬件電路測試完成后,對(duì)數(shù)據(jù)進(jìn)行整理,用示波器顯示的頻率作為真實(shí)值(A0),信號(hào)發(fā)生器LCD1602顯示的頻率為測量值(A1),對(duì)兩者數(shù)據(jù)進(jìn)行觀察、記錄、統(tǒng)計(jì)和分析。下面對(duì)兩者顯示的各個(gè)頻段的數(shù)據(jù)比值(a=A1/A0)、絕對(duì)誤差(ΔA=A0-A1)和相對(duì)誤差(r=ΔA/A0),數(shù)據(jù)記錄如表2所示。
表2 測試結(jié)果記錄表
由表2統(tǒng)計(jì)可得頻率平均相對(duì)誤差如式1:
硬件電路實(shí)現(xiàn)了以STC89C52單片機(jī)為核心,通過C語言編程的方法,按鍵輸入功能,基本上實(shí)現(xiàn)正弦波、方波、三角波和鋸齒波四種波形的產(chǎn)生、波形頻率在10~100Hz內(nèi)可調(diào)以及波形頻率的步進(jìn)值在0.1~10內(nèi)可調(diào)的功能,誤差約為1.2%左右,也可以在液晶頻上顯示出波形的類型和頻率。該硬件電路中仍存在一些不足之處,可以在今后的工作中改進(jìn)。如產(chǎn)生的波形信號(hào)的幅度也可以通過按鍵來改變;可以利用精度更高的D/A轉(zhuǎn)換芯片來提高輸出波形的質(zhì)量。
湖北師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2020年2期