




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單片機課程設計報告東莞理工學院課 程 單片機課程設計 題 目 多波形發(fā)生器 院 系 電子工程學院 專業(yè)班級 2011級電子信息工程2班 2013年 6月 27日目錄第一部分1.1波形發(fā)生器的概述31.2 本設計任務.3第2 部分2.1本設計的意義.42.2 設計要求.42.3 設計原理.42.4 硬件設計.42.5 軟件設計.8第三部分3.1 心得.193.2參考文獻19第一部分1.1 波形發(fā)生器的概述波形發(fā)生器:顧名思義,一個能產(chǎn)生各種波形的儀器。波形發(fā)生器可通過以下方法產(chǎn)生:(1):利用模擬電路的運放電路,可以產(chǎn)生三角波、鋸齒波、正弦波。用數(shù)字電路的555電路可以產(chǎn)生方波。這方法的電路元件
2、數(shù)量不多,焊接簡單,但不穩(wěn)定難以調(diào)試,產(chǎn)生的波形也不理想。(2):利用市面上可以購得的專用直接數(shù)字合成dds芯片的波形發(fā)生器:能產(chǎn)生任意波形。而且可以達到很高的頻率,其他方法很難做到這一點,所產(chǎn)生的的波形頻率不高。但這方法成本高,而且課程設計用這些芯片就沒意思了。(3):用at89c51單片機和dac0832芯片,用輕觸按鍵組成的鍵盤來控制波形的選擇以及各種擴展功能。p1口連接按鍵鍵盤,作為波形的選擇和其他擴展功能的輸入口。p0口連上上拉電阻后,接上數(shù)碼管,用來顯示所選擇波形的類型。這方法較上面兩種方法好。調(diào)試主要通過編輯89c51的程序,而且89c51、dac0832、lm339這幾個芯片的
3、價格不貴。至于編程方面,鋸齒波、三角波、正弦波這三種分段后呈單調(diào)性的波形,可以通過等差增減來實現(xiàn)。但是經(jīng)過proteus 7 professional仿真后,所產(chǎn)生的波形不理想。所以通過手動的方法計算出輸出各點的電壓值,然后在編寫程序時以數(shù)組的方式給出。當需要時,只要按照順序進行輸出即可。1.2 本設計任務設計要求: 一、基本功能: 1 、 可產(chǎn)生多種波形,如正弦波、三角波、鋸齒波、方波; 2 、 各種波形可通過按鍵選擇; 二、擴展功能: 1 、 可調(diào)節(jié)信號的頻率、占空比等參數(shù); 2 、 其他自行增加的功能;擴展部分:按鍵s5、s6分別是控制方波的占空比增、減;s7、s8分別是控制波形的頻率增
4、、減。自行增加的功能:制作電路的時候,擴展了通過數(shù)碼管顯示1、2、3、4,分別對應所選的波形是正弦波、方波、鋸齒波、三角波。又通過帶源可調(diào)電位器來改變dac0832的參考電壓vref的值,從而做到改變所產(chǎn)生波形的幅值。vref的值越大,波形的幅值越大。第2 部分2.1本設計的意義(1)通過為期一個星期的集中實驗,將平時所學的理論知識結(jié)合到實際中。實踐中體會理論知識的用途和檢驗其是否真實。制作電路的時候,發(fā)現(xiàn)模電書的運放輸出都沒接上拉電阻,還有89c51的p0口輸出也沒接上拉電阻。雖然理論上是正確的,但是在實踐時發(fā)現(xiàn)這會導致所期望的的效果不明顯。(2)學習了如何使用dac0832、lm339芯片
5、和用proteus 7 professional仿真。(3)將平時學的分散的知識系統(tǒng)地組合一次,鍛煉了系統(tǒng)的思維。2.2 設計要求設計要求: 一、基本功能: 1 、 可產(chǎn)生多種波形,如正弦波、三角波、鋸齒波、方波; 2 、 各種波形可通過按鍵選擇; 二、擴展功能: 1 、 可調(diào)節(jié)信號的頻率、占空比等參數(shù); 2 、 其他自行增加的功能;2.3 設計原理課程設計要求輸出正弦波、方波、鋸齒波、三角波。這些波形的實現(xiàn)的具體步驟:(1)正弦波:通過手動的方法計算出輸出各點的電壓值,然后在編寫程序時以數(shù)組的方式給出。當需要時,只要按照順序進行輸出即可。將一個周期(360度)分為256個點,則每兩個點之間的
6、間隔為1.4度,然后計算出每個點電壓對應的數(shù)字量,相鄰的變化4,形成數(shù)組。重復輸出這組數(shù)據(jù)到dac0832,就可以在系統(tǒng)輸出端得到想要的正弦波。(2)方波:按照設定的周期值將輸出的電壓改變,先輸出0xff,延時,再輸出0x00,延時。(3)鋸齒波:也使用查表法。將三角波的一個周期(360度)分為256個點,相鄰點等差,生成數(shù)組。反復輸出前128個數(shù)據(jù)到dac0832,然后=0,就可以在系統(tǒng)輸出端得到想要的鋸齒波。(4)三角波:將(3)中的數(shù)組256個數(shù)據(jù)全部輸出到dac0832,循環(huán),就可以在系統(tǒng)輸出端得到想要的三角波。通過p1口和輕觸開關(guān)s1-s4相連接來切換波形輸出,p1內(nèi)帶上拉電阻,按鍵
7、接地,按下后輸入0到對應的p1口。(如按s1鍵輸出正弦波,按s2鍵產(chǎn)生方波,按s3鍵產(chǎn)生鋸齒波,按s4鍵產(chǎn)生三角波)。用p0口控制數(shù)碼管靜態(tài)顯示波形代號,p0.0=0,顯示1(0xf9);p0.1=0,顯示2(0xa4);p0.2=0,顯示3(0xb0);p0.3=0,顯示4(0x99)。用p2口向dac0832發(fā)送數(shù)據(jù),經(jīng)dac0832轉(zhuǎn)換后,再把信號放大,最后接到示波器上顯示。2.4 硬件設計 設計圖示:仿真的總電路圖仿真的正弦波效果圖:方波的效果圖:鋸齒波的效果圖:三角波的效果圖:焊接出來的成品:所用到的電子元件介紹:(1)51單片機的內(nèi)部結(jié)構(gòu)基本組成部分:1 一個8位的cpu2 128
8、b或256b單元內(nèi)數(shù)據(jù)存儲器(ram)3 4kb或8kb片內(nèi)程序存儲器(rom或eprom)4 4個8位并行i/o接口p0p3。5 兩個定時/計數(shù)器。6 5個中斷源的中斷管理控制系統(tǒng)。7 一個全雙工串行i/o口uart(通用異步接收、發(fā)送器) 8 一個片內(nèi)振蕩器和時鐘產(chǎn)生電路。圖7 51單片機引腳管腳說明:vcc:供電電壓。 gnd:接地。 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0
9、輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸
10、出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳
11、用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。 /ea/vpp:當/ea保持低電平時,則在此期間外
12、部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。(2)dac0832芯片dac0832是采樣頻率為八位的d/a轉(zhuǎn)換芯片,集成電路內(nèi)有兩級輸入寄存器。dac0832輸出的是電流,一般要求輸出是電壓,所以還必須經(jīng)過一個外接的運算放大器轉(zhuǎn)換成電壓。dac0832芯片具備雙緩沖、單緩沖和直通三種輸入方式,以便適于各種電路的需要(如要求多
13、路d/a異步輸入、同步轉(zhuǎn)換等)。所以這個芯片的應用很廣泛,關(guān)于dac0832的引腳功能如下:d0d7:數(shù)字信號輸入端。ile:輸入寄存器允許,高電平有效。cs:片選信號,低電平有效。wr1:寫信號1,低電平有效。xfer:傳送控制信號,低電平有效。wr2:寫信號2,低電平有效。iout1、iout2:dac電流輸出端。rfb:是集成在片內(nèi)的外接運放的反饋電阻。 vref:基準電壓(-1010v)。vcc:是源電壓(+5+15v)。gnd:地。圖8 dac0832芯片圖(3)lm339芯片lm339引腳圖these comparators are designed for use in leve
14、l detection, lowlevelsensing and memory applications in consumer automotive and industrialelectronic applications. single or split supply operation low input bias current: 25 na (typ) low input offset current: 5.0 na (typ) low input offset voltage: 1.0 mv (typ) lm139a series input common mode voltag
15、e range to gnd low output saturation voltage: 130 mv (typ) 4.0 ma ttl and cmos compatible esd clamps on the inputs increase reliability without affecting device operation(4)一位共陽極數(shù)碼管 由于單片機的p0口帶負載的能力不高,所以連接數(shù)碼管的時候要接上上拉電阻提高負載能力。具體解法:p0.0連a;p0.1連b;p0.2連c;p0.3連d;p0.4連e;p0.5連f;p0.6連g;p0.7連h(或dp)至于3、8兩個腳是內(nèi)部
16、相連的,接vcc。引腳圖如右圖:2.5軟件設計 (1)程序流程圖: (2)鍵盤掃描系統(tǒng)流程圖:(3) 源代碼清單#include #define uchar unsigned char#define uint unsigned intsbit s1=p10;/p1口內(nèi)部自帶上拉電阻,因此外部的輕觸按鍵要接地sbit s2=p11;/當按下按鍵時,p1口輸入0,檢測出是哪個按鍵按下sbit s3=p12;/sbit s4=p13;sbit s5=p14;sbit s6=p15;sbit s7=p16;sbit s8=p17;uint d1,d2;uint s,p;uint n;uchar cod
17、e sintab256=/正弦波的數(shù)字量表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,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
18、,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,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
19、,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,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
20、,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,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,0x3a,0x3d,0x40,0x43
21、,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80;uchar code jctab128=/鋸齒波的數(shù)字量表0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x40,0x42,
22、0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,
23、0xbc,0xbe,0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe;uchar code sjtab256=/三角波的數(shù)字量表0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26,0
24、x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0
25、xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe,0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe,0xfe,0xfc,0xfa,0xf8,0xf6,0xf4,0xf2,0xf0,0xee,0xec,0xea,0xe8,0
26、xe6,0xe4,0xe2,0xe0,0xde,0xdc,0xda,0xd8,0xd6,0xd4,0xd2,0xd0,0xce,0xcc,0xca,0xc8,0xc6,0xc4,0xc2,0xc0,0xbe,0xbc,0xba,0xb8,0xb6,0xb4,0xb2,0xb0,0xae,0xac,0xaa,0xa8,0xa6,0xa4,0xa2,0xa0,0x9e,0x9c,0x9a,0x98,0x96,0x94,0x92,0x90,0x8e,0x8c,0x8a,0x88,0x86,0x84,0x82,0x80,0x7e,0x7c,0x7a,0x78,0x76,0x74,0x72,0x70,0
27、x6e,0x6c,0x6a,0x68,0x66,0x64,0x62,0x60,0x5e,0x5c,0x5a,0x58,0x56,0x54,0x52,0x50,0x4e,0x4c,0x4a,0x48,0x46,0x44,0x42,0x40,0x3e,0x3c,0x3a,0x38,0x36,0x34,0x32,0x30,0x2e,0x2c,0x2a,0x28,0x26,0x24,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x14,0x12,0x10,0x0e,0x0c,0x0a,0x08,0x06,0x04,0x02,0x00;void delay (uchar k)
28、/延時 uchar j; while(k-)!=0) for(j=0;j=256)n=0;void square() p2=0xff;/方波 delay(d1-p); p2=0; delay(d2-p);void sawtooth() /鋸齒波 p2=jctabn; n=n+p; if(n=127)n=0;void triangular() /三角波 p2=sjtabn; n=n+p; if(n=255)n=0;void boxingkey() /電路所采用的數(shù)碼管是共陽極的,因此p0口輸出1不亮、0亮 if(s1=0) p0=0xf9;/數(shù)碼管顯示1 s=1; n=0;p=4; else i
29、f(s2=0) p0=0xa4;/數(shù)碼管顯示2 s=2; n=0;p=4; else if(s3=0) p0=0xb0;/ 數(shù)碼管顯示3 s=3; n=0;p=4; else if(s4=0) p0=0x99; / 數(shù)碼管顯示4 s=4; n=0;p=4; else if(s5=0) /占空比增加 delay(10);/ if(s5=0) d1-; d2+; while(!s5);/檢測是否已經(jīng)松手了,當s5=1跳出死循環(huán)delay(10);/消抖while(!s5);/確實一下是否真的松手了 else if(s6=0)/占空比減小 delay(10); if(s6=0) d1+; d2-; while(!s6);/檢測
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同范本及審查
- 七年級人教版上冊教學設計第三課 IT新城班加羅爾教學設計
- 個人租房合同范本樣書
- 公墓購銷協(xié)議合同范本
- 內(nèi)裝箱合同范本
- 萬科電纜合同范本
- 事故二手車買賣合同范本
- 2024年廣州市天河區(qū)體育西幼兒園聘用制專任教師招聘考試真題
- 買地皮出售合同范本
- 保潔公司加盟合同范本
- DeepSeek1天開發(fā)快速入門
- 2025書記員招聘考試題庫及參考答案
- 2024-2025年第二學期數(shù)學教研組工作計劃
- 2025輔警招聘公安基礎知識題庫附含參考答案
- GB/T 44927-2024知識管理體系要求
- 2025年環(huán)衛(wèi)工作計劃
- 2024年07月山東省泰山財產(chǎn)保險股份有限公司2024年夏季校園招考29名工作人員筆試歷年參考題庫附帶答案詳解
- 品質(zhì)巡檢培訓課件
- 醫(yī)療器械生產(chǎn)企業(yè)并購合同
- 2025版新能源汽車充電站建設合同含政府補貼及稅收優(yōu)惠條款
- 初驗整改報告格式范文
評論
0/150
提交評論