DSP技術(shù)小報(bào)告_第1頁(yè)
DSP技術(shù)小報(bào)告_第2頁(yè)
DSP技術(shù)小報(bào)告_第3頁(yè)
DSP技術(shù)小報(bào)告_第4頁(yè)
DSP技術(shù)小報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、電氣信息工程學(xué)院dsp技術(shù)與綜合訓(xùn)練實(shí)驗(yàn)報(bào)告 班 級(jí) 姓 名 學(xué) 號(hào) 指導(dǎo)老師 2012年9月目 錄實(shí)驗(yàn)一:液晶顯示器控制顯示 2 一實(shí)驗(yàn)?zāi)康? 二實(shí)驗(yàn)設(shè)備2 三實(shí)驗(yàn)原理2 四試驗(yàn)程序4 五實(shí)驗(yàn)步驟11 六實(shí)驗(yàn)結(jié)果與分析11實(shí)驗(yàn)二 :鍵盤(pán)輸入12 一實(shí)驗(yàn)?zāi)康?2 二實(shí)驗(yàn)設(shè)備12 三實(shí)驗(yàn)原理12 四試驗(yàn)程序13 五實(shí)驗(yàn)步驟16 六實(shí)驗(yàn)結(jié)果與分析16實(shí)驗(yàn)三 :蜂鳴器17 一實(shí)驗(yàn)?zāi)康?7 二實(shí)驗(yàn)設(shè)備17 三實(shí)驗(yàn)原理17 四試驗(yàn)程序18 五實(shí)驗(yàn)步驟20 六實(shí)驗(yàn)結(jié)果與分析20實(shí)驗(yàn)四:dsp算法實(shí)驗(yàn)21實(shí)驗(yàn)4.1 :有限沖激響應(yīng)濾波器(fir)算法實(shí)驗(yàn)21 一實(shí)驗(yàn)?zāi)康?1 二實(shí)驗(yàn)設(shè)備21 三實(shí)驗(yàn)原理21

2、四試驗(yàn)程序22 五實(shí)驗(yàn)步驟24 六實(shí)驗(yàn)結(jié)果與分析25實(shí)驗(yàn)4.2 :無(wú)限沖激響應(yīng)濾波器(iir)算法實(shí)驗(yàn)25 一實(shí)驗(yàn)?zāi)康?5 二實(shí)驗(yàn)設(shè)備25 三實(shí)驗(yàn)原理25 四試驗(yàn)程序27 五實(shí)驗(yàn)步驟29 六實(shí)驗(yàn)結(jié)果與分析29 實(shí)驗(yàn)一 液晶顯示器控制顯示一 實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)實(shí)驗(yàn)學(xué)習(xí)使用5509adsp的擴(kuò)展i/o端口控制外圍設(shè)備的方法,了解液晶顯示器的顯示控制原理及編程方法。二實(shí)驗(yàn)設(shè)備計(jì)算機(jī),icetek-vc5509-a實(shí)驗(yàn)箱(或icetek仿真器+icetek-vc5509-a系統(tǒng)板+相關(guān)連線(xiàn)及電源)。三 實(shí)驗(yàn)原理1emif接口:tms320c5509dsp的擴(kuò)展存儲(chǔ)器接口(emif)用來(lái)與大多數(shù)外圍設(shè)備進(jìn)行連

3、接,典型應(yīng)用如連接片外擴(kuò)展存儲(chǔ)器等。這一接口提供地址連線(xiàn)、數(shù)據(jù)連線(xiàn)和一組控制線(xiàn)。icetek-vc5509-a將這些擴(kuò)展線(xiàn)引到了板上的擴(kuò)展插座上供擴(kuò)展使用。2.液晶顯示模塊的訪(fǎng)問(wèn)、控制是由5509adsp對(duì)擴(kuò)展接口的操作完成??刂瓶诘膶ぶ罚好羁刂平涌诘牡刂窞?x602800,數(shù)據(jù)控制接口的地址為0x602801和0x600802,輔助控制接口的地址為0x600801。3.顯示控制方法:液晶顯示模塊中有兩片顯示緩沖存儲(chǔ)器,分別對(duì)應(yīng)屏幕顯示的像素,向其中寫(xiě)入數(shù)值將改變顯示,寫(xiě)入“1”則顯示一點(diǎn),寫(xiě)入“0”則不顯示。其地址與像素的對(duì)應(yīng)方式如下:左側(cè)顯示內(nèi)存右側(cè)顯示內(nèi)存y=016263016263行

4、號(hào)db0db0db0db0db0db0db0db0db0db00x=0db7db7db7db7db7db7db7db7db7db77db0db0db0db0db0db0db0db0db0db08db7db7db7db7db7db7db7db7db7db755x=7db0db0db0db0db0db0db0db0db0db056db7db7db7db7db7db7db7db7db7db763-發(fā)送控制命令:向液晶顯示模塊發(fā)送控制命令的方法是通過(guò)向命令控制接口寫(xiě)入命令控制字,然后再向輔助控制接口寫(xiě)入0。下面給出的是基本命令字、解釋和c語(yǔ)言控制語(yǔ)句舉例:.顯示開(kāi)關(guān):0x3f打開(kāi)顯示;0x3e關(guān)閉顯示

5、;.設(shè)置顯示起始行:0x0c0+起始行取值,其中起始行取值為0至63;.設(shè)置操作頁(yè):0x0b8+頁(yè)號(hào),其中頁(yè)號(hào)取值為0-7;.設(shè)置操作列:0x40+列號(hào),其中列號(hào)為取值為0-63;-寫(xiě)顯示數(shù)據(jù):在使用命令控制字選擇操作位置(頁(yè)數(shù)、列數(shù))之后,可以將待顯示的數(shù)據(jù)寫(xiě)入液晶顯示模塊的緩存。將數(shù)據(jù)發(fā)送到相應(yīng)數(shù)據(jù)控制i/o接口即可。4.液晶顯示器與dsp的連接:5.數(shù)據(jù)信號(hào)的傳送:由于液晶顯示模塊相對(duì)運(yùn)行在高主頻下的dsp屬于較為慢速設(shè)備,連接時(shí)需要考慮數(shù)據(jù)線(xiàn)上信號(hào)的等待問(wèn)題;電平轉(zhuǎn)換:由于dsp為3.3v設(shè)備,而液晶顯示模塊屬于5v設(shè)備,所以在連接控制線(xiàn)、數(shù)據(jù)線(xiàn)時(shí)需要加電平隔離和轉(zhuǎn)換設(shè)備,如:icet

6、ek-ctr板上使用了74ls245。6.實(shí)驗(yàn)程序流程圖:開(kāi)始初始化dsp時(shí)鐘初始化emif接口初始化ctr由0到9循環(huán)顯示數(shù)字清屏,設(shè)置顯示位置四實(shí)驗(yàn)程序#include lcd.hunsigned int str080=/教學(xué)實(shí)驗(yàn)箱0x910,0x914,0x4894,0x88d4,0x7ebf,0x594,0x449c,0x4414,0x2050,0x20f8,0x130f,0xc08,0x3388,0xc078,0x4008,0x00,0x40,0x230,0x210,0x212,0x25c,0x254,0x4250,0x8251,0x7f5e,0x2d4,0x250,0x218,0x

7、257,0x232,0x210,0x00,0x00,0x8210,0x820c,0x4204,0x424c,0x23b4,0x1294,0xa05,0x7f6,0xa04,0x1204,0xe204,0x4214,0x20c,0x204,0x00,0x802,0x8fa,0x482,0x2482,0x40fe,0x3f80,0x2240,0x2c60,0x2158,0x2e46,0x2048,0x3050,0x2c20,0x2320,0x2020,0x00,0x2010,0x1088,0xc87,0x382,0xfff6,0x28a,0xc82,0x12,0xffe8,0x4927,0x492

8、2,0x4926,0x493a,0xffe2,0x02,0x00; unsigned int str116=/教0x910,0x914,0x4894,0x88d4,0x7ebf,0x594,0x449c,0x4414,0x2050,0x20f8,0x130f,0xc08,0x3388,0xc078,0x4008,0x00; unsigned int str216=/學(xué) 0x40,0x230,0x210,0x212,0x25c,0x254,0x4250,0x8251,0x7f5e,0x2d4,0x250,0x218,0x257,0x232,0x210,0x00; unsigned int str

9、316=/實(shí)0x00,0x8210,0x820c,0x4204,0x424c,0x23b4,0x1294,0xa05,0x7f6,0xa04,0x1204,0xe204,0x4214,0x20c,0x204,0x00; unsigned int str416=/驗(yàn)0x802,0x8fa,0x482,0x2482,0x40fe,0x3f80,0x2240,0x2c60,0x2158,0x2e46,0x2048,0x3050,0x2c20,0x2320,0x2020,0x00; unsigned int str516=/箱0x2010,0x1088,0xc87,0x382,0xfff6,0x28a

10、,0xc82,0x12,0xffe8,0x4927,0x4922,0x4926,0x493a,0xffe2,0x02,0x00; unsigned int str680=/箱驗(yàn)實(shí)學(xué)教0x2010,0x1088,0xc87,0x382,0xfff6,0x28a,0xc82,0x12, 0xffe8,0x4927,0x4922,0x4926,0x493a,0xffe2,0x02,0x00,0x802,0x8fa,0x482,0x2482,0x40fe,0x3f80,0x2240,0x2c60, 0x2158,0x2e46,0x2048,0x3050,0x2c20,0x2320,0x2020,0x0

11、0,0x00,0x8210,0x820c,0x4204,0x424c,0x23b4,0x1294,0xa05, 0x7f6,0xa04,0x1204,0xe204,0x4214,0x20c,0x204,0x00,0x40,0x230,0x210,0x212,0x25c,0x254,0x4250,0x8251, 0x7f5e,0x2d4,0x250,0x218,0x257,0x232,0x210,0x00,0x910,0x914,0x4894,0x88d4,0x7ebf,0x594,0x449c,0x4414, 0x2050,0x20f8,0x130f,0xc08,0x3388,0xc078,0

12、x4008,0x00; unsigned int lstr80=/教學(xué)實(shí)驗(yàn)箱0x0820,0x0820,0x7ea0,0x093e,0x0a44,0xff44,0x0844,0x7ea4,0x2428,0x4828,0x8f10,0x7810,0x0828,0x0848,0x2884,0x1102,0x2208,0x1108,0x1110,0x0020,0x7ffe,0x4002,0x8004,0x1fe0,0x0040,0x0180,0xfffe,0x0100,0x0100,0x0100,0x0500,0x0200,0x0200,0x0100,0x7ffe,0x4002,0x8884,0x0

13、480,0x0480,0x1080,0x0880,0x0880,0xfffe,0x0140,0x0220,0x0410,0x1808,0x6004,0x0020,0xf820,0x0850,0x4850,0x4888,0x4904,0x4afa,0x7c00,0x0444,0x0424,0x1d24,0xe4a8,0x4488,0x0410,0x2bfe,0x1000,0x1040,0x1040,0x3f7e,0x2890,0x4508,0x8800,0x08fc,0x7e84,0x0884,0x18fc,0x1c84,0x2a84,0x2afc,0x4884,0x8884,0x08fc;un

14、signed int nscreenbuffer30*128;#define ctrstatus (*(unsigned int *)0x600800) /port8000int w,ww,www;main() unsigned int uwork,* pwork; int x,y,a1,a2,a3,a4,a5,b1,b2,b3,b4,b5,i;int a51,a52,a53,b51,b52,b53;int a41,a42,a43,b41,b42,b43;int a31,a32,a33,b31,b32,b33;int a21,a22,a23,b21,b22,b23;int a11,a12,a1

15、3,b11,b12,b13; pll_init(12);sdram_init(); lcdturnoff(); lcdsetscreenbuffer(nscreenbuffer);for ( uwork=0,pwork=nscreenbuffer;uwork30*128;uwork+,pwork+ )(*pwork)=0;lcdsetdelay(1);lcdturnon();/ 打開(kāi)顯示lcdcls();x = 0;y = 128; lcdputcstring(str0,x,y,5,3);w=0; ww=500,www=5000; while ( 1 ) if ( w )break;a5 =

16、80;b5 = 128;lcdputcstring(str5,a5,b5,1,3);a5 += 5;lcdputcstring(str5,a5,b5,1,3);a4 = 64;b4 = 128;lcdputcstring(str4, a4, b4, 1, 3);a5 += 5;a4 += 5;lcdputcstring(str5,a5,b5,1,3);lcdputcstring(str4,a4,b4,1,3);a3 = 48;b3 = 128;lcdputcstring(str3,a3,b3,1,3);a5 += 5;a4 += 5;a3 += 5;lcdputcstring(str5,a5,

17、b5,1,3);lcdputcstring(str4,a4,b4,1,3);lcdputcstring(str3,a3,b3,1,3);a2 = 32;b2 = 128;lcdputcstring(str2,a2,b2,1,3);a5 += 5;a4 += 5;a3 += 5;a2 += 5;lcdputcstring(str2,a2,b2,1,3);lcdputcstring(str3,a3,b3,1,3);lcdputcstring(str4,a4,b4,1,3);lcdputcstring(str5,a5,b5,1,3);a1 = 16;b1 = 128;lcdputcstring(st

18、r1,a1,b1,1,3);a1 += 5;a2 += 5;a3 += 5;a4 += 5;a5 += 5;lcdputcstring(str1,a1,b1,1,3);lcdputcstring(str2,a2,b2,1,3);lcdputcstring(str3,a3,b3,1,3);lcdputcstring(str4,a4,b4,1,3);lcdputcstring(str5,a5,b5,1,3);a51 = 220;b51 = 128;a52 = 220;b52 = 20;a53 = 0;b53 = 20;a41 = 220;b41 = 128;a42 = 220;b42 = 20;a

19、43 = 0;b43 = 20;a31 = 220;b31 = 128;a32 = 220;b32 = 20;a33 = 0;b33 = 20;a21 = 220;b21 = 128;a22 = 220;b22 = 20;a23 = 0;b23 = 20;a11 = 220;b11 = 128;a12 = 220;b12 = 20;a13 = 0;b13 = 20;/a3 = 16;for (i=0; i1024; i+)while(1) /xiangif (a5 20)lcdputcstring(str5,a51,b51,1,3);b51 -= 10;else if (a52 -1)lcdp

20、utcstring(str5,a52,b52,1,3);a52 -= 10;else if (b53 128)lcdputcstring(str5,a53,b53,1,3);b53 += 10; /yanif (a4 20)lcdputcstring(str4,a41,b41,1,3);b41 -= 10;else if (a42 -1)lcdputcstring(str4,a42,b42,1,3);a42 -= 10;else if (b43 128)lcdputcstring(str4,a43,b43,1,3);b43 += 10;/shiif (a3 20)lcdputcstring(s

21、tr3,a31,b31,1,3);b31 -= 10;/a3 = 220;else if (a32 -1)lcdputcstring(str3,a32,b32,1,3);a32 -= 10;else if (b33 128)lcdputcstring(str3,a33,b33,1,3);b33 += 10;/xueif (a2 20)lcdputcstring(str2,a21,b21,1,3);b21 -= 10;/a2 = 220;else if (a22 -1)lcdputcstring(str2,a22,b22,1,3);a22 -= 10;else if (b23 128)lcdpu

22、tcstring(str2,a23,b23,1,3);b23 += 10;/ jiaoif (a1 20)lcdputcstring(str1,a11,b11,1,3);b11 -= 10;/a1 = 219;else if (a12 -1)lcdputcstring(str1,a12,b12,1,3);a12 -= 10;else if (b13 128)x = 0;y = 128;lcdputcstring(str0,0,128,5,3);for (i=0; (i50) & (x118 | y0 )b=-b;if ( w )break;lcdcls();/ 清除顯示內(nèi)存 lcdturnof

23、f();lcdsetdelay(0);exit(0);五 實(shí)驗(yàn)步驟1實(shí)驗(yàn)準(zhǔn)備:(1)連接實(shí)驗(yàn)設(shè)備;(2)將icetek-ctr板的供電電源開(kāi)關(guān)撥動(dòng)到“開(kāi)”的位置。2設(shè)置code composer studio 2.21在硬件仿真(emulator)方式下運(yùn)行。3啟動(dòng)code composer studio 2.21:選擇菜單debugreset cpu。4打開(kāi)工程文件:工程目錄:c:icetekvc5509as60vc5509as60lab0403-lcdlcd.pjt。瀏覽lcd.c文件的內(nèi)容,理解各語(yǔ)句作用。5編譯、下載程序。6運(yùn)行程序觀察結(jié)果:按照功能描述依次顯示;7更改程序中對(duì)頁(yè)、列的

24、設(shè)置,實(shí)現(xiàn)不同位置的顯示。8自己設(shè)計(jì)一些控制語(yǔ)句,實(shí)現(xiàn)不同顯示效果。9結(jié)束程序運(yùn)行,退出ccs。六實(shí)驗(yàn)結(jié)果與分析實(shí)驗(yàn)結(jié)果:可以觀察到液晶顯示“教學(xué)實(shí)驗(yàn)箱”五個(gè)字圍繞屏幕四周轉(zhuǎn)一圈,最后移到屏幕中央。 分析:靈活使用控制字,可以實(shí)現(xiàn)復(fù)雜多變的顯示。當(dāng)使用點(diǎn)陣圖形顯示時(shí)需要在dsp內(nèi)存中建立圖形存儲(chǔ)緩沖;適當(dāng)更新顯示可取得動(dòng)畫(huà)效果。在實(shí)際生活中觀察點(diǎn)陣顯示的霓虹燈廣告、交通指示牌、報(bào)站牌等領(lǐng)會(huì)這種控制的具體應(yīng)用。實(shí)驗(yàn)二 鍵盤(pán)輸入一實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)實(shí)驗(yàn)學(xué)習(xí)使用5509dsp的擴(kuò)展端口接收外圍設(shè)備信息的方法,了解鍵盤(pán)的使用原理及編程方法。二實(shí)驗(yàn)設(shè)備計(jì)算機(jī),icetek-vc5509-a實(shí)驗(yàn)箱(或icete

25、k仿真器+icetek-vc5509-a系統(tǒng)板+相關(guān)連線(xiàn)及電源)。三實(shí)驗(yàn)原理1emif接口:tms320c5509dsp的擴(kuò)展存儲(chǔ)器接口(emif)用來(lái)與大多數(shù)外圍設(shè)備進(jìn)行連接,典型應(yīng)用如連接片外擴(kuò)展存儲(chǔ)器等。這一接口提供地址連線(xiàn)、數(shù)據(jù)連線(xiàn)和一組控制線(xiàn)。icetek-vc5509-a將這些擴(kuò)展線(xiàn)引到了板上的擴(kuò)展插座上供擴(kuò)展使用。2鍵盤(pán)連接原理:3鍵盤(pán)的掃描碼由dsp的擴(kuò)展地址0x602800給出,當(dāng)有鍵盤(pán)輸入時(shí),讀此端口得到掃描碼,當(dāng)無(wú)鍵被按下時(shí)讀此端口的結(jié)果為0。各按鍵的掃描碼排列如下所示(scancode.h)。#define scancode_0 0x70#define scancode

26、_1 0x69#define scancode_2 0x72#define scancode_3 0x7a#define scancode_4 0x6b#define scancode_5 0x73#define scancode_6 0x74#define scancode_7 0x6c#define scancode_8 0x75#define scancode_9 0x7d#define scancode_del 0x49#define scancode_enter 0x5a#define scancode_plus 0x79#define scancode_minus 0x7b#def

27、ine scancode_mult 0x7c#define scancode_divid 0x4a#define scancode_num 0x774 實(shí)驗(yàn)程序流程圖:開(kāi)始初始化:dsp時(shí)鐘、emif、icetek-ctr選通發(fā)光二極管顯示陣列有鍵盤(pán)輸入?顯示字符否是輸入回車(chē)鍵?否是將掃描碼轉(zhuǎn)換成字符關(guān)閉打開(kāi)的icetek-ctr設(shè)備結(jié)束四實(shí)驗(yàn)程序#include myapp.h#include icetek-vc5509-edu.h#define ctrled (*(unsigned int *)0x600802) / port8004#define mctrkey (*(unsigned

28、int *)0x602802) / port8005#define ctrclkey (*(unsigned int *)0x600803) / port8006#define ctrstatus (*(unsigned int *)0x600800) /port8000unsigned int uwork1,uwork2,nwork,w;unsigned int led8=0x69,0xc3,0xa5,0x82,0x14,0x8f,0x0e,0x70;void mydelay(unsigned int ndelay);main() int i; pll_init(12); sdram_ini

29、t(); uwork1=0; uwork2=0; nwork=0; ctrled=0xff; ctrgr=0; w=1; for(i=0;i8;i+) ctrled=ledi; mydelay(32); ctrled=0x0; / ctrled=0xff;while(w) mydelay(32); ctrled=0xff; mydelay(32); for(;) uwork1=mctrkey; ctrclkey=0; asm( nop ); uwork2=mctrkey; ctrclkey=0; if(uwork1=uwork2) & (uwork1!=0) nwork|=uwork1; ct

30、rled=nwork;switch(uwork1)case 1:ctrled = led0;mydelay (100);break;case 2:ctrled = led1;mydelay (100);break;case 4:ctrled = led2;mydelay (100);break;case 8:ctrled = led3;mydelay (100);break;case 16:ctrled =led4;mydelay (100);break;case 32:ctrled = led5;mydelay (100);break;case 64:ctrled = led6;mydela

31、y (100);break;case 128:ctrled = led7;mydelay (100);break; if(nwork=255) nwork=0; uwork1=0; uwork2=0; break; exit(0);void mydelay(unsigned int ndelay)int ii,jj,kk=0;for ( ii=0;iindelay;ii+ )for ( jj=0;jj1024;jj+ )kk+;五實(shí)驗(yàn)步驟1.實(shí)驗(yàn)準(zhǔn)備:(1)連接實(shí)驗(yàn)設(shè)備。(2)連接實(shí)驗(yàn)箱附帶的鍵盤(pán)的ps2插頭到icetek-ctr的“鍵盤(pán)接口”p8。(3)將icetek-ctr板的供電電源開(kāi)關(guān)

32、撥動(dòng)到“開(kāi)”的位置。2.設(shè)置code composer studio 2.21在硬件仿真(emulator)方式下運(yùn)行。3.啟動(dòng)code composer studio 2.21:選擇菜單debugreset cpu。4.打開(kāi)工程文件:工程目錄:c:icetekvc5509as60vc5509as60lab0404-keykey.pjt。瀏覽key.c文件的內(nèi)容,理解各語(yǔ)句作用。5.編譯并下載程序。6.運(yùn)行程序觀察結(jié)果:運(yùn)行程序后,按小鍵盤(pán)上的數(shù)字鍵,可以看到發(fā)光二極管顯示陣列上顯示相應(yīng)的數(shù)字。7.退出程序:在小鍵盤(pán)上按“enter”鍵,程序會(huì)退出并停止運(yùn)行。 8.結(jié)束程序運(yùn)行,退出ccs。六

33、實(shí)驗(yàn)結(jié)果與分析實(shí)驗(yàn)結(jié)果:可以觀察到發(fā)光二極管陣列顯示鍵盤(pán)輸入字符。分析:實(shí)現(xiàn)了按鍵控制指示燈的實(shí)驗(yàn),每個(gè)按鍵對(duì)應(yīng)的指示燈亮都符合要求;在程序加入分支語(yǔ)句實(shí)現(xiàn)對(duì)不同鍵盤(pán)輸入值的處理或支持控制型按鍵;修改程序中鍵值查找表可實(shí)現(xiàn)按鍵的重新布局或修改。實(shí)驗(yàn)三 蜂鳴器一實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)實(shí)驗(yàn)學(xué)習(xí)使用5509dsp的擴(kuò)展端口控制外圍設(shè)備信息的方法,掌握使用5509dsp通用計(jì)時(shí)器的控制原理及中斷服務(wù)程序的編程方法;了解蜂鳴器發(fā)聲原理和音樂(lè)發(fā)生方法。二實(shí)驗(yàn)設(shè)備計(jì)算機(jī),icetek-vc5509-a實(shí)驗(yàn)箱(或icetek仿真器+icetek-vc5509-a系統(tǒng)板+相關(guān)連線(xiàn)及電源)。三實(shí)驗(yàn)原理1emif接口:tms

34、320c5509dsp的擴(kuò)展存儲(chǔ)器接口(emif)用來(lái)與大多數(shù)外圍設(shè)備進(jìn)行連接,典型應(yīng)用如連接片外擴(kuò)展存儲(chǔ)器等。這一接口提供地址連線(xiàn)、數(shù)據(jù)連線(xiàn)和一組控制線(xiàn)。icetek-vc5509-a將這些擴(kuò)展線(xiàn)引到了板上的擴(kuò)展插座上供擴(kuò)展使用。2蜂鳴器由dsp通用i/o管腳輸出控制,可將此管腳上的頻率輸出轉(zhuǎn)換成聲音輸出。5509a的通用i/o口s13控制蜂鳴器的輸出頻率??刂频姆椒ㄊ鞘褂胐sp通用定時(shí)器設(shè)置s13以一定的頻率改變高低狀態(tài),輸出方波。對(duì)于通用定時(shí)器周期寄存器的設(shè)置,計(jì)數(shù)值為所需頻率計(jì)數(shù)值的二分之一。音樂(lè)的頻率(c調(diào)): c d e f g a b c 1 2 3 4 5 6 7 1c: 26

35、4, 297, 330,352, 396, 440,495, 5283蜂鳴器的連接:由于選用的蜂鳴器所需電流較小,所以采用將dsp通用i/o引腳直接驅(qū)動(dòng)的方式。4實(shí)驗(yàn)程序流程圖: 中斷服務(wù)程序開(kāi)始改變s13引腳的狀態(tài)(通過(guò)不同的定時(shí)器周期設(shè)置產(chǎn)生不同頻率)中斷服務(wù)程序結(jié)束開(kāi)始初始化:dsp時(shí)鐘、emif、icetek-ctr選通蜂鳴器設(shè)置mcbsp控制寄存器(s13輸出)初始化中斷向量和定時(shí)器初始化音長(zhǎng),音高等參數(shù)根據(jù)預(yù)定的數(shù)據(jù)切換音符四實(shí)驗(yàn)程序#include myapp.h#include icetek-vc5509-edu.h#include scancode.h/ :- define

36、timer 0 s registers -/ ioport unsigned int *tim0; ioport unsigned int *prd0; ioport unsigned int *tcr0; ioport unsigned int *prsc0; / :- end of define -/#define ctrstatus (*(unsigned int *)0x600800) /port8000void initmcbsp();main()int nmusiccount;int nwork; pll_init(12);sdram_init();initmcbsp();ctrs

37、tatus=0x88;ctrstatus=8;ctrstatus=0x88;ctrstatus=8; ctrgr=8;/ buzze=1 打開(kāi)蜂鳴器, 見(jiàn)icetek-ctr的全局控制寄存器描述 / 設(shè)置合適的音長(zhǎng)和音高 for ( nwork=0;nworknmusicnumber;nwork+ ) musicnwork0*=10; musicnwork1*=3; musicnwork1/=12; / 設(shè)置dx0管腳為通用輸出管腳以驅(qū)動(dòng)蜂鳴器/ spcr0&=0x0fffeffff;/ /xrst=0/ pcr0|=0x2000;/ rioen=1 initinterrupt();time_

38、init(); nmusiccount=0; while ( 1 ) nmusiccount+;nmusiccount%=nmusicnumber;if ( musicnmusiccount0=0 )*tcr0&=0x0fffffcff;/ 靜音else*prd0=musicnmusiccount0;/ 切換音符*tcr0=0xe0;delay(musicnmusiccount1); void initinterrupt(void)/ 設(shè)置中斷控制寄存器ivpd=0x80;ivph=0x80;ier0=0x10;dbier0 =0x10;ifr0=0xffff;asm( bclr intm);

39、void interrupt timer()/中斷響應(yīng)函數(shù) pcr0=0x20;void initmcbsp()/ iopin: mcbsp1.fsx s15 /spcr2.xrst_=0,pcr.xioen=1,pcr.fsxm=1,pcr.fsxp=0/1spcr2_1&=0x0fffe;pcr1|=0x2800;void time_init(void)tim0 = (unsigned int *)0x1000;prd0 = (unsigned int *)0x1001;tcr0 = (unsigned int *)0x1002;prsc0 = (unsigned int *)0x1003

40、; *tcr0 = 0x04f0; *tim0 = 0; *prd0 = 0xffff; *prsc0 = 2; *tcr0 = 0x00e0;五實(shí)驗(yàn)步驟1實(shí)驗(yàn)準(zhǔn)備:(1)連接實(shí)驗(yàn)設(shè)備。(2)連接實(shí)驗(yàn)箱附帶的鍵盤(pán)的ps2插頭到icetek-ctr的“鍵盤(pán)接口”p8。(3)將icetek-ctr板的供電電源開(kāi)關(guān)撥動(dòng)到“開(kāi)”的位置。2設(shè)置code composer studio 2.21在硬件仿真(emulator)方式下運(yùn)行。3啟動(dòng)code composer studio 2.21:選擇菜單debugreset cpu。4打開(kāi)工程文件:工程目錄:c:icetekvc5509as60vc5509a

41、s60lab0405-speakerspeaker.pjt。瀏覽main.c文件的內(nèi)容,理解各語(yǔ)句作用。5編譯并下載程序。6運(yùn)行程序觀察結(jié)果。7結(jié)束程序運(yùn)行,退出ccs。六實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果:可以聽(tīng)到蜂鳴器發(fā)出的音樂(lè)聲。分析:程序中使用循環(huán)延時(shí)的方法掌握節(jié)拍,可考慮使用定時(shí)器計(jì)數(shù)改變音符,更復(fù)雜的方法可以產(chǎn)生語(yǔ)音效果。實(shí)驗(yàn)四 dsp算法實(shí)驗(yàn)實(shí)驗(yàn)4.1 有限沖激響應(yīng)濾波器(fir)算法實(shí)驗(yàn)一實(shí)驗(yàn)?zāi)康?掌握用窗函數(shù)法設(shè)計(jì)fir數(shù)字濾波器的原理和方法。2熟悉線(xiàn)性相位fir數(shù)字濾波器特性。3了解各種窗函數(shù)對(duì)濾波器特性的影響。二實(shí)驗(yàn)設(shè)備pc兼容機(jī)一臺(tái),操作系統(tǒng)為windows2000(或windows98,windowsxp,以下默認(rèn)為windows2000),安裝code composer studio 2.21軟件。三實(shí)驗(yàn)原理1有限沖激響應(yīng)數(shù)字濾波器的基礎(chǔ)理論(請(qǐng)參考相關(guān)書(shū)籍)。2模擬濾波器原理(巴特沃斯濾波器、切比雪夫?yàn)V波器、橢圓濾波器、貝塞爾濾波器)。3數(shù)字濾波器系數(shù)的確定方法。4根據(jù)要求設(shè)計(jì)低通fir濾波器。要求:通帶邊緣頻率10khz,阻帶邊緣頻率22khz,阻帶衰減75db,采樣頻率50khz。設(shè)計(jì):-過(guò)渡帶寬度=阻帶邊緣頻率-通帶邊緣頻率=22-10=12khz-采樣頻率:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論