南邮大四课程设计

上传人:hs****ma 文档编号:554902456 上传时间:2023-05-21 格式:DOC 页数:31 大小:615KB
返回 下载 相关 举报
南邮大四课程设计_第1页
第1页 / 共31页
南邮大四课程设计_第2页
第2页 / 共31页
南邮大四课程设计_第3页
第3页 / 共31页
南邮大四课程设计_第4页
第4页 / 共31页
南邮大四课程设计_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《南邮大四课程设计》由会员分享,可在线阅读,更多相关《南邮大四课程设计(31页珍藏版)》请在金锄头文库上搜索。

1、一、EMIF 接口上的I/O接口扩展一实验原理1TMS320VC5509DSP 的EMIF 接口:存储器扩展接口(EMIF)是DSP 扩展片外资源的主要接口,它提供了一组控制信号和地址、数据线,可以扩展各类存储器和寄存器映射的外设。-ICETEK-VC5509-A 评估板在EMIF 接口上除了扩展了片外SDRAM 外,还扩展了指示灯、DIP 开关和D/A 设备。具体扩展地址如下:400800-400802h: D/A 转换控制寄存器400000-400000h: 板上DIP 开关控制寄存器400001-400001h: 板上指示灯控制寄存器-与ICETEK-VC5509-A 评估板连接的ICE

2、TEK-CTR 显示控制模块也使用扩展空间控制主要设备:602800-602800h: 读-键盘扫描值,写-液晶控制寄存器600801-600801h: 液晶辅助控制寄存器602801h 、600802h: 液晶显示数据寄存器602802-602802h: 发光二极管显示阵列控制寄存器2指示灯扩展原理3实验程序流程图: 二实验步骤1实验准备:关闭实验箱上扩展模块和信号源电源开关。2设置Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行。3启动Code Composer Studio 2.21:选择菜单DebugReset CPU。4打开工程文件:工程文

3、件为:C:ICETEK-VC5509-EDULabLab0301-LEDLED.pjt。打开源程序LED.c。5编译、下载程序。6运行程序,观察结果。7退出CCS:三部分程序代码/ 定义指示灯寄存器地址和寄存器类型#define LBDS (*(unsigned int *)0x400001)/ 子程序接口void Delay(unsigned int nDelay);/ 延时子程序int i;main()unsigned int uLED4=1,2,4,8;/ 控制字,逐位置1: 0001B 0010B 0100B 1000BCLK_init();/ 初始化DSP运行时钟SDRAM_init

4、();/ 初始化EMIF接口while ( 1 )for ( i=0;i=0;i- )LBDS=uLEDi;/ 反向顺序送控制字Delay(32);/ 延时 【延时256-32】四实验结果映射在扩展存储器空间地址上的指示灯寄存器在设置时是低4位有效的,数据的最低位对应指示灯D1,次低位对应D2,.依次类推。LED指示灯由D1D2D3D4D3D2D1循环依次点亮。五实验体会了解ICETEK-VC5509-A 板在TMS320VC5509DSP 外部扩展存储空间上的扩展。了解ICETEK-VC5509-A 板上指示灯扩展原理。学习在C 语言中使用扩展的控制寄存器的方法。二、定时器的使用一实验原理1

5、通用定时器介绍及其控制方法TMS320VC5509A 内部有两个20 位通用定时器(GP):*每个通用定时器包括:-一个16 位的减计数的计数器TIM;-一个16 位的定时器周期寄存器PRD;-一个16 位的定时器控制寄存器TCR;-一个16 位的定时器预定标寄存器PSCR;*PSCR 寄存器说明:15 10 9 6 5 4 3 0Reserved PSC Reserved TDDRPSC: 4 位的预定标值,与TIM 共同组成20 位的定时计数器.TDDR: 预定标周期寄存器(在需要时重装入PSC 的值)TCR 寄存器说明2中断响应过程外设事件要引起CPU 中断,必须保证:IER 中相应使能

6、位被使能,IFR 相应中断也被使能。在软件中,当设置好相应中断标志后,开中断,进入等待中断发生的状态;外设(如定时器)中断发生时,首先跳转到相应中断高级的服务程序中(如:定时器1 会引起TINT 中断),程序在进行服务操作之后,应将本外设的中断标志位清除以便能继续中断,然后返回。3中断程序设计:-程序中应包含中断向量表,VC5509A 默认向量表从程序区0 地址开始存放,根据IPVD 和IPVH 的值确定向量表的实际地址。-注意观察程序中INTR_init()函数的定义部分,其中IPVD 和IPVH 的值都为0x0d0;同时观察配置文件ICETEK-VC5509-A.cmd 中的VECT 段描

7、述中o=0x0d000。-向量表中每项为8 个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址。第一个向量表的首项为复位向量,即CPU 复位操作完成后自动进入执行的程序入口。-服务程序在服务操作完成后,清除相应中断标志,返回,完成一次中断服务。4实验程序流程图:二实验步骤1实验准备:连接实验设备:关闭实验箱上扩展模块和信号源电源开关。2设置Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行:3启动Code Composer Studio 2.21:选择菜单DebugReset CPU。4打开工程文件:打开菜单“Project”的“Open”

8、项;选择C:ICETEK-VC5509-EDULabLab0303-Timer 目录中的“Timer.pjt”。在项目浏览器中,双击main.c,激活main.c 文件。打开ICETEK-VC5509-A.cmd,对照vector.asm 源程序学习中断向量表的写法。5编译、下载程序。6运行程序,观察结果。7改变TIMER_init()函数里*prd0 = 0x0ffff 为 “=0x0fff ”;重复步骤5,6 观察实验现象。8退出CCS三部分程序代码/ 定义指示灯寄存器地址和寄存器类型#define LBDS (*(unsigned int *)0x400001)void INTR_ini

9、t( void );void TIMER_init(void);unsigned int uLED4=1,2,4,8;int i=0;int nCount;main()nCount=0;CLK_init();SDRAM_init();LBDS=0;INTR_init();TIMER_init();while ( 1 )void interrupt Timer()nCount+; nCount%=256;if ( nCount=0 )LBDS=uLED(i+)%4;void INTR_init( void )IVPD=0xd0;IVPH=0xd0;IER0=0x10;DBIER0 =0x10;I

10、FR0=0xffff;asm( BCLR INTM);void TIMER_init(void) ioport unsigned int *tim0; ioport unsigned int *prd0; ioport unsigned int *tcr0; ioport unsigned int *prsc0; tim0 = (unsigned int *)0x1000;prd0 = (unsigned int *)0x1001;tcr0 = (unsigned int *)0x1002;prsc0 = (unsigned int *)0x1003; *tcr0 = 0x04f0; *tim

11、0 = 0; *prd0 = 0x0ffff;/从0x0fff改为0x0ffff,现象:循环变慢 *prsc0 = 2; *tcr0 = 0x00e0;四实验结果LED指示灯D1在定时器的定时中断中按照设计定时闪烁。五实验体会通过实验熟悉VC5509A 的定时器;掌握VC5509A 定时器的控制方法;掌握VC5509A 的中断结构和对中断的处理流程;学会C 语言中断程序设计,以及运用中断程序控制程序流程。三、中断的使用一实验原理1中断及中断处理过程:中断简介:中断是一种由硬件或软件驱动的信号,DSP 在接到此信号时,将当前程序悬挂起来,转去执行另外一个任务,这个任务我们称为中断服务程序(ISR

12、)。TMS320C55x (C55x) DSP可支持32 个ISR,可由硬件或软件触发。所有的C55x 中断,可以分成可屏蔽中断和不可屏蔽中断两种,软件中断是不可屏蔽的。DSP 处理中断的步骤:接收中断请求。请求由软件或硬件发出。响应中断请求。对于可屏蔽中断,需要满足若干条件,才发生响应;而对于不可屏蔽中断,则立即响应。准备执行中断服务程序。-完成当前正在执行的指令;将进入流水线但还未解码的指令清除。-自动保存若干寄存器的值到数据堆栈和系统堆栈。-取得用户定义的中断向量表中当前中断向量,中断向量指向中断服务程序入口。执行中断服务程序。中断服务程序包含中断返回指令,这样返回时可以出栈以前保存的关

13、键寄存器数据,从而恢复中断服务程序执行前的现场。中断向量表:中断向量表的地址可以由用户指定。外中断:TMS320C5509 可以响应INT0-INT4 五个外中断。2ICETEK-CTR 板的键盘接口:显示/控制模块ICETEK-CTR 通过接口P8 连接小键盘,接收小键盘传送的扫描码,并在每个扫描码结束后保存,同时向DSP 的INT2 发送中断信号;当DSP 读键盘时将扫描码送到数据总线上。小键盘上每次按下一个键将产生2 个扫描码、2 次中断。3程序编制:由一个不含中断处理程序的工程通过改写加入中断处理程序部分大致需要如下操作(假设使用INT2):编制中断服务程序:可以用C 语言程序实现,编

14、写单独的一个函数XINT,此函数使用interrupt 修饰,没有参数和返回值。构造中断向量表:可以用汇编语言构造,编写一个汇编语言模块程序vector.asm,在程序头上声明段名为“.vectors”;定义外部标号_XINT,由于汇编语言要使用C 语言程序中定义的标号XINT,需要在这个标号前加底线;在中断向量表该中断对应位置(int2)写汇编语言语句跳转语句。修改连接命令文件:在MEMORY 小节中开辟单独的地址段用以存放中断向量表;在SECTIONS 小节中指定.vectors 段到前步开设的内存段中。主程序中进行初始化设置:定位中断向量表,使能中断,清中断等。4实验程序流程图:二实验步骤1实验准备:1. 连接实验设备:连接实验箱附带的键盘的PS2 插头到ICETEK-

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

当前位置:首页 > 办公文档 > 工作计划

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