版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1实验报告实验课程:DSP原理及应用学生姓名:学号:专业班级:2012年5月25日
目录TOC\o"1-1"\h\u11333实验一定点除法运算实验二FIR滤波器实验三FFT算法17276实验四卷积计算7730实验五数码管显示3378实验六语音录放
实验一定点除法运算实验目的1、熟悉C54指令系统,掌握常用汇编指令,学会设计程序和算法的技巧。2、学习用指令实现除法运算。二、实验设备计算机;DSP硬件仿真器;DSP实验开发平台。实验原理由内置的硬件模块支持,数字信号处理器可以高速的完成加法和乘法运算。但TMS320系列DSP不提供除法指令,为实现除法运算,需要编写除法子程序来实现。二进制除法是乘法的逆运算。乘法包括一系列的移位和加法,而除法可分解为一系列的减法和移位。本实验要求编写一个16位的定点除法子程序。除法运算的过程设累加器为8位,且除法运算为10除以3,除的过程包括与除数有关的除数逐步移位,然后进行减法运算,若所得商为正,则在商中置1,否则该位商为0例如:4位除法示例:(1)数的最低有效位对齐被除数的最高有效位00001010-0001100011110010(2)由于减法结果为负,丢弃减法结果,将被除数左移一位再减00010100-0001100011111000(3)结果仍为负,丢弃减法结果,将被除数左移一位再减00101000-0001100000010000(4)结果为正,将减法结果左移一位后把商置1,做最后一次减00100001-0001100000001001(5)结果为正,将减法结果左移一位加1得最后结果,高4位是余数,低4位商:000100112.除法运算的实现为了尽量提高除法运算的效率,’C54x系列提供了条件减指令SUBC来完成除法操作。实验步骤1.用Simulator方式启动CodeComposer。2.执行ProjectNew建立新的项目,输入chuf作为项目的名称,将程序定位在D:\ti\myprojects\chuf目录。3.执行FileNewSourceFile建立新的程序文件,为创建新的程序文件命名为chuf.asm并保存;执行ProjectAddFilestoProject,把chuf.asm加入项目中。4.执行FileNewSourceFile建立新的文件并保存为chuf.cmd;执行ProjectAddFilestoProject,把chuf.cmd加入项目中。5.编辑chuf.asm加入如下内容:;***编制计算除法运算的程序段。其中|被除数|<|除数|,商为小数*** .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个数据至分子、分母单元 STM#den,AR1 LD*AR1-,16,A ;将分母移到累加器A(31-16) MPYA*AR1+;(num)*(A(32-16))->B,获取商的符号 ;(在累加器B中)ABSA ;分母取绝对值 STHA,*AR1- ;分母绝对值存回原处 LD*AR1+,16,A ;分子->A(32-16) ABSA ;分子取绝对值 RPT#14 ;15次减法循环,完成除法 SUBC*AR1,A XC 1,BLT ;如果B〈0(商是负数)则需要变号 NEG A STLA,*(quot) ;保存商.END编译chuf.cmd加入如下内容:/*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}实验结果:实验小结通过几次的课程实验,我学到了不少新的知识,只有自己真正做过才会知道和了解。结合课程中所学的理论知识,和参考资料做课程实验。达到学有所用的目的。学会查阅相关手册与资料,通过查阅手册和文献资料,并掌握合理选用的原则,培养独立分析与解决问题的能力。这次设计我们学到了很多东西,熟悉CCS5000软件的使用,还加深了对知识的理解和掌握。作为一名大三的学生,我觉得能做类似的课程设计是十分有意义的。
实验二FIR滤波器一、实验目的1、熟悉数字滤波的基本原理和实现方法;2、熟悉线性相位FIR数字滤波器特性;3、通过观察对实际信号的滤波作用,获得对数字滤波的感性认识。二、实验设备计算机;DSP硬件仿真器;DSP实验开发平台。三、实验硬件设置1、将实验箱右侧的船型开关往”I”方向打开电源;2、将主板的开关S33(主板右上角)拨通+/-5V电源;3、实验开始前先按RST硬件复位(实验中不要再按复位键)。四、实验步骤1、启动CCS编写实验程序代码;2、打开Projects,选择MYprojects→fir→fir.pjt;3、打开程序后.进行运行和编译;编辑fir.asm加入如下内容:;一个FIR滤波器源程序fir.asm .mmregs .globalstart .def start,_c_int00 INDEX .set 1KS .set 256 ;模拟输入数据缓冲区大小N.set17 COFF_FIR .sect"COFF_FIR" ;FIR滤波器系数 .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";模拟输入在数据存储区0x2400OUTPUT .space 1024;输出数据在数据区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 ;输入数据x(n)循环缓冲区指针 .asg AR5,COFF_P ;FIR系数表指针 .asg AR6,INBUF_P;模拟输入数据指针 .asg AR7,OUTBUF_P;FIR滤波器输出数据指针_c_int00 bstart nop nopstart:ssbxFRCT STM #COFFTAB,COFF_P RPT #N-1 ;将FIR系数从程序存储器移动 MVPD #COFF_FIR,*COFF_P+ ;到数据存储器 STM #INDEX,INDEX_P STM #DATABUF,DATA_P RPTZ A,#N-1 STL A,*DATA_P+ ;将数据循环缓冲区清零 STM #(DATABUF+N-1),DATA_P;数据缓冲区指针指向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循环缓冲区大小LD *INBUF_P+,A ;装载输入数据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加入如下内容 :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、在点击菜单debug→Gomain就进入实验程序test.c;6、然后我们打开波形观察窗口,路径是View→Graph→Time/Frequence,这时将出现下图所示的属性框,跟据图框进行参数设定;参数设置完成后.点击”OK”就可以打开图形观察窗口;然后,单击View→Graph→Time/Frequence,由.cmd可知输出信号的数据放在数据区0X2500开始的256个单元中,将上图中的StartAddress项改变为0X2500,单击OK按钮,将显示滤波器输出时域波形。五、实验小结通过几次的课程实验,我学到了不少新的知识,只有自己真正做过才会知道和了解。结合课程中所学的理论知识,和参考资料做课程实验。达到学有所用的目的。学会查阅相关手册与资料,通过查阅手册和文献资料,并掌握合理选用的原则,培养独立分析与解决问题的能力。这次设计我们学到了很多东西,熟悉CCS5000软件的使用,还加深了对知识的理解和掌握。作为一名大三的学生,我觉得能做类似的课程设计是十分有意义的。实验三FFT算法一、实验目的1、加深对DFT算法原理和基本性质的理解。2、熟悉FFT算法原理和FFT子程序的应用。3、学习用FFT对连续信号和时域信号进行谱分析的方法,二、实验设备计算机;DSP硬件仿真器;DSP实验开发平台。三、实验步骤1、启动CCS,编写实验程序代码.2、打开Projects,选择myprojects→fft→fft.pjt.3、打开程序后.进行运行和编译.编译fft.asm加入如下内容:**************************************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 ;块循环计数器设置为255 RPTBD power_end-1 ;带延迟方式的重复执行指令 STM #DATA,AR2 ;AR2指向AR[0] SQUR *AR2+,A ;A:=AR2 SQURA *AR2+,A ;A:=AR2+AI2 STH A,7,*AR3 ;将A中的数据存入输出缓冲中, ANDM #7FFFH,*AR3+ ;避免输出数据过大在虚拟示波器中显示错误power_end: B power_end .end 编译fft.cmd加入如下内容:/*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、然后我们打开波形观察窗口,路径是View→Graph→Time/Frequence,设置参数后点击”OK“。6、点run运行程序后,在刷新图形窗口就可以看到输出波形了.实验小结通过几次的课程实验,我学到了不少新的知识,只有自己真正做过才会知道和了解。结合课程中所学的理论知识,和参考资料做课程实验。达到学有所用的目的。学会查阅相关手册与资料,通过查阅手册和文献资料,并掌握合理选用的原则,培养独立分析与解决问题的能力。这次设计我们学到了很多东西,熟悉CCS5000软件的使用,还加深了对知识的理解和掌握。作为一名大三的学生,我觉得能做类似的课程设计是十分有意义的。
实验四卷积计算一、实验目的:1、掌握卷积算法的原理和计算方法;2、熟悉卷积算法特性。二、实验设备计算机;DSP硬件仿真器;DSP实验开发平台。三、实验内容1、设置断点和探针;2、卷积的运算程序;四、实验原理1、卷积的基本原理和公式:卷积和的运算在图形表示上可分为四步:1)翻褶先变量坐标上作出x(m)和h(m),将m=0的垂直轴为轴翻褶成h(-m);2)移位:将h(-m)移位n,即得h(n-m)。当n为正整数时,右移n位。当n为负整数时,左移n位;3)相乘:再将h(n-m)和x(m)的相同m值的对应点值相乘;4)相加:把以上所有对应点的乘积叠加起来,即得y(n)值。依上法,取n=,-2,-1,0,1,2,3,各值,即可得全部y(n)值。2、程序的函数及其功能(1)staticintstep1(int*output1,int*output2)参数解释:output1、output2为两个整型指针数组。返回值解释:返回了一个“TRUE”,让主函数的while循环保持连续。功能说明对输入的ouput1buffer波形进行截取m点,再以零点的Y轴为对称轴进行翻褶,把生成的波形上各点的值存入以OUTPUT2指针开始的一段地址空间中。(2)staticintstep2(int*output2,int*output3)参数解释:output2、output3为两个整型指针数组。返回值解释:返回了一个“TRUE”,让主函数的while循环保持连续。功能说明:对输出的output2buffer波形进行作n点移位,然后把生成的波形上的各点的值存入以OUTPUT3指针开始的一段地址空间中。(3)staticintstep3(int*input1,int*output2,int*output4)参数解释:output2、output4、input1为三个整型指针数组。10返回值解释:返回了一个“TRUE”,让主函数的while循环保持连续。功能说明:对输入的ouput2buffer波形和输入的input1buffer作卷积和运算,然后把生成的波形上的各点的值存入以OUTPUT4指针开始的一段地址空间中。(4)staticintstep4(int*input2,int*output1)调用形式:step4(input2,output1)参数解释:output1、input2为两个整型指针数组。返回值解释:返回了一个“TRUE”,让主函数的while循环保持连续。功能说明:对输入的input2buffer波形截取m点,然后把生成的波形上的各点的值存入以OUTPUT1指针开始的一段地址空间中。实验程序流图4、打开观察窗口选择菜单View->Graph->Time/Frequency…进行如下设置:Startadderss:表示起始地址;AcquisitionBufferSize:表示输入数据个数;DisplayDataSize:表示显示数据个数;DSPDataType:表示数据类型;5、设置波形输入文件,请按照如下设置:选择菜单File->FileI/O…,打开“FileI/O”窗口;单击“AddFile”按钮,在“FileInput”窗口中选择工程目录下的sine44.dat文件,单击“打开”按钮;在“Address”项中输入in1_buffer,在“Length”项中输入64,在“WarpAround”项前加上选择标记,单击“AddProbePoint”按钮;在“Breakpoints/ProfilePoints”窗口中单击“ProbePoint”列表中的“Convolve.cline52NoConnection”,再单击“Connect”项尾部的展开按钮,在显示的展开式列12表中选择列表末尾的“FILEIN:D:\..\SIN44.DAT”,单击“Replace”按钮,单击“确定”按钮。6、单击“AddFile”按钮,在“FileInput”窗口中选择工程目录下的sine44.dat文件,单击“打开”按钮;在“Address”项中输入in2_buffer,在“Length”项中输入64,在“WarpAround”项前加上选择标记,单击“AddProbePoint”按钮;在“Breakpoints/ProfilePoints”窗口中单击“ProbePoint”列表中的“Convolve.cline53NoConnection”,再单击“Connect”项尾部的展开按钮,在显示的展开式列表中选择列表末尾的“FILEIN:D:\..\SIN44.DAT”,单击“Replace”按钮,单击“确定”按钮。在“FileI/O”窗口中单击“确定”,完成设置。7、运行程序,观察结果五、实验小结通过几次的课程实验,我学到了不少新的知识,只有自己真正做过才会知道和了解。结合课程中所学的理论知识,和参考资料做课程实验。达到学有所用的目的。学会查阅相关手册与资料,通过查阅手册和文献资料,并掌握合理选用的原则,培养独立分析与解决问题的能力。这次设计我们学到了很多东西,熟悉CCS5000软件的使用,还加深了对知识的理解和掌握。作为一名大三的学生,我觉得能做类似的课程设计是十分有意义的。
实验五数码管显示实验目的1、熟悉硬件操作系统。2、熟悉DSP中I/O操作使用方法。3、熟悉CCS的开发环境。二、实验设备计算机;DSP硬件仿真器;DSP实验开发平台实验原理此实验是由DSP通过IO方式对数码管进行操作,即是向数码管送数据,高4位为数码管的段码,低4位为数码管的位码,DSP用的数据线是D8~D15,如要在第0位显示一个8,就只要送入80H,其次,该实验中要求熟练运用DSP的各种指令,能使显示数据出现左移或右移等。实验步骤1、启动CCS编写实验程序代码;2、打开Projects,选择new→ex9→ex9.pjt;3、打开程序后.进行运行和编译;编辑ex9.asm加入如下内容:.title"ex9" .global_c_int00 .mmregsSM_ADDR.set1003h;数码管的I/O地址SM_DATA .set 60h;段码在数据线的高4位,位码在数据线的次高4位.;在CPLD模块中程序为DEMO程序的情况下,段码显示已译码,比如:要显示7,;只要往数据线的高4位发7即可.位码为0-7,在次高位数据线对应的数值也为0-7. .sect".vectors"reset: B_c_int00 NOP NOP .space31*4*16 .text_c_int00: LD#0h,DP;设置数据页指针 STM#2000h,SP;设置堆栈指针 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位数据BANZWRDENG,*AR3-RETLED07NOPST#07H,AR3STM#0H,SM_DATAWRDENG1NOP;0-7PORTWSM_DATA,SM_ADDRST#02fffH,AR6calldelayADDM#1100H,SM_DATA;送位码,屏蔽低8位数据BANZWRDENG1,*AR3-RETdelay STM#0f0h,AR7 ;延时子程序 BANZ$,*AR7- BANZdelay,*AR6- RET实验结果:实验小结通过几次的课程实验,我学到了不少新的知识,只有自己真正做过才会知道和了解。结合课程中所学的理论知识,和参考资料做课程实验。达到学有所用的目的。学会查阅相关手册与资料,通过查阅手册和文献资料,并掌握合理选用的原则,培养独立分析与解决问题的能力。
实验六语音录放一、实验目的1、了解音频信号的采集,存储方法二、实验设备计算机;DSP硬件仿真器;DSP实验开发平台;耳机麦克风。三、实验程序流程四、实验步骤1、将实验箱右侧的船型开关往”I”方向打开电源;将主板的开关S33(主板右上角)拨通+/-5V电源;将麦克风(红端)插入语音输入插座M1,将耳机(黑色端)插入输出插座M3实验开始前先按RST硬件复位(实验中不要再按复位键)2、打开Projects,选择myprojects→a121f→a121f.pjt.3、打开程序后,进行运行和编译:.title"ex12"BSP .set 0 ;当前使用McBsp0;McBsp0内存映射寄存器SPSA0 .set038h;定义子地址寄存器映射位置SPSD0 .set039h;定义子块数据寄存器映射位置DRR10 .set021h;接收数据寄存器1映射位置DRR20 .set 020h;接收数据寄存器2映射位置DXR10 .set023h;发送数据寄存器1映射地址DXR20 .set 022h;发送数据寄存器2映射地址;McBsp1内存映射寄存器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;发送控制寄存器1映射子地址XCR2 .set 05h;发送控制寄存器2映射子地址SRGR1 .set 06h;采样率发生器寄存器1映射子地址SRGR2 .set 07h;采样率发生器寄存器2映射子地址MCR1 .set 08h;多通道控制寄存器1映射子地址MCR2 .set 09h;多通道控制寄存器2映射子地址RCERA .set 0ah;接收通道控制寄存器1映射子地址RCERB .set 0bh;接收通道控制寄存器2映射子地址XCERA .set 0ch;发送通道使能寄存器A映射子地址XCERB .set 0dh;发送通道使能寄存器B映射子地址PCR .set 0eh;引脚控制寄存器映射子地址 .ifBSP=0;条件汇编,因为5402有两个同步缓冲口如果BSP=0则使用同步缓冲口0SPSA .set SPSA0;由于同步缓冲口采用子地址寻址方式SPSD .set SPSD0RDRR .set DRR10RDXR .set DXR10 .endif .ifBSP=1;条件汇编,因为5402有两个同步缓冲口如果BSP=1则使用同步缓冲口1SPSA .set SPSA1SPSD .set SPSD1RDRR .set DRR11RDXR .set DXR11 .endif ;以下程序是写数据的子程序也就是宏WR_SUB_REG .macroval,addr ;写McBsp控制寄存器 stmaddr,SPSA;将ADDR的地址写入SPSA nop;空操作 stmval,SPSD;将配置值写入SPSD nop;空操作 .endm ;以下程序是读数据的子程序也就是宏 RD_SUB_REG .macroaddr,acc ;读McBsp控制寄存器 stmaddr,SPSA;将ADDR的地址写入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;以下程序是等待延时子程序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;设置数据页指针为第0页 stm#0ff00h,SP;设置堆栈指针地址为2000H ssbxINTM;关闭所有中断 ssbxSXM;禁止符号扩展方式位。请看ST1寄存器 st#7FFFh,SWWSR;设置等待寄存器全都设置为7等待st#0E8h,PMST;设置处理器工作方式状态寄存器st#1007h,CLKMD;设置时钟方式寄存器,工作频率为20M(工作频率取决于(高四位+1*10M?stm#1000h,AR1 stm#100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工控系统在锅炉节能领域的实验协议
- 清水混凝土涂料施工工艺简介
- 金融借款合同效力怎么认定
- 邯郸商品房买卖合同
- 工程质量创优计划书(同名13511)
- 工程质量保修协议书范本
- 工程预算书毕业设计
- 2017-2018学年高中历史人教版选修4单元检测4
- 2018高考语文三轮选练(四)及解析答案
- 江西省赣州市十四县(市)2017-2018学年高二下学期期中联考文数试卷
- 先进制造技术第4章
- LY/T 2586-2016空气负(氧)离子浓度观测技术规范
- GB/T 34784-2017精细亚麻
- GB/T 3191-1998铝及铝合金挤压棒材
- GB/T 25216-2010煤与瓦斯突出危险性区域预测方法
- GB/T 15361-1994岸边集装箱起重机技术条件
- GB/T 14958-1994气体保护焊用钢丝
- 人工智能(AI)支持下的小学语文分级阅读教学策略探究
- GA/T 486-2015城市道路单向交通组织原则
- linux常用命令课件
- 胜达因高速泵介绍课件
评论
0/150
提交评论