基于STC89C52的簡(jiǎn)易波形發(fā)生器_第1頁(yè)
基于STC89C52的簡(jiǎn)易波形發(fā)生器_第2頁(yè)
基于STC89C52的簡(jiǎn)易波形發(fā)生器_第3頁(yè)
基于STC89C52的簡(jiǎn)易波形發(fā)生器_第4頁(yè)
基于STC89C52的簡(jiǎn)易波形發(fā)生器_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-.z.-----總結(jié)資料摘要本系統(tǒng)是基于STC89C52單片機(jī)利用DDS的合成原理的低頻信號(hào)發(fā)生器。采用STC89C52單片機(jī)作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路〔DAC0832〕、運(yùn)放電路〔LM358〕、按鍵等構(gòu)成整個(gè)系統(tǒng)。通過(guò)按鍵控制可產(chǎn)生方波、三角波、正弦波、鋸齒波并可以微調(diào)頻率大小。通過(guò)上位機(jī)可以通過(guò)PC可以選擇波形和波形的頻率。其設(shè)計(jì)簡(jiǎn)單、性能優(yōu)好,頻率的精度由DA和系統(tǒng)時(shí)鐘大小決定,所以很易的實(shí)現(xiàn)精度調(diào)整,系統(tǒng)的性價(jià)比高,可用于多種需要低頻信號(hào)的場(chǎng)所,具有一定的實(shí)用性。關(guān)鍵詞 :STC89C52;DAC0832;LM358;DDS-.z.目錄摘要I關(guān)鍵詞I1.設(shè)計(jì)任務(wù)與要求12.方案設(shè)計(jì)與論證12.1系統(tǒng)信號(hào)發(fā)生的方案設(shè)計(jì)12.2系統(tǒng)控制芯片的方案設(shè)計(jì)13硬件系統(tǒng)模塊及理論分析23.1總體設(shè)計(jì)框架23.2最小系統(tǒng)模塊電路23.3DAC0832模塊電路33.4按鍵電路34.系統(tǒng)軟件設(shè)計(jì)44.1主流程圖54.2軟件模擬仿真64.3方波仿真圖64.4按鍵檢測(cè)原理7總結(jié)7參考文獻(xiàn)8附件9I源程序9II總電路圖17III總圖PCB18IV元器件清單18-.z.1.設(shè)計(jì)任務(wù)與要求①利用單片機(jī)組成一個(gè)多波信號(hào)發(fā)生器。②能輸出的波形為三角波、鋸齒波、方波、正弦波。③輸出波形頻率f=1~100Hz、。④輸出波形頻率通過(guò)PC機(jī)設(shè)置。2.方案設(shè)計(jì)與論證2.1系統(tǒng)信號(hào)發(fā)生的方案設(shè)計(jì)方案一、通過(guò)專用DDS芯片如AD9850作為信號(hào)發(fā)生器件,用專用芯片的特點(diǎn)是,產(chǎn)生的信號(hào)頻率范圍寬,可以產(chǎn)生很高的頻率,頻率的精度高。但是價(jià)格比擬貴。方案二、通過(guò)產(chǎn)生PWM產(chǎn)生方波,通過(guò)低通濾波器變?yōu)檎也?,在加上其他外圍電路可產(chǎn)生三角波、鋸齒波、方波、正弦波??蓪?shí)現(xiàn)題目要求,這種設(shè)計(jì)價(jià)格便,但是外圍比擬復(fù)雜,頻率不好控制。方案三、通過(guò)單片機(jī)外圍加上DA芯片代替專用的DDS芯片,同樣應(yīng)用DDS信號(hào)合成原理產(chǎn)生任意想要的信號(hào),這樣構(gòu)造的系統(tǒng)簡(jiǎn)單,用廉價(jià)的DAC0832就可產(chǎn)生滿足題目要求的低頻信號(hào)。結(jié)論:通過(guò)上述三個(gè)方案可以知道,用專用DDS芯片合成性能比擬高,價(jià)格貴,用于本設(shè)計(jì)就大材小用,用PWM價(jià)格廉價(jià),但是性能不好,所以屬于中間的DA芯片是理想的選擇。2.2系統(tǒng)控制芯片的方案設(shè)計(jì)方案一、選用STM32作為控制芯片,STM32內(nèi)部資源豐富,時(shí)鐘速度快,是一塊性價(jià)比極高的芯片,用本系統(tǒng)會(huì)使得系統(tǒng)速度提升。盡管性價(jià)比高,還是比傳統(tǒng)51單片機(jī)要貴點(diǎn),控制指令多,相對(duì)于51單片機(jī)來(lái)說(shuō)程序要比擬復(fù)雜。方案二、選用STC公司的51單片機(jī),STC89C52是對(duì)傳統(tǒng)51做了增強(qiáng),但是與傳統(tǒng)51是兼容的,所以指令簡(jiǎn)單易于操作,12MHZ的系統(tǒng)完全滿足題目涉及要求。結(jié)論:通過(guò)上述可以知道,STM32’性價(jià)比高,性能強(qiáng)大,但是用本系統(tǒng)是大材小用,而STC89C52則完全能滿足題目要求而且價(jià)格比STM32要廉價(jià),所以本設(shè)計(jì)選用STC89C52作為控制芯片。3硬件系統(tǒng)模塊及理論分析3.1總體設(shè)計(jì)框架圖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可以通過(guò)上位機(jī)控制波形的選擇和頻率大小設(shè)置。3.2最小系統(tǒng)模塊電路圖3.2圖3.2是STC89C52的最小系統(tǒng)圖,組成局部有時(shí)鐘電路和復(fù)位電路。實(shí)現(xiàn)的功能是控制DAC0832的模擬輸出量的大小和輸出的頻率,以產(chǎn)生方波、三角波、正弦波、鋸齒波,并通過(guò)與轉(zhuǎn)串口電路的結(jié)合以實(shí)現(xiàn)與PC機(jī)之間的通信。3.3DAC0832模塊電路圖3.3上圖中DAC0832電路的接法是直通型接法,這種接法的最大特點(diǎn)就是只需要對(duì)DAC0832的數(shù)據(jù)口賦值就可以實(shí)現(xiàn)電壓的輸出,所以操作起來(lái)非常方便,而DAC0832輸出的并不是電壓,而是電流所以要在輸出端加上一個(gè)運(yùn)放實(shí)現(xiàn)電流到電壓的轉(zhuǎn)換。選用LM358的原因是它輸出端的電壓可以到達(dá)負(fù)電壓,這樣就可以實(shí)現(xiàn)單電源供電了。3.4按鍵電路圖3.4按鍵是通過(guò)單片機(jī)的P0口進(jìn)展監(jiān)控,當(dāng)單片機(jī)檢查到有按鍵按下時(shí),單片機(jī)就會(huì)根據(jù)按鍵對(duì)DA輸出進(jìn)展相應(yīng)的改變,這樣就可以實(shí)現(xiàn)按鍵對(duì)輸出波形的切換和頻率的調(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è)計(jì)選用的是第二種接法,因?yàn)檫@樣接就可以省去了MA*232把單片機(jī)電平轉(zhuǎn)換外PC機(jī)電平,這樣設(shè)計(jì)電路變得更加可靠穩(wěn)定了,同時(shí)也可以節(jié)省本錢,同樣本電路也是需要時(shí)鐘電路讓CH340能正常工作。4.系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件由主程序和產(chǎn)生波形的子程序組成,軟件設(shè)計(jì)主要是產(chǎn)生各種波形的子程序的編程,通過(guò)編程可得到各種波形。周期的改變可采用插入延時(shí)子程序的方法來(lái)實(shí)現(xiàn)。主程序和幾種常用波形子程序的流程圖如下圖。4.1主流程圖圖4.1由圖4.1可以簡(jiǎn)單的知道,程序的大概思路是,判斷按鍵與上位機(jī)是否發(fā)送數(shù)據(jù)來(lái)覺(jué)得DA的輸出量,初始化的時(shí)候程序是寫輸出頻率為200HZ的方波信號(hào)。4.2軟件模擬仿真圖4.2鋸齒波仿真鋸齒波產(chǎn)生是通過(guò)P2口將00H送入存放器A中,DAC0832輸出A中的內(nèi)容,讀取P2口的狀態(tài),取反后作為延時(shí)常數(shù),當(dāng)A中的內(nèi)容不為0FFH時(shí),A中的內(nèi)容加1,當(dāng)A中的內(nèi)容等于FFH返回開(kāi)場(chǎng),從而輸出波形。鋸齒波程序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)生是通過(guò)P2口將00H輸出給DAC0808,輸出對(duì)應(yīng)模擬量,然后讀取P2口的狀態(tài),取反后作為定時(shí)器延時(shí),延時(shí)時(shí)間到,將FFH輸出時(shí),同樣輸出對(duì)應(yīng)模擬量,再延時(shí),從而得到方波。方波程序如下: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按鍵檢測(cè)原理voidchangbo(void){if(P32==0);delay(20);if(P32==0)flag++;if(flag>=4)flag=0;}總結(jié)通過(guò)設(shè)計(jì)簡(jiǎn)易的函數(shù)發(fā)生器,我學(xué)會(huì)了自己查資料,通過(guò)大量的資料結(jié)合,最終決定了現(xiàn)在所選用的方案,接下來(lái)就是運(yùn)用之前學(xué)習(xí)過(guò)的Protel99se畫板技術(shù),成功的畫出了電路圖。接著是電路的調(diào)試,這一個(gè)步驟是最難的,當(dāng)然遇到的挫折也是最多的,例如開(kāi)場(chǎng)的時(shí)候沒(méi)有對(duì)DAC0832深入了解造成了,電路設(shè)計(jì)沒(méi)錯(cuò)就是不能正常工作,最后慢慢的調(diào)節(jié),發(fā)現(xiàn)原來(lái)是自己所選用的參考電壓出問(wèn)題,本來(lái)應(yīng)該選用負(fù)電壓作為參考電壓,按照手冊(cè)提供的經(jīng)典電路才能得到一個(gè)正電壓,但是由于沒(méi)注意到這點(diǎn)所以畫了很多的時(shí)間。能夠把電路正常的調(diào)處來(lái)還要感謝同學(xué)對(duì)我的幫助,因?yàn)樗麄冏鲞^(guò)這樣給我更加大的信心。調(diào)完了電路后接下來(lái)的是進(jìn)展寫程序,開(kāi)場(chǎng)調(diào)式程序的時(shí)候有點(diǎn)亂,因?yàn)闆](méi)有畫完流程圖在調(diào),所以思路會(huì)比擬混亂。不過(guò)后來(lái)通過(guò)參照網(wǎng)上的程序,終于實(shí)現(xiàn)了題目所要的功能。參考文獻(xiàn)[1]周明德.微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用[M].:清華大學(xué),2002.341~364.[2]*樂(lè)善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].:航空航天大學(xué),2001.258~264.[3]童詩(shī)白.模擬電路技術(shù)根底[M].:高等教育,2000.171~202.[4]杜華.任意波形發(fā)生器及應(yīng)用[J].國(guó)外電子測(cè)量技術(shù),2005.1:38~40.[5]張友德.單片微型機(jī)原理、應(yīng)用與實(shí)踐[M].:復(fù)旦大學(xué),2004.40~44.[6]程朗.基于8051單片機(jī)的雙通道波形發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2004.8:100~103.[7]張永瑞.電子測(cè)量技術(shù)根底[M].:**電子科技大學(xué),2006.61~101.[8]李葉紫.MCS-51單片機(jī)應(yīng)用教程[M].:清華大學(xué),2004.232~238.附件I源程序/********************************************時(shí)間:2013年6月23日15:33:43硬件條件:stc89c52rc單片機(jī)上工程:函數(shù)發(fā)生器龍騰躍準(zhǔn)備知識(shí):通過(guò)DAC0832實(shí)現(xiàn)信號(hào)的發(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("作品:簡(jiǎn)易信號(hào)發(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)中斷的對(duì)應(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論