




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、信息科學(xué)與技術(shù)學(xué)院單片機原理課程設(shè)計報告 題目名稱: 波形發(fā)生器 1 學(xué)生姓名: 1學(xué) 號: 1專業(yè)、年級: 電信08級 1指導(dǎo)教師: 啊 時 間 :二一年七月十日去 目錄1設(shè)計任務(wù)和技術(shù)要求:11.輸出頻率擴展至10 0Hz200kHz;12方案選擇:1方案一1方案二:2方案三:23硬件原理電路圖的設(shè)計及分析:21基本原理24程序設(shè)計與分析:31正弦波生成32三角波的生成:45系統(tǒng)評價:41開始運行程序時的時候5按一下select52第二次按select63第三次按:select76實驗心得7附錄一:總體電路圖8附錄二:源代碼91設(shè)計任務(wù)和技術(shù)要求:1. 具有產(chǎn)生正弦波、三角波和方波三種周期
2、性波形的功能;2. 通過鍵盤選擇輸出信號類型,幅值、周期等相關(guān)指標(biāo);3. 輸出波形的頻率為100Hz20kHz;4. 具有顯示輸出波形的類型、頻率和幅度的功能。擴展功能:1. 輸出頻率擴展至100Hz200kHz;2. 鍵盤控制產(chǎn)生任意波形;2方案選擇:方案一:采用函數(shù)信號發(fā)生器ICL8038集成模擬芯片,(如圖2-1)它是一種可以同時產(chǎn)生方波、三角波、正弦波的專用集成電路。但是這種模塊產(chǎn)生的波形都不是純凈的波形,會寄生一些高次諧波分量,采用其他的措施雖可濾除一些,但不能完全濾除掉。方案一方框圖D/A鍵 盤單片機ICL8038運算電路顯 示D/A輸出 方案二:采用分立元件實現(xiàn)非穩(wěn)態(tài)的多諧振振蕩
3、器,然后根據(jù)需要加入積分電路等構(gòu)成正弦、矩形、三角等波形發(fā)生器。這種信號發(fā)生器輸出頻率范圍窄,而且電路參數(shù)設(shè)定較繁瑣,其頻率大小的測量往往需要通過硬件電路的切換來實現(xiàn),操作不方便。方案三:采用單片機和DAC0832數(shù)模轉(zhuǎn)換器生成波形,由于是軟件濾波,所以不會有寄生的高次諧波分量,生成的波形比較純凈。它的特點是價格低、性能高,在低頻范圍內(nèi)穩(wěn)定性好、操作方便、體積小、耗電少。經(jīng)比較,方案三既可滿足畢業(yè)設(shè)計的基本要求又能充分發(fā)揮其優(yōu)勢,電路簡單,易控制,性價比較高,所以采用該方案單片機選擇:AT89C52單片機是一種高性能8位單片微型計算機。它把構(gòu)成計算機的中央處理器CPU、存儲器、寄存器、I/O接
4、口制作在一塊集成電路芯片中,從而構(gòu)成較為完整的計算機。3硬件原理電路圖的設(shè)計及分析:1基本原理波形指示單片機按鍵輸出基準(zhǔn)電源數(shù)模轉(zhuǎn)換電流/電壓轉(zhuǎn)換電源低頻信號發(fā)生器系統(tǒng)主要由單片機、D/A轉(zhuǎn)換電路、基準(zhǔn)電壓電路、電流/電壓轉(zhuǎn)換電路、按鍵和波形指示電路、電源等電路組成。其工作原理為當(dāng)分別按下四個按鍵中的任第一個按鍵就會分別出現(xiàn)方波、鋸齒波、三角波、正弦波,按第二個鍵可以增加頻率,第三個鍵會減小頻率。按最后一個顯示電壓值。4程序設(shè)計與分析:1正弦波生成uchar code sine_tab256=/輸出電壓從0到最大值(正弦波1/4部分)0x80,0x83,0x86,0x89,0x8d,0x90,
5、0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,/輸出電壓從最大值到
6、0(正弦波1/4部分)0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x9
7、3,0x90,0x8d,0x89,0x86,0x83,0x80,/輸出電壓從0到最小值(正弦波1/4部分)0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0
8、x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,/輸出電壓從最小值到0(正弦波1/4部分)0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3
9、a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80;三角波的生成:uchar code triangle_tab= /每隔數(shù)字8,采取一次0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8
10、,0xe0,0xe8,0xf0,0xf8,0xff,0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa0,0x98,0x90,0x88,0x80,0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10,0x08,0x00;方波輸出:void square_out() /方波輸出 judge=judge; if(judge=1) DAdata=0xff;else DAdata=0x00;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關(guān)閉
11、8位輸入寄存器5系統(tǒng)評價:基本功能可以實現(xiàn)但是還是有一些沒有做好,調(diào)頻范圍有些小,還有一些方面不足。沒有在試驗箱上實現(xiàn)。其他功能基本實現(xiàn)。1開始運行程序時的時候按一下select 2第二次按select 3第三次按:select 6實驗心得通過這次畢業(yè)設(shè)計,使我深刻地認(rèn)識到學(xué)好專業(yè)知識的重要性,也理解了理論聯(lián)系實際的含義,并且檢驗了大學(xué)三年的學(xué)習(xí)成果,進(jìn)一步加深了我對專業(yè)知識的了解和認(rèn)識以及動手的能力。雖然在這次設(shè)計中對于所學(xué)知識的運用和銜接還不夠熟練,作品完成的還不是很出色。但是我將在以后的工作和學(xué)習(xí)中繼續(xù)努力、不斷完善。這個設(shè)計是對我們過去所學(xué)知識的系統(tǒng)提高和擴充的過程,為今后的發(fā)展打下了
12、良好的基礎(chǔ)附錄一:總體電路圖附錄二:源代碼#include<reg52.h>#define uchar unsigned char#define uint unsigned int/#define Fosc 24000000/12000000 /12分頻后的頻率#define DAdata P0/DA數(shù)據(jù)端口sbit DA_S1= P20; / 控制DAC0832的8位輸入寄存器,僅當(dāng)都為0時,可以輸出數(shù)據(jù)(處于直通狀態(tài)),否則,輸出將被鎖存sbit DA_S2= P21; / 控制DAC0832的8位DAC寄存器,僅當(dāng)都為0時,可以輸出數(shù)據(jù)(處于直通狀態(tài)),否則,輸出將被鎖存sb
13、it key= P32;uchar wavecount; /'抽點'計數(shù)uchar THtemp,TLtemp;/傳遞頻率的中間變量/uint T_temp;uchar judge=1; /在方波輸出函數(shù)中用于簡單判別作用uchar waveform; /當(dāng)其為0、1、2時,分別代表三種波uchar code freq_unit3=10,50,200; /三種波的頻率單位uchar idata wavefreq3=1,1,1; /給每種波定義一個數(shù)組單元,用于存放單位頻率的個數(shù)uchar code lcd_hang1="Sine Wave " "T
14、riangle Wave " "Square Wave " "Select Wave: " "press No.1 key! "uchar idata lcd_hang216="f= Hz "/*uchar code wave_freq_adjust= /頻率調(diào)整中間值 0xff,0xb8,0x76,0x56,0x43,0x37,0x2e,0x26,0x20,0x1c, /正弦波頻率調(diào)整中間值0xff,0x8e,0x5a,0x41,0x32,0x28,0x20,0x1b,0x17,0x0e,/三角波頻率調(diào)
15、整中間值0xff,0x8e,0x5a,0x41,0x32,0x28,0x20,0x1b,0x17,0x0e; uint code wave_freq_adjust= /頻率調(diào)整中間值 380,184,118,86,67,55,46,28,38,32,295,142, 90,65,50,40,32,27,23,14,295,142, 90,65,50,40,32,27,23,14; */*uchar code waveTH= 0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0
16、xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff;uchar code waveTL= 0xf2,0x78,0xfb,0x3c,0x63,0x7d,0x8f,0x9d,0xa8,0xb1,0x17,0x0b,0xb2,0x05,0x37,0x58,0x70,0x82,0x90,0x9b, 0x4d,0xa7,0xc4,0xd3,0xdc,0xe2,0xe6,0xea,0xec,0xee;*/*這兩組數(shù)組很重要,需要根據(jù)波形來調(diào)試,選擇合適的值,使輸出波形達(dá)到頻率要求*/uchar code waveTH= 0xfd,
17、0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe;uchar code waveTL= 0x06,0x8a,0x10,0x4e,0x78,0x93,0xa8,0xb3,0xbe,0xc6, /正弦波頻率調(diào)整中間值0xac,0xde,0x48,0x7a,0x99,0xaf,0xbb,0xc8,0xd0,0xde,/三角波頻率調(diào)整中間值0x88,0x50,0x9
18、0,0x32,0x34,0xbe,0x4a,0xa3,0xe5,0x2c; /*/uchar code triangle_tab= /每隔數(shù)字8,采取一次0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,0xff,0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa
19、0,0x98,0x90,0x88,0x80,0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10,0x08,0x00;uchar code sine_tab256=/輸出電壓從0到最大值(正弦波1/4部分)0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6
20、,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,/輸出電壓從最大值到0(正弦波1/4部分)0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xe
21、c,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,/輸出電壓從0到最小值(正弦波1/4部分)0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0
22、x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,/輸出電壓從最小值到0(正弦波1/4部分)0x00,0x00,0x00,0x00,0x00,0x00
23、,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80; void
24、delay(uchar z) uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void triangle_out()/三角波輸出 DAdata=triangle_tabwavecount+;if(wavecount>64) wavecount=0;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關(guān)閉8位輸入寄存器void sine_out() /正弦波輸出 DAdata=sine_tabwavecount+;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關(guān)閉8位輸入寄存器void square_out() /方波輸出
25、judge=judge; if(judge=1) DAdata=0xff;else DAdata=0x00;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關(guān)閉8位輸入寄存器/*1602液晶的相關(guān)函數(shù)*/#define lcd_ports P1sbit rs=P22;sbit rw=P23;sbit lcden=P24;void write_com(uchar com)rs=0;/置零,表示寫指令lcden=0;lcd_ports=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)rs=1;/置1,表示寫
26、數(shù)據(jù)(在指令所指的地方寫數(shù)據(jù))lcden=0;lcd_ports=date;delay(5);lcden=1;delay(5);lcden=0;void disp_lcd(uchar addr,uchar *temp1)uchar num;write_com(addr);delay(1); /延時一會兒?for(num=0;num<16;num+)write_date(temp1num);/或者這樣寫write_date(*(temp1+num);delay(1);void init_lcd()/uchar num;lcden=0; /可有可無?rw=0; /初始化一定要設(shè)置為零,表示寫
27、數(shù)據(jù)write_com(0x38); /使液晶顯示點陣,為下面做準(zhǔn)備write_com(0x0c); /初始設(shè)置write_com(0x06); /初始設(shè)置write_com(0x01); /清零write_com(0x80); /使指針指向第一行第一格 disp_lcd(0x80,&lcd_hang13*16); /在第一行顯示 disp_lcd(0xc0,&lcd_hang14*16); /在第二行顯示/*for(num=0;num<16;num+)write_date(tablenum);delay(5);write_com(0x80+0x40); /給指針重新賦值
28、,使之指向第二行第一格for(num=0;num<16;num+)write_date(table1num);delay(5); */*TMOD=0x01; /選用定時方式1TH0=(65536-50000)/256; /賦初值TL0=(65536-50000)%256;/EA=1;/開總中斷ET0=1; /開定時器中斷TR0=1; /啟動定時器*/*1602液晶函數(shù)聲明結(jié)束*/void main() uchar i=0;DA_S2=0; /使DAC寄存器處于直通狀態(tài)DAdata=0;DA_S1=1; /關(guān)閉8位輸入寄存器init_lcd(); waveform=0;TMOD=0x01;
29、 /設(shè)置定時器0為16位工作方式IT0=1; /設(shè)置外部中斷0為下降沿觸發(fā)ET0=1; /開定時器中斷EX0=1; EA=1;while(1)/DAout(0xff); /可輸出TTL波形/DAout(0x80);/T_temp=32; void timer0() interrupt 1TH0=THtemp;TL0=TLtemp;if(waveform=0) sine_out();else if(waveform=1) triangle_out();else if(waveform=2) square_out();void key_int0() interrupt 0 uchar keytemp;uint total_freq; /總頻率EA=0; TR0=0; /關(guān)總中斷與定時器delay(5); /延時夠嗎?if(key=0) /確實有按鍵按下而引發(fā)中斷keytemp=P3&0xf0; /獲取P3口高四位的值switch(keytemp) case 0xe0:/選擇波形 waveform+; if(waveform>2) waveform=0; break; case 0x
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國PVC-U絕緣耐燃電線套管數(shù)據(jù)監(jiān)測報告
- 2025年中國LED室外單色顯示屏數(shù)據(jù)監(jiān)測報告
- 2025年中國EVA雙面海綿膠帶數(shù)據(jù)監(jiān)測報告
- 2025年中國ABS床頭落地式平板床數(shù)據(jù)監(jiān)測研究報告
- 2025年中國2-氟氯芐數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國高頻發(fā)生器市場分析及競爭策略研究報告
- 2025至2030年中國防霧鏡片市場分析及競爭策略研究報告
- 2025至2030年中國鉤型鋼釘線卡市場分析及競爭策略研究報告
- 2025至2030年中國自動水溶膠復(fù)膜機市場分析及競爭策略研究報告
- 2025至2030年中國紅木二胡市場分析及競爭策略研究報告
- GB/T 15231-2023玻璃纖維增強水泥性能試驗方法
- 外出提攜公章申請表
- 2023版押品考試題庫必考點含答案
- 【本田轎車燈光系統(tǒng)常見故障分析及排除8200字(論文)】
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設(shè))采礦權(quán)出讓收益評估報告
- 尿動力學(xué)檢查操作指南2023版
- 夢幻西游古龍服務(wù)端安裝教程
- 食品安全地方標(biāo)準(zhǔn) 預(yù)制菜生產(chǎn)衛(wèi)生規(guī)范
- 亮化工程竣工驗收報告
- 《出生醫(yī)學(xué)證明》單親母親情況聲明
- PCS-915母差保護(hù)裝置介紹
評論
0/150
提交評論