ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:2.86MB ,
资源ID:26821670      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26821670.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(dsp硬件实验报告 北邮.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

dsp硬件实验报告 北邮.docx

1、dsp硬件实验报告 北邮北邮DSP硬件实验报告 学院:班级:学号:姓名:班内序号:指导老师:第三章 5416常规实验实验一:常用指令实验1. 实验目的:了解DSP开发系统的组成和结构,熟悉DSP开发系统的连接和开发界面,熟悉C54X系列的寻址系统, 熟悉常用的C54X系列指令的用法。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱3. 程序源代码注释;*;* 北京达盛科技有限公司;* 研 发 部;*;* ;*/ ;* ;* 文件名称 : xf.asm ;* 适用平台 : EXPIII+实验系统;* CPU类型 : DSP TMS320VC54X;* 软件环境 : CCS3.1 (

2、5000系列);* 试验接线 : 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接;* (HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;;* CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);;* 试验现象 : 可以观察到实验箱CPLD右上方的D3按一定频率闪烁。;*.mmregs -(entermemory-mappedregistersintothesymboltable)-进入记忆映射注册进入符号表.global _main -(identif

3、yoneormoreglobal(external)symbols)-定义全局变量_main: stm #3000h,sp(堆栈指针寄存器)堆栈指针寄存器的值为3000h (#表示立即数)ssbx xf ;将XF置位,灯亮call delay (存储器延时) 调用延时子程序,延时 rsbx xf ;将XF复位 灯灭call delay ;调用延时子程序b _main ;转移回main 函数,意为无限循环nop 无操作,延时子程序 nop delay: stm 270fh,ar1 指定ar1寄存器地址,设置为9999loop1: stm 0f9h,ar4 指定ar4寄存器地址,设置为249loo

4、p2:banz loop2,*ar4- ;条件转移,每次转移ar4地址减一 banz loop1,*ar1-; 条件转移,每次转移ar1地址减一 ret ;循环嵌套,总循环次数为270f*0f9 nop nop .end4. 实验现象可以看到实验箱上的XF灯以一定的频率闪烁当单击“Halt”时程序暂定,XF灯停止闪烁,当再次单击RUN时,XF灯又开始闪烁。实验二:数据储存实验1. 实验目的掌握TMS320C54的程序空间分配,掌握TMS320C54的数据空间的分配,熟悉操作TMS320C54数据空间的指令。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱3. 实验系统相关资料介绍

5、本实验指导书是以TMS32OVC5410为例,介绍相关的内部和外部内存资源。对于其它类型的CPU请参考查阅相关的资料手册。下面给出TMS32OVC5410的内存分配表:对于存储空间而言,映像表相对固定。值得注意的是内部寄存器与存储空间的映像关系。因此在编程应用时这些特定的空间不能作其它用途。对于程序存储空间而言,其映像表和CPU的工作模式有关。当MP/MC引脚为高电平时,CPU工作在微处理器模式;当MP/MC引脚低电平时,CPU工作在为计算机模式。具体的内存映像关系如上图所示。4. 程序源代码及注释;*;* 北京达盛科技有限公司;* 研 发 部;*;* ;*/ ;* ;* 文件名称 : xf.

6、asm ;* 适用平台 : EXPIII+实验系统;* CPU类型 : DSP TMS320VC54X;* 软件环境 : CCS3.1 (5000系列);* 试验接线 : 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接;* (HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;;* CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);;* 试验现象 : 可以观察到实验箱CPLD右上方的D3按一定频率闪烁。;* .mmregs .global _main _

7、main: ;store data stm 1000h,ar1 ;address of internal memory 指定内部ar1寄存器地址1000hstm 5000h,ar1 ;address of exterior memory 指定外部寄存器ar1的地址为5000h rpt #07h ;循环执行下一条指令,循环次数07h st 0aaaah,*ar1+ ;ar1所指的内存赋予0aaaah,然后ar1所指地址加1,此语句过后1000至1007地址空间中存入了0AAAA stm 7h,ar3 指定ar3地址7h,循环次数 stm 1000h,ar1 设置ar1地址为1000h stm 1

8、008h,ar2 ;设置ar2地址为1008hloop: ld *ar1+,t ;循环读取1000h1007h st t,*ar2+ ;并将值赋予1008h1016h banz loop,*ar3- ;循环次数为AR3here: ;死循环. b here ;可选择延迟的无条件转移,循环执行,无条件移至here .end5. 实验现象在CCS的“View”下拉菜单中的Memory窗口中查找C5416各个区段的数据存储器地址,在可以改变的存储器内容的地方,选定地址随意改变其中内容并观察结果;本实验要查看0x10000x100F单元的数值变化,输入地址0x1000;查看0x10000x100F单元的

9、初始值,单击“Run”运行程序,也可以“单步”运行程序;单击“Halt”暂停程序运行。实验三:I/O实验1. 实验目的了解I/O口的扩展,掌握I/O口的操作方法,熟悉PORTR,PORTW指令的用途,了解数字量与模拟量的区别和联系。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱,DSP仿真器3. 流程框图4. 程序源代码及注释;*;* 北京达盛科技有限公司;* 研 发 部;*;* ;*/ ;* ;* 文件名称 : exp03.asm ;* 适用平台 : EXPIII+实验系统;* CPU类型 : DSP TMS320VC54X;* 软件环境 : CCS3.1 (5000系列);

10、* 试验接线 : 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接;* (HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;;* CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);;* 试验现象 : 分别调整数字输入单元的开关K1K8,观察LED1LED8亮灭的变化,以及输入和输出状态是否一致。;*.mmregs .global _main .text_main: stm 3100h,sp ;定义sp的地址为3100 stm 1000h,ar1 ;定义a

11、r1的地址为1000 portr 8000h,*ar1 ;读入I/O 8000H数据,将其存储到数据空间的1000H,读按键 nop ; nop portw *ar1,8001h ;将数据空间的1000H单元的数据,写出到I/O 8001H nop nop b _main ;程序跳转到main函数 nop nop .end5. 实验现象任意调整K0K7开关,可以观察到对应LP0LP7灯“亮”或“灭”;单击Halt”,暂停持续运行,开关将对灯失去控制。实验四:定时器实验1. 实验目的熟悉C54的定时器,掌握C54定时器的控制方法,学会使用定时器中断方式控制程序流程。2. 实验设备计算机,CCS3

12、.3版软件,EXPIII+实验箱,DSP仿真器3. 实验原理及流程框图1) 实验原理定时器实验时要用到C54芯片的定时器控制寄存器,定时器时间常数寄存器,定时器中断响应,寄存器定义详见C54芯片资料。C54的定时器是一个20位的减法计数器,可以被特定的状态位实现停止、重新启动、重设置或禁止,可以使用该定时器产生周期性的CPU中断,控制定时器中断频率的两个寄存器是定时周期寄存器PRD和定时减法寄存器TDDR。定时器实验通过 LED(LP1LP7)来显示。在本系统中,时钟频率为20MHZ,令PRD = 0x4e1f,这样得到每1/1000秒中断一次,通过累计1000次,就能定时1秒钟。2) 流程框

13、图主程序: 中断程序:4. 源程序代码及注释* 文件名称 : exp04.c #include tms320uc5402.h/*/*全局变量定义与初始化*/ioport unsigned port8001;unsigned int show=0x00aa;unsigned int num=0x0000;/*/*函数、子程序声明与定义*/void sys_ini() 系统初始化子程序 asm( ssbx INTM); 全局禁止所有可屏蔽中断 PMST &=0x00FF; 向量表映射到0x0080空间 前八位全部置0 SWWSR=0x7000; io空间7个等待周期,程序与数据空间0个等待周期 C

14、LKMD=0x17FA; 定义最长延长时间void timer0_ini() 定时器初始化子程序 TCR|=0x0010; 停止定时器0 PRD=0x2710; PRD=10000(D) TCR|=0x000A; 定义定时器时钟=1/(20M/10/10000)=5ms IMR=0x0008; 使能定时器0中断 IFR=0xFFFF; 清除所有中断标志位 asm( rsbx INTM); 全局使能可屏蔽中断 TCR&=0xFFEF; 开始定时器0 TCR|=0x0020; 复位定时起0/*/*中断服务子程序声明与定义*/interrupt void timer0() 定时器0中断子程序 if(

15、num=200) 记200次定时器中断,时间=200*5ms=1s,即灯闪烁频率 show=show; 取反 num=0; else num+; return; /*/*主程序*/void main(void) sys_ini(); timer0_ini(); for(;) 循环中断子程序 port8001=show; 定义show,灯亮地址 *文件名称:vectors.asm 向量程序 .global _c_int00(c程序入口),_timer0(时间间断点) .sect .vecsreset: 复位中断响应 b _c_int00 ;c_int00是c程序的入口,这里即进入main函数中

16、nop nopnmi: rete中断屏蔽置为0,响应中断,不可屏蔽中断产生时,使中断屏蔽取消,后返回。 nop nop nop; software interrupts 软件中断sin17: .space 4*16 保留出中断向量的地址空间sin18: .space 4*16sin19: .space 4*16sin20: .space 4*16sin21: .space 4*16sin22: .space 4*16sin23: .space 4*16sin24: .space 4*16sin25: .space 4*16sin26: .space 4*16sin27: .space 4*16

17、sin28: .space 4*16sin29: .space 4*16sin30: .space 4*16int0: rete ;EXTERNAL INT0 外部用户中断中断寄存器设置RETE返回并允许中断外部中断产生时,直接返回。 nop nop nopint1: rete ;EXTERNAL INT1 nop nop nopint2: rete ;EXTERNAL INT2 nop nop noptint0: b _timer0 ;计时器每中断一次,返回一个值到TINT端口,此时转移回TIMER函数,计数器加1 nop nopbrint0: rete ; nop nop nopbxint

18、0: rete ; nop nop nopdmac0: rete ;RESERVED OR DMA CHANNEL0 INTERRUPT nop nop noptint1_dmac1: rete ;TIMER1 INTERRUPT OR DMA CHANNEL1 INTERRUPT nop nop nopint3: rete ;EXTERNAL INT3 nop nop nophpint: rete ;HPI INTERRUPT nop nop nopbrint1_dmac2: rete ;McBSP1 RECEIVE INTERRUPT OR DMA CHANNEL 2 INTERRUPT

19、nop nop nopbxint1_dmac3: rete ;McBSP1 TRANSMIT INTERRUPT OR DMA CHANNEL 3 INTERRUPT nop nop nopdmac4: rete ;DMA CHANNEL 4 INTERRUPT nop nop nopdmac5: rete ;DMA CHANNEL 5 INTERRUPT nop nop nop; *结束*5. 实验现象单击“Run”运行,可观察到LED灯(LP0LP7)以一定的间隔时间不停摆动;单击“Halt”,暂停程序运行,LED灯停止闪烁;.单击“Halt”,暂停程序运行,LED灯停止闪烁。实验五:IN

20、T2中断实验1. 实验目的1) 掌握中断技术,学会对外部中断的处理方法;2) 掌握中断对程序流程的控制,理解DSP对中断的响应时序。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱,DSP仿真器3. 源程序代码及注释* 文件名称 : initial.asm .mmregs .global _initial .text _initial:(初始化) NOP LD #0, DP ; reset data pointer ld stm赋值的意思 dp指针置0 STM #0, CLKMD ; 定义DSP时钟 STM #0, CLKMD ; 分频设置TstStatu1: LDM CLKMD

21、, A SLKMD的0值给a AND #01b, A ;poll STATUS bitBC TstStatu1, ANEQ STM #0xF7FF, CLKMD ; set C5402 DSP clock to 10MHz 把时钟设为10mhz STM 0x3FA0, PMST ; vectors at 3F80h 把pmst向量表映射到0x3fa0空间地址上 ssbx 1,11 ; set st1.intm=1 stop all interrupt设置ST1.INTM=1,停止所有的中断 stm #00h,imr ;stop all interrupt停止所有的中断 出现imr跳转到向量程序

22、 stm #0ffffh,ifr ;clear all interrupt sign全置1清除所有中断的标志位,中断标志寄存器(IFR)用来指明各个中断的目前状态。 stm #04h,imr ;allow int2 interrupt开启int2的外部中断 4=0100跳转到向量程序 rsbx 1,11 ;allow all interrupt打开所有中断总开关 ret .end* 文件名称 : int2.c interrupt void int2c(); extern void initial(); extern void porta();extern void portb();int fl

23、ag=0,i=0; 声明两个整形变量main() initial(); 初始化 while(1) 死循环 ; interrupt void int2c() 中断子程序 i=i+1; if(i=1) if(flag=0) flag=1; porta(); i=0; else flag=0; portb(); i=0; else i=0; return; 死循环执行下面步骤* 文件名称 : port.asm .mmregs .global _porta .global _portb_porta: stm 304h,ar1 将304h赋给辅助寄存器ar1 st 0005h,*ar1 为内存304h赋

24、予5555h(0101010101010101) portw *ar1,8001h 将内存304h的值写入8001h端口 ret _portb: stm 304h,ar1 st 000ah,*ar1 为内存304h赋予0aaaah(1010101010101010) portw *ar1,8001h 将内存304h的值写入8001端口 ret* 文件名称 : vectors.asm .sect .vectors .ref _c_int00 ; C entry point .ref _int2c .align 0x80 ; must be aligned on page boundary RES

25、ET: ; reset vector复位中断响应 BD _c_int00 ; branch to C entry point进入main函数中 STM #200,SP ;开辟堆栈空间 stack size of 200nmi: RETE ; enable interrupts and return from one NOP NOP NOP ; software interruptssint17 .space 4*16 sint18 .space 4*16sint19 .space 4*16sint20 .space 4*16sint21 .space 4*16sint22 .space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .space 4*16sint26 .space 4*16sint27 .space 4*16sint28 .space 4*16sint29 .space 4*16sint30 .space 4*16int0: RETE NOP NOP NOPint1: RETE NOP NOP NOPint2: b _int2c ;启动int2 外部中断每当接收到外部信号时跳转到int2c,int2c函数,LED灯的状态变化一次 NOP NOPtint: RETE NOP NOP NOPrint0: R

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1