![南昌大學(xué)DSP實(shí)驗(yàn)報(bào)告_第1頁(yè)](http://file4.renrendoc.com/view/332dc57f509d2a9c7261ee45fdc993e6/332dc57f509d2a9c7261ee45fdc993e61.gif)
![南昌大學(xué)DSP實(shí)驗(yàn)報(bào)告_第2頁(yè)](http://file4.renrendoc.com/view/332dc57f509d2a9c7261ee45fdc993e6/332dc57f509d2a9c7261ee45fdc993e62.gif)
![南昌大學(xué)DSP實(shí)驗(yàn)報(bào)告_第3頁(yè)](http://file4.renrendoc.com/view/332dc57f509d2a9c7261ee45fdc993e6/332dc57f509d2a9c7261ee45fdc993e63.gif)
![南昌大學(xué)DSP實(shí)驗(yàn)報(bào)告_第4頁(yè)](http://file4.renrendoc.com/view/332dc57f509d2a9c7261ee45fdc993e6/332dc57f509d2a9c7261ee45fdc993e64.gif)
![南昌大學(xué)DSP實(shí)驗(yàn)報(bào)告_第5頁(yè)](http://file4.renrendoc.com/view/332dc57f509d2a9c7261ee45fdc993e6/332dc57f509d2a9c7261ee45fdc993e65.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE1實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)課程:DSP原理及應(yīng)用學(xué)生姓名:學(xué)號(hào):專(zhuān)業(yè)班級(jí):2012年5月25日
目錄TOC\o"1-1"\h\u11333實(shí)驗(yàn)一定點(diǎn)除法運(yùn)算實(shí)驗(yàn)二FIR濾波器實(shí)驗(yàn)三FFT算法17276實(shí)驗(yàn)四卷積計(jì)算7730實(shí)驗(yàn)五數(shù)碼管顯示3378實(shí)驗(yàn)六語(yǔ)音錄放
實(shí)驗(yàn)一定點(diǎn)除法運(yùn)算實(shí)驗(yàn)?zāi)康?、熟悉C54指令系統(tǒng),掌握常用匯編指令,學(xué)會(huì)設(shè)計(jì)程序和算法的技巧。2、學(xué)習(xí)用指令實(shí)現(xiàn)除法運(yùn)算。二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī);DSP硬件仿真器;DSP實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)。實(shí)驗(yàn)原理由內(nèi)置的硬件模塊支持,數(shù)字信號(hào)處理器可以高速的完成加法和乘法運(yùn)算。但TMS320系列DSP不提供除法指令,為實(shí)現(xiàn)除法運(yùn)算,需要編寫(xiě)除法子程序來(lái)實(shí)現(xiàn)。二進(jìn)制除法是乘法的逆運(yùn)算。乘法包括一系列的移位和加法,而除法可分解為一系列的減法和移位。本實(shí)驗(yàn)要求編寫(xiě)一個(gè)16位的定點(diǎn)除法子程序。除法運(yùn)算的過(guò)程設(shè)累加器為8位,且除法運(yùn)算為10除以3,除的過(guò)程包括與除數(shù)有關(guān)的除數(shù)逐步移位,然后進(jìn)行減法運(yùn)算,若所得商為正,則在商中置1,否則該位商為0例如:4位除法示例:(1)數(shù)的最低有效位對(duì)齊被除數(shù)的最高有效位00001010-0001100011110010(2)由于減法結(jié)果為負(fù),丟棄減法結(jié)果,將被除數(shù)左移一位再減00010100-0001100011111000(3)結(jié)果仍為負(fù),丟棄減法結(jié)果,將被除數(shù)左移一位再減00101000-0001100000010000(4)結(jié)果為正,將減法結(jié)果左移一位后把商置1,做最后一次減00100001-0001100000001001(5)結(jié)果為正,將減法結(jié)果左移一位加1得最后結(jié)果,高4位是余數(shù),低4位商:000100112.除法運(yùn)算的實(shí)現(xiàn)為了盡量提高除法運(yùn)算的效率,’C54x系列提供了條件減指令SUBC來(lái)完成除法操作。實(shí)驗(yàn)步驟1.用Simulator方式啟動(dòng)CodeComposer。2.執(zhí)行ProjectNew建立新的項(xiàng)目,輸入chuf作為項(xiàng)目的名稱(chēng),將程序定位在D:\ti\myprojects\chuf目錄。3.執(zhí)行FileNewSourceFile建立新的程序文件,為創(chuàng)建新的程序文件命名為chuf.asm并保存;執(zhí)行ProjectAddFilestoProject,把chuf.asm加入項(xiàng)目中。4.執(zhí)行FileNewSourceFile建立新的文件并保存為chuf.cmd;執(zhí)行ProjectAddFilestoProject,把chuf.cmd加入項(xiàng)目中。5.編輯chuf.asm加入如下內(nèi)容:;***編制計(jì)算除法運(yùn)算的程序段。其中|被除數(shù)|<|除數(shù)|,商為小數(shù)*** .title "chuf.asm" .mmregs.def start,_c_int00.bss num,1.bss den,1.bss quot,1.datatable .word4*32768/10;0.4 .word-8*32768/10;-0.8.text_c_int00 bstart nop nopstart: STM#num,AR1 RPT#1 MVPDtable,*AR1+ ;傳送2個(gè)數(shù)據(jù)至分子、分母單元 STM#den,AR1 LD*AR1-,16,A ;將分母移到累加器A(31-16) MPYA*AR1+;(num)*(A(32-16))->B,獲取商的符號(hào) ;(在累加器B中)ABSA ;分母取絕對(duì)值 STHA,*AR1- ;分母絕對(duì)值存回原處 LD*AR1+,16,A ;分子->A(32-16) ABSA ;分子取絕對(duì)值 RPT#14 ;15次減法循環(huán),完成除法 SUBC*AR1,A XC 1,BLT ;如果B〈0(商是負(fù)數(shù))則需要變號(hào) NEG A STLA,*(quot) ;保存商.END編譯chuf.cmd加入如下內(nèi)容:/*chuf.cmd*/chuf.obj-mchuf.map-ochuf.out MEMORY{PAGE0: ROM :origin=0080h,length=1000h ROM:origin=0060h,length=10hPAGE1: OTHER :origin=0400h,length=40h} SECTIONS{ .text : {}>ROM PAGE0 .data : {}>ROMPAGE0 .stack:{}>OTHERPAGE1 .bss:{}>OTHERPAGE1}實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)小結(jié)通過(guò)幾次的課程實(shí)驗(yàn),我學(xué)到了不少新的知識(shí),只有自己真正做過(guò)才會(huì)知道和了解。結(jié)合課程中所學(xué)的理論知識(shí),和參考資料做課程實(shí)驗(yàn)。達(dá)到學(xué)有所用的目的。學(xué)會(huì)查閱相關(guān)手冊(cè)與資料,通過(guò)查閱手冊(cè)和文獻(xiàn)資料,并掌握合理選用的原則,培養(yǎng)獨(dú)立分析與解決問(wèn)題的能力。這次設(shè)計(jì)我們學(xué)到了很多東西,熟悉CCS5000軟件的使用,還加深了對(duì)知識(shí)的理解和掌握。作為一名大三的學(xué)生,我覺(jué)得能做類(lèi)似的課程設(shè)計(jì)是十分有意義的。
實(shí)驗(yàn)二FIR濾波器一、實(shí)驗(yàn)?zāi)康?、熟悉數(shù)字濾波的基本原理和實(shí)現(xiàn)方法;2、熟悉線性相位FIR數(shù)字濾波器特性;3、通過(guò)觀察對(duì)實(shí)際信號(hào)的濾波作用,獲得對(duì)數(shù)字濾波的感性認(rèn)識(shí)。二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī);DSP硬件仿真器;DSP實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)。三、實(shí)驗(yàn)硬件設(shè)置1、將實(shí)驗(yàn)箱右側(cè)的船型開(kāi)關(guān)往”I”方向打開(kāi)電源;2、將主板的開(kāi)關(guān)S33(主板右上角)撥通+/-5V電源;3、實(shí)驗(yàn)開(kāi)始前先按RST硬件復(fù)位(實(shí)驗(yàn)中不要再按復(fù)位鍵)。四、實(shí)驗(yàn)步驟1、啟動(dòng)CCS編寫(xiě)實(shí)驗(yàn)程序代碼;2、打開(kāi)Projects,選擇MYprojects→fir→fir.pjt;3、打開(kāi)程序后.進(jìn)行運(yùn)行和編譯;編輯fir.asm加入如下內(nèi)容:;一個(gè)FIR濾波器源程序fir.asm .mmregs .globalstart .def start,_c_int00 INDEX .set 1KS .set 256 ;模擬輸入數(shù)據(jù)緩沖區(qū)大小N.set17 COFF_FIR .sect"COFF_FIR" ;FIR濾波器系數(shù) .word0 .word158 .word264 .word-290 .word-1406 .word-951 .word3187 .word9287 .word12272 .word9287 .word3187 .word-951 .word-1406 .word-290 .word260 .word158 .word0 .dataINPUT .copy "firin.inc";模擬輸入在數(shù)據(jù)存儲(chǔ)區(qū)0x2400OUTPUT .space 1024;輸出數(shù)據(jù)在數(shù)據(jù)區(qū)0x2500;FIR_DP .usect "FIR_VARS",0;D_FIN .usect "FIR_VARS",1;D_FOUT .usect "FIR_VARS",1COFFTAB .usect "FIR_COFF",NDATABUF .usect "FIR_BFR",NBOS .usect "STACK",0FhTOS .usect "STACK",1 .text .asg AR0,INDEX_P .asg AR4,DATA_P ;輸入數(shù)據(jù)x(n)循環(huán)緩沖區(qū)指針 .asg AR5,COFF_P ;FIR系數(shù)表指針 .asg AR6,INBUF_P;模擬輸入數(shù)據(jù)指針 .asg AR7,OUTBUF_P;FIR濾波器輸出數(shù)據(jù)指針_c_int00 bstart nop nopstart:ssbxFRCT STM #COFFTAB,COFF_P RPT #N-1 ;將FIR系數(shù)從程序存儲(chǔ)器移動(dòng) MVPD #COFF_FIR,*COFF_P+ ;到數(shù)據(jù)存儲(chǔ)器 STM #INDEX,INDEX_P STM #DATABUF,DATA_P RPTZ A,#N-1 STL A,*DATA_P+ ;將數(shù)據(jù)循環(huán)緩沖區(qū)清零 STM #(DATABUF+N-1),DATA_P;數(shù)據(jù)緩沖區(qū)指針指向x[n-(N-1)] STM #COFFTAB,COFF_P ;FIR_TASK:STM #INPUT,INBUF_P STM #OUTPUT,OUTBUF_PSTM #KS-1,BRCRPTBD LOOP-1STM #N,BK ;FIR循環(huán)緩沖區(qū)大小LD *INBUF_P+,A ;裝載輸入數(shù)據(jù)FIR_FILTER: STL A,*DATA_P+% RPTZ A,N-1 MAC *DATA_P+0%,*COFF_P+0%,A STH A,*OUTBUF_P+LOOP:EEND B EEND .end編譯fir.cmd加入如下內(nèi)容 :fir.obj-m fir.map-o fir.outMEMORY{ PAGE0:ROM1(RIX) :ORIGIN=0080H,LENGTH=100H PAGE1:INTRAM1(RW):ORIGIN=2400H,LENGTH=0200HINTRAM2(RW):ORIGIN=2600H,LENGTH=0100H INTRAM3(RW):ORIGIN=2700H,LENGTH=0100H B2B(RW) :ORIGIN=0070H,LENGTH=10H}SECTIONS{ .text : {}>ROM1 PAGE0 .data:{}>INTRAM1PAGE1 FIR_COFF:{}>INTRAM2PAGE1 FIR_BFR:{}>INTRAM3PAGE1 .stack:{}>B2BPAGE1} 4、由File→Loadprogram→debug→fir.out加載程序到芯片上去;5、在點(diǎn)擊菜單debug→Gomain就進(jìn)入實(shí)驗(yàn)程序test.c;6、然后我們打開(kāi)波形觀察窗口,路徑是View→Graph→Time/Frequence,這時(shí)將出現(xiàn)下圖所示的屬性框,跟據(jù)圖框進(jìn)行參數(shù)設(shè)定;參數(shù)設(shè)置完成后.點(diǎn)擊”O(jiān)K”就可以打開(kāi)圖形觀察窗口;然后,單擊View→Graph→Time/Frequence,由.cmd可知輸出信號(hào)的數(shù)據(jù)放在數(shù)據(jù)區(qū)0X2500開(kāi)始的256個(gè)單元中,將上圖中的StartAddress項(xiàng)改變?yōu)?X2500,單擊OK按鈕,將顯示濾波器輸出時(shí)域波形。五、實(shí)驗(yàn)小結(jié)通過(guò)幾次的課程實(shí)驗(yàn),我學(xué)到了不少新的知識(shí),只有自己真正做過(guò)才會(huì)知道和了解。結(jié)合課程中所學(xué)的理論知識(shí),和參考資料做課程實(shí)驗(yàn)。達(dá)到學(xué)有所用的目的。學(xué)會(huì)查閱相關(guān)手冊(cè)與資料,通過(guò)查閱手冊(cè)和文獻(xiàn)資料,并掌握合理選用的原則,培養(yǎng)獨(dú)立分析與解決問(wèn)題的能力。這次設(shè)計(jì)我們學(xué)到了很多東西,熟悉CCS5000軟件的使用,還加深了對(duì)知識(shí)的理解和掌握。作為一名大三的學(xué)生,我覺(jué)得能做類(lèi)似的課程設(shè)計(jì)是十分有意義的。實(shí)驗(yàn)三FFT算法一、實(shí)驗(yàn)?zāi)康?、加深對(duì)DFT算法原理和基本性質(zhì)的理解。2、熟悉FFT算法原理和FFT子程序的應(yīng)用。3、學(xué)習(xí)用FFT對(duì)連續(xù)信號(hào)和時(shí)域信號(hào)進(jìn)行譜分析的方法,二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī);DSP硬件仿真器;DSP實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)。三、實(shí)驗(yàn)步驟1、啟動(dòng)CCS,編寫(xiě)實(shí)驗(yàn)程序代碼.2、打開(kāi)Projects,選擇myprojects→fft→fft.pjt.3、打開(kāi)程序后.進(jìn)行運(yùn)行和編譯.編譯fft.asm加入如下內(nèi)容:**************************************Radix-2,DIT,Real-inputFFTProgram**fft.asm************************************** .mmregs .globalreset,start,sav_sin,sav_idx,sav_grp.def start,_c_int00.dataDATA .space 1024.copy "mdata.inc"N .set 128LOGN .set 7sav_grp .usect "tempv",3sav_sin .set sav_grp+1sav_idx .set sav_grp+2OUTPUT .usect "OUTPUT",256BOS .usect "stack",0FhTOS .usect "stack",1 .copy "twiddle1.inc" .copy "twiddle2.inc" .text_c_int00 bstart nop nopstart: STM #TOS,SP LD #0,DP SSBX FRCT STM #2*N,BK STM #INPUT,AR3 STM #DATA,AR7 MVMM AR7,AR2 STM #N-1,BRC RPTBD plend-1 STM #N,AR0 LDM AR3,A READA*AR2+ ADD#1,A READA*AR2+ MAR *AR3+0Bplend: STM #0,BK LD #-1,ASM MVMM AR7,AR2 STM #DATA+2,AR3 STM #N/2-1,BRC LD *AR2,16,A RPTBD s1end-1 STM #3,AR0 SUB *AR3,16,A,B ADD *AR3,16,A STH A,ASM,*AR2+ ST B,*AR3+ ||LD *AR2,A SUB *AR3,16,A,B ADD *AR3,16,A STH A,ASM,*AR2+0 ST B,*AR3+0% ||LD *AR2,As1end: MVMM AR7,AR2 STM #DATA+4,AR3 STM #N/4-1,BRC LD *AR2,16,A RPTBD s2end-1 STM #5,AR0 SUB *AR3,16,A,B ADD *AR3,16,A STH A,ASM,*AR2+ ST B,*AR3+ ||LD *AR2,A SUB *AR3,16,A,B ADD *AR3,16,A STH A,ASM,*AR2+ STH B,ASM,*AR3+ MAR *AR3+ ADD *AR2,*AR3,A SUB *AR2,*AR3-,B STH A,ASM,*AR2+ SUB *AR2,*AR3,A ST B,*AR3 ||LD *AR3+,B ST A,*AR2 ||ADD *AR2+0%,A ST A,*AR3+0% ||LD *AR2,As2end: STM #512,BK ST #128,@sav_sin STM #128,AR0 STM #TWI2,AR4 STM#TWI1,AR5 STM #-3+LOGN,AR7 ST #-1+N/8,@sav_grp STM #3,AR6 ST #8,@sav_idxstage: STM #DATA,AR2 LD @sav_idx,A ADD *(AR2),A STLM A,AR3 MVDK @sav_grp,AR1group: MVMD AR6,BRC RPTBD bend-1 LD *AR4,T MPY *AR3+,A MACR *AR5+0%,*AR3-,A ADD *AR2,16,A,B ST B,*AR2 ||SUB *AR2+,B ST B,*AR3 ||MPY *AR3+,A MASR *AR3,*AR4+0%,A ADD *AR2,16,A,B ST B,*AR3+ ||SUB *AR2,B LD *AR4,T ST B,*AR2+ ||MPY *AR3+,Abend: PSHM AR0 MVDK sav_idx,AR0 MAR *AR2+0 MAR *AR3+0 BANZD group,*AR1- POPM AR0 MAR *AR3- LD sav_idx,A SUB #1,A,B STLM B,AR6 STL A,1,sav_idx LD sav_grp,A STL A,ASM,sav_grp LD sav_sin,A STL A,ASM,sav_sin BANZD stage,*AR7- MVDK sav_sin,AR0; STM #DATA+2,AR2 STM #DATA+2*N-2,AR3 STM #DATA+2*N+3,AR7 STM #DATA+4*N-1,AR6 STM #-2+N/2,BRC RPTBD p3end-1 STM #3,AR0; ADD *AR2,*AR3,A SUB*AR2,*AR3,B STH A,ASM,*AR2+ STH A,ASM,*AR3+ STH B,ASM,*AR6- NEG B STH B,ASM,*AR7- ADD *AR2,*AR3,A SUB *AR2,*AR3,B STH A,ASM,*AR2+ STH A,ASM,*AR3-0 STH B,ASM,*AR6- NEG B STH B,ASM,*AR7+0p3end: ST #0,*AR6- ST #0,*AR6p3test: STM #DATA,AR2 STM #DATA+1,AR4 STM #DATA+2*N+1,AR5 ADD *AR2,*AR4,A SUB *AR2,*AR4,B STH A,ASM,*AR2+ ST #0,*AR2 MVDD *AR2+,*AR5- STH B,ASM,*AR5; STM #DATA+4*N-1,AR3 STM #TWI2+512/N,AR4 STM #TWI1+512/N,AR5 STM #N-2,BRC RPTBD p4end-1 STM #512/N,AR0 LD *AR2+,16,A MACR *AR4,*AR2,A MASR *AR5,*AR3-,A LD *AR3+,16,B MASR *AR5+0%,*AR2-,B MASR *AR4+0%,*AR3,B STH A,ASM,*AR2+ STH B,ASM,*AR2+ NEG B STH B,ASM,*AR3- STH A,ASM,*AR3-p4end: power: STM #OUTPUT,AR3 ;AR3指向輸出緩沖地址 STM #255,BRC ;塊循環(huán)計(jì)數(shù)器設(shè)置為255 RPTBD power_end-1 ;帶延遲方式的重復(fù)執(zhí)行指令 STM #DATA,AR2 ;AR2指向AR[0] SQUR *AR2+,A ;A:=AR2 SQURA *AR2+,A ;A:=AR2+AI2 STH A,7,*AR3 ;將A中的數(shù)據(jù)存入輸出緩沖中, ANDM #7FFFH,*AR3+ ;避免輸出數(shù)據(jù)過(guò)大在虛擬示波器中顯示錯(cuò)誤power_end: B power_end .end 編譯fft.cmd加入如下內(nèi)容:/*fft.cmd*/fft.obj-mfft.map-offt.out MEMORY{PAGE0: ROM(RIX) :origin=8000h,length=1000hROM1 :origin=9000h,length=0200hPAGE1: B2A(RW) :origin=0060h,length=10h B2B(RW) :origin=0070h,length=10h INTRAM1(RW):origin=0400h,length=0200h INTRAM2(RW):origin=0800h,length=0200h INTRAM3(RW):origin=1400h,length=0800h OTHER :origin=2000h,length=800h}SECTIONS{ .text : {}>ROM PAGE0 INPUT:{}>ROM1 PAGE0 .data : {}>INTRAM3 PAGE1 twiddle1:{}>INTRAM1 PAGE1 twiddle2:{}>INTRAM2 PAGE1tempv : {}>B2A PAGE1stack : {}>B2B PAGE1OUTPUT : {}>OTHER PAGE1.stack : {}>OTHER PAGE1}4、由File→Loadprogram→debug→fft.out加載程序到芯片上去.5、然后我們打開(kāi)波形觀察窗口,路徑是View→Graph→Time/Frequence,設(shè)置參數(shù)后點(diǎn)擊”O(jiān)K“。6、點(diǎn)run運(yùn)行程序后,在刷新圖形窗口就可以看到輸出波形了.實(shí)驗(yàn)小結(jié)通過(guò)幾次的課程實(shí)驗(yàn),我學(xué)到了不少新的知識(shí),只有自己真正做過(guò)才會(huì)知道和了解。結(jié)合課程中所學(xué)的理論知識(shí),和參考資料做課程實(shí)驗(yàn)。達(dá)到學(xué)有所用的目的。學(xué)會(huì)查閱相關(guān)手冊(cè)與資料,通過(guò)查閱手冊(cè)和文獻(xiàn)資料,并掌握合理選用的原則,培養(yǎng)獨(dú)立分析與解決問(wèn)題的能力。這次設(shè)計(jì)我們學(xué)到了很多東西,熟悉CCS5000軟件的使用,還加深了對(duì)知識(shí)的理解和掌握。作為一名大三的學(xué)生,我覺(jué)得能做類(lèi)似的課程設(shè)計(jì)是十分有意義的。
實(shí)驗(yàn)四卷積計(jì)算一、實(shí)驗(yàn)?zāi)康模?、掌握卷積算法的原理和計(jì)算方法;2、熟悉卷積算法特性。二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī);DSP硬件仿真器;DSP實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)。三、實(shí)驗(yàn)內(nèi)容1、設(shè)置斷點(diǎn)和探針;2、卷積的運(yùn)算程序;四、實(shí)驗(yàn)原理1、卷積的基本原理和公式:卷積和的運(yùn)算在圖形表示上可分為四步:1)翻褶先變量坐標(biāo)上作出x(m)和h(m),將m=0的垂直軸為軸翻褶成h(-m);2)移位:將h(-m)移位n,即得h(n-m)。當(dāng)n為正整數(shù)時(shí),右移n位。當(dāng)n為負(fù)整數(shù)時(shí),左移n位;3)相乘:再將h(n-m)和x(m)的相同m值的對(duì)應(yīng)點(diǎn)值相乘;4)相加:把以上所有對(duì)應(yīng)點(diǎn)的乘積疊加起來(lái),即得y(n)值。依上法,取n=,-2,-1,0,1,2,3,各值,即可得全部y(n)值。2、程序的函數(shù)及其功能(1)staticintstep1(int*output1,int*output2)參數(shù)解釋?zhuān)簅utput1、output2為兩個(gè)整型指針數(shù)組。返回值解釋?zhuān)悍祷亓艘粋€(gè)“TRUE”,讓主函數(shù)的while循環(huán)保持連續(xù)。功能說(shuō)明對(duì)輸入的ouput1buffer波形進(jìn)行截取m點(diǎn),再以零點(diǎn)的Y軸為對(duì)稱(chēng)軸進(jìn)行翻褶,把生成的波形上各點(diǎn)的值存入以O(shè)UTPUT2指針開(kāi)始的一段地址空間中。(2)staticintstep2(int*output2,int*output3)參數(shù)解釋?zhuān)簅utput2、output3為兩個(gè)整型指針數(shù)組。返回值解釋?zhuān)悍祷亓艘粋€(gè)“TRUE”,讓主函數(shù)的while循環(huán)保持連續(xù)。功能說(shuō)明:對(duì)輸出的output2buffer波形進(jìn)行作n點(diǎn)移位,然后把生成的波形上的各點(diǎn)的值存入以O(shè)UTPUT3指針開(kāi)始的一段地址空間中。(3)staticintstep3(int*input1,int*output2,int*output4)參數(shù)解釋?zhuān)簅utput2、output4、input1為三個(gè)整型指針數(shù)組。10返回值解釋?zhuān)悍祷亓艘粋€(gè)“TRUE”,讓主函數(shù)的while循環(huán)保持連續(xù)。功能說(shuō)明:對(duì)輸入的ouput2buffer波形和輸入的input1buffer作卷積和運(yùn)算,然后把生成的波形上的各點(diǎn)的值存入以O(shè)UTPUT4指針開(kāi)始的一段地址空間中。(4)staticintstep4(int*input2,int*output1)調(diào)用形式:step4(input2,output1)參數(shù)解釋?zhuān)簅utput1、input2為兩個(gè)整型指針數(shù)組。返回值解釋?zhuān)悍祷亓艘粋€(gè)“TRUE”,讓主函數(shù)的while循環(huán)保持連續(xù)。功能說(shuō)明:對(duì)輸入的input2buffer波形截取m點(diǎn),然后把生成的波形上的各點(diǎn)的值存入以O(shè)UTPUT1指針開(kāi)始的一段地址空間中。實(shí)驗(yàn)程序流圖4、打開(kāi)觀察窗口選擇菜單View->Graph->Time/Frequency…進(jìn)行如下設(shè)置:Startadderss:表示起始地址;AcquisitionBufferSize:表示輸入數(shù)據(jù)個(gè)數(shù);DisplayDataSize:表示顯示數(shù)據(jù)個(gè)數(shù);DSPDataType:表示數(shù)據(jù)類(lèi)型;5、設(shè)置波形輸入文件,請(qǐng)按照如下設(shè)置:選擇菜單File->FileI/O…,打開(kāi)“FileI/O”窗口;單擊“AddFile”按鈕,在“FileInput”窗口中選擇工程目錄下的sine44.dat文件,單擊“打開(kāi)”按鈕;在“Address”項(xiàng)中輸入in1_buffer,在“Length”項(xiàng)中輸入64,在“WarpAround”項(xiàng)前加上選擇標(biāo)記,單擊“AddProbePoint”按鈕;在“Breakpoints/ProfilePoints”窗口中單擊“ProbePoint”列表中的“Convolve.cline52NoConnection”,再單擊“Connect”項(xiàng)尾部的展開(kāi)按鈕,在顯示的展開(kāi)式列12表中選擇列表末尾的“FILEIN:D:\..\SIN44.DAT”,單擊“Replace”按鈕,單擊“確定”按鈕。6、單擊“AddFile”按鈕,在“FileInput”窗口中選擇工程目錄下的sine44.dat文件,單擊“打開(kāi)”按鈕;在“Address”項(xiàng)中輸入in2_buffer,在“Length”項(xiàng)中輸入64,在“WarpAround”項(xiàng)前加上選擇標(biāo)記,單擊“AddProbePoint”按鈕;在“Breakpoints/ProfilePoints”窗口中單擊“ProbePoint”列表中的“Convolve.cline53NoConnection”,再單擊“Connect”項(xiàng)尾部的展開(kāi)按鈕,在顯示的展開(kāi)式列表中選擇列表末尾的“FILEIN:D:\..\SIN44.DAT”,單擊“Replace”按鈕,單擊“確定”按鈕。在“FileI/O”窗口中單擊“確定”,完成設(shè)置。7、運(yùn)行程序,觀察結(jié)果五、實(shí)驗(yàn)小結(jié)通過(guò)幾次的課程實(shí)驗(yàn),我學(xué)到了不少新的知識(shí),只有自己真正做過(guò)才會(huì)知道和了解。結(jié)合課程中所學(xué)的理論知識(shí),和參考資料做課程實(shí)驗(yàn)。達(dá)到學(xué)有所用的目的。學(xué)會(huì)查閱相關(guān)手冊(cè)與資料,通過(guò)查閱手冊(cè)和文獻(xiàn)資料,并掌握合理選用的原則,培養(yǎng)獨(dú)立分析與解決問(wèn)題的能力。這次設(shè)計(jì)我們學(xué)到了很多東西,熟悉CCS5000軟件的使用,還加深了對(duì)知識(shí)的理解和掌握。作為一名大三的學(xué)生,我覺(jué)得能做類(lèi)似的課程設(shè)計(jì)是十分有意義的。
實(shí)驗(yàn)五數(shù)碼管顯示實(shí)驗(yàn)?zāi)康?、熟悉硬件操作系統(tǒng)。2、熟悉DSP中I/O操作使用方法。3、熟悉CCS的開(kāi)發(fā)環(huán)境。二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī);DSP硬件仿真器;DSP實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)實(shí)驗(yàn)原理此實(shí)驗(yàn)是由DSP通過(guò)IO方式對(duì)數(shù)碼管進(jìn)行操作,即是向數(shù)碼管送數(shù)據(jù),高4位為數(shù)碼管的段碼,低4位為數(shù)碼管的位碼,DSP用的數(shù)據(jù)線是D8~D15,如要在第0位顯示一個(gè)8,就只要送入80H,其次,該實(shí)驗(yàn)中要求熟練運(yùn)用DSP的各種指令,能使顯示數(shù)據(jù)出現(xiàn)左移或右移等。實(shí)驗(yàn)步驟1、啟動(dòng)CCS編寫(xiě)實(shí)驗(yàn)程序代碼;2、打開(kāi)Projects,選擇new→ex9→ex9.pjt;3、打開(kāi)程序后.進(jìn)行運(yùn)行和編譯;編輯ex9.asm加入如下內(nèi)容:.title"ex9" .global_c_int00 .mmregsSM_ADDR.set1003h;數(shù)碼管的I/O地址SM_DATA .set 60h;段碼在數(shù)據(jù)線的高4位,位碼在數(shù)據(jù)線的次高4位.;在CPLD模塊中程序?yàn)镈EMO程序的情況下,段碼顯示已譯碼,比如:要顯示7,;只要往數(shù)據(jù)線的高4位發(fā)7即可.位碼為0-7,在次高位數(shù)據(jù)線對(duì)應(yīng)的數(shù)值也為0-7. .sect".vectors"reset: B_c_int00 NOP NOP .space31*4*16 .text_c_int00: LD#0h,DP;設(shè)置數(shù)據(jù)頁(yè)指針 STM#2000h,SP;設(shè)置堆棧指針 RSBXINTM STM#07FFFh,SWWSRSSBXXFST#1007h,CLKMD ;工作在20MHz RPT#0FFh NOP STM#0ffffh,IFR ORM#000h,IMR RSBXSXMaaanopCALLLED07;顯示0到7 CALLLED8F;顯示8到Fbaaa LED8FST#8000h,SM_DATAST#07H,AR3WRDENG:PORTW SM_DATA,SM_ADDR;8-fRPT#10000NOPST#02fffH,AR6calldelayADDM#1100H,SM_DATA;送位碼,屏蔽低8位數(shù)據(jù)BANZWRDENG,*AR3-RETLED07NOPST#07H,AR3STM#0H,SM_DATAWRDENG1NOP;0-7PORTWSM_DATA,SM_ADDRST#02fffH,AR6calldelayADDM#1100H,SM_DATA;送位碼,屏蔽低8位數(shù)據(jù)BANZWRDENG1,*AR3-RETdelay STM#0f0h,AR7 ;延時(shí)子程序 BANZ$,*AR7- BANZdelay,*AR6- RET實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)小結(jié)通過(guò)幾次的課程實(shí)驗(yàn),我學(xué)到了不少新的知識(shí),只有自己真正做過(guò)才會(huì)知道和了解。結(jié)合課程中所學(xué)的理論知識(shí),和參考資料做課程實(shí)驗(yàn)。達(dá)到學(xué)有所用的目的。學(xué)會(huì)查閱相關(guān)手冊(cè)與資料,通過(guò)查閱手冊(cè)和文獻(xiàn)資料,并掌握合理選用的原則,培養(yǎng)獨(dú)立分析與解決問(wèn)題的能力。
實(shí)驗(yàn)六語(yǔ)音錄放一、實(shí)驗(yàn)?zāi)康?、了解音頻信號(hào)的采集,存儲(chǔ)方法二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī);DSP硬件仿真器;DSP實(shí)驗(yàn)開(kāi)發(fā)平臺(tái);耳機(jī)麥克風(fēng)。三、實(shí)驗(yàn)程序流程四、實(shí)驗(yàn)步驟1、將實(shí)驗(yàn)箱右側(cè)的船型開(kāi)關(guān)往”I”方向打開(kāi)電源;將主板的開(kāi)關(guān)S33(主板右上角)撥通+/-5V電源;將麥克風(fēng)(紅端)插入語(yǔ)音輸入插座M1,將耳機(jī)(黑色端)插入輸出插座M3實(shí)驗(yàn)開(kāi)始前先按RST硬件復(fù)位(實(shí)驗(yàn)中不要再按復(fù)位鍵)2、打開(kāi)Projects,選擇myprojects→a121f→a121f.pjt.3、打開(kāi)程序后,進(jìn)行運(yùn)行和編譯:.title"ex12"BSP .set 0 ;當(dāng)前使用McBsp0;McBsp0內(nèi)存映射寄存器SPSA0 .set038h;定義子地址寄存器映射位置SPSD0 .set039h;定義子塊數(shù)據(jù)寄存器映射位置DRR10 .set021h;接收數(shù)據(jù)寄存器1映射位置DRR20 .set 020h;接收數(shù)據(jù)寄存器2映射位置DXR10 .set023h;發(fā)送數(shù)據(jù)寄存器1映射地址DXR20 .set 022h;發(fā)送數(shù)據(jù)寄存器2映射地址;McBsp1內(nèi)存映射寄存器SPSA1 .set048hSPSD1.set049hDRR11.set 041hDRR21.set040hDXR11.set043hDXR21.set 042h;McBspSubaddressedRegistersSPCR1 .set 00h;定義SPCR10的映射子地址SPCR2 .set 01h;定義SPCR20的映射子地址RCR1 .set 02h;接收控制寄存器1映射子地址RCR2 .set 03h;接收控制寄存器2映射子地址XCR1 .set 04h;發(fā)送控制寄存器1映射子地址XCR2 .set 05h;發(fā)送控制寄存器2映射子地址SRGR1 .set 06h;采樣率發(fā)生器寄存器1映射子地址SRGR2 .set 07h;采樣率發(fā)生器寄存器2映射子地址MCR1 .set 08h;多通道控制寄存器1映射子地址MCR2 .set 09h;多通道控制寄存器2映射子地址RCERA .set 0ah;接收通道控制寄存器1映射子地址RCERB .set 0bh;接收通道控制寄存器2映射子地址XCERA .set 0ch;發(fā)送通道使能寄存器A映射子地址XCERB .set 0dh;發(fā)送通道使能寄存器B映射子地址PCR .set 0eh;引腳控制寄存器映射子地址 .ifBSP=0;條件匯編,因?yàn)?402有兩個(gè)同步緩沖口如果BSP=0則使用同步緩沖口0SPSA .set SPSA0;由于同步緩沖口采用子地址尋址方式SPSD .set SPSD0RDRR .set DRR10RDXR .set DXR10 .endif .ifBSP=1;條件匯編,因?yàn)?402有兩個(gè)同步緩沖口如果BSP=1則使用同步緩沖口1SPSA .set SPSA1SPSD .set SPSD1RDRR .set DRR11RDXR .set DXR11 .endif ;以下程序是寫(xiě)數(shù)據(jù)的子程序也就是宏WR_SUB_REG .macroval,addr ;寫(xiě)McBsp控制寄存器 stmaddr,SPSA;將ADDR的地址寫(xiě)入SPSA nop;空操作 stmval,SPSD;將配置值寫(xiě)入SPSD nop;空操作 .endm ;以下程序是讀數(shù)據(jù)的子程序也就是宏 RD_SUB_REG .macroaddr,acc ;讀McBsp控制寄存器 stmaddr,SPSA;將ADDR的地址寫(xiě)入SPSA nop;空操作 ldmSPSD,acc;送入累加器保存 nop;空操作 nop nop .endmWAITTRX.macro ;等待串口中斷宏WAITR?RD_SUB_REGSPCR1,Aand#1<<1,AbcWAITR?,AEQ.endmPROGREG.macroprogword ;DSP與AD50的二次通訊(將其最后一位置為1便可) stm#01h,RDXRWAITTRXstmprogword,RDXRWAITTRX.endm;以下程序是等待延時(shí)子程序wait.macro STM#0400h,AR0 RPT*AR0 NOP .endm .mmregs .global_c_int00 .sect".vectors";以下是中斷向量表RESET b_c_int00 nop nop .space19*4*16BRINT0 brecv nop nopBXINT0 btrans nop nop .space10*4*16;以下是主程序 .text_c_int00 ld#0h,DP;設(shè)置數(shù)據(jù)頁(yè)指針為第0頁(yè) stm#0ff00h,SP;設(shè)置堆棧指針地址為2000H ssbxINTM;關(guān)閉所有中斷 ssbxSXM;禁止符號(hào)擴(kuò)展方式位。請(qǐng)看ST1寄存器 st#7FFFh,SWWSR;設(shè)置等待寄存器全都設(shè)置為7等待st#0E8h,PMST;設(shè)置處理器工作方式狀態(tài)寄存器st#1007h,CLKMD;設(shè)置時(shí)鐘方式寄存器,工作頻率為20M(工作頻率取決于(高四位+1*10M?stm#1000h,AR1 stm#100
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 2777-2024林化類(lèi)固體產(chǎn)品生產(chǎn)綜合能耗
- 湘師大版道德與法治九年級(jí)下冊(cè)4.1《感受時(shí)代洗禮》聽(tīng)課評(píng)課記錄
- 招商引資項(xiàng)目合同(2篇)
- 理療按摩技術(shù)加盟合同(2篇)
- 新北師大版小學(xué)數(shù)學(xué)一年級(jí)上冊(cè)《有幾棵樹(shù)》聽(tīng)評(píng)課記錄
- 岳麓版歷史七年級(jí)下冊(cè)第26課《唐代的社會(huì)風(fēng)尚與文化》聽(tīng)課評(píng)課記錄2
- 蘇教版數(shù)學(xué)九年級(jí)上冊(cè)聽(tīng)評(píng)課記錄《1-2一元二次方程的解法(1)》
- 湘教版數(shù)學(xué)七年級(jí)上冊(cè)5.2《復(fù)式統(tǒng)計(jì)圖及統(tǒng)計(jì)圖的選擇》聽(tīng)評(píng)課記錄1
- 中華書(shū)局版歷史七年級(jí)上冊(cè)第17課《三國(guó)兩晉南北朝的文化》聽(tīng)課評(píng)課記錄
- 新版湘教版秋八年級(jí)數(shù)學(xué)上冊(cè)第一章分式課題同分母分式的加法和減法聽(tīng)評(píng)課記錄
- 2025年汽車(chē)零部件項(xiàng)目可行性研究報(bào)告
- (一診)畢節(jié)市2025屆高三第一次診斷性考試 英語(yǔ)試卷(含答案)
- 2025福建新華發(fā)行(集團(tuán))限責(zé)任公司校園招聘30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 油氣長(zhǎng)輸管道檢查標(biāo)準(zhǔn)清單
- 山東鐵投集團(tuán)招聘筆試沖刺題2025
- 小學(xué)二年級(jí)100以?xún)?nèi)連加連減豎式計(jì)算練習(xí)題
- 圖像敘事的跨學(xué)科視野-洞察分析
- 2025年天津市政集團(tuán)公司招聘筆試參考題庫(kù)含答案解析
- 急性缺血性卒中再灌注治療指南2024解讀
- 暑假假期安全教育(課件)-小學(xué)生主題班會(huì)
- 2025年中考英語(yǔ)總復(fù)習(xí):閱讀理解練習(xí)題30篇(含答案解析)
評(píng)論
0/150
提交評(píng)論