高毅
(貴陽學(xué)院 貴州 貴陽 550005)
傳統(tǒng)的低頻信號源或發(fā)生裝置,因其大部分采用模擬電路設(shè)計(jì)的原因,一般具有價(jià)格昂貴、輸出性能欠佳且不便于調(diào)節(jié)等問題,工程應(yīng)用價(jià)值較低。為避免傳統(tǒng)低頻信號源或發(fā)生裝置的上述技術(shù)缺點(diǎn),降低技術(shù)開發(fā)成本和提高技術(shù)開發(fā)效率,文中利用AT89S51可以在線編寫程序的特點(diǎn),結(jié)合了DAC接口技術(shù),設(shè)計(jì)了波形、頻率、相位均調(diào)節(jié)方便并可產(chǎn)生方波、三角波、鋸齒波、正弦波四種波形的技術(shù)方案。這種新的低頻信號源設(shè)計(jì)方案,可以使得波形信號的產(chǎn)生由單片機(jī)查表軟件產(chǎn)生,波形的周期依靠程序設(shè)置來改變,具有線路簡單、結(jié)構(gòu)緊湊、價(jià)格低廉、性能優(yōu)越等優(yōu)點(diǎn)。
文中設(shè)計(jì)目標(biāo)是完成4種波形信號輸出,即正弦波、三角波、方波和鋸齒波,并使其在低頻范圍內(nèi)具有穩(wěn)定穩(wěn)定性好、性能可靠、體積較小、占空比調(diào)節(jié)方便等技術(shù)優(yōu)勢。文中采用鍵盤控制的辦法,來實(shí)現(xiàn)并輸出方波、鋸齒波、三角波和正弦波等信號。另外,對頻率和幅值的變換情況,用鍵盤也能夠較好的進(jìn)行控制和調(diào)整。同時(shí),本文還將其產(chǎn)生的信號參數(shù)用LCD進(jìn)行仿真顯示和調(diào)試。
在設(shè)計(jì)中,首先在函數(shù)中對某個(gè)數(shù)組附值,利用DAC0832來實(shí)現(xiàn)輸出波形信號輸出轉(zhuǎn)換,再經(jīng)過功放濾波模塊處理,這樣的話,就會在示波器上觀察到不同函數(shù)值的波形信號。但是,因?yàn)楹瘮?shù)對數(shù)組中的數(shù)附值之后并不是一次就輸出顯示出來,這就需要編寫AT89S51的控制字,使其開中斷,然后再用計(jì)數(shù)器計(jì)數(shù)。當(dāng)計(jì)數(shù)器溢出時(shí)便提出中斷請求,這時(shí)調(diào)用中斷函數(shù),將數(shù)組中一個(gè)值送到DAC0832中[1]。這樣連續(xù)不斷的送值,最后在示波器上顯示的就是一個(gè)連續(xù)的波形。最后,為了產(chǎn)生不同的波形,利用獨(dú)立按鍵開關(guān)實(shí)現(xiàn)波形的不同頻率,來控制波形的頻率,以及利用滑動(dòng)變阻器來為DAC0832提供不同的參考電壓來實(shí)現(xiàn)不同幅值的波形。
當(dāng)按下“波形選擇”鍵時(shí),發(fā)生外部中斷,并在LCD顯示所對應(yīng)的波形序號,通過AT89S51單片機(jī)執(zhí)行某一段中斷波形發(fā)生程序,向DAC0832轉(zhuǎn)換器的輸入端按一定的規(guī)律發(fā)送數(shù)據(jù),從而在DA0832轉(zhuǎn)換電路的輸出端得到相應(yīng)的電壓波形。再經(jīng)過放大器的放大作用和二階低通濾波電路濾波作用,濾除高次諧波,最后在模擬示波器上顯示出更加光滑平整的目標(biāo)波形。在上述的基礎(chǔ)上,通過選擇按下頻率增加鍵和頻率減少鍵可以改變波形的頻率,再利用滑動(dòng)變阻的分壓作用,改變DAC0832的參考電壓Vref以致改變電流i,即改變參考電壓,使輸出電壓幅度隨i發(fā)生改變,從而實(shí)現(xiàn)幅度的調(diào)節(jié)[2]。
基于單片機(jī)函數(shù)信號發(fā)生器原理接線圖如圖1所示。
文中利用定時(shí)器TMR0定時(shí)中斷與預(yù)設(shè)波形數(shù)據(jù)表配合,來實(shí)現(xiàn)波形生成,將定時(shí)器設(shè)定成定時(shí)方式1,在每次中斷發(fā)生時(shí),對波形數(shù)據(jù)進(jìn)行采集,或者對定時(shí)時(shí)間進(jìn)行調(diào)整。從而實(shí)現(xiàn)當(dāng)前時(shí)刻的波形數(shù)據(jù)的輸出,以及頻率的調(diào)整。
生成方波原理:周期性翻轉(zhuǎn)輸出引腳(端口)的電平,只取兩種電平數(shù)據(jù)極限值之一:0XFF(對應(yīng)輸出高電平),0X00(對應(yīng)輸出低電平)。每次TMR0發(fā)生中斷時(shí),立即翻轉(zhuǎn)端口電平:0XFF-0X00或0X00-0XFF,定時(shí)時(shí)間也不同,輸出波形頻率也不同,所以要改變輸出頻率,就要通過定時(shí)初值來控制中斷時(shí)間完成。
相關(guān)的2個(gè)變量:judge.............//方波當(dāng)前判斷值
DAdata.............//定義為P1口
judge=1,DAdata=0XFF, 正 向 翻 轉(zhuǎn) ;judge=0,DAdata=0X00,負(fù)向翻轉(zhuǎn)。
生成鋸齒波的原理是每次定時(shí)器TMR0發(fā)生中斷時(shí),并將更新后的采樣值立即通過單片機(jī)端口輸出至DAC0832進(jìn)行D/A轉(zhuǎn)換成對應(yīng)模擬電壓。為了控制輸出數(shù)值范圍,當(dāng)采樣值增至8位最大值0XFF即255時(shí),立即將其置0,如此周而復(fù)始連續(xù)的操作,每次從0增至255又返回0,這樣通過D/A轉(zhuǎn)換后的模擬電壓即為鋸齒波波形。對波形頻率的控制可通過改變采樣步進(jìn)值,增加步進(jìn)值,則采樣數(shù)值增幅變大。因此從0~255之間采樣點(diǎn)數(shù)減少,所以完成一個(gè)周期波形所需要時(shí)間相應(yīng)變小,輸出波形頻率增大,反之亦然。但是步進(jìn)若增幅過大,則采樣點(diǎn)數(shù)急劇減少,輸出波形離散化趨勢增加,波形變得不再連續(xù)平滑,因此可在DAC0832轉(zhuǎn)換器輸出端接上濾波電路,以濾除高次諧波,使波形趨于平滑。
相關(guān)的2個(gè)變量:juchibo_tab[].............//鋸齒波數(shù)組
DAdata.............//定義為P1口
其原理與鋸齒波類似,不同的是在于當(dāng)采樣值增加至最大值0XFF(255)時(shí),在隨后的采樣時(shí)刻,采樣值減去步進(jìn)值,以此更新。當(dāng)采樣值減小到0時(shí),在后續(xù)采樣時(shí)刻,采樣值則與步進(jìn)值相加,以此更新。如此周而復(fù)始連續(xù)地操作,采樣值經(jīng)過D/A轉(zhuǎn)換后就能輸出對稱三角波,調(diào)節(jié)頻率的方法和鋸齒波相同[3]。
相關(guān)2個(gè)變量:triangle_tab[]...............//三角波采樣輸出數(shù)組
DAdata.............//定義為P1口
一個(gè)正弦數(shù)值表Table(含256個(gè)元素值),此表是將一個(gè)周期的正弦波離散成256個(gè)采樣值,在每個(gè)采樣時(shí)刻,按索引值序號選取并輸出此表中相應(yīng)的值,經(jīng)D/A轉(zhuǎn)換后輸出與此表值對應(yīng)的模擬電壓信號,則采樣完此表中256個(gè)數(shù)值即可輸出一個(gè)完整周期的正弦波。此處的所引值取代了鋸齒波或三角波中的步進(jìn)值,在調(diào)節(jié)正弦波頻率時(shí)依然有兩種方法:一種是計(jì)數(shù)上限(即調(diào)節(jié)采樣周期),上限值越大,采樣周期越長,輸出波形周期也越長,頻率則越小,反之亦然。第二種是調(diào)節(jié)索引值步進(jìn),增加步進(jìn)值,則采樣數(shù)值增幅變大,因此從0~255之間采樣點(diǎn)數(shù)減少,所以完成一個(gè)周期波形所需要時(shí)間相應(yīng)變小,輸出波形頻率增大,反之亦然。但是步進(jìn)若增幅過大,則采樣點(diǎn)數(shù)急劇減少,輸出波形離散化趨勢增加,波形變得不再連續(xù)平滑,因此可在DAC0832轉(zhuǎn)換器輸出端接上濾波電路,以濾除高次諧波,使波形趨于平滑[4]。
圖1 原理圖Fig.1 Schematic diagram
相關(guān)2個(gè)變量:sine_tab[256]..............//正弦波數(shù)組
DAdata.............//定義為P1口
本設(shè)計(jì)方案的思路是通過Protues軟件仿真來進(jìn)行波形調(diào)試,利用定時(shí)器TMR0定時(shí)中斷與預(yù)設(shè)波形數(shù)據(jù)表配和起來實(shí)現(xiàn)波形的生成,將定時(shí)器設(shè)定成定時(shí)方式1,在每次中斷發(fā)生時(shí),對波形數(shù)據(jù)進(jìn)行采集,或者對定時(shí)時(shí)間進(jìn)行調(diào)整。從而實(shí)現(xiàn)當(dāng)前時(shí)刻的波形數(shù)據(jù)的輸出,以及頻率的調(diào)整。是在keil軟件上編譯,用C語言設(shè)計(jì)程序的源代碼。
下圖2~5即為調(diào)試所得各類波形。
圖2 矩形波Fig.2 Rectangular wave
圖3 鋸齒波Fig.3 Saw tooth wave
圖4 三角波Fig.4 Triangle wave
圖5 正弦波Fig.5 Sine wave
仿真過程中,本設(shè)計(jì)可以實(shí)現(xiàn)預(yù)期的4種常用低頻信號波形的輸出,各輸出波形標(biāo)準(zhǔn)規(guī)范。同時(shí)各種波形的輸出均可實(shí)現(xiàn)調(diào)頻和調(diào)幅操作:對于調(diào)頻操作,在單片機(jī)工作時(shí)鐘頻率為24 MHz條件下,正弦波、鋸齒波、三角波可以在1 kHz以下范圍內(nèi)保持輸出波形不變形,方波的保形頻率范圍則可以達(dá)到2 kHz,對調(diào)幅操作,可以做到4種波形幅值在0~5 V范圍內(nèi)連續(xù)調(diào)節(jié)。
盡管技術(shù)調(diào)試過程中,出現(xiàn)了諸如正弦波、三角波、鋸齒波的頻率在0~1 kHz范圍調(diào)節(jié)可以得到清晰、連續(xù)平整的沒有變形的波形,但是超過這個(gè)范圍輸出的波形會失真變形;不能一次同時(shí)多波形輸出等技術(shù)難題[5]。但是,實(shí)驗(yàn)數(shù)據(jù)仍然表明,文中采用AT89S51單片機(jī)設(shè)計(jì)的方案,是合理可行。同時(shí),從仿真的數(shù)據(jù)結(jié)果和分析來看,新的設(shè)計(jì)技術(shù)方案獲得的輸出低頻波形信號規(guī)整、可靠性較好,符合普通常用低頻信號源基本要求,其實(shí)驗(yàn)結(jié)果是令人滿意的。
另外,在調(diào)試中發(fā)現(xiàn),因DAC0832受到轉(zhuǎn)換位數(shù)和建立時(shí)間的限制,從而引起了輸出波形不夠規(guī)整、前后沿不陡峭等問題[6]。我們認(rèn)為,如果能夠采用其他諸如DAC9881等芯片來提高轉(zhuǎn)換位數(shù)和建立時(shí)間的話,設(shè)計(jì)方案將能夠獲得更加完美的輸出波形。
[1]白延敏.51單片機(jī)典型系統(tǒng)開發(fā)實(shí)例精講[M].北京:電子工業(yè)出版社,2009.
[2]常敏.單片機(jī)應(yīng)用程序開發(fā)與實(shí)踐[M].北京:電子工業(yè)出版社,2009.
[3]唐穎.單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)[M].北京:北京大學(xué)出版社,2008.
[4]周堅(jiān).單片機(jī)項(xiàng)目教程[M].北京:北京航空航天大學(xué)出版社,2008.
[5]邊春元.C51單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.
[6]彭樹生.PIC單片機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2001.