【大學(xué)論文】基于51單片機(jī)和DAC0832設(shè)計(jì)多功能低頻函數(shù)信號(hào)發(fā)生器(WORD檔)_第1頁
【大學(xué)論文】基于51單片機(jī)和DAC0832設(shè)計(jì)多功能低頻函數(shù)信號(hào)發(fā)生器(WORD檔)_第2頁
【大學(xué)論文】基于51單片機(jī)和DAC0832設(shè)計(jì)多功能低頻函數(shù)信號(hào)發(fā)生器(WORD檔)_第3頁
【大學(xué)論文】基于51單片機(jī)和DAC0832設(shè)計(jì)多功能低頻函數(shù)信號(hào)發(fā)生器(WORD檔)_第4頁
【大學(xué)論文】基于51單片機(jī)和DAC0832設(shè)計(jì)多功能低頻函數(shù)信號(hào)發(fā)生器(WORD檔)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.基于51單片機(jī)和DAC0832設(shè)計(jì)多功能低頻函數(shù)信號(hào)發(fā)生器 應(yīng)用89S52單片機(jī)和DAC0832進(jìn)行低頻函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)。本設(shè)計(jì)能產(chǎn)生正弦波、鋸齒波、三角波和方波。這里著重介紹正弦波和鋸齒波的生成原理。 DAC0832的介紹:DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè)DA芯片以其價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。D0D7:八位數(shù)據(jù)輸入端ILE:數(shù)據(jù)允許鎖存信號(hào)/CS:輸入寄存器選擇信號(hào)/WR1:輸入寄存器選擇信號(hào)/XFER:數(shù)據(jù)傳送信號(hào)

2、/WR2:DAC寄存器的寫通選擇信號(hào)Vref:基準(zhǔn)電源輸入端Rfb:反饋信號(hào)輸入端Iout1:電流輸出1Iout2:電流輸出2Vcc:電源輸入端AGND:模擬地DGND:數(shù)字地DAC0832結(jié)構(gòu): D0D7:8位數(shù)據(jù)輸入線,TTL電平,有效時(shí)間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會(huì)出錯(cuò)); ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效; CS:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器),低電平有效; WR1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存; XFER:

3、數(shù)據(jù)傳輸控制信號(hào)輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于500ns)有效; WR2:DAC寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由WR1、XFER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時(shí),DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開始D/A轉(zhuǎn)換。 IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化; IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù); Rfb:反饋信號(hào)輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度; Vcc:電源輸入端,Vcc的范圍為+5V+15V; VREF:基準(zhǔn)電壓輸入線,VREF的范圍為-

4、10V+10V; AGND:模擬信號(hào)地 DGND:數(shù)字信號(hào)地DAC0832的工作方式: 根據(jù)對(duì)DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本設(shè)計(jì)選用直通方式。 DAC0832工作時(shí)序: DAC0832內(nèi)部結(jié)構(gòu)圖: 當(dāng)ILE為1時(shí),只有當(dāng)/CS、/WR1都為0時(shí)輸入寄存器才允許輸入;當(dāng)/WR2、/XFER也都為0時(shí),輸入寄存器里的信息才能寫入DAC寄存器。根據(jù)實(shí)際電路圖我們就可以得到DAC0832工作的時(shí)序的程序。如下: P37=0; /P37=CS _nop_(); /P36=WR P36=0; P0=value;

5、(數(shù)據(jù)端口信號(hào)數(shù)值0255) P36=1; _nop_(); P37=1;硬件電路:P0口是數(shù)據(jù)端口,接上拉電阻(其他端口則不用)。電源質(zhì)量要好,質(zhì)量越好的電源,芯片工作就越穩(wěn)定。從LM358運(yùn)放輸出的電壓最大峰峰值就是12V所以在二級(jí)運(yùn)放的放大倍數(shù)要注意跟基準(zhǔn)電壓想匹配,否則輸出信號(hào)會(huì)很容易失真。正弦波的生成:DAC0832產(chǎn)生信號(hào)的原理可以說是ADC0809AD轉(zhuǎn)換的逆過程,但DAC0832生成的信號(hào)是離散的。假設(shè)要生成一個(gè)Y=Asin(2*pi*f*t)的正弦波。adc0832數(shù)據(jù)端口給的數(shù)據(jù)的范圍是0255一共256個(gè)。前0127表示是X軸上方的電壓值(也可能是下方)。那么128255

6、是X軸下方的電壓值。那么我們可以得到數(shù)據(jù)端口的數(shù)值的具體量,即value=127sin(2*pi*f*t)+127;假設(shè)我在X軸上抽樣100個(gè)點(diǎn)(099)(這個(gè)100位的數(shù)組可以用MATALB生成),那么T=100*t(t是離散間隔),所以f=0.01*1/t。抽樣時(shí)可以抽樣更多的點(diǎn),抽樣的點(diǎn)越多,得到的信號(hào)越保真,但信號(hào)的頻率會(huì)有所下降。抽樣的點(diǎn)越少,失真越大,但頻率能成大幅度遞增。怎么選擇,具體情況具體分析。其他的波形也跟正弦波一樣。 程序如下:#includesbit dac_WR=P36;/dac0832的wr端sbit dac_cs=P37;sbit KEY1=P20;sbit KE

7、Y2=P21;bit keyflag;unsigned char i;unsigned char code tab100=127,135,143,151,159,166,174,181,188,195,202,208,214,220,225,230,234,238,242,245,248,250,251,252,253,254,253,252,251,250,248,245,242,238,234,230,225,220,214,208,202,195,188,181,174,166,159,151,143,135,127,119,111,103,95,88,80,73,66,59,52,46

8、,40,34,29,24,20,16,12,9,6,4,3,2,1,0,1,2,3,4,6,9,12,16,20,24,29,34,40,46,52,59,66,73,80,88,95,103,111,119;void getkey(void)/按鍵進(jìn)行中斷時(shí)間的設(shè)置,也就是離散間隔t的設(shè)置if(KEY1=0) /按鍵按下后為電電平 RCAP2L+=10; /調(diào)節(jié)頻率 if(CY=1) RCAP2H+=1; if(KEY2=0) RCAP2L-=10; if(CY=1) RCAP2H-=1; void Timer2_Init() T2CON=0x00; TH2=(65536-300)/256;

9、TL2=(65536-300)%256;RCAP2H=0XFE;RCAP2L=0XDA; /穩(wěn)定在50Hz左右,在這里的中斷時(shí)間就是t。EA=1;ET2=1;TR2=1; void T0_service() interrupt 1TH0=0XEC;TL0=0X77;keyflag=1;void Timer2_service() interrupt 5TF2=0;/清除中斷標(biāo)志位 dac_cs=0;dac_WR=0;P1=tabi;dac_WR=1;i+;dac_cs=1;if(i=100) i=0;void main()Timer2_Init();TMOD=0x01;TH0=0XEC;TL0=

10、0X77;EA=1;ET0=1;TR0=1;while(1) if(keyflag) keyflag=0; getkey(); 本程序需注意:按鍵是低電平有效。定時(shí)器2中斷發(fā)送數(shù)據(jù)給DAC0832,0832在得到一個(gè)數(shù)據(jù)后生成相應(yīng)的電壓值。所以他的中斷時(shí)間決定信號(hào)的頻率,調(diào)節(jié)它的中斷時(shí)間就能調(diào)節(jié)信號(hào)的頻率。其他波形的生成,其他的波形也跟正弦波一樣,但鋸齒波和三角波可以不用查表法,應(yīng)用加減計(jì)算得到就可以得到。下面介紹的是鋸齒波:#include #include sbit DACWR=P36;sbit DACCS=P37;unsigned int i;void DAC_0832(void) DA

11、CCS=0;DACWR=0;P0=i;i+=1; /加以操作得到上升的鋸齒波DACWR=1;_nop_();DACCS=0;if(i=0xff) i=0x7f; /為什么初值是0x7f,其他的行不行。大家自己動(dòng)手試試。void main(void)i=0x7f;while(1) DAC_0832(); DAC0832有著致命的一個(gè)缺點(diǎn)就是輸出的波形里的含有的頻率比較雜亂,常常出現(xiàn)過激的現(xiàn)象。如果你需要精確的信號(hào)的話,那么你必須在信號(hào)輸出端就如濾波器。得到干凈的低頻函數(shù)信號(hào)。如果要作為信號(hào)源的話最好是能就上一級(jí)攻放。效果會(huì)好很多。雖然DAC0832不是非常專業(yè)的函數(shù)信號(hào)發(fā)生芯片,但是它的輸出波形的范圍比較廣,常常能輸出一些,你意想不到得很有意思的信號(hào)曲線

溫馨提示

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

評(píng)論

0/150

提交評(píng)論