單片機(jī)課程設(shè)計(jì)波形發(fā)生器的設(shè)計(jì)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)波形發(fā)生器的設(shè)計(jì)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)波形發(fā)生器的設(shè)計(jì)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)波形發(fā)生器的設(shè)計(jì)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)波形發(fā)生器的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告課程單片機(jī)原理及應(yīng)用課程設(shè)計(jì)題目波形發(fā)生器的設(shè)計(jì)院系電院專業(yè)自動(dòng)化班級(jí)姓名學(xué)號(hào)第一章. 設(shè)計(jì)目的及意義第二章. 功能要求及實(shí)驗(yàn)原理第三章. 方案論證第四章. 總體設(shè)計(jì)方案第五章. 源代碼第六章. 運(yùn)行結(jié)果第七章. 實(shí)驗(yàn)總結(jié)參考文獻(xiàn)一、設(shè)計(jì)目的及意義1. 設(shè)計(jì)目的(1)利用所學(xué)單片機(jī)的理論知識(shí)進(jìn)行軟硬件整體設(shè)計(jì),鍛煉學(xué)生理論聯(lián)系實(shí)際、提高我們的綜合應(yīng)用能力。 (2)我們這次的課程設(shè)計(jì)是以單片機(jī)為基礎(chǔ),設(shè)計(jì)并開發(fā)能輸出多種波形(正弦波、三角波、鋸齒波、方波、梯形波等)且頻率、幅度可變的函數(shù)發(fā)生器。 (3)掌握各個(gè)接口芯片的功能特性及接口方法,并能運(yùn)用其實(shí)現(xiàn)一個(gè)簡(jiǎn)單的微機(jī)應(yīng)用系統(tǒng)功能器件

2、。 (4)課程設(shè)計(jì)十分有助于學(xué)生的知識(shí)系統(tǒng)的總結(jié)到一起。 (5)通過這幾個(gè)波形進(jìn)行組合形成了一個(gè)函數(shù)發(fā)生器,使得我對(duì)系統(tǒng)的整個(gè)框架的設(shè)計(jì)有了一個(gè)很好的鍛煉。這不僅有助于大家找到自己感興趣的題目,更可以鍛煉大家微機(jī)知識(shí)的應(yīng)用。2設(shè)計(jì)意義波形發(fā)生器作為一種常用的信號(hào)源,是現(xiàn)代測(cè)試領(lǐng)域內(nèi)應(yīng)用最為廣泛的通用儀器之一。在研制、生產(chǎn)、測(cè)試和維修各種電子元件、部件以及整機(jī)設(shè)備時(shí),都學(xué)要有信號(hào)源,由它產(chǎn)生不同頻率不同波形的電壓、電流信號(hào)并加到被測(cè)器件或設(shè)備上,用其他儀器觀察、測(cè)量被測(cè)儀器的輸出響應(yīng),以分析確定它們的性能參數(shù)。信號(hào)發(fā)生器是電子測(cè)量領(lǐng)域中最基本、應(yīng)用最廣泛的一類電子儀器。它可以產(chǎn)生多種波形信號(hào),如

3、正弦波,三角波,方波等,因而廣泛用于通信、雷達(dá)、導(dǎo)航、宇航等領(lǐng)域。第二章功能要求及實(shí)驗(yàn)原理1. 設(shè)計(jì)要求設(shè)計(jì)一個(gè)能產(chǎn)生正弦波、方波、三角波、梯形波、鋸齒波的波形發(fā)生器。2. 實(shí)驗(yàn)原理 產(chǎn)生指定波形可以通過DAC來實(shí)現(xiàn),不同波形產(chǎn)生實(shí)質(zhì)上是對(duì)輸出的二進(jìn)制數(shù)字量進(jìn)行相應(yīng)改變來實(shí)現(xiàn)的。本題目中,方波信號(hào)是利用定時(shí)器中斷產(chǎn)生的,每次中斷時(shí),將輸出的信號(hào)按位反即可;三角波信號(hào)是將輸出的二進(jìn)制數(shù)字信號(hào)依次加1,達(dá)到0xff時(shí)依次減1,并實(shí)時(shí)將數(shù)字信號(hào)經(jīng)D/A轉(zhuǎn)換得到;鋸齒波信號(hào)是將輸出的二進(jìn)制數(shù)字信號(hào)依次加1,達(dá)到0xff時(shí)置為0x00,并實(shí)時(shí)將數(shù)字信號(hào)經(jīng)D/A轉(zhuǎn)換得到的; 梯形波是將輸出的二進(jìn)制數(shù)字信號(hào)

4、依次加1,達(dá)到0xff時(shí)保持一段時(shí)間,然后依次減1直至0x00,并實(shí)時(shí)將數(shù)字信號(hào)經(jīng)D/A轉(zhuǎn)換得到的; 正弦波是利用MATLAB將正弦曲線均勻取樣后,得到等間隔時(shí)刻的y方向上的二進(jìn)制數(shù)值,然后依次輸出后經(jīng)D/A轉(zhuǎn)換得到。 第三章 方案論證信號(hào)發(fā)生器的實(shí)現(xiàn)方法通常有以下幾種:方案一:用分立元件組成的函數(shù)發(fā)生器:通常是單函數(shù)發(fā)生器且頻率不高,其工作不很穩(wěn)定,不易調(diào)試。方案二:可以由晶體管、運(yùn)放IC等通用器件制作,更多的則是用專門的函數(shù)信號(hào)發(fā)生器IC產(chǎn)生。早期的函數(shù)信號(hào)發(fā)生器IC,如L8038、BA205、XR2207/2209等,它們的功能較少,精度不高,頻率上限只有300kHz,無法產(chǎn)生更高頻率的

5、信號(hào),調(diào)節(jié)方式也不夠靈活,頻率和占空比不能獨(dú)立調(diào)節(jié),二者互相影響。方案三:利用專用直接數(shù)字合成芯片的函數(shù)發(fā)生器:能產(chǎn)生任意波形并達(dá)到很高的頻率。但成本較高。方案四:采用AT89C52單片機(jī)和DAC0832芯片,直接連接鍵盤和顯示。該種方案主要對(duì)AT89C52單片機(jī)的各個(gè)I/O口充分利用. P1口是連接鍵盤以及接顯示電路,P2口連接DAC0832輸出波形.這樣總體來說,能對(duì)單片機(jī)各個(gè)接口都利用上,而不在多用其它芯片,從而減小了系統(tǒng)的成本.也對(duì)按照系統(tǒng)便攜式低頻信號(hào)發(fā)生器的要求所完成.占用空間小,使用芯片少,低功耗。第四章 總體設(shè)計(jì)方案一. 原理圖二。CPUAT89C52是一個(gè)低電壓,高性能CMO

6、S 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。PDIP封裝的AT89C52引腳圖準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:

7、XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(3239 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接主板CPU 的相應(yīng)功能端,用于

8、當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。三顯示模塊四.產(chǎn)生波形模塊Dac0832DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè)DA芯片以其價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成五??刂颇K第五章 源代碼#include<reg52.h>#include<absacc.h>/使用其中定義的宏來訪問絕對(duì)地址#define DAC0832 XBYTE0x0fff /DAC0832端口int pinlv=256; /改變頻率的時(shí)延自

9、變量sbit p20=P20;/方波sbit p21=P21;/鋸齒波sbit p22=P22;/三角波sbit p23=P23;/正弦波sbit p24=P24;/梯形波sbit RS = P30;/數(shù)據(jù)/命令選擇sbit RW= P31; /讀寫選擇sbit E = P34;/使能信號(hào)int j=0;/全局變量unsigned char code TAB ="0123456789msTIME:" ;unsigned char code TAB1 ="ZhengxianboFangbo Sanjiaobo Juchibo Tixingbo " ;uns

10、igned char table4;float code table2= / 正弦波信號(hào)采點(diǎn)值 0x80,0x83,0x85,0x88,0x8A,0x8D,0x8F,0x92, 0x94,0x97,0x99,0x9B,0x9E,0xA0,0xA3,0xA5, 0xA7,0xAA,0xAC,0xAE,0xB1,0xB3,0xB5,0xB7, 0xB9,0xBB,0xBD,0xBF,0xC1,0xC3,0xC5,0xC7, 0xC9,0xCB,0xCC,0xCE,0xD0,0xD1,0xD3,0xD4, 0xD6,0xD7,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE, 0xDF,0

11、xE0,0xE1,0xE2,0xE3,0xE3,0xE4,0xE4, 0xE5,0xE5,0xE6,0xE6,0xE7,0xE7,0xE7,0xE7, 0xE7,0xE7,0xE7,0xE7,0xE6,0xE6,0xE5,0xE5, 0xE4,0xE4,0xE3,0xE3,0xE2,0xE1,0xE0,0xDF, 0xDE,0xDD,0xDC,0xDB,0xDA,0xD8,0xD7,0xD6, 0xD4,0xD3,0xD1,0xD0,0xCE,0xCC,0xCB,0xC9, 0xC7,0xC5,0xC3,0xC1,0xBF,0xBD,0xBB,0xB9, 0xB7,0xB5,0xB3,0xB1

12、,0xAE,0xAC,0xAA,0xA7, 0xA5,0xA3,0xA0,0x9E,0x9B,0x99,0x97,0x94, 0x92,0x8F,0x8D,0x8A,0x88,0x85,0x83,0x80, 0x7D,0x7B,0x78,0x76,0x73,0x71,0x6E,0x6C, 0x69,0x67,0x65,0x62,0x60,0x5D,0x5B,0x59, 0x56,0x54,0x52,0x4F,0x4D,0x4B,0x49,0x47, 0x45,0x43,0x41,0x3F,0x3D,0x3B,0x39,0x37, 0x35,0x34,0x32,0x30,0x2F,0x2D,0x

13、2C,0x2A, 0x29,0x28,0x26,0x25,0x24,0x23,0x22,0x21, 0x20,0x1F,0x1E,0x1D,0x1D,0x1C,0x1C,0x1B, 0x1B,0x1A,0x1A,0x1A,0x19,0x19,0x19,0x19, 0x19,0x19,0x19,0x19,0x1A,0x1A,0x1A,0x1B, 0x1B,0x1C,0x1C,0x1D,0x1D,0x1E,0x1F,0x20, 0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29, 0x2A,0x2C,0x2D,0x2F,0x30,0x32,0x34,0x35, 0x37

14、,0x39,0x3B,0x3D,0x3F,0x41,0x43,0x45, 0x47,0x49,0x4B,0x4D,0x4F,0x52,0x54,0x56, 0x59,0x5B,0x5D,0x60,0x62,0x65,0x67,0x69, 0x6C,0x6E,0x71,0x73,0x76,0x78,0x7B,0x7D;void delay(unsigned char ms);/延時(shí)函數(shù)void write_com(unsigned char com); /液晶寫指令void write_data(unsigned char dat); / 液晶寫數(shù)據(jù)void LCD1602_init(void)

15、 /液晶初始化delay(15); /延時(shí)15mswrite_com(0x38); / 功能設(shè)置delay(5); /延時(shí)5mswrite_com(0x38);/功能設(shè)置delay(5); /延時(shí)5mswrite_com(0x08);/顯示設(shè)置write_com(0x01); /顯示清屏write_com(0x06); /顯示光標(biāo)移動(dòng)設(shè)置write_com(0x0c); /顯示開即光標(biāo)設(shè)置void write_com(unsigned char com)E = 0; /復(fù)位初始為高電平 RS = 0;RW = 0;P1 = com;delay(1);E = 1;delay(1);E = 0;v

16、oid write_data(unsigned char dat)E = 0; /復(fù)位初始為高電平 RS = 1;RW = 0;P1 = dat;delay(1);E = 1;delay(1);E = 0; void delay(unsigned char ms) / 晶振12MHz 延時(shí)0.01msunsigned char i;while(ms-)for(i=0;i<120;i+);void fang()/方波DAC0832=0;delay(pinlv/2);DAC0832=0xff;delay(pinlv/2); void jvchi()/鋸齒波unsigned char i;fo

17、r(i=0;i<255;i+)DAC0832=i;delay(pinlv/256);void tran()/三角波unsigned char i;for(i=0;i<255;i+)DAC0832=i;delay(pinlv/512);for(i=255;i>0;i-)DAC0832=i;delay(pinlv/512);void sin()/正弦波unsigned int i;for(i=0;i<256;i+)DAC0832=table2i;delay(pinlv/256);void tx(void)/梯形波 unsigned char i;for(i=0;i<2

18、55;i+)DAC0832=i;delay(pinlv/1024);DAC0832=0xff;delay(pinlv/2);for(i=255;i>0;i-)DAC0832=i;delay(pinlv/1024); void main(void)/主函數(shù) IE=0x85; /中斷允許控制,外部中斷設(shè)定 改變頻率TCON=0x05; /中斷請(qǐng)求標(biāo)志下降沿有效LCD1602_init();/初始化table0=pinlv/1000; /計(jì)算周期作為輸出千位table1=pinlv%1000/100; / 百位table2=pinlv%100/10; /十位table3=pinlv%10; /

19、個(gè)位write_com(0x80+0x40); / 設(shè)置待寫入數(shù)據(jù)的地址,寫1602的第2行。寫出做產(chǎn)生波形的周期for(j=12;j<17;j+)/顯示'TIME:'write_data(TAB j );delay(1);for(j=0;j<4;j+) /顯示周期write_data(TABtable j );delay(1);write_data(TAB10);/在周期后面加上"MS"write_data(TAB11);while(1)if(p20=0) /方波write_com(0x80); /寫1602的第1行,寫明產(chǎn)生的波形for(j=

20、11;j<22;j+)write_data(TAB1j);while(p20=0)fang();if(p21=0) /鋸齒波write_com(0x80);/寫1602的第1行,寫明產(chǎn)生的波形for(j=33;j<44;j+)write_data(TAB1j);while(p21=0)jvchi(); if(p22=0) / 三角波write_com(0x80);/寫1602的第1行,寫明產(chǎn)生的波形for(j=22;j<33;j+)write_data(TAB1j);while(p22=0)tran();if(p23=0) /正弦波write_com(0x80);/寫1602

21、的第1行,寫明產(chǎn)生的波形for(j=0;j<11;j+)write_data(TAB1j);while(p23=0)sin(); if(p24=0) /梯形波 write_com(0x80); /寫1602的第1行,寫明產(chǎn)生的波形 for(j=44;j<55;j+)write_data(TAB1j);while(p24=0)tx(); void int0(void) interrupt 0 /中斷0 加頻pinlv=pinlv+10;/頻率加十table0=pinlv/1000;table1=pinlv%1000/100;table2=pinlv%100/10;table3=pinlv%10; write_com(0x80+0x40);/設(shè)置代寫入數(shù)據(jù)的地址,寫1602第2行。for(j=12;j<17;j+)write_data(TAB j );delay(1);for(j=0;j<4;j+)write_data(TABtable j );delay(1);write_data(TAB10);write_data(TAB11);void int1(void) interrupt 2 /中斷2 減頻pinlv=pinlv-10;/頻率減十table0=pinlv/1000;table1=pi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論