DSP实验(基于CCS)报告

上传人:w****i 文档编号:91191398 上传时间:2019-06-26 格式:DOC 页数:61 大小:421.24KB
返回 下载 相关 举报
DSP实验(基于CCS)报告_第1页
第1页 / 共61页
DSP实验(基于CCS)报告_第2页
第2页 / 共61页
DSP实验(基于CCS)报告_第3页
第3页 / 共61页
DSP实验(基于CCS)报告_第4页
第4页 / 共61页
DSP实验(基于CCS)报告_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《DSP实验(基于CCS)报告》由会员分享,可在线阅读,更多相关《DSP实验(基于CCS)报告(61页珍藏版)》请在金锄头文库上搜索。

1、DSP与嵌入式系统实验报告目录目录2实验一 IO端口实验3实验二 定时器实验4实验三 AD实验5实验四 DA实验6实验五 信号过滤波器实验7实验一 IO端口实验一、实验目的1.1 了解 ICETEK-VC5416-A板在TMS320VC5416DSP在IO空间上的扩展。1.2 了解 ICETEK-VC5416-A板上指示灯扩展原理。1.3 学习在C 语言中使用扩展的控制寄存器的方法。二、实验原理2.1 I/O 空间的扩展及使用:C54x DSP 的 I/O 空间被保留用于外部扩展。由于在程序中访问 I/O 空间的语句只有 in 和out 指令,所以在扩展时一般将带有控制能的寄存器或分离地址访问

2、的存储单元的地址映射到 I/O 空间,访问这部分的单元又称 I/O 端口访问。例如:可将控制指示灯组的寄存器或锁存器映射到一个 I/O 端口地址上;A/D、D/A 等专用芯片控制端和状态寄存器也常映射到 I/O 端口上。总之,在 I/O 空间中扩展的设备一般重点用于控制,而使用大片连续存储空间的存储器单元一般映射到数据空间。ICETEK-VC5416-A 板将指示灯、DIP 开关、A/D、D/A、异步串行通信接口和 WatchDog的控制端等映射在 I/O 空间。0001-0001h:WatchDog 控制寄存器3006-3006h:A/D 转换控制寄存器1000-1001h:D/A 转换控制

3、寄存器2000-2007h:异步串口通信控制寄存器3002-3002h: 板上指示灯控制寄存器3003-3003h: 板上 DIP 拨动开关控制寄存器ICETEK-VC5416-A 实验箱上控制模块也使用 I/O 端口控制大部分设备:8001-8001h: 读-键盘扫描值,写-液晶控制寄存器8002-8002h: 液晶控制寄存器8003-8004h: 液晶显示数据寄存器8005-8005h: 发光二极管显示阵列控制寄存器8006-8006h: 保留8007-8007h: 发光二极管显示阵列控制寄存器8008-9FFFh: 保留在程序中,访问 I/O 端口的语句较为简单。对于汇编语言程序,可用

4、PORTR 和 PORTW指令,例如,从端口0008h读入一个字到变量 x 的指令为 portr 8,x,而向端口 000Ch 输出x变量的值的指令为 portw #0Ch,x;在 C 语言中访问 I/O 端口则必须首先声明 I/O 端口的类型,然后才能访问,以下语句仍完成上面汇编语言所完成的功能:ioport unsigned int port0008;ioport unsigned int port000C;x = port0008;1.2 指示灯扩展原理详见上图,其中 7 个指示灯是 D3D9;D10 在硬件上没做控制扩展。1.3 实验程序流程图三、实验代码/ Example For I

5、CETEK-VC5416-EDU / CTR Version : V4 / File name: LED.c / Project : LED.pjt / Version : 2.00 / Write by: Daniel Hawk / Company : Realtimedsp Co.Ltd / / All Rights opened & no Onus 2005.06 /ioport unsigned int port3002;#define LBDS port3002void Delay(int nDelay);void ShiftToLeftAndRight(unsigned int n

6、Init);main()unsigned int uLED4=1,2,4,8;int i;for(;)for ( i=0;i=0;i- )LBDS=uLEDi;Delay(64);void Delay(int nDelay)int i,j,k;k=0;for ( i=0;inDelay;i+ )for ( j=0;j1024;j+ )k+;四、代码分析/ 为LED声明IO端口ioport unsigned int port3002;/ LED 宏定义#define LBDS port3002/ 延时和移位子函数声明void Delay(int nDelay); /延时调用函数申明void Sh

7、iftToLeftAndRight(unsigned int nInit);/移位主函数申明main() unsigned int uLED4=1,2,4,8;/ 控制字,逐位置1: 0001B 0010B 0100B 1000B,分别表示第1,2,3,4盏灯点亮int i;/3位流水灯循环移位for(;)for ( i=0;i=0;i- ) /4盏灯反向流水作业点亮 LBDS=uLEDi;/ 反向顺序送控制字Delay(64);/ 调用延时函数,每次灯闪后延时的时间长度 /这里nDelay=64,延时总长=64*1024*T(T指系统单脉冲周期)void Delay(int nDelay)i

8、nt i,j,k;k=0;for ( i=0;inDelay;i+ )for ( j=0;j1024;j+ )k+;五、实验结果可以看到 D3D6 这4盏指示灯循环移位闪烁。通过实验可知:映射在 IO 空间地址上的指示灯寄存器在设置时是低有效的,数据的最低位(0001B)对应指示灯 D3,次低位(0010B)对应 D4,.依次类推。实验二 定时器实验一、实验目的1.1通过实验熟悉 VC5416A 的定时器;1.2掌握 VC5416A 定时器的控制方法;1.3掌握 VC5416A 的中断结构和对中断的处理流程;1.4学会 C 语言中断程序设计,以及运用中断程序控制程序流程。二、实验原理2.1 通

9、用定时器介绍及其控制方法片内定时器是一个软件可编程定时器,可以用来产生周期的中断信号。定时器主要由 3 个寄存器所组成:定时器寄存器(TIM)、定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。这 3 个寄存器都有映象寄存器,它们在数据存储器中的地址分别为 24H、25H 和 26H。TIM 是一个递减计数器;PRD 中存放计数值;TCR 中有定时器的控制位和状态位:1512 保留11-10 soft free96 PSC 定时器预定标计数器5 TRB 定时器重新加载位,用来复位片内定时器4 TSS 定时器停止状态位,用于停止或启动定时器30 TDDR 定时器分频系数在正常工作情况下,当

10、TIM减到0后,PRD中的时间常数自动地加载到TIM。复位后,定时器控制寄存器(TCR)的停止状态位 TSS=0,定时器启动工作,时钟信号CLKOUT加到预定标计数器 PSC。PSC也是一个递减计数器,每当复位或其减到0后,自动地将定时器分频系数TDDR加载到PSC。PSC在CLKOUT作用下,作减1计数。当PSC减到0,产生一个借位信号,令TIM作减1计数。TIM减到0后,产生定时器中断信号TINT,传送到CPU和定时器输出引TOUT。定时器中断的周期为:CLKOUT(TDDR+1)(PRD+1)其中,CLKOUT位时钟周期,TDDR和PRD分别为定时器的分频系数和时间常数。对定时器初始化的

11、步骤如下: 先将TCR中的TSS位置1,关闭定时器。 加载PRD。 重新加载TCR(使TDDR初始化;令TSS位=0,以接通CLKOUT;TRB位值1,以使TIM减到0后重新加载定时器时间常数),启动定时器。- 对中断的处理: 设置 INTM=1 将 IFR中的TINT位置 1,清除尚未处理完的定时器中断。 将 IMR中的TINT位置 1,开放定时器中断。 将 ST1中的INTM位请 0,开放所有可屏蔽中断。2.2 TMS320VC5416 中断结构以下是 5416 的 IMR 和 IFR 寄存器的结构,其中包含了可响应的中断:2.3 中断响应过程外设事件要引起 CPU 中断,必须保证:IMR

12、 相应位被使能(置 1),ST1 寄存器中的 INTM使能(置 0)。当 CPU 响应中断时,PC 指针指向中断向量表中对应中断的地址,进入中断服务子程序。中断向量表是 DSP 存放中断服务程序的一段内存区域,大小为 80H。在中断向量表中,每一个中断占用 4 个字的空间,一般情况是将一条跳转或延时跳转指令存放于此。中断向量表的位置是可以改变的,修改 PMST 寄存器中的中断向量表基地址可以实现这一点。2.4 中断程序设计程序中应包含中断向量表,5416 默认向量表从程序区 FF80 地址开始存放。向量表中每项为 4 个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址;第一个向量表

13、的首项为复位向量,即 CPU 复位操作完成后自动进入执行的程序入口;程序中包含相应的中断服务程序,应将其入口地址加入相应中断向量表中。2.5 实验程序分析本实验设计的程序是在上一个实验基础上修改得来,由于上一实验控制指示灯闪烁的延时控制是用循环计算方法得到的,延时不精确也不均匀,采用中断方式可以实现指示灯的定时闪烁,时间更加准确。对于定时器的周期寄存器为计数f423H,分频系数定为 15,即 1,000,000 个 CPU 时钟计数一次,由于 DSP 工作在 8MHz 主频(ICETEK-VC5416-A 板上 DIP 开关 U2 的 CLKMD1-3 均为 OFF 时),正好是 125ms 中断一次,所以在中断服务程序中计算中断 4 次时改变指示灯状态,实现指示灯亮 0.5 秒再

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号