欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《DSP技术与实验》实验指导书.docx

    • 资源ID:15510354       资源大小:1.32MB        全文页数:81页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《DSP技术与实验》实验指导书.docx

    1、DSP技术与实验实验指导书2011秋季学期“DSP原理与应用”实验教学资料实验一 CCS集成环境的熟悉 -2学时实验二 算术运算与数据操作的汇编语言程序设计-2学时实验三 信号发生器设计 -2学时实验四 IIR滤波器的DSP实现 -2学时实验五 FIR滤波器的DSP实现 -2学时实验六 FFT的DSP实现 -2学时实验七 综合实验暨实验考查 -4学时实验报告内容:用每个实验要求的思考题代替实验报告,提交电子版,在实验结束时一起交。实验一CCS集成开发环境的熟悉一、实验内容及步骤通过编写程序计算y=x1+x2+x3+x4+x5练习CCS 2 (C5000)的使用。1在D盘或E盘建立一个自己的文件

    2、夹, 如e:05136101,该文件夹用英文或数字命名。后面所有与实验内容有关的工程与程序都在此文件夹下保存或操作。2运行CCS 2(C5000)进入CCS集成开发环境。以下操作如无特殊声明一般都在此环境下操作。3新建工程。点击主菜单Project-New,会出现图1-1所示的Project Creation对话框。参照图1-1按如下顺序进行设置或操作: Location:e:05136101 Project:example2 点击完成按钮即可。4新建并保存主程序文件、链接命令文件和中断向量表文件。本次实验三个文件的参考名称为:主程序文件example2.asm、链接命令文件example2.

    3、cmd、中断向量表文件vectors.asm。点击菜单File-New-Source File打开文本编辑窗口Untitled1,如图1-2。用菜单File-Save功能将其保存到e:05136101example2中,其中文件名称为example2,保存类型为*.asm,如图1-3。用同样的方法新建并保存文件example2.cmd和vectors.asm。5为新建工程添加主程序文件、中断向量表文件和链接命令文件。在工程管理器中(图1-2中的红色方框处)右键单击example2.pjt,选择Add Files to Project,在出现的如图1-4所示的Add Files to Proje

    4、ct对话框中查找并选中刚才建立的三个文件example2.asm,example2.cmd,vectors.asm,点击打开按钮将它们一起添加到该工程中去。6编写主程序文件。单击工程管理器中的工程example2.pjt左边的+号展开example2.pjt工程,再单击文件夹Source左边的+号,如图1-5。找到并双击example2.asm ,在界面右边出现的example2.asm文本编辑窗口中输入或复制主程序(注释部分可不输入)。文件内容如下:*计算y=x1+x2+x3+x4+x5的程序*.title example2.asm ;伪指令。用于格式化输出清单文件,声明在每页的顶部打印文件

    5、标题.mmregs ;伪指令。声明CPU寄存器名称STACK .usect STACK,10H ;伪指令。自定义未初始化段STACK及大小(10H个字),最左边的STACK是标号 .bss x,5 ;伪指令。声明数组x,5个字 .bss y,1 ;伪指令。声明变量y,1个字 .def start ;伪指令。声明本文件中的标号start能被别的文件(程序)引用 .data ;伪指令,指示下面的代码为数据段,通常包含初始化的数据(常数)。 table: .word 10,20,3,4,5 ;伪指令。声明5个16位整数类型的常数。table是标号。 .text ;伪指令,指示下面的代码为文本段,通常

    6、包含可执行的代码。 start: STM #0,SWWSR ; SWWSR=0,插入0个等待状态。start是标号。 STM #STACK+10H,sp ;sp=#STACK+10H,设置堆栈指针指向堆栈段的底部 STM #x,AR1 ;AR1=#x或AR1指向数组x RPT #4 ;下一条指令重复执行4+1=5次 MVPD table,*AR1+ ;数据传送。程序存储器中的table数据表AR1+指向的数据存储器 LD #0,A ;累加器A清零 CALL SUM ;调用求和子程序SUMend: B end ;无条件转移到标号end所在地方执行程序SUM: ;标号,指示求和子程序SUM从这里开

    7、始STM #x,AR3 ;AR3指向数组x STM #4,AR2 ;AR2=4loop: ADD *AR3+,A ;*AR3+AA,然后AR3= AR3+1。 loop是标号。 BANZ loop,*AR2- ;如果AR2的值不为0, AR2= AR2-1,跳转到loop处执行;否则执行下一条指令 STL A,*(y) ; y=AL RET ;子程序返回 .end ;伪指令。指示汇编结束7)编写链接命令文件。在工程管理器中双击example2.pjt工程中的example2.cmd ,将出现example2.cmd文本编辑窗口。在该文本编辑窗口中输入或复制文件内容。文件内容如下:vectors

    8、.obj /*声明要链接的文件-中断向量表文件的目标文件*/ example2.obj /*声明要链接的文件-主程序文件的目标文件*/ -o example2.out /*声明链接产生的可执行文件名称,默认为a.out */ -m example2.map /*声明链接产生的存储器映射文件*/ -estart /*声明主程序入口*/MEMORY /*关键字加一对,存储器配置*/PAGE 0: /*程序存储区*/ EPROM:org=0090H len=0F70H /*定义EPROM区,起始地址0090H,长度0F70H*/ VECS: org=0080H len=0010H /*定义VECS区

    9、,起始地址0080H,长度0010H*/PAGE 1: /*数据存储区*/ SPRAM:org=1000H len=1000H /*定义SPRAM区,起始地址1000H,长度1000H*/ DARAM:org=2000H len=2000H /*定义DARAM区,起始地址2000H,长度2000H*/SECTIONS /*关键字加一对,定位段*/ .text :EPROM PAGE 0 /*将.text段映射或定位到PAGE0的EPROM区*/ .data :EPROM PAGE 0 /*将.text段映射或定位到PAGE0的EPROM区*/ .bss :SPRAM PAGE 1 /*将.te

    10、xt段映射或定位到PAGE1的SPRAM区*/ STACK :DARAM PAGE 1 /*将.text段映射或定位到PAGE1的DARAM区*/ .vectors :VECS PAGE 0 /*将.vectors段映射或定位到PAGE0的VECS区*/8编写中断向量表文件。在工程管理器中双击example2.pjt工程中的vectors.asm ,将出现vectors.asm文本编辑窗口。在该文本编辑窗口中输入或复制文件内容。文件内容如下:.title vectors.asm .ref start ;伪指令。声明要引用其他程序中定义的标号start.sect .vectors ;伪指令。定义

    11、初始化的段名.vectors,这一种伪指令声明的段与.data和.text功能一致B start ;无条件转移到标号start所在的地方执行程序.end9对工程中的文件进行编译和链接。点击菜单ProjectRebuild All,对工程中的所有文件进行编译、链接。工程中的文件如果编译链接成功,会生成example2.out文件;如果不成功,会出现出错信息,这时应按照提示的出错信息对文件进行修改,然后再Rebuild All。10装载可执行文件。要让程序代码在DSP内部运行必需将生成的*.out文件装载到DSP内部。点击菜单File-Load Programe,选择并双击刚才生成的example

    12、2.out文件将程序装载到DSP的内部存储器中。11运行程序,查看并记录相关结果。点击菜单Debug-Run或按功能键F5运行程序。查看数据的保存情况。点击菜单View-Memory,会出现图1-6 (a)所示的“Memory Window Options”对话框,按图1-6 (a)设置Address=0x1000(为什么要设置成Address=0x1000?),Page=Data。点击OK按钮,观察出现的如图1-6 (b)所示的“Memory ”对话框,这个对话框显示的是变量在数据存储器中的地址与值。请思考:为什么.bss的地址是0x1000,变量y的地址是0x1005,变量x的地址又是多少

    13、呢? 图1-6 (a) ( b)查看程序的保存情况。点击菜单ViewMemory,按图1-7 (a)设置Address=0x0090(为什么要设置成Address=0x0090?),Page=Program。点击OK按钮,观察出现的如图1-7 (b)所示的“Memory ”对话框,这个对话框显示的是可执行程序在程序存储器中的地址与指令代码。请思考:为什么.text段的地址是0x0090?标号end的地址是0x009C?标号SUM的地址是0x009E?标号loop的地址是0x00A2?.data段的地址是0x00A8? 图1-7 (a) (b)查看寄存器的状况。第一步:点击菜单View-Regi

    14、sters-CPU Registers。基本界面如图1-8。 图1-8第二步:点击菜单File-Load Program重新装载可执行程序*.out。 第三步:点击菜单Debug-Step Into或按F8,观察程序在单步运行时(单步运行指的是按一次F8程序执行一步,再按一次F8程序再执行一步),CPU Registers的变化。单步运行有助于进一步了解程序运行机理及用于程序调试。查看指令代码。再一次装载并运行程序,点击菜单View-Disassembly, 查看并记录指令及其对应的指令代码并进行理解。图1-912改变主程序example2.asm中x1x5的值(自定),重新执行911。记录x

    15、1x5、y的值并验算。13修改example2.cmd(自定义存储器配置及段的定位),重新执行911。记录程序、数据、标号、中断矢量的地址空间。二、思考题-见实验步骤11、12、13的要求。实验二 算术运算与数据操作的汇编语言程序设计实验一、实验内容与步骤(2、3、4、5、7选做,6、8必做)1、运行CCS。2、编写程序,计算y=x1+x2+x10 (xi的值自己定义 )。3、编写程序,计算z=x+y-w、y=mx+bx、y=x1a2-x2a2 (自变量的值自己定义 )。4、编写程序,计算y= a1x1 + a2x2 + a40x40 (aixi的值自己定义 )。5、编写程序,用长字运算指令实

    16、现Z32=X32+Y32,用并行运算指令实现z=x+y和f=e+d。6、编制程序,计算y= a1x1 + a2x2 + a10x10,其中数据均为小数(aixi的值自己定义 )。7、分别编写程序,计算(-0.24)0.48和1024128。8、编写浮点乘法程序,计算x1x2x3 =0.2(-0.4) 0.25。 上述每个实验内容基本操作步骤与要求同实验一的步骤311。二、实验习题-编写浮点乘法程序,用调用子程序的方法计算x1x2x3 x4 =0.2(-0.4)0.250.66。三、参考程序1)用单操作数指令计算y=(a1*x1+a2*x2+a19*x19+a20*x20) .title sy2

    17、1.asm .mmregsSTACK .usect STACK,30H .bss a,20 .bss x,20 .bss y,2 .datatable: .word 1,2,3,4,5,6,7,8,9,10,11 .word 12,13,14,15,16,17,18,19,20 .word 21,22,23,24,25,26,27,28 .word 29,30,1,2,3,4,5,6,7,8,9,10 .def start .textstart: STM #a,AR1 RPT #39 MVPD table,*AR1+ LD #0,B STM #a,AR2 STM #x,AR3 STM #19,

    18、BRC RPTB done-1 LD *AR2+,T ;单操作数指令 MPY *AR3+,A ;单操作数指令 ADD A,Bdone: STH B,*(y) STL B,*(y+1)end: B end .end2) 用长字运算实现32位加法运算Z=X+Y .title sy22.asm .mmregsSTACK .usect STACK,10H .bss xhi,2,1,1 .bss yhi,2,1,1 .bss zhi,2,1,1 .def start .datatable: .long 16782345H,10200345H .textstart: STM #0,SWWSR STM #S

    19、TACK+10H,SP STM #xhi,AR1 RPT #3 MVPD table,*AR1+ DLD *(xhi),A DADD *(yhi),A DST A,*(zhi)end: B end .end 3)用并行指令计算z=x+y,f=e+d .title sy23.asm .mmregsSTACK .usect STACK,10H .bss x,3 .bss d,3 .def start .datatable: .word 0123H,1027H,0,1020H,0345H,0 .textstart: STM #0,SWWSR STM #STACK+10H,SP STM #x,AR1

    20、RPT #5 MVPD table,*AR1+ STM #x,AR5 STM #d,AR2 LD #0,ASM LD *AR5+,16,A ADD *AR5+,16,A ST A,*AR5 ;并行指令 |LD *AR2+,B ADD *AR2+,16,B STH B,*AR2end: B end .end4)小数运算。计算y=a1*x1+a2*x2+a3*x3+a4*x4*a1=0.1,a2=0.2,a3=-0.3,a4=0.2, x1=0.8,x2=0.6,x3=-0.4,x4=-0.2* .title sy24.asm .mmregsSTACK .usect STACK,10H .bss

    21、a,4 .bss x,4 .bss y,1 .def start .datatable: .word 1*32768/10 ;0.1 .word 2*32768/10 ;0.2 .word -3*32768/10 ;-0.3 .word 4*32768/10 ;0.4 .word 8*32768/10 ;0.8 .word 6*32768/10 ;0.6 .word -4*32768/10 ;-0.4 .word -2*32768/10 ;-0.2 .textstart: SSBX FRCT STM #a,AR1 RPT #7 MVPD table,*AR1+ STM #x,AR2 STM #

    22、a,AR3 RPTZ A,#3 MAC *AR2+,*AR3+,A STH A,*(y)end: B end .end5)除法运算。|被除数|B,获取商的符号 ;(在累加器B中) ABS A ;分母取绝对值 STH A,den ;分母取绝对值存回原处 LD num,16,A ;将分子移到累加器A(3216) ABS A ;分子取绝对值 RPT #14 ;15次减法循环,完成除法 SUBC den,A XC 1,BLT ;如果B=|除数|,商为整数。计算16384512的值。 .title sy26.asm .mmregsSTACK .usect STACK,10H .bss num,1 ;分子

    23、 .bss den,1 ;分母 .bss quot,1 ;商 .datatable: .word 66*32768/100 ;16384 .word -33*32768/100 ;512 .def start .textstart: LD #0020H,DP ;指定数据页指针 STM #num,AR1 RPT #1 MVPD table,*AR1+ ;传送2个数据至分子、分母 LD den,16,A ;将分母移到累加器A(3116) MPYA num ;(num)*(A(3116)-B,获取商的符号 ;(在累加器B中) ABS A ;分母取绝对值 STH A,den ;分母取绝对值存回原处 L

    24、D num,A ;将分子移到累加器A(3216) ABS A ;分子取绝对值 RPT #15 ;16次减法循环,完成除法 SUBC den,A XC 1,BLT ;如果Bep LD m1,T ;尾数相乘 MPY m2,A ;乘积尾数在累加器A中 EXP A ;对尾数乘积规格化 ST T,temp ;规格化时产生的指数-temp NORM A STH A,mp ;保存乘积尾数在mp中 LD temp,A ;修正乘积指数 ADD ep,A ;(ep)+(temp)-ep STL A,ep ;保存乘积指数在ep中 NEG A ;将浮点乘积转换成定点数 STL A,temp ;乘积指数反号,并且加载到T寄存器 LD temp,T ;再将尾数按T移位 LD mp,16,A NORM A STH A,product ;保存定点乘积 RET .end8) 链接配置文件参照实验一中的example2.cmd,但要作简单修改。中断向量表文件参照实验一中的vectors.asm,可不


    注意事项

    本文(《DSP技术与实验》实验指导书.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开