版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
-.z.-----總結(jié)資料摘要本系統(tǒng)是基于STC89C52單片機(jī)利用DDS的合成原理的低頻信號發(fā)生器。采用STC89C52單片機(jī)作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路〔DAC0832〕、運(yùn)放電路〔LM358〕、按鍵等構(gòu)成整個系統(tǒng)。通過按鍵控制可產(chǎn)生方波、三角波、正弦波、鋸齒波并可以微調(diào)頻率大小。通過上位機(jī)可以通過PC可以選擇波形和波形的頻率。其設(shè)計簡單、性能優(yōu)好,頻率的精度由DA和系統(tǒng)時鐘大小決定,所以很易的實(shí)現(xiàn)精度調(diào)整,系統(tǒng)的性價比高,可用于多種需要低頻信號的場所,具有一定的實(shí)用性。關(guān)鍵詞 :STC89C52;DAC0832;LM358;DDS-.z.目錄摘要I關(guān)鍵詞I1.設(shè)計任務(wù)與要求12.方案設(shè)計與論證12.1系統(tǒng)信號發(fā)生的方案設(shè)計12.2系統(tǒng)控制芯片的方案設(shè)計13硬件系統(tǒng)模塊及理論分析23.1總體設(shè)計框架23.2最小系統(tǒng)模塊電路23.3DAC0832模塊電路33.4按鍵電路34.系統(tǒng)軟件設(shè)計44.1主流程圖54.2軟件模擬仿真64.3方波仿真圖64.4按鍵檢測原理7總結(jié)7參考文獻(xiàn)8附件9I源程序9II總電路圖17III總圖PCB18IV元器件清單18-.z.1.設(shè)計任務(wù)與要求①利用單片機(jī)組成一個多波信號發(fā)生器。②能輸出的波形為三角波、鋸齒波、方波、正弦波。③輸出波形頻率f=1~100Hz、。④輸出波形頻率通過PC機(jī)設(shè)置。2.方案設(shè)計與論證2.1系統(tǒng)信號發(fā)生的方案設(shè)計方案一、通過專用DDS芯片如AD9850作為信號發(fā)生器件,用專用芯片的特點(diǎn)是,產(chǎn)生的信號頻率范圍寬,可以產(chǎn)生很高的頻率,頻率的精度高。但是價格比擬貴。方案二、通過產(chǎn)生PWM產(chǎn)生方波,通過低通濾波器變?yōu)檎也?,在加上其他外圍電路可產(chǎn)生三角波、鋸齒波、方波、正弦波。可實(shí)現(xiàn)題目要求,這種設(shè)計價格便,但是外圍比擬復(fù)雜,頻率不好控制。方案三、通過單片機(jī)外圍加上DA芯片代替專用的DDS芯片,同樣應(yīng)用DDS信號合成原理產(chǎn)生任意想要的信號,這樣構(gòu)造的系統(tǒng)簡單,用廉價的DAC0832就可產(chǎn)生滿足題目要求的低頻信號。結(jié)論:通過上述三個方案可以知道,用專用DDS芯片合成性能比擬高,價格貴,用于本設(shè)計就大材小用,用PWM價格廉價,但是性能不好,所以屬于中間的DA芯片是理想的選擇。2.2系統(tǒng)控制芯片的方案設(shè)計方案一、選用STM32作為控制芯片,STM32內(nèi)部資源豐富,時鐘速度快,是一塊性價比極高的芯片,用本系統(tǒng)會使得系統(tǒng)速度提升。盡管性價比高,還是比傳統(tǒng)51單片機(jī)要貴點(diǎn),控制指令多,相對于51單片機(jī)來說程序要比擬復(fù)雜。方案二、選用STC公司的51單片機(jī),STC89C52是對傳統(tǒng)51做了增強(qiáng),但是與傳統(tǒng)51是兼容的,所以指令簡單易于操作,12MHZ的系統(tǒng)完全滿足題目涉及要求。結(jié)論:通過上述可以知道,STM32’性價比高,性能強(qiáng)大,但是用本系統(tǒng)是大材小用,而STC89C52則完全能滿足題目要求而且價格比STM32要廉價,所以本設(shè)計選用STC89C52作為控制芯片。3硬件系統(tǒng)模塊及理論分析3.1總體設(shè)計框架圖3.1總體系統(tǒng)框架是由按鍵、最小系統(tǒng)模塊、DAC0832、轉(zhuǎn)串口模塊組成,這樣就可以實(shí)現(xiàn)多函數(shù)輸出和PC機(jī)通信。按鍵是為了實(shí)現(xiàn)波形的切換和頻率的大小調(diào)節(jié),最小系統(tǒng)是系統(tǒng)的主控制模塊,是溝通按鍵、DAC0832模塊、PC機(jī)的主控模塊,是系統(tǒng)必不可少的模塊。轉(zhuǎn)串口模塊式為了實(shí)現(xiàn)單片機(jī)與PC的通信,PC可以通過上位機(jī)控制波形的選擇和頻率大小設(shè)置。3.2最小系統(tǒng)模塊電路圖3.2圖3.2是STC89C52的最小系統(tǒng)圖,組成局部有時鐘電路和復(fù)位電路。實(shí)現(xiàn)的功能是控制DAC0832的模擬輸出量的大小和輸出的頻率,以產(chǎn)生方波、三角波、正弦波、鋸齒波,并通過與轉(zhuǎn)串口電路的結(jié)合以實(shí)現(xiàn)與PC機(jī)之間的通信。3.3DAC0832模塊電路圖3.3上圖中DAC0832電路的接法是直通型接法,這種接法的最大特點(diǎn)就是只需要對DAC0832的數(shù)據(jù)口賦值就可以實(shí)現(xiàn)電壓的輸出,所以操作起來非常方便,而DAC0832輸出的并不是電壓,而是電流所以要在輸出端加上一個運(yùn)放實(shí)現(xiàn)電流到電壓的轉(zhuǎn)換。選用LM358的原因是它輸出端的電壓可以到達(dá)負(fù)電壓,這樣就可以實(shí)現(xiàn)單電源供電了。3.4按鍵電路圖3.4按鍵是通過單片機(jī)的P0口進(jìn)展監(jiān)控,當(dāng)單片機(jī)檢查到有按鍵按下時,單片機(jī)就會根據(jù)按鍵對DA輸出進(jìn)展相應(yīng)的改變,這樣就可以實(shí)現(xiàn)按鍵對輸出波形的切換和頻率的調(diào)節(jié)。3.5轉(zhuǎn)串口電路圖3.5轉(zhuǎn)串口用的芯片是CH340,CH340產(chǎn)家提供有兩種接法,一種是可以把PC機(jī)串口的電平轉(zhuǎn)變?yōu)閁SB電平,另外一種可以直接把單片機(jī)的電平轉(zhuǎn)換為USB電平,本設(shè)計選用的是第二種接法,因為這樣接就可以省去了MA*232把單片機(jī)電平轉(zhuǎn)換外PC機(jī)電平,這樣設(shè)計電路變得更加可靠穩(wěn)定了,同時也可以節(jié)省本錢,同樣本電路也是需要時鐘電路讓CH340能正常工作。4.系統(tǒng)軟件設(shè)計系統(tǒng)軟件由主程序和產(chǎn)生波形的子程序組成,軟件設(shè)計主要是產(chǎn)生各種波形的子程序的編程,通過編程可得到各種波形。周期的改變可采用插入延時子程序的方法來實(shí)現(xiàn)。主程序和幾種常用波形子程序的流程圖如下圖。4.1主流程圖圖4.1由圖4.1可以簡單的知道,程序的大概思路是,判斷按鍵與上位機(jī)是否發(fā)送數(shù)據(jù)來覺得DA的輸出量,初始化的時候程序是寫輸出頻率為200HZ的方波信號。4.2軟件模擬仿真圖4.2鋸齒波仿真鋸齒波產(chǎn)生是通過P2口將00H送入存放器A中,DAC0832輸出A中的內(nèi)容,讀取P2口的狀態(tài),取反后作為延時常數(shù),當(dāng)A中的內(nèi)容不為0FFH時,A中的內(nèi)容加1,當(dāng)A中的內(nèi)容等于FFH返回開場,從而輸出波形。鋸齒波程序voidjuchibo(void){ for(num=0;num<256;num++){cs=0;DAC0832=num;cs=1;while(a==0);a=0;}}4.3方波仿真圖圖4.3方波仿真方波產(chǎn)生是通過P2口將00H輸出給DAC0808,輸出對應(yīng)模擬量,然后讀取P2口的狀態(tài),取反后作為定時器延時,延時時間到,將FFH輸出時,同樣輸出對應(yīng)模擬量,再延時,從而得到方波。方波程序如下:voidfangbo(void){for(num=0;num<127;num++){cs=0;DAC0832=0*FF;cs=1;while(a==0);a=0;}; for(num=127;num>0;num--) {cs=0;DAC0832=0*00;cs=1;while(a==0);a=0;};}4.4按鍵檢測原理voidchangbo(void){if(P32==0);delay(20);if(P32==0)flag++;if(flag>=4)flag=0;}總結(jié)通過設(shè)計簡易的函數(shù)發(fā)生器,我學(xué)會了自己查資料,通過大量的資料結(jié)合,最終決定了現(xiàn)在所選用的方案,接下來就是運(yùn)用之前學(xué)習(xí)過的Protel99se畫板技術(shù),成功的畫出了電路圖。接著是電路的調(diào)試,這一個步驟是最難的,當(dāng)然遇到的挫折也是最多的,例如開場的時候沒有對DAC0832深入了解造成了,電路設(shè)計沒錯就是不能正常工作,最后慢慢的調(diào)節(jié),發(fā)現(xiàn)原來是自己所選用的參考電壓出問題,本來應(yīng)該選用負(fù)電壓作為參考電壓,按照手冊提供的經(jīng)典電路才能得到一個正電壓,但是由于沒注意到這點(diǎn)所以畫了很多的時間。能夠把電路正常的調(diào)處來還要感謝同學(xué)對我的幫助,因為他們做過這樣給我更加大的信心。調(diào)完了電路后接下來的是進(jìn)展寫程序,開場調(diào)式程序的時候有點(diǎn)亂,因為沒有畫完流程圖在調(diào),所以思路會比擬混亂。不過后來通過參照網(wǎng)上的程序,終于實(shí)現(xiàn)了題目所要的功能。參考文獻(xiàn)[1]周明德.微型計算機(jī)系統(tǒng)原理及應(yīng)用[M].:清華大學(xué),2002.341~364.[2]*樂善.微型計算機(jī)接口技術(shù)及應(yīng)用[M].:航空航天大學(xué),2001.258~264.[3]童詩白.模擬電路技術(shù)根底[M].:高等教育,2000.171~202.[4]杜華.任意波形發(fā)生器及應(yīng)用[J].國外電子測量技術(shù),2005.1:38~40.[5]張友德.單片微型機(jī)原理、應(yīng)用與實(shí)踐[M].:復(fù)旦大學(xué),2004.40~44.[6]程朗.基于8051單片機(jī)的雙通道波形發(fā)生器的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程與應(yīng)用,2004.8:100~103.[7]張永瑞.電子測量技術(shù)根底[M].:**電子科技大學(xué),2006.61~101.[8]李葉紫.MCS-51單片機(jī)應(yīng)用教程[M].:清華大學(xué),2004.232~238.附件I源程序/********************************************時間:2013年6月23日15:33:43硬件條件:stc89c52rc單片機(jī)上工程:函數(shù)發(fā)生器龍騰躍準(zhǔn)備知識:通過DAC0832實(shí)現(xiàn)信號的發(fā)生,DAC0832選用的是直通型輸出方式修改:*********************************************/#include<REG*52.H>#include"Delay_time.h"#include"Uart.h"#include<intrins.h>//#include"bo*ing.h"sbitCS=P3^7;sbitup=P0^0;sbitdown=P0^1;bitflag=0,flag1=0,flag2=1,flag3=0,flag5=0,flag6=1,cont=1;unsignedintnum4=170,num3=188,num2=0,num1=0;unsignedcharmark=0;unsignedchark=1;unsignedcharN=0*00;unsignedinttmp;unsignedchari=0;unsignedintt=2;unsignedchartable[4];voidTriangle();//輸出三角波voidSquare(); //方波voidsin(); //正弦波voidSawtooth();//鋸齒波voidchange();unsignedcharcodesin_tab[]=//正弦波輸出表{0*80,0*83,0*86,0*89,0*8D,0*90,0*93,0*96,0*99,0*9C,0*9F,0*A2,0*A5,0*A8,0*AB,0*AE,0*B1,0*B4,0*B7,0*BA,0*BC,0*BF,0*C2,0*C5,0*C7,0*CA,0*CC,0*CF,0*D1,0*D4,0*D6,0*D8,0*DA,0*DD,0*DF,0*E1,0*E3,0*E5,0*E7,0*E9,0*EA,0*EC,0*EE,0*EF,0*F1,0*F2,0*F4,0*F5,0*F6,0*F7,0*F8,0*F9,0*FA,0*FB,0*FC,0*FD,0*FD,0*FE,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FE,0*FD,0*FD,0*FC,0*FB,0*FA,0*F9,0*F8,0*F7,0*F6,0*F5,0*F4,0*F2,0*F1,0*EF,0*EE,0*EC,0*EA,0*E9,0*E7,0*E5,0*E3,0*E1,0*DF,0*DD,0*DA,0*D8,0*D6,0*D4,0*D1,0*CF,0*CC,0*CA,0*C7,0*C5,0*C2,0*BF,0*BC,0*BA,0*B7,0*B4,0*B1,0*AE,0*AB,0*A8,0*A5,0*A2,0*9F,0*9C,0*99,0*96,0*93,0*90,0*8D,0*89,0*86,0*83,0*80,0*80,0*7C,0*79,0*76,0*72,0*6F,0*6C,0*69,0*66,0*63,0*60,0*5D,0*5A,0*57,0*55,0*51,0*4E,0*4C,0*48,0*45,0*43,0*40,0*3D,0*3A,0*38,0*35,0*33,0*30,0*2E,0*2B,0*29,0*27,0*25,0*22,0*20,0*1E,0*1C,0*1A,0*18,0*16,0*15,0*13,0*11,0*10,0*0E,0*0D,0*0B,0*0A,0*09,0*08,0*07,0*06,0*05,0*04,0*03,0*02,0*02,0*01,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*00,0*01,0*02,0*02,0*03,0*04,0*05,0*06,0*07,0*08,0*09,0*0A,0*0B,0*0D,0*0E,0*10,0*11,0*13,0*15,0*16,0*18,0*1A,0*1C,0*1E,0*20,0*22,0*25,0*27,0*29,0*2B,0*2E,0*30,0*33,0*35,0*38,0*3A,0*3D,0*40,0*43,0*45,0*48,0*4C,0*4E,0*51,0*55,0*57,0*5A,0*5D,0*60,0*63,0*66,0*69,0*6C,0*6F,0*72,0*76,0*79,0*7C,0*7E};voidmain(){ Uart_init(); Delaynms(1000); send_string("作者:龍騰躍"); Delaynms(10); Enter(); send_string("作品:簡易信號發(fā)"); Delaynms(10); send_string("生器"); Enter(); send_string("初始波形為200HZ"); Delaynms(10); send_string("方波"); CS=0; up=1; down=1; while(1) { if(flag) Triangle(); if(flag1) Sawtooth(); if(flag2) Square(); if(flag3) sin(); change(); if(flag5&&flag6) { if(mark==4&&cont) { num4=170-t; flag=0; flag1=0; flag2=0; flag3=1; send_data(num4); } if(mark==3&&cont) { num3=(200.0/t)*188; flag=0; flag1=0; flag2=1; flag3=0; send_string("頻率:"); send_data(t); send_string("HZ"); } if(mark==2&&cont) { num2=t; flag=0; flag1=1; flag2=0; flag3=0; send_data(num2); } if(mark==1&&cont) { num1=5-t/10; flag=1; flag1=0; flag2=0; flag3=0; send_data(t); } flag5=0; } } }voidUart(void)interrupt4using1 //串口中斷子函數(shù){ if(1==RI) //必須進(jìn)展判斷才可以實(shí)現(xiàn)中斷的對應(yīng)響應(yīng) { RI=0; table[i]=SBUF; i++; if(i==4) { t=(table[2]-48)*100+(table[3]-48)*10+(table[0]-48); mark=table[1]-48; flag5=1; TR0=0; i=0; flag6=~flag6; cont=1; } }}/*********************************************************輸出三角波*********************************************************/voidTriangle(){unsignedcharl; unsignedintj;for(l=0;l<255;l=l+k) { P2=l; while(j<num1) { j++; } j=0; }for(l=255;l>1;l=l-k) { while(j<num1) { j++; } j=0; P2=l; }}/*********************************************************輸出方波函數(shù)*********************************************************/voidSquare(){ unsignedintj=0; N=~N; P2=N; while(j<num3) { j++; } j=0;}/*********************************************************輸出正弦波函數(shù)*********************************************************/voidsin(){unsignedinti,j=0;for(i=0;i<256;i++,j=0){ while(j<num4) { j++; } P2=sin_tab[i];}}/*************************
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- MTP培訓(xùn)課件教學(xué)課件
- 湖南省武岡二中2025屆語文高三上期末監(jiān)測模擬試題含解析
- 2025屆江西省宜春市生物高一第一學(xué)期期末達(dá)標(biāo)檢測試題含解析
- 2025屆山西省臨汾一中生物高一第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 山西省忻州一中2025屆生物高三上期末聯(lián)考試題含解析
- 2025屆陜西西安地區(qū)八校高二上生物期末達(dá)標(biāo)檢測模擬試題含解析
- 湖南省邵陽市第十一中學(xué)2025屆生物高三第一學(xué)期期末聯(lián)考試題含解析
- 2025屆山東省平原縣第一中學(xué)生物高一上期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 云南農(nóng)業(yè)大學(xué)附屬中學(xué)2025屆高二數(shù)學(xué)第一學(xué)期期末復(fù)習(xí)檢測試題含解析
- 廣東省深圳市寶安區(qū)2025屆高一生物第一學(xué)期期末綜合測試試題含解析
- 處方調(diào)劑流程
- 國有企業(yè)共青團(tuán)創(chuàng)新工作方法研究
- 建筑行業(yè)(建筑工程)建設(shè)項目設(shè)計方案規(guī)模劃分表.doc
- 辦理營業(yè)執(zhí)照委托書
- 集裝箱設(shè)計PPT課件
- 實(shí)習(xí)實(shí)訓(xùn)報告-墊片復(fù)合沖壓模具的設(shè)計
- 35kv變電所電氣部分設(shè)計(有設(shè)計源圖)
- 編寫標(biāo)準(zhǔn)必備文件 國家標(biāo)準(zhǔn) 地方標(biāo)準(zhǔn) 行業(yè)標(biāo)準(zhǔn) 企業(yè)標(biāo)準(zhǔn) 格式模板大全
- 全面預(yù)算實(shí)施方案(共8篇)
- 天津市南開中學(xué)2020-2021學(xué)年高一上學(xué)期期中考試物理試題含答案
- 建設(shè)工程施工勞務(wù)分包合同(地坪)(完整版)
評論
0/150
提交評論