avr波形發(fā)生器_第1頁
avr波形發(fā)生器_第2頁
avr波形發(fā)生器_第3頁
avr波形發(fā)生器_第4頁
avr波形發(fā)生器_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、本設(shè)計從功能簡單、 調(diào)整方便、功能完備出發(fā),采用 Atmega16單片機(jī)。具有 LED 數(shù)字參數(shù)顯示,矩陣鍵盤輸入、小鍵盤微調(diào) / 粗調(diào)頻率值以及占空比,可實現(xiàn)輸 出方波、正弦波、三角波,頻率可調(diào)整,穩(wěn)幅輸出,頻率范圍0.1Hz- 3Mhz ,可粗調(diào)和細(xì)調(diào)頻率值,輸出波形清晰而穩(wěn)定。一、方案設(shè)計1、波形生成方案本設(shè)計的核心問題是信號的程控問題, 其中包括信號頻率、 信號種類的程控。 在 設(shè)計過程中,我們綜合考慮了兩種實現(xiàn)方案:方案一:程控 PWM結(jié)合 D/A 轉(zhuǎn)換。這種方案可以實現(xiàn)三種基本波形。 具體方案如 下:首先通過 AVR的相頻可調(diào) PWM模式產(chǎn)生所需要頻率的方波,通過低通濾 波 電路可

2、以得到頻率可調(diào)的三角波以及正弦波。其優(yōu)點是工作頻率可以做得很高, 頻率范圍可以做得很寬, 也可以得到很高的頻率分辨率; 缺點是使用的濾波電路 要 求通帶可變。方案二:直接數(shù)字頻率合成( DDFS)。DDFS技術(shù)是 60 年代末出現(xiàn)的第三代頻率 合成技術(shù),以 Nyquist 時域中進(jìn)行頻率合成,它可以快速轉(zhuǎn)換頻率, 頻率、相 位、幅度都可以實現(xiàn)程控,便于單片機(jī)控制。缺點是該技術(shù)已經(jīng)比較成熟,而且 有集成電路可以使用,并且如果直接使用單片機(jī)實現(xiàn)則很難達(dá)到高頻率,另 一 方面成本太高。綜合考慮各種因素,選擇第一種方案。2、顯示界面方案 這是決定系統(tǒng)使用是否方便的關(guān)鍵。我們采用的方案是用 LED顯示頻

3、率,信號輸出到示波器上顯示波形。3、輸入方式方案 本系統(tǒng)需要用戶選擇預(yù)設(shè)波形,調(diào)整波形。這對輸入方式提出了較高的要求。 我們采用的方式是大鍵盤輸入方波的頻率,小鍵盤上實現(xiàn)對各種波的頻率調(diào)整。 二、系統(tǒng)設(shè)計1、總體設(shè)計(1) 系統(tǒng)框圖(2) 模塊說明波形產(chǎn)生電路:采用 RC 濾波電路,從 AVR 的 PD4端口讀出波形數(shù)據(jù),經(jīng)過 D/A 轉(zhuǎn)換得到模擬的波形。矩陣鍵盤模塊: 44矩陣鍵盤按下后,引發(fā) INT0 中斷, AVR 讀取鍵值并做出相 應(yīng)反應(yīng)。此方案采用中斷,實時性好。粗調(diào)/ 微調(diào)模塊:;小鍵盤按下后,引發(fā) INT1 軟中斷,可粗調(diào) /微調(diào)頻率值、占 空比,以及調(diào)整檔位值。顯示模塊:采用

4、LED 顯示頻率、占空比、檔位值等。 2、軟件系統(tǒng)(1) 流程圖(2) 方波發(fā)生程序 本程序可產(chǎn)生頻率相位占空比可調(diào)的方波, 頻率可調(diào)得正弦波和頻率可調(diào)的三角 波,其中方波部分是另外兩部分的基礎(chǔ), 調(diào)節(jié)最精細(xì), 功能最全面,程序最復(fù)雜。 方波部分采用 Time1 相頻可調(diào)的 PWM模式,采用 7.3738M的外部晶振。 輸出方波頻率公式其中 OCR1A范圍為 065535,N 為分頻值可取 1,8,64, 256,1024。對 OCR1A的調(diào)節(jié)采用外部中斷 INT1,由于它的數(shù)值比較大我們把它分為 100 檔, 對于前 35 檔每檔有 656 個微調(diào)值,對于以后的檔位每當(dāng)有 655 個微 調(diào)值

5、。按住 OCR1A的檔位加后 OCR1A不斷自加直到 100,按住 OCR1A的檔位減后它會自減直 到 0 ,對于 OCR1A的微調(diào)采用同樣的思路。根據(jù)公式 可算出方波的頻率范圍為 (0.0553686400)占空比占空比公式OCR1B的取值范圍為 0OCR1,A同樣我們將 OCR1B分為 100檔和相應(yīng)的微調(diào)值, 其功能與效果與 OCR1A的調(diào)節(jié)相同。在頻率模式與占空比模式之間轉(zhuǎn)換時我們引入了指示位全局變量 freq_occup ,當(dāng) freq_occup=0 時為頻率調(diào)節(jié)模式,當(dāng)為 1 為占空比模式 .(3) 正弦波發(fā)生程序原理: 上圖所示為一個周期內(nèi)的方波形,其中 C代表占空比。不妨將電

6、壓看作 x 的函數(shù) , 表示為將它傅里葉展開為從公式中可以看出電壓的第一項與占空比成正比, 因此只要采用濾波電路濾去其 他的交變信號,就可以通過調(diào)節(jié)占空比來調(diào)節(jié)輸出的電壓。首先按照下面的公式建立一個正弦波樣本表, 樣本表將一個正弦波的 1/4 周期分 為 90 個點 :const unsigned char sin = 0x0, 0x2, 0x4, 0x6, 0x8, 0xb, 0xd, 0xf, 0x11, 0x13, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x23, 0x25, 0x27, 0x29, 0x2b, 0x2d, 0x2f, 0x31, 0x3

7、3, 0x35, 0x37, 0x39, 0x3b, 0x3d, 0x3f, 0x41, 0x43, 0x45, 0x47, 0x48, 0x4a, 0x4c, 0x4e, 0x4f, 0x51, 0x53, 0x54, 0x56, 0x58, 0x59, 0x5b, 0x5c, 0x5e, 0x5f, 0x61, 0x62, 0x64, 0x65, 0x66, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x74, 0x75, 0x76, 0x77, 0x78, 0x78, 0x79, 0x7

8、a, 0x7a, 0x7b, 0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e 公式如下 :sinn=128 sin(n )根據(jù)此樣品表來調(diào)節(jié) OCR1,B 從而調(diào)節(jié)了占空比:OCR1B= 127+sinn此時 OCR1A的值為 255在一個正弦波周期中采用 360 個樣點,根據(jù)正弦函數(shù)的變化規(guī)律依次取占空比的 合適的值 。在正弦波波形發(fā)生時中周期性的取這 360 個樣點。其中每個樣點保持的時間為P(256 -TCNT0)輸出占空比按正弦規(guī)律變化的方波, 經(jīng)過濾波電路即可得到正弦 波。通過以

9、上分析可得到正弦波的頻率公式從公式中可以看出,可以通過調(diào)節(jié) P 和 TCNT0的值來改變正弦波的頻率。其中 P 取值范圍( 110), TCNT0的范圍為( 0255)(4)三角波發(fā)生程序三角波的原理與正弦波相同, 不過取樣時占空比按線性規(guī)律變化, 在程序正是通 過對占空比取樣值加一實現(xiàn)的。其頻率公式:(5)人機(jī)接口部分a)輸入:包括 4X4 鍵盤和四個獨(dú)立按鍵組成。 大鍵盤:采用 INTO中斷下降沿觸發(fā),在中斷中進(jìn)行行列反轉(zhuǎn)鍵盤掃描,并將掃描到的鍵 值存入頻率數(shù)組,同時賦給 LED顯示數(shù)組中。功能:完成方波頻率的輸入, 以及波形輸出模式和頻率占空比模式的轉(zhuǎn)換。 其中 輸入的頻率前三位是頻率的

10、有效值,最后一位是數(shù)量級(如 1234為 123X104)。 輸入頻率后,會自動轉(zhuǎn)化為與輸入頻率最接近的可輸出值,并顯示到數(shù)碼管上 獨(dú)立按鍵:采用軟中斷,將 PD3設(shè)為輸出。在主函數(shù)中不斷檢測四個鍵中是否有健按下, 一 旦有鍵按下,在程序中令 PORTD3&=0x10即. 完成軟中斷的設(shè)置。在中斷中對相 應(yīng)的參數(shù)進(jìn)行調(diào)整,將調(diào)整值存入對應(yīng)的數(shù)組中,然后將這些數(shù)組中的數(shù)賦給 LED顯示數(shù)組。功能:在頻率模式下可以實現(xiàn)對頻率參數(shù) OCR1A的 100 檔位和對應(yīng)的微調(diào)檔位的 調(diào)整,從而改變頻率。在占空比模式下可以實現(xiàn)對占空比參數(shù) OCR1B的 100 檔 位和對應(yīng)的微調(diào)檔位的調(diào)整, 從而改變占空比

11、。 在正弦和三角波模式下, 可以實 現(xiàn)對 P和 TCNT0的調(diào)整,從而改變正弦波頻率。b)顯示:4位 7段數(shù)碼管沒有鍵按下或者只從大鍵盤輸入時在主函數(shù)中對 LED進(jìn)行動態(tài)掃描。 在按下四位 獨(dú)立按鍵時,由于 INT1中斷時間較長。在 INT1 中斷中也會對 LED進(jìn)行動態(tài)掃描。 在中斷中和正常模式下分別將要顯示的數(shù)存入不同的數(shù)組中。4、系統(tǒng)設(shè)計圖三、系統(tǒng)調(diào)試1、軟件調(diào)試 本系統(tǒng)的程序較長,軟件調(diào)試較復(fù)雜。除了語法差錯和邏輯差錯外, 當(dāng)確認(rèn)程序沒問題時, 將程序下載到單片機(jī), 進(jìn)行 在線仿真。具體采取的是自下到上、 從小到大的調(diào)試方法, 即單獨(dú)調(diào)試好每一個模塊, 然后 再連接成一個完整的系統(tǒng)調(diào)試

12、。2、軟硬聯(lián)調(diào)我們選用了三組 R/C 值進(jìn)行波形的輸出檢測, R/C值如下:參數(shù) 組別RC時間常數(shù) RC第一組10 K100 nF1 ms第二組10 K10 nF100s第三組100 K100 nF10 ms第二組輸出的三角波失真較大,拐彎處太圓滑; 第三組輸出的正弦波不如第一組清晰; 綜上,我們選擇了第一組的參數(shù)。四、系統(tǒng)測試1、測試儀器二蹤示波器: XJ4318函數(shù)信號發(fā)生及檢測器: SG16452、測試數(shù)據(jù) 方波頻率范圍測試預(yù)置頻率 /Hz轉(zhuǎn)換頻率 /Hz輸出頻率 /Hz0.069.910-20.10.11.010-10.10.32.910-10.30.98.910-10.911.01.

13、033.03.09.59.59.510.71.07 1010.7303.00 1030.090.49.04 1090.41001.00 102100.01301.30 102130.11901.90 102190.03333.33 102330.09999.99 102999.01K1.0 10310003.45K3.45 10334529.87K9.88 103988310.7K1.07 10410716K30K2.99 10429.971K90.8K9.21 10492.159K100K9.96 10499.631K321K3.35 105335.123K911K9.21 105921.5

14、89K1M9.21 105921.589K1.23M1.22 1061228.78K2M1.84 1061843.18K2.5M3.68 106超量程3M3.68 106超量程3.6M3.68 106超量程正弦波頻率測試1 14 129 203 3074045749預(yù)置頻率 /Hz輸出頻率 /Hz115204014154445三角波頻率測試預(yù)置頻率 /Hz1141292033074045749輸出頻率 /Hz115204014154445五、結(jié)論由表可以看出,在頻率穩(wěn)定度方面,方波在 0.1Hz100KHz 頻率范圍內(nèi)非常好, 在大于 1MHz 頻率范圍內(nèi)較大誤差;其原因在于高頻附近,步進(jìn)值較

15、大,自動轉(zhuǎn) 換的頻率值與輸入值可能相差較大。正弦波以及三角波模式下在示波器中可看到清晰、 標(biāo)準(zhǔn)的波形, 其頻率也可通過 鍵盤進(jìn)行調(diào)節(jié),由這兩種波形產(chǎn)生的原理知,頻率不能由頻率發(fā)生器進(jìn)行檢測, 由示 波器進(jìn)行目測試,可以初步看出正弦波在輸出在頻率方面不是十分精確, 誤差較大。 原因在于 AVR在輸出這兩種波形時, 需要不斷調(diào)節(jié)占空比, 所以數(shù)碼 管的掃描 顯示干擾了此項要求,導(dǎo)致誤差較大。這個問題可以通過另外加一片 AVR來解決,考慮到成本問題,暫未采用?,F(xiàn)將我們設(shè)計的系統(tǒng)的指標(biāo)及系統(tǒng)實際性能列表如下:方波正弦波三角波頻率范圍0.1Hz100KHz2Hz40Hz2Hz40Hz頻率步進(jìn)誤差大,略誤

16、差大,略占空比范圍01/占空比步進(jìn)/六、問題總結(jié)1. 顯示問題 : 在動態(tài)顯示中出現(xiàn)重影 .原因 : 由于動態(tài)掃描時相鄰 LED亮滅時間過短 ,由于視覺暫留 ,會產(chǎn)生重影 . 解決方案 : 在顯示一位后加一個滅的延遲2. 同時利用多個中斷時 , 某個中斷可用而其他中斷無效 , 或只能中斷中斷一次 . 原因 : 某個中斷被連續(xù)觸發(fā) , 將其他中斷被屏蔽 .解決方案 : 更改觸發(fā)方式3. 強(qiáng)制類型轉(zhuǎn)換后公式計算的數(shù)值嚴(yán)重不準(zhǔn) . 原因 : 強(qiáng)制類型轉(zhuǎn)換舍掉小數(shù)問題若轉(zhuǎn)換后的數(shù)乘一個比較大的數(shù)就會產(chǎn)生很 大的誤差時 .解決方案 : 注意小數(shù)點后面的數(shù)字的取舍問題 . 可以在強(qiáng)制類型轉(zhuǎn)換后加一個四 舍五入的功能以減少誤差 .4. 全局變量初值未賦開機(jī)后讀不到預(yù)期的效果 原因? : 初值未賦會使開機(jī)時狀態(tài)不穩(wěn) 解決方案 : 根據(jù)想要的效果合理賦初值 .5. 十六進(jìn)制和十進(jìn)制比較大小時出錯 .原因? : 不同進(jìn)制的數(shù)除零之外不能比較大小 .解決方案 : 將兩個數(shù)轉(zhuǎn)換為同一進(jìn)制后在比較大小 .6. 在利用正確的公式進(jìn)行計算時達(dá)不到正確的結(jié)果 .原因? : 在計算過程中某種類型的數(shù)字溢出而使結(jié)果錯誤解決方案 ? : 分析公式計算的過程找到溢出的數(shù)值選取正確的類型防止變量溢出7. 在設(shè)置外部中斷后系統(tǒng)不穩(wěn) .原因 : 外部的噪聲或機(jī)械的干擾引發(fā)中斷

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論