低頻信號發(fā)生器_第1頁
低頻信號發(fā)生器_第2頁
低頻信號發(fā)生器_第3頁
低頻信號發(fā)生器_第4頁
低頻信號發(fā)生器_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于51單片機的函數(shù)信號發(fā)生器設計報告系別:電子通信工程系專業(yè):電子信息工程班級:電信092姓名:學號:0904072基于51單片機的函數(shù)信號發(fā)生器摘 要 本系統(tǒng)利用單片機F410采用程序設計方法產(chǎn)生鋸齒波、三角波、正弦波、方波四種波形,再通過D/A轉(zhuǎn)換器DAC將數(shù)字信號轉(zhuǎn)換成模擬信號,濾波放大,最終由示波器顯示出來,能產(chǎn)生10Hz10kHz的波形。通過鍵盤來控制四種波形的類型選擇、撥碼開關(guān)控制頻率的變化,顯示其各自的類型以及數(shù)值,系統(tǒng)大致包括信號發(fā)生部分、數(shù)/模轉(zhuǎn)換部分以及顯示部分三部分,其中尤其對數(shù)/模轉(zhuǎn)換部分和波形產(chǎn)生和變化部分進行詳細論述。單片機課程設計要求1、 設計內(nèi)容:用51系列單

2、片機制作函數(shù)發(fā)生器:a) 輸出驅(qū)動電路b) 波形發(fā)生程序2、 技術(shù)要求:a) 輸出鋸齒波、三角波、方波、正弦波b) 頻率范圍:10HZ 1KHZc) 顯示波形編號及信號頻率d) 輸出信號幅度:02V3、 設計要求:a) 電路圖b) 設計說明書(不少于2000字)c) 程序清單d) 運行結(jié)果1、 系統(tǒng)設計 經(jīng)過考慮,我們確定方案如下:利用F410單片機采用程序設計方法產(chǎn)生鋸齒波、三角波、正弦波、方波四種波形,再通過D/A轉(zhuǎn)換器將數(shù)字信號轉(zhuǎn)換成模擬信號,濾波放大,最終由示波器顯示出來,通過鍵盤來控制四種波形的類型選擇、頻率變化,最終輸出顯示其各自的類型以及數(shù)值。1.1、設計要求 1)、利用單片機采

3、用軟件設計方法產(chǎn)生四種波形 2)、四種波形可通過鍵盤選擇 3)、波形頻率可調(diào) 4)、需顯示波形的種類及其頻率211總體方案:方案一:采用模擬電路搭建函數(shù)信號發(fā)生器,它可以同時產(chǎn)生方波、三角波、正弦波。但是這種模塊產(chǎn)生的不能產(chǎn)生任意的波形(例如梯形波),并且頻率調(diào)節(jié)很不方便。方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(VCO)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達到輸出頻率覆蓋系數(shù)的要求,且電路復雜。方案三:使用集成信號發(fā)生器發(fā)生芯片,例如AD9854,它可以生成最高幾十MHZ的波形。但是該方案也不能產(chǎn)生任意波形(例如梯形波),并且價格昂貴。方案四:采用89S51-41

4、0單片機和DAC數(shù)模轉(zhuǎn)換器生成波形,加上一個低通濾波器,生成的波形比較純凈。它的特點是可產(chǎn)生任意波形,頻率容易調(diào)節(jié),頻率能達到設計的500HZ以上。性能高,在低頻范圍內(nèi)穩(wěn)定性好、操作方便、體積小、耗電少。經(jīng)比較,方案四既可滿足課程設計的基本要求又能充分發(fā)揮其優(yōu)勢,電路簡單,易控制,性價比高,所以采用該方案. 2工作原理數(shù)字信號可以通過數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號,因此可通過產(chǎn)生數(shù)字信號再轉(zhuǎn)換成模擬信號的方法來獲得所需要的波形。89S51-410單片機本身就是一個完整的微型計算機,具有組成微型計算機的各部分部件:中央處理器CPU、隨機存取存儲器RAM、只讀存儲器ROM、I/O接口電路、定時器/計數(shù)

5、器以及串行通訊接口等,只要將89S51410再配置鍵盤及、數(shù)模轉(zhuǎn)換及波形輸出、放大電路等部分,即可構(gòu)成所需的波形發(fā)生器,其信號發(fā)生器構(gòu)成系統(tǒng)框圖如下圖所示。系統(tǒng)框圖89S51-410是整個波形發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產(chǎn)生各種各樣的信號,并從鍵盤接收數(shù)據(jù),進行各種功能的轉(zhuǎn)換和信號幅度的調(diào)節(jié)。當數(shù)字信號電路到達轉(zhuǎn)換電路,將其轉(zhuǎn)換成模擬信號也就是所需要的輸出波形。波形ROM表是將信號一個周期等間距地分離成64個點,儲存在單片機得RON內(nèi)。具體ROM表是通過MATLAB生成的,例如正弦表,MATLAB生成的程序如下:x=0:2*pi/64:2*pi; y= (x)*127)+1283單

6、元電路設計與分析3.1.1主控電路設計中主要采用89S51-410型單片機,它具有如下優(yōu)點:(1)擁有完善的外部擴展總線,通過這些總線可方便地擴展外圍單元、外圍接口等。(2)該單片機內(nèi)部擁有4K字節(jié)的FLASH ROM程序存儲器空間和256字節(jié)的RAM數(shù)據(jù)存儲空間,完全可以滿足程序的要求。由于該芯片可電擦寫,故可重復使用。如果更改程序內(nèi)容,可將芯片拿下重新燒寫。(3)該單片機與工業(yè)標準的MCS51型機的指令集和輸出引腳兼容。中斷系統(tǒng)是使處理器具有對外界異步事件的處理能力而設置的。當中央處理器CPU正在處理某件事的時候外界發(fā)生了緊急事件,要求CPU暫停當前的工作,轉(zhuǎn)而去處理這個緊急事件。在波形發(fā)

7、生器中,用兩個開光直接與外部中斷0和外部中斷1的管腳相連,其中S1開光用來改變波形,S2開光用來改變頻率。在程序主函數(shù)中,我們寫了個死循環(huán)一直輸出一個默認的波形,當S1或S2按下又抬起時,程序會暫時跳出死循環(huán),進入中斷處理程序,從而對波形和頻率進行改變。時鐘電路。由于頻率較大時,三角波、正弦波、方波等波中每一點延時時間為幾微秒,故延時時間還要加上指令時間即可得到指定頻率的波形,該電路用11.0592MHz晶振。 主控電路圖3.1.2 數(shù)/模轉(zhuǎn)換電路由于單片機產(chǎn)生的是數(shù)字信號,要想得到所需要的波形,就要把數(shù)字信號轉(zhuǎn)換成模擬信號,所以該文選用價格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)

8、換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以及輸入控制電路四部分組成。但實際上,DAC0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對分辨率為單位增減,是準模擬量的輸出。DAC0832是電流型輸出,在應用時外接運放使之成為電壓型輸出。根據(jù)對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本設計選用直通方式。DAC0832的數(shù)據(jù)口和單片機的P0口相連。CSDA:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;WR:數(shù)據(jù)鎖存器寫選通輸入線,負脈沖(脈寬應大于500ns)有效。

9、由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當LE1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負跳變時將輸入數(shù)據(jù)鎖存;數(shù)模轉(zhuǎn)換電路3.1.3運算放大電路和低通濾波電路LM324的5管腳與DAC0832的(IOUT2)12管腳相連,LM324的6管腳與DAC0832的(IOUT1)11管腳相連,LM324的7管腳與DAC0832的REF(9)管腳相連.第一級運算放大器的作用是將DAC0832輸出的電流信號轉(zhuǎn)化為電壓信號V1,第二級運算放大器的作用是將V1通過反向放大電路-(R2/R1)倍。題目要求輸出的電壓在0-5V可調(diào),而V1的電壓大約是5V,所以R1選擇5K的電阻,R2選擇10K的

10、電位器,這樣最大的輸出電壓為5*(10/2)=10,最小電壓為0,通過改變電阻可以實現(xiàn)題目要求的0-2V。在第二個運算放大器的輸出端連了一個低通濾波器。如果不加低通濾波器,也能夠生成波形,但是產(chǎn)生的信號中毛刺很多,加一個低通濾波器不僅起到的濾波的作用,還起到了平滑的作用。低通濾波器的截止頻率F=1/(2*pi*R3*C6),這里我們選擇R3 為100歐姆電阻,C6為104電容,截止頻率F=16KHZ。實驗表明,此時的輸出波形效果不錯。3.1.4 串口通信電路通用異步收發(fā)器(UART)是一種串行接口,一般微處理器中都包含這種外設接口。異步串行接口提供了一種簡單的途徑,使兩個器件無需共享同一個時鐘

11、信號就能進行通信。如果再加入一個合適的電平轉(zhuǎn)換器MAX232,串口就能能用在RS232和RS485等網(wǎng)絡中實現(xiàn)通信,或者與計算機的COM端口連接。串口只需兩根信號線(RX和TX)即可實現(xiàn),而且只要兩端器件都采用同樣的位格式和波特率,那么它們無需其它任何對方的信息就可以成功傳輸數(shù)據(jù)。串口通信電路圖4.1鍵盤顯示模塊的設計由于本系統(tǒng)所用按鍵少,所以采用獨立鍵盤,其連接電路圖如下:圖(6)鍵盤圖中獨立鍵盤引出的四根線分別接單片機的P1.0、P1.1、P1.2、P1.3,另一端接地。各開關(guān)的功能如圖所示。4.2 軟件設計流程本系統(tǒng)采用89S51-410單片機,用編程的方法來產(chǎn)生四種波形,并通過編程來切

12、換四種波形以及波形頻率的改變。具體功能有:(1)各個波形的切換;(2)各種參數(shù)的設定;(3)頻率增減等。軟件調(diào)試后,通過編程器下載到89S51-410芯片中,然后插到系統(tǒng)中即可獨立完成所有的控制。軟件的流程圖如下:生成波形有無按鍵按下有無頻率變化顯示頻率顯示波形鍵盤掃描是否有按鍵按下 開始調(diào)用初始化程序鋸齒波三角波 正弦波 方波是否有其它按鍵按下圖(7)5、輸出波形的種類與頻率的測試5.1、測量儀器及測試說明測量說明:正弦波、矩形波、三角波和方波信號的輸出,通過對獨立鍵盤來實現(xiàn)其不同波形的輸出以及用撥碼開關(guān)改變其頻率。5.2測試過程 當程序下進去時經(jīng)過初始化,液晶屏的上只顯示“wave:”和“

13、f:”,當開關(guān)1按下是此時輸出波形為方波,當開關(guān)2按下是此時輸出波形為鋸齒波,當開關(guān)3按下是此時輸出波形為三角波,當開關(guān)4按下是此時輸出波形為正弦波。本系統(tǒng)采用8腳的撥碼開關(guān)來改變頻率。頻率范圍如下:方 波:1010KHZ鋸齒波:三角波:1010KHZ正弦波:1010KHZ四種波形的仿真波形圖如下:圖(8)方波圖(9)鋸齒波圖(10)三角波圖(11)正弦波6軟件應用程序程序如下:/ Generated Initialization File /#include "C8051F410.h"void Init_Device(void);/初始化函數(shù)聲明void delayms(

14、unsigned char i);/長延時函數(shù)聲明void delayus(void);/短延時函數(shù)聲明void toch452(unsigned int cmda);/送顯示函數(shù)聲明unsigned char rdch452(void);/讀鍵代碼函數(shù)聲明unsigned char chekey(void);/鍵盤掃描函數(shù)聲明void display(void);/顯示函數(shù)聲明unsigned char dispbuff8=0,1,0,0,15,3,17,0;/顯示緩沖sbit CH452_SCL = P13;/引腳定義sbit CH452_SDA = P14; sbit CH452_KEY

15、 = P15;unsigned char N,M=0;/全局變量定義unsigned int ADZ=2,f2,f1=10,adp;unsigned int CMD,DAT,DAT1;bit flag;code unsigned char foant32 = 0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0, /01234567 0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E, /89ABCDEF 0xFD,0x61,0xDB,0xF3,0x67,0xB7,0xBF,0xE1, /0.1.2.3.4.5.6.7. 0xFF,0xF7

16、,0x00,0x62,0x02,0x12,0xCE,0x1C;/8.9.滅 + - = P Lcode unsigned char key16 = 0xC6,0xB6,0x86,0xD6,0x96,0xA6,0xF6,0xE6,0xC4,0xB4,0x84,0xD4,0x94,0xA4,0xF4,0xE4;/鍵盤位置碼code unsigned int G64=4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,

17、148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,255,;/鋸齒波碼code unsigned int S64=0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,255,240,232,224,216,208,200,192,184,176,168,160,152

18、,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,0,;/三角波碼code unsigned char Z64=128,140,152,165,176,188,199,209,218,226,234,240,246,250,253,255,255,255,253,250,246,240,234,227,218,209,199,188,177,165,153,140,102,115,103,91,79,67,57,46,37,29,21,15,9,5,2,0,0,0,2,5,9,14,21,28,37,46,56,67,78,

19、90,102,115,;/正玄波碼code unsigned char F64=255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,;/方波碼main()/主函數(shù)Init_Device(); /初始化delayms(100);CMD = 0x9103;/設置CH452系統(tǒng)參數(shù)toch452(CMD);CMD = 0x9500; /設置CH452顯示參數(shù) toch452(CMD);display

20、(); while(1)if(CH452_KEY =0)/按鍵控制 ADZ=chekey();/讀取鍵值 switch (ADZ)/波形轉(zhuǎn)換及頻率變換 case 0: N=ADZ;break;/波形轉(zhuǎn)換 case 1: N=ADZ;break; case 2: N=ADZ;break; case 3: N=ADZ;break;case4:f1+;adp=65535-2450000/f1/64;if(f1>1000)f1=10;TMR3RLL=adp%256;TMR3RLH=adp/256;break;case5:f1-;adp=65535-2450000/f1/64;if(f1<1

21、0)f1=10;TMR3RLL=adp%256;TMR3RLH=adp/256;break;case6:f1=f1+100;adp=65535-2450000/f1/64;if(f1>1000)f1=10;TMR3RLL=adp%256;TMR3RLH=adp/256;break;case7:f1=f1-100;adp=65535-2450000/f1/64;if(f1<1000)f1=10TMR3RLL=adp%256;TMR3RLH=adp/256;break;dispbuff 7=N;/存放波形代碼 dispbuff 3=f1/1000;/頻率處理并送顯示緩沖區(qū) dispbu

22、ff 2=f1%1000/100; dispbuff 1=f1%100/10; dispbuff 0=f1%10; display();/顯示函數(shù)調(diào)用 /* 命令、數(shù)據(jù)送CH452 */void toch452(unsigned int cmda) unsigned char j; CH452_SDA = 0;delayus();CH452_SCL = 0;delayus();CH452_SCL = 1;delayus();CH452_SCL = 0;for (j=0;j<16;j+)if(cmda>=0x8000 ) CH452_SDA = 1;elseCH452_SDA = 0

23、;CH452_SCL = 1;delayus();CH452_SCL = 0;cmda = cmda << 1 ;CH452_SDA = 1;delayus();CH452_SCL = 1;/* 讀鍵盤 */unsigned char rdch452(void)unsigned char j,key; CH452_SDA = 0;delayus();CH452_SCL = 0;delayus();CH452_SCL = 1;delayus();CH452_SCL = 0;key = 0x9F;for (j=0;j<8;j+)if(key>=0x80 ) CH452_SD

24、A = 1;elseCH452_SDA = 0;CH452_SCL = 1;delayus();CH452_SCL = 0;key = key << 1 ; delayus();key = 0; for (j=0;j<8;j+) CH452_SCL = 1;if (CH452_SDA = 1)key +;key = key << 1;CH452_SCL = 0;delayus(); CH452_SDA = 1;delayus();CH452_SCL = 1;return key;/* mS延時 */void delayms(unsigned char i)unsigned intj;dofor(j=0;j!=1000;j+);while(-i);/* uS延時 */void delayus(void) unsigned k; for (k=0;k<10;k+); /*初始化*/void Init_Device(void)PCA0MD &= 0x40;/關(guān)閉電子狗復位 PCA0MD = 0x00; TCON = 0x01;/初始化定時器3 TMOD = 0x02; CKCO

溫馨提示

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

評論

0/150

提交評論