基于單片機的波形發(fā)生器的課程設(shè)計報告_第1頁
基于單片機的波形發(fā)生器的課程設(shè)計報告_第2頁
基于單片機的波形發(fā)生器的課程設(shè)計報告_第3頁
基于單片機的波形發(fā)生器的課程設(shè)計報告_第4頁
基于單片機的波形發(fā)生器的課程設(shè)計報告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選文檔重慶科技學(xué)院學(xué)生實習(xí)(實訓(xùn))總結(jié)報告學(xué)院: 電氣與信息工程學(xué)院 專業(yè)班級: 測控 學(xué)生姓名: 學(xué) 號: 設(shè)計地點(單位) I506 設(shè)計題目: 基于單片機的波形發(fā)生器的設(shè)計 完成日期: 2014 年 03月 17日 指導(dǎo)教師評語: _ _ 成績(五級記分制):_ 指 導(dǎo) 教 師(簽字) :_目錄一、 實習(xí)的任務(wù)要求與意義11.1 設(shè)計要求11.2 設(shè)計任務(wù)11.3 基本功能與性能指標(biāo)11.4 實習(xí)的意義1二、設(shè)計方案22.1硬件選擇22.2 系統(tǒng)總體設(shè)計3三、系統(tǒng)硬件設(shè)計43.1 單片機的最小系統(tǒng)43.2 按鍵電路設(shè)計53.3 LCD顯示的設(shè)計5四、系統(tǒng)軟件設(shè)計74.1 主程序設(shè)計74

2、.2 LCD顯示子程序設(shè)計84.3 D/A轉(zhuǎn)換子程序設(shè)計8五、調(diào)試及性能分析95.1 調(diào)試步驟105.2 性能分析12參考文獻(xiàn)13附錄 1 系統(tǒng)硬件電路圖14附錄 2 程序代碼15一、 實習(xí)的任務(wù)要求與意義1.1 設(shè)計要求1掌握電子系統(tǒng)的一般設(shè)計方法2. 掌握仿真軟件的應(yīng)用3.培養(yǎng)綜合應(yīng)用所學(xué)知識來指導(dǎo)實踐的能力4.根據(jù)技術(shù)指標(biāo)要求及實驗室條件自選方案設(shè)計出原理電路圖,分析工作原理并計算元件參數(shù)。1.2 設(shè)計任務(wù)按要求設(shè)計波形發(fā)生器并完成相關(guān)功能:(1)運用單片機控制產(chǎn)生多種波形,這些波形包括三角波、方波、鋸齒波等。(2)信號的發(fā)生器所產(chǎn)生波形的頻率、幅值均為連續(xù)可調(diào)。擴展功能在上位機將波形實

3、時顯示出來,用紅外線遙控器實現(xiàn)上述功能,其它功能。1.3 基本功能與性能指標(biāo)基本功能 : (1)可以產(chǎn)生正弦波、方波、三角波,頻率和幅值可調(diào)。 (2)按KEY1鍵選擇輸出波形。 (3)按KEY2,KEY5鍵調(diào)節(jié)輸出信號頻率和電壓幅值的增進(jìn)和減少。 (4)按KEY6鍵是轉(zhuǎn)換調(diào)節(jié)頻率或電壓幅值。 性能指標(biāo):(1)幅值05V可調(diào) (2)頻率0100Hz可調(diào) 1.4 實習(xí)的意義本次實訓(xùn)的目的是讓我們更加熟練的掌握單片機的原理與應(yīng)用,通過學(xué)習(xí)的單片機基礎(chǔ)知識來更加熟悉的操作將軟件和硬件相結(jié)合,通過控制單片機控制的程序代碼與能實現(xiàn)系統(tǒng)控制功能的電子元件來實現(xiàn)所需要的數(shù)據(jù)。通過對軟件和硬件的了解與應(yīng)用再結(jié)合

4、基礎(chǔ)知識對單片機更深層次的了解,達(dá)到以后能更加熟練的通過單片機去完成更復(fù)雜的任務(wù)。二、設(shè)計方案 采用AT89C51單片機和數(shù)模轉(zhuǎn)換器PCF8591實現(xiàn)波形的產(chǎn)生。波形的產(chǎn)生方法是用AT89C51單片機執(zhí)行波形程序,向PCF8591轉(zhuǎn)換器的輸入端輸入相應(yīng)的數(shù)據(jù),從而在DA轉(zhuǎn)換電路輸出端再通過運放電路轉(zhuǎn)換得到相應(yīng)的電壓波形。在AT89C51的P1口接按鍵控制波形的各類和波形的頻率,每種波形對應(yīng)一種按鍵方式。此方案原理簡單,同時適合操作,實現(xiàn)起來也相對較容易。產(chǎn)生的三種波形的頻率可由按鍵控制,并通過按鍵改變來轉(zhuǎn)換不同的波形,也能夠在示波器上顯示出所要求的波形。波形的頻率步進(jìn)也可以實現(xiàn)調(diào)節(jié),具有線路簡

5、單、可行性高、符合設(shè)計要求等優(yōu)點。加上LCD數(shù)碼顯示管,從而能夠在LCD上顯示出頻率值、幅度值信息。輸出的波形也較穩(wěn)定,精度較高,通過濾波電路使得系統(tǒng)的抗干擾性增強,電路簡單,性價比高。圖2.1系統(tǒng)組成結(jié)構(gòu)框圖2.1硬件選擇 (1)單片機:STC89C52是高速/低功耗/超強抗干擾的新一代8051 單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810 專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn) 換(250K/S),針對電機控制,強干擾場合。 (2)PCF8591:PCF8591是一個單片集成、單獨供電、低功耗、8-bit CMOS數(shù)據(jù)獲取器件。PCF8591具有

6、4個模擬輸入、1個模擬輸出和1個串行I2C總線接口。PCF8591的3個地址引腳A0, A1和A2可用于硬件地址編程,允許在同個I2C總線上接入8個PCF8591器件,而無需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數(shù)據(jù)信號都是通過雙線雙向I2C總線以串行的方式進(jìn)行傳輸。2.2 系統(tǒng)總體設(shè)計 本系統(tǒng)是用單片機來控制波形的轉(zhuǎn)換以及幅值和頻率的改變的,所以該系 統(tǒng)可以分為4個電路模塊 ,下面是總體設(shè)計框圖。 STC89C52PCF8591按鍵控制示波器顯示L C D圖2.2 系統(tǒng)總體設(shè)計框圖三、系統(tǒng)硬件設(shè)計 3.1 單片機的最小系統(tǒng) 由于單片機最小系統(tǒng)只需要外圍有時鐘電路和復(fù)位電路即

7、可,則單片機最小系統(tǒng)有著兩個外圍電路即可正常工作,下面是單片機的最小系統(tǒng)原理圖。 圖3.1 STC89C52單片機最小系統(tǒng) 3.2 按鍵電路設(shè)計本實現(xiàn)采用4個按鍵來進(jìn)行波形的轉(zhuǎn)換、幅值和頻率的改變、幅值和頻率的選擇,P32鍵用來改變波P33、P16用來改變幅值或頻率的大小,P17用來選擇頻率和幅值,下面是按鍵電路圖。圖3.2按鍵電路圖 3.3 LCD顯示的設(shè)計 本硬件采用的是12864的液晶顯示屏,顯示屏將波形的轉(zhuǎn)化顯示在顯示屏上,下面是 液晶顯示的電路。 圖3.312864液晶顯示電路 四、系統(tǒng)軟件設(shè)計 4.1 主程序設(shè)計 主程序內(nèi)進(jìn)行的是波形的切換及幅值、頻率的改變,用示波器和LCD顯示,

8、將主要的寫進(jìn)即可,其他的就寫在外面,下面是主程序流程圖。 開始 DA 轉(zhuǎn)換器 初始化LCD初始化Chang+Chang=1輸出方波Chang=2輸出三角波Chang=0輸出正弦波 圖4.1 主程序流程圖4.2 LCD顯示子程序設(shè)計液晶顯示的程序在本程序中比較的簡單,就是為了實時的顯示出當(dāng)前的波形是什么,用按鍵切換之后液晶顯示也跟著變。液晶顯示程序需首先初始化,再進(jìn)行數(shù)據(jù)的傳輸,并進(jìn)行字符的顯示,所以寫出相應(yīng)的幾個程序即可進(jìn)行LCD的顯示。 開始初始化12864LCD寫控制指令寫顯示數(shù)據(jù)串行傳輸數(shù)據(jù)寫漢字到LCD屏 指定位置結(jié)束圖4.2 LCD顯示流程圖4.3 D/A轉(zhuǎn)換子程序設(shè)計本程序采用PC

9、D8592來作D/A轉(zhuǎn)換器,需要將A1、A1、A2接地,單片機上的P37和P36接PCF8591上的SCL和SDA端口,AOUT接示波器,供顯示D/A轉(zhuǎn)換要滿足I2C協(xié)議才能進(jìn)行數(shù)據(jù)的傳輸。 void write_add(uchar date) start(); write_byte(0x90); respons(); write_byte(0x40); respons(); write_byte(date); respons(); stop(); 圖4.3 PCF8591電路圖五、調(diào)試及性能分析 5.1 調(diào)試步驟硬件調(diào)試:檢查線路連接有無錯誤,SDA和SCL接單片機的P36和P37口,VCC

10、接電源,CND接地,AOUT接示波器,在下載數(shù)據(jù)到單片機之后數(shù)據(jù)在傳輸?shù)臅r候PCF8591上的一個藍(lán)色的燈會不停的閃,說明有數(shù)據(jù)在傳輸,否則無數(shù)據(jù)傳輸。 軟件調(diào)試:首先看I2C協(xié)議是否正確,否則不能傳輸數(shù)據(jù),再看按鍵的邏輯關(guān)系是否正確,還有就是LCD的顯示是否正確。 調(diào)節(jié)電源,使其輸出5V電壓,調(diào)整好示波器。給電路供電,觀察示波器,記錄各頻段對應(yīng)波形的情況,峰峰值。調(diào)試結(jié)果表明,該電路在要求頻率范圍內(nèi)的大部分頻率范圍基本上不失真,除了在最高頻率的最低頻率有少許失真,其中,當(dāng)頻率接近10KHz時,方波高低電壓躍變時出現(xiàn)毛刺,審過零比較器的頻率特性所致,另外,在最高頻和最低頻段,三角波出現(xiàn)少許彎斜

11、,可選用頻率特性更為寬的電容進(jìn)行校正。示波器顯示之后的幅值頻率的調(diào)試結(jié)果如下圖所示:調(diào)試之后的正弦波調(diào)試之后的方波 調(diào)試之后的三角波 5.2 性能分析 經(jīng)過一段時間運行后,可以對系統(tǒng)的性能進(jìn)行測試。對于本波形發(fā)生器來說,用示波器可以測試其性能指標(biāo),按前面所述設(shè)計的波形發(fā)生器,能產(chǎn)生正弦波、三角波及方波信號,其幅值可以05V內(nèi)變化,頻率也可以調(diào)整。 六、心得體會經(jīng)過兩周的實訓(xùn),很快就結(jié)束了。雖然時間短暫,但是其中我們在完成任務(wù)的時候還是面臨了很多的問題,正是因為遇到了難題,我們小組在一起探討,經(jīng)過多次改正最后還是圓滿的完成了任務(wù)。雖然平時上課我們做過實驗,但是現(xiàn)在給我們一個任務(wù)讓我們?nèi)ネ瓿傻臅r候

12、才發(fā)現(xiàn)并不是那么容易就能做出來的,不僅需要扎實的基礎(chǔ)知識還要去查詢相關(guān)的書籍了解一些我們不懂的。經(jīng)過本次實訓(xùn),我們不僅增強了知識,也學(xué)到了很多技巧,對單片機的理解與運用更加熟練了。此次單片機的設(shè)計硬件電路較為簡單,而程序的設(shè)計在當(dāng)中占據(jù)很重要的部分。這次課程設(shè)計是用STC12C5AI6S2單片機與PCF8592D/A轉(zhuǎn)換器來實現(xiàn)的波形產(chǎn)生與顯示,所以要對這兩個模塊非常的熟悉。對于PCF8591需要深入的認(rèn)識I2C協(xié)議的內(nèi)容才能正確的傳輸數(shù)據(jù)。而對于單片機而需要對各個接口非常熟悉,才能保證數(shù)據(jù)的正常傳輸。此外還要熟練的使用示波器,對產(chǎn)生的波形進(jìn)行調(diào)整,來得到更好的效果。它考驗我們靈活的運用所學(xué)知

13、識,培養(yǎng)了我們在遇到問題善于觸屏的良好學(xué)習(xí)態(tài)度。 以書本知識為基礎(chǔ)靈活的擴展,學(xué)習(xí)前人的驗,向高層次邁進(jìn)。當(dāng)然還是存在不足的地方,例如當(dāng)頻率過小的時候矩形波會有些失真,轉(zhuǎn)換器轉(zhuǎn)換可以加一個鎖存器,放大電路設(shè)計上還有待進(jìn)一步改進(jìn),使其具有更強的輸出能力等。參考文獻(xiàn)1. 胡文金. 單片機系統(tǒng)實訓(xùn)教程. 重慶:重慶大學(xué)出版社,20052. 梁森. 自動檢測技術(shù)及應(yīng)用.北京:機械工業(yè)出版社,20123. 程德福. 智能儀器. 機械工業(yè)出版社.2009.94. 朱定華,戴汝平等.單片危機原理與應(yīng)用.清華大學(xué)出版社.5. 彭楚武.微機原理與接口技術(shù).湖南大圩出版社.6. 李朝清.單片機原理與接口技術(shù).北京

14、航空航天大學(xué)出版社.7. 張李勇,陳郎,張飛舟.基于8051的雙通道波形發(fā)生器的設(shè)計與現(xiàn)實.計算機工程與應(yīng)用8. 許慶山等編.電路、信號與系統(tǒng).北京:航空工業(yè)出版社. 附錄 1 系統(tǒng)硬件電路圖 附錄 2 程序代碼#include#include#include#define uchar unsigned char#define uint unsigned intsbit SDA=P36; sbit SCL=P37;unsigned int a=0; unsigned int b=0;unsigned int c=0;unsigned int bx_chang=0;unsigned int n=

15、40; unsigned char TH;unsigned char TL;unsigned int mode=0; unsigned int fd=6;unsigned int x;unsigned int u;/*sbit RS =P24; sbit RW=P25; sbit E=P26; sbit PSB=P14;/*sbit p20=P32;sbit p21=P33; sbit p22=P16; sbit p32=P17; /sin波形數(shù)組uchar code tosin256= 0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9

16、F,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,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

17、E,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,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,0x80,0x7C,0x7

18、9,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,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x0

19、0,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,0x45,0x48,0x4C,0x4E,0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6

20、F,0x72,0x76,0x79,0x7C,0x80; /*void delay(unsigned int z) unsigned int x,y; for(x=z;x0;x-) for(y=125;y0;y-) ; /*void SendByte(unsigned char Dbyte) unsigned char i; RS=1; for(i=0;i8;i+) E = 0; if(Dbytei)&0x80) RW=1; elseRW=0;E = 1; E= 0; RS=0;void Lcd_WriteCmd(unsigned char Cbyte ) delay(10); SendByte

21、(0xf8); SendByte(0xf0&Cbyte); SendByte(0xf0&(Cbyte4); void Lcd_WriteData(unsigned char Dbyte ) delay(10); SendByte(0xfa); SendByte(0xf0&Dbyte); SendByte(0xf0&(Dbyte0)Lcd_WriteData(*stri);stri+;/*void delayp() /延遲函數(shù);void delay_1ms(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-) ; /*I2C協(xié)議 void start

22、() SDA=1; delayp(); SCL=1; delayp(); SDA=0; delayp(); void stop() SDA=0; delayp(); SCL=1; delayp(); SDA=1; delayp(); void respons() uchar i; SCL=1; delayp(); while(SDA=1)&(i250) i+; SCL=0; delayp(); void init() SDA=1; delayp(); SCL=1; delayp(); void write_byte(uchar date) uchar i,temp; temp=date; fo

23、r(i=0;i8;i+) temp=temp1; SCL=0; delayp(); SDA=CY; delayp(); SCL=1; delayp(); SCL=0; delayp(); SDA=1; delayp(); void write_add(uchar date) start(); write_byte(0x90); respons(); write_byte(0x40); respons(); write_byte(date); respons(); stop(); /* int main()/*主函數(shù) TMOD = 0x01;TH0 = (65536-99000/n)/256; TL0 = (65536-99000/n)%256;TH1 = (65536-

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論