基于單片機(jī)DA轉(zhuǎn)換設(shè)計(jì)函數(shù)信號(hào)發(fā)生器_第1頁
基于單片機(jī)DA轉(zhuǎn)換設(shè)計(jì)函數(shù)信號(hào)發(fā)生器_第2頁
基于單片機(jī)DA轉(zhuǎn)換設(shè)計(jì)函數(shù)信號(hào)發(fā)生器_第3頁
基于單片機(jī)DA轉(zhuǎn)換設(shè)計(jì)函數(shù)信號(hào)發(fā)生器_第4頁
基于單片機(jī)DA轉(zhuǎn)換設(shè)計(jì)函數(shù)信號(hào)發(fā)生器_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、中國地質(zhì)大學(xué)武漢電路綜合實(shí)習(xí)報(bào)告 課程題目:基于單片機(jī)D/A轉(zhuǎn)換設(shè)計(jì)函數(shù)信號(hào)發(fā)生器摘要:以51單片機(jī)為核心設(shè)計(jì)函數(shù)信號(hào)發(fā)生器,采用程序設(shè)計(jì)方法產(chǎn)生正弦波,方波,三角波,方波,鋸齒波,波形的頻率在一定頻率范圍內(nèi)可任意改變。通過鍵盤來控制四種波形的類型選擇與頻率變化,并通過液晶屏1602顯示其各自的類型及數(shù)值。主要包括信號(hào)發(fā)生部分、D/A轉(zhuǎn)換部分以及液晶顯示部分。關(guān)鍵詞:D/A轉(zhuǎn)換,液晶顯示 主要內(nèi)容:1.實(shí)習(xí)原理2.實(shí)習(xí)內(nèi)容1) 系統(tǒng)設(shè)計(jì)l 設(shè)計(jì)要求l 方案設(shè)計(jì)(各模塊設(shè)計(jì))l 軟件設(shè)計(jì)流程2) 通過示波器對(duì)波形種類及頻率進(jìn)行測試l 測試說明l 測試過程l 測試結(jié)果3.實(shí)習(xí)的心得體會(huì)4.附錄:源

2、程序1.實(shí)習(xí)原理:l 系統(tǒng)總體框圖l 主控芯片AT89S52l DAC0832的內(nèi)部結(jié)構(gòu):l D/A轉(zhuǎn)換原理圖DAC0832是雙列直插式8位D/A轉(zhuǎn)換器。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。其主要參數(shù)如下:分辨率為8位,轉(zhuǎn)換時(shí)間為1s,滿量程誤差為1LSB,參考電壓為-10V+10V,供電電源為+5V+15V,邏輯電平輸入與TTL兼容。DAC0832中有兩級(jí)鎖存器,第一級(jí)鎖存器稱為輸入寄存器,它的允許鎖存信號(hào)為ILE,第二級(jí)鎖存器稱為DAC寄存器,它的鎖存信號(hào)也稱為通道控制信號(hào) /XFER。l 液晶屏的顯示l 矩陣鍵盤2.實(shí)習(xí)內(nèi)容:1)系統(tǒng)設(shè)計(jì)利用AT89S52單片機(jī)采用程序設(shè)計(jì)方法產(chǎn)

3、生鋸齒波、正弦波、方波、三角波四種波形,再通過D/A轉(zhuǎn)換器DAC0832將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),濾波放大,最終由示波器顯示出來,通過鍵盤來控制四種波形的類型選擇、頻率變化,最終輸出顯示其各自的類型以及數(shù)值。l 設(shè)計(jì)要求1)基于單片機(jī)的D/A轉(zhuǎn)換用軟件編程產(chǎn)生四種波形,分別為:鋸齒波,正弦波,方波,三角波;2)通過鍵盤選擇四種波形類型;3)波形頻率可調(diào);l 方案設(shè)計(jì)論證顯示方案論證 :方案一:采用LED數(shù)碼管。LED數(shù)碼管由8個(gè)發(fā)光二極管組成,每只數(shù)碼管輪流顯示各自的字符。由于人眼具有視覺暫留特性,當(dāng)每只數(shù)碼管顯示的時(shí)間間隔小于1/16s時(shí)人眼感覺不到閃動(dòng),看到的是每只數(shù)碼管常亮。使用數(shù)碼管顯

4、示編程較易,但要顯示內(nèi)容多,而且數(shù)碼管不能顯示字母。方案二:采用LCD液晶顯示器1602。其功率小,效果明顯,顯示編程容易控制,可以顯示字母。以上兩種方案綜合考慮,選擇方案二。鍵盤方案論證:方案一:矩陣式鍵盤。矩陣式鍵盤的按鍵觸點(diǎn)接于由行、列母線構(gòu)成的矩陣電路的交叉處。當(dāng)鍵盤上沒有鍵閉合時(shí),所有的行和列線都斷開,行線都呈高電平。當(dāng)某一個(gè)鍵閉合時(shí),該鍵所對(duì)應(yīng)的行線和列線被短路。方案二:編碼式鍵盤。編碼式鍵盤的按鍵觸點(diǎn)接于74LS148芯片。當(dāng)鍵盤上沒有閉合時(shí),所有鍵都斷開,當(dāng)某一鍵閉合時(shí),該鍵對(duì)應(yīng)的編碼由74LS148輸出。以上兩種方案綜合考慮,選擇方案一。l 軟件設(shè)計(jì)流程開始 初始化 N有鍵按

5、下 YKey=BKey=AKey=CKey=9Key=8Key=7減頻率增頻率鋸齒波正弦波方波三角波2) 通過示波器對(duì)波形種類及頻率進(jìn)行測試l 測試說明:正弦波、矩形波、三角波和方波信號(hào)的輸出,通過對(duì)獨(dú)立鍵盤來實(shí)現(xiàn)其不同波形的輸出以及改變其頻率。l 測試過程:當(dāng)程序下進(jìn)去時(shí)經(jīng)過初始化,液晶屏的上只顯示“Starting,XinHaoFaSheng”,然后顯示“Clear All,Nothing Happened”,當(dāng)鍵盤4按下時(shí)開始顯示頻率,當(dāng)鍵盤7按下時(shí),此時(shí)輸出波形為三角波,當(dāng)鍵盤8按下時(shí),此時(shí)輸出波形為方波,當(dāng)鍵盤9按下時(shí),此時(shí)輸出波形為正弦波,當(dāng)鍵盤C按下時(shí),此時(shí)輸出波形為鋸齒波。每按

6、一次鍵盤4,再按鍵盤A,波形頻率增加,每按一次鍵盤4,再按鍵盤B,波形頻率減小。l 測試結(jié)果各種波形:輸出波形為三角波輸出波形為方波時(shí)輸出為正弦波時(shí)輸出為鋸齒波時(shí)存在問題:得到的波形紋波比較明顯,波形相當(dāng)不穩(wěn)定,而且有時(shí)候出現(xiàn)了失真解決方法:修改程序中波形的幅值,使幅值減小,最后紋波變小,波形也比較穩(wěn)定。至于出現(xiàn)失真這個(gè)問題,經(jīng)過檢查,發(fā)現(xiàn)連接線路有所松動(dòng),處理完后,波形正常。3.實(shí)習(xí)心得體會(huì) 通過這次實(shí)習(xí),我學(xué)習(xí)了函數(shù)發(fā)生器設(shè)計(jì)的原理,用keil軟件編程及調(diào)試,protues軟件仿真,示波器的使用,加深了我對(duì)單片機(jī)的理解,也讓我了解到專業(yè)知識(shí)的重要性。在實(shí)習(xí)過程中也碰到了很多困難,比如說對(duì)于

7、寫程序可以說是掌握得不是很好,用c語言寫程序會(huì)出現(xiàn)很多錯(cuò)誤;在用protues軟件仿真時(shí),由于第一次接觸,所以一開始都不知道何從下手;在用示波器測試時(shí)紋波太大,而且波形不穩(wěn)定等等,最后通過一些書籍,百度查看相關(guān)資料,詢問同學(xué),再修改程序,解決了困難。 這次實(shí)習(xí)是對(duì)我們過去所學(xué)知識(shí)的系統(tǒng)提高和擴(kuò)充的過程,很好的鍛煉了我們解決問題的能力,同時(shí)也讓我們了解到自己的不足,從而不斷完善自己。4.附錄源程序:#includeregX51.h#include intrins.h#include #include1602.h#includeDAC0832.h#include #define uchar uns

8、igned char #define uint unsigned int uchar Key,keytemp,flag=20,i;uchar freq,baiwei,shiwei,gewei;uint code pinlv=400,227,214,200,190,178,170,160,153,147,140,134,130,125,121,117,112,108,105,101, 99,96,92,90,88,86,83,81,80,78,76,74,72,70,78,76,74,72;uchar code value16= /矩陣鍵盤中每個(gè)鍵對(duì)應(yīng)的P0口值 0x0e7,0x0d7,0x0b

9、7,0x077, 0x0eb,0x0db,0x0bb,0x07b, 0x0ed,0x0dd,0x0bd,0x07d, 0x0ee,0x0de,0x0be,0x07e ;uchar code table= 0x30, /0在1602中的十六進(jìn)制碼 0x31, /1在1602中的十六進(jìn)制碼 0x32, /2在1602中的十六進(jìn)制碼 0x33, /3在1602中的十六進(jìn)制碼 0x34, /4在1602中的十六進(jìn)制碼 0x35, /5在1602中的十六進(jìn)制碼 0x36, /6在1602中的十六進(jìn)制碼 0x37, /7在1602中的十六進(jìn)制碼 0x38, /8在1602中的十六進(jìn)制碼 0x39, /9在

10、1602中的十六進(jìn)制碼 0x41, /A在1602中的十六進(jìn)制碼 0x42, /B在1602中的十六進(jìn)制碼0x43, /C在1602中的十六進(jìn)制碼 0x44, /D在1602中的十六進(jìn)制碼 0x45, /E在1602中的十六進(jìn)制碼 0x46 /F在1602中的十六進(jìn)制碼 ;uchar code sanjiaobo128=0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c,0x20,0x24,0x28,0x2c,0x30,0x34,0x38,0x3c,0x40,0x44,0x48,0x4c,0x50,0x54,0x58,0x5c,0x60,0x64,0x68,0x6c

11、,0x70,0x74,0x78,0x7c,0x80,0x84,0x88,0x8c,0x90,0x94,0x98,0x9c,0xa0,0xa4,0xa8,0xac,0xb0,0xb4,0xb8,0xbc,0xc0,0xc4,0xc8,0xcc,0xd0,0xd4,0xd8,0xdc,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xfe,0xfa,0xf6,0xf2,0xee,0xea,0xe6,0xe2,0xde,0xda,0xd6,0xd2,0xce,0xca,0xc6,0xc2,0xbe,0xba,0xb6,0xb2,0xae,0xaa,0xa6,0xa2

12、,0x9e,0x9a,0x96,0x92,0x8e,0x8a,0x86,0x82,0x7e,0x7a,0x76,0x72,0x6e,0x6a,0x66,0x62,0x5e,0x5a,0x56,0x52,0x4e,0x4a,0x46,0x42,0x3e,0x3a,0x36,0x32,0x2e,0x2a,0x26,0x22,0x1e,0x1a,0x16,0x12,0x0e,0x0a,0x06,0x02,;uchar code fangbo256=0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00

13、,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff

14、,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,;uchar code zhengxianbo128=0x80,0

15、x86,0x8c,0x92,0x98,0x9f,0xa5,0xab, 0xb0,0xb6,0xbc,0xc1, 0xc7,0xcc,0xd1,0xd5, 0xDA,0xde,0xe2,0xe6,0xea,0xed,0xf0,0xf3,0xf6,0xf8,0xfa,0xfc,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfc,0xfa,0xf8,0xf6,0xf3,0xf0,0xed,0xea,0xe6,0xe3,0xde, 0xDA,0xd6,0xd1,0xcc,0xc7,0xc1,0xbc,0xb6,0xb1,0xab,0xa5,0x9f,0x

16、99,0x92,0x8c,0x86,0x80,0x79,0x73,0x6d, 0x67,0x61,0x5b,0x55, 0x4f,0x49,0x43,0x3e, 0x39,0x33,0x2e,0x2a,0x25,0x21,0x1d,0x19,0x15,0x12,0x0f,0x0c,0x09,0x07,0x05,0x03,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x01, 0x02,0x03,0x05,0x07,0x09,0x0c,0x0e,0x12,0x15,0x18,0x1c,0x20, 0x25,0x29,0x2e,0x33, 0x38,0x3d,0x43,0

17、x48,0x4e,0x54,0x5a,0x60,0x66,0x6c,0x73,0x79,;uchar code jc128=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,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5

18、e,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,0xbc,0xbe,0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd

19、6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe;void ScanKey();void Dly_mS(unsigned int ms)/延時(shí)函數(shù) unsigned int i; while(ms-) for(i=0;i75;i+);void IniSys() Dly_mS(200); EA=0; TCON = 0x00; /*中斷標(biāo)志清0*/ IT1=0; /*中斷1邊緣觸發(fā)*/ EX1=0; /*中斷1暫時(shí)關(guān)閉*/ ET0=0; /*定時(shí)

20、器0中斷關(guān)閉*/ TMOD = 0x01; /*定時(shí)器0方式1*/ TH0=0x0FC; TL0=0x18;/定時(shí)1ms EA=1; /*開中斷*/ ET0=1; /*開定時(shí)器0中斷*/void CT0Server() interrupt 1 /定時(shí)器中每1MS掃描一次鍵盤 TH0=(65536-1000)/256; TL0=(65536-1000)%256;/定時(shí)10ms TR0=1; keytemp=Key; ScanKey();void delay_nus( uchar n ) while( -n ) ; void ScanKey() uchar P0Buf,scan,j; P0=0x0

21、f; P0Buf=P0; if(P0Buf!=0x0f) P0=0xf0; scan=P0Buf; P0Buf=P0; scan=scan+P0Buf; for(j=0;j16;j+) if(valuej=scan) Key=j; break; void function0() Display(0,0,Clear All ); Display(0,1,Nothing Happened); DAC0832=0x00;void function4() for(i=0;i128;i+) /循環(huán)送255個(gè)三角波數(shù)據(jù) DAC0832=sanjiaoboi; delay_nus(freq); void function5() for(i=0;i128;i+) /循環(huán)送255個(gè)方波數(shù)據(jù) DAC0832=fangboi; delay_nus(freq); void function6() for(i=0;i128;i+) /循環(huán)送255個(gè)正弦波數(shù)據(jù) DAC0832=zhengxianboi; delay_nus(freq); void function

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論