基于DDS與單片機(jī)的信號發(fā)生器的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁
基于DDS與單片機(jī)的信號發(fā)生器的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁
基于DDS與單片機(jī)的信號發(fā)生器的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁
基于DDS與單片機(jī)的信號發(fā)生器的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁
基于DDS與單片機(jī)的信號發(fā)生器的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于dds與單片機(jī)的信號發(fā)生器的設(shè)計(jì)參賽隊(duì)員: 陳天元楊維龍王偉健選題:信號源的設(shè)計(jì)和制作(b題)摘 要在信號發(fā)生器的設(shè)計(jì)中,傳統(tǒng)的用分立元件或通用數(shù)字電路元件設(shè)計(jì)電子線路的方法設(shè)計(jì)周期長,花費(fèi)大,可移植性差。本設(shè)計(jì)是用直接數(shù)字頻率合成器(dds)。與傳統(tǒng)的頻率合成方法相比,dds合成信號具有頻率切換時間短、頻率分辨率高、相位變化連續(xù)等諸多優(yōu)點(diǎn)。使用單片機(jī)靈活的控制能力與液晶顯示相結(jié)合,使得可以直觀的控制波形的產(chǎn)生與調(diào)整,帶來了很大的便利。關(guān)鍵詞:單片機(jī),直接數(shù)字頻率合成,液晶ii1、現(xiàn)有元件電源模塊7805,stc89c52單片機(jī),dds直接式數(shù)字合成頻率計(jì),模數(shù)轉(zhuǎn)換器adc0804,160

2、2液晶顯示模塊,獨(dú)立按鍵等。2、設(shè)計(jì)要求一、任務(wù)在給定12v電源電壓條件下,設(shè)計(jì)并制作一個正弦波信號源。二、要求1、基本要求:(1)輸出信號頻率:20hz300khz;(2)信號幅度:負(fù)載50時,輸出電壓峰峰值為13v可調(diào);(3)信號源輸出電阻為50;(4)顯示信號的頻率和幅度。2、發(fā)揮部分:(1)提高信號的輸出頻率至1mhz;(2)提高信號的輸出電壓峰峰值至110v可調(diào)(帶50負(fù)載);(3)自行擴(kuò)展信號源功能。3、可以達(dá)到的效果本設(shè)計(jì)可以將輸出頻率調(diào)整到130 mhz,而由于在超高頻條件下,一般運(yùn)放的帶寬不足以滿足放大波幅的設(shè)計(jì)要求,但是我們通過負(fù)電壓增加電流的方式,使得信號輸出電壓峰峰值為

3、0.7v2.4v可調(diào)。本設(shè)計(jì)可以通過按鍵進(jìn)入設(shè)置模式,左右按鍵移動光標(biāo),上下按鍵加減頻率,再通過旋鈕調(diào)節(jié)幅值,然后按鍵結(jié)束設(shè)置模式,就可以從輸出口輸出我們在設(shè)置模式下給定的波形。4、硬件設(shè)計(jì)4.1、總體設(shè)計(jì)通過stc89c52給定dds頻率,短接dds上j3口,使dds可以輸出穩(wěn)定頻率和幅值的波形,同時通過液晶顯示出幅值與頻率。通過按鍵中斷進(jìn)入波形設(shè)置模式,可以通過按鍵增減與移位調(diào)整液晶屏上的頻率顯示,通過調(diào)整lm348設(shè)置新的幅值,在跳出波形設(shè)置模式時,dds會按照設(shè)置好的波形參數(shù)產(chǎn)生一個新的波形,用以輸出。stc89c52中央處理dds直接式數(shù)字合成頻率計(jì)ad檢測輸出峰峰值lm348為波形

4、調(diào)相,放大或縮小1602液晶顯示頻率和幅值按鍵和旋鈕調(diào)頻調(diào)幅給入設(shè)置中斷4.2、 stc89c52單片機(jī)介紹4.2.1 stc89c52是一種低功耗、高性能cmos8位微控制器,其特性及參數(shù)如下:、1、增強(qiáng)型8051單片機(jī),6時鐘/機(jī)器周期和12時鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051。2、工作電壓:5.5v3.3v(5v單片機(jī))/3.8v2.0v(3v單片機(jī)),此設(shè)計(jì)用的是5v的單片機(jī)。3、工作頻率范圍:040mhz,相當(dāng)于普通8051的080mhz,實(shí)際工作頻率可達(dá)48mhz。4、8k字節(jié)程序存儲空間。5、片上集成512字節(jié)ram。6.通用i/o口(32個),復(fù)位后為:p0

5、/p1/p2/p3是準(zhǔn)雙向口/弱上拉,p0口是漏極開路輸出,作為總線擴(kuò)展用時,不用加上拉電阻,作為i/o口用時,需加上拉電阻。7、isp(在系統(tǒng)可編程)/iap(在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(rxd/p3.0,txd/p3.1)直接下載用戶程序,數(shù)秒即可完成一片。8、共3個16位定時器/計(jì)數(shù)器。即定時器t0、t1、t2。9、具有看門狗功能,pdip封裝。4.2.2 stc89c52各個引腳分布如下圖3-3所示:圖3-3本設(shè)計(jì)主要用的是p0口,(p0口連接數(shù)碼管前要加1千歐的排阻作為上拉電阻)p2.7p2.4口,這12口用于控制數(shù)碼管;p3.2,p3.3,p3.6,

6、p3.7口與adc0804相連接用以接受adc0804轉(zhuǎn)換后的數(shù)字信號;引腳9用以單片機(jī)的復(fù)位電路;p2.0口用以控制蜂鳴器;18,19引腳用以晶振相關(guān)的電路;40和31引腳用以連接+5v電壓。(注:單片機(jī)的核心部分晶振必不可少,并且晶振應(yīng)該盡量靠近單片機(jī),否則將使得單片機(jī)無法正常工作。)4.3 模數(shù)轉(zhuǎn)換器adc0804介紹4.3.1 adc0804規(guī)格及引腳分配圖如下圖3-4所示:圖3-4本設(shè)計(jì)采用的模數(shù)轉(zhuǎn)換器adc0804,它是cmos8位單通道逐次漸近型的模數(shù)轉(zhuǎn)換器,各個引腳的大致功能如下:1、/cs:芯片片選信號,低電平有效,即/cs=0,該芯片才能正常工作。2、/wr:啟動adc08

7、04進(jìn)行adc采樣,該信號低電平有效,即/wr信號由高電平變成低電平時,觸發(fā)一次adc轉(zhuǎn)換。3、/rd:低電平有效,即/rd=0時,可以通過數(shù)據(jù)端口db0db7讀出本次的采樣結(jié)果。4、uin(+)和uin(-):模擬電壓輸入端,模擬電壓輸入接uin(+)端,uin(-)端接地。5、vref/2:參考電壓接入引腳,該引腳可外接電壓也可懸空。6、clkr和clkin:外接rc電路產(chǎn)生模數(shù)轉(zhuǎn)換器所需的時鐘信號,時鐘頻率clk = 1/1.1rc,一般要求頻率范圍100khz1.28mhz。7、agnd和dgnd:分別接模擬地和數(shù)字地。8、/int:中斷請求信號輸出引腳,該引腳低電平有效,當(dāng)一次a/d

8、轉(zhuǎn)換完成后,將引起/int=0,實(shí)際應(yīng)用時,該引腳應(yīng)與微處理器的外部中斷輸入引腳相連(如51單片機(jī)的int0,int1腳),當(dāng)產(chǎn)生/int信號有效時,還需等待/rd=0才能正確讀出a/d轉(zhuǎn)換結(jié)果,若adc0804單獨(dú)使用,則可以將/int引腳懸空。9、db0db7:輸出a/d轉(zhuǎn)換后的8位二進(jìn)制結(jié)果。4.3.2 adc0804的外圍電路如下圖3-5所示:圖3-5如圖3-5所示,圖中的c4為104的電容,其中104表示的是大小為10乘以10的4次方皮法的電容;r4是大小為十千歐的電容。vccref接+5v的電壓,vin(-)和a-gnd以及d-gnd均接地,vref/2不接任何線路,vin(+)接

9、輸入的模擬電壓信號;db0db7分別于單片機(jī)上的p0.0p0.7引腳相連;intr、cs、rd和wr分別連接單片機(jī)的p3.3、p3.2、p3.7及p3.6引腳相連。4.3.3 adc0804轉(zhuǎn)換時序圖如下圖3-6所示:圖3-6adc0804轉(zhuǎn)換主要包含下面三個步驟:1.啟動轉(zhuǎn)換:由圖3-6中的上部“figure 10a”可知,在/cs信號為低電平的情況下,將/wr引腳先由高電平變成低電平,經(jīng)過至少tw(wr)i 延時后,再將/wr引腳拉成高電平,即啟動了一次ad轉(zhuǎn)換。注:正常啟動ad轉(zhuǎn)換/wr的低電平保持時間tw(wr)i的最小值為100ns,即/wr拉低后延時大于100ns即可以,具體做法可

10、通過插入nop指令或者調(diào)用delay()延時函數(shù)實(shí)現(xiàn),不用太精確,只要估計(jì)插入的延時大于100ns即可。2延時等待轉(zhuǎn)換結(jié)束:依然由圖3-6中的上部“figure 10a”可知,由拉低/wr信號啟動ad采樣后,經(jīng)過1到8個tclk+internal tc延時后,ad轉(zhuǎn)換結(jié)束,因此,啟動轉(zhuǎn)換后必須加入一個延時以等待ad采樣結(jié)束。注:內(nèi)部轉(zhuǎn)換時間“internal tc”的時間范圍為6273個始終周期,因此延時等待時間應(yīng)該至少為8+73=81個時鐘周期。本試驗(yàn)時鐘頻率約為fclk=1/1.1r36c15=606khz,其中r36約為150k, c15約為150pf,因此時鐘周期約為tclk=1/fc

11、lk=1.65us。所以該步驟至少應(yīng)延時81*tclk=133.65us. 具體做法可通過調(diào)用delay()延時函數(shù)實(shí)現(xiàn),不用太精確,只要估計(jì)插入的延時大于133.65us即可。3.讀取轉(zhuǎn)換結(jié)果:由圖3-6的下部“figure 10b”可知,采樣轉(zhuǎn)換完畢后,再/cs信號為低的前提下,將/rd腳由高電平拉成低電平后,經(jīng)過tacc的延時即可從db腳讀出有效的采樣結(jié)果。注:tacc的典型值和最大值分別為135ns和200ns,因此將/rd引腳拉低后,等待大于200ns后即可從db讀出有效的轉(zhuǎn)換結(jié)果。具體做法可通過調(diào)用delay()延時函數(shù)實(shí)現(xiàn),不用太精確,只要估計(jì)插入的延時大于200ns即可。4.4

12、單片機(jī)最小系統(tǒng)電路單片機(jī)最小系統(tǒng)電路包括單片機(jī)cpu,復(fù)位電路以及晶振電路,具體電路如下圖3-7所示:圖3-7如上圖所示與第9引腳相連的即為復(fù)位電路,與第18、19引腳相連的為晶振電路。其中y1為晶振,頻率為11.0592mhz。復(fù)位電路中的106是大小為10f的電容,r1為200歐姆的電阻,s1為復(fù)位按鍵。其中g(shù)nd接地,第40和31引腳接+5v電壓。4.5單片機(jī)與模數(shù)轉(zhuǎn)換器的引腳連接電路單片機(jī)與模數(shù)轉(zhuǎn)換器的引腳連接電路如下圖3-8所示:圖3-84.6 dds模塊dds采用串行寫入模式,省下了單片機(jī)的5個io口。4.7液晶1602模塊液晶屏幕光標(biāo)指針對應(yīng)的實(shí)際位置如下:采用串口寫入模式,省下

13、4個io口。back1,back2用來調(diào)整背景光,v0用來調(diào)整液晶中的文字顯示電壓,調(diào)整文字亮度。4.8按鍵設(shè)置采用5個獨(dú)立按鍵作為波形設(shè)置按鍵,一個外部中斷0的按鍵,采用跳變沿觸發(fā)進(jìn)入設(shè)置模式。p0.0按鍵加一,p0.1按鍵減一,p0.2按鍵液晶光標(biāo)左移一位,p0.3按鍵液晶光標(biāo)右移一位,p0.4按鍵跳出頻率設(shè)置,進(jìn)入幅值設(shè)置,再次按下,跳出波形調(diào)試,開始產(chǎn)生波形。4.9整體電路5、系統(tǒng)程序設(shè)計(jì)本設(shè)計(jì)采用c語言編程。程序流程圖:開始液晶與dds模塊初始化,顯示此時的幅值與頻率設(shè)置初值1mhz按下設(shè)置按鍵按鍵控制液晶光標(biāo)左右移動以及數(shù)值加減跳出頻率設(shè)置,進(jìn)入幅值設(shè)置,旋鈕調(diào)整波幅,同時可以在液

14、晶上及時顯示設(shè)置幅值按下break鍵按下break鍵跳出設(shè)置模式,輸出設(shè)置波形頻率與幅值檢測設(shè)置按鍵有無按下6、測試6.1測試儀器:示波器6.2測試方法:按鍵,通過示波器查看波形頻率與幅值是否與液晶顯示值相吻合。左 加右 減調(diào)幅setbreak按下set鍵后進(jìn)入波形設(shè)置模式,分為兩個環(huán)節(jié),先調(diào)整頻率,之后按下break鍵鎖住頻率,通過旋鈕調(diào)整幅值,再按下break鍵鎖住幅值,跳出設(shè)置,產(chǎn)生波形。7、結(jié)束語經(jīng)過幾天的辛勤努力,三人合理分工,我們雖然沒能實(shí)現(xiàn)題目的所有要求,但在調(diào)試的過程中,遇到了很多問題,有硬件上的,也有軟件上的,但在大家的努力下,最終解決了不少問題。由于時間緊,任務(wù)重,不可能做

15、到盡善盡美,系統(tǒng)還可以進(jìn)行很多改進(jìn)。這次競賽增強(qiáng)了我們的實(shí)踐能力和協(xié)作精神,而且懂得了聯(lián)系實(shí)際的重要性,這對我們以后的學(xué)習(xí)和工作大有裨益。雖然我們遇到了很多困難和障礙,但同時也是困難與希望并存,我們將繼續(xù)努力爭取更大的進(jìn)步。附錄:單片機(jī)程序# include # include #include typedef unsigned char byte;typedef unsigned int word;typedef bit bool;sbit add=p00;sbit miu=p01;sbit left=p02;sbit right=p03;sbit keybreak=p04;sbit ad9

16、850_w_clk =p22; /p2.2口接ad9850的w_clk腳/pin7sbit ad9850_fq_up =p21; /p2.1口接ad9850的fq_up腳/pin8sbit ad9850_rest =p20; /p2.0口接ad9850的rest腳/pin12sbit ad9850_bit_data =p23; /p2.3口接ad9850的d7腳/pin25sbit int1=p33;/定義管腳功能 sbit cs=p30;/使能端sbit wr=p36;/寫端口sbit rd=p37;/讀端口sbit rs=p07; /lcdsbit rw=p06;sbit ep=p05;s

17、bit d7=p27;sbit d6=p26;sbit d5=p25;sbit d4=p24;byte dis1=v:00000000 v ;byte dis2=f:01000000 hz;double frequence=1000000;double volt=1.17;void dds(); /dds模塊輸出波形void reset_serial();/dds初始化void wr_serial(unsigned char w0,double frequence); /dds寫入頻率void delay2(int m) /延時1us左右unsigned char i,j;for (i=0;i

18、m;i+)for (j=0;j0;qwe-);bool lcd_bz() /檢測lcd是否忙bool result;rs=0; / 讀忙信號rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();result = (bool)(p2&0xf0)&0x80);ep=0;return(result );lcd_wcmd (byte cmd) /向lcd寫入設(shè)置工作命令while (lcd_bz();rs=0;rw=0;ep=0;_nop_();_nop_();p2=cmd;_nop_();_nop_();_

19、nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;rs=0;rw=0;ep=0;_nop_();_nop_();p2=cmd4;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;lcd_pos (byte pos) /定位lcd光標(biāo)(指針)位置lcd_wcmd (pos|0x80);lcd_wdat (byte dat) /lcd寫數(shù)據(jù)while (lcd_bz();rs=1;rw=0;ep=0;_nop_();_nop_();p2=

20、dat;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0; rs=1;rw=0;ep=0;_nop_();_nop_();dat=dat4;p2=dat;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;lcd_init () /lcd初始化lcd_wcmd (0x28);delay2 (1);lcd_wcmd (0x0f);delay2 (1);lcd_wcmd (0x06);delay2 (1);

21、lcd_wcmd (0x01);delay2 (1);void display()/顯示初始頻率與幅值初值byte i;lcd_init ();delay2 (20);lcd_pos (0x00);i=0;while (dis1i!=0) lcd_wdat (dis1i); i+; lcd_pos (0x40);i=0;while (dis2i!=0) lcd_wdat (dis2i); i+; void display1(); /按鍵調(diào)頻同時顯示void display1()unsigned int i;long int sum=10000000,freq,h; freq=(long int

22、)frequence;for(i=0;i8;i+)lcd_pos (0x40+i+2);h=freq/sum; lcd_wdat (0+h);freq=freq%(sum);sum=sum/10;void display2(); /按鍵設(shè)置模式結(jié)束后,液晶顯示幅值void display2()unsigned int i;long int h,v,sum=1000000;v=(long int)(volt*1000000);for(i=0;i=0);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/寫w3數(shù)據(jù)w=(y8);for(i=0;ii)&0

23、x01;ad9850_w_clk=1;ad9850_w_clk=0;/寫w2數(shù)據(jù)w=(y16);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/寫w1數(shù)據(jù)w=(y24);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/寫w0數(shù)據(jù)w=w0; for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/移入始能ad9850_fq_up=1;ad9850_fq_up=0;void keyboard(); /按鍵觸發(fā)中斷,進(jìn)入波形設(shè)置模式void keyboard()un

24、signed int a=9;lcd_pos (0x40+a);while(1)if(left=0)delay2(20);if(left=0)while(!left);if(a!=2) a-;else a=a+7;lcd_pos (0x40+a);if(right=0)delay2(20);if(right=0)while(!right);if(a!=9) a+;else a=a-7;lcd_pos (0x40+a);if(add=0)delay2(20);if(add=0)while(!add);lcd_pos (0x40+a);if(dis2a=0x39)dis2a=0x30;lcd_wd

25、at (dis2a);frequence=frequence-pow(10,(9-a)*9;lcd_pos (0x40+a);elsedis2a=dis2a+1;lcd_wdat (dis2a);frequence=frequence+pow(10,(9-a);lcd_pos (0x40+a); if(miu=0)delay2(20);if(miu=0)while(!miu);lcd_pos (0x40+a);if(dis2a=0x30)dis2a=0x39;lcd_wdat (dis2a);frequence=frequence+pow(10,(9-a)*9;lcd_pos (0x40+a);elsedis2a=dis2a-1;lcd_wdat (dis2a);frequence=frequence-pow(10,(9-a);lcd_pos (0x40+a); if(keybreak=0)delay2(20);if(keybreak=0)while(!keybreak);break;keybreak=1;lcd_pos (0x40+10);double ad8();/輸出ad最終處理結(jié)果,信號幅值double convert(unsigned char sixteen);/把a(bǔ)d讀數(shù)轉(zhuǎn)化為double型unsigned char

溫馨提示

  • 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

提交評論