DSP实验教案(一)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“dsp实验教案”。
实验一 CCS使用和数据存储实验
一、实验目的1.掌握CCS的使用
2.掌握 TMS320C54X 程序空间的分配; 3.掌握 TMS320C54X 数据空间的分配;
4.能够熟练运用TMS320C54X 数据空间的指令。
二、实验设备
计算机,CCS 3.1版软件,DSP仿真器,E300实验箱,DSP-54XP CPU板。
三、实验步骤与内容
1.在进行 DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示:
2.E300 底板的开关SW4 的第1位置ON,其余位置OFF。其余开关设置为OFF。3.上电复位
在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则DSP开发系统与计算机连接存在问题。
4.运行CCS程序
1)待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电
2)启动CCS3.1,进入CCS界面后,点击“Debug—Connect”
3)此时仿真器上的“绿色指示灯”应点亮,CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG 接口或CCS 相关设置存在问题,这时需掉电检查仿真器的连接、JTAG 接口连接是否正确,或检查CCS相关设置是否存在问题。5.成功运行CCS 程序后,首先应熟悉CCS的用户界面;
6.学会在CCS环境下创建工程文件、添加程序文件、编写程序、编译、装载、调试,学习如何使用观察窗口等。
7.用“Projectopen”打开“normal 01_mem mem.pjt”.编译并装载“ 01_memDebugmem.out”
8.用“Edit”下拉菜单中的“Memory/Fill”编辑内存单元,参数设置如下图:
单击“OK”此时以0x1000 为起始地址的16个内存单元被修改成:0x0009 9.用“View”下拉菜单“Memory”观察内存单元变化,输入要查看的内存单元地址,本实验要查看0x1000H~0x100FH 单元的数值变化,输入地址0x1000H;
单击“OK”如下图所示:
10.点击“DebugGo main”进入主程序,在程序中“加软件断点1”和“加软件断点2”处施加软件断点。11.单击“DebugRun”运行程序,也可以“单步”运行程序;当程序运行到“软件断点1”处时,查看0x1000H~0x1007H单元的值变化,12.再单击“DebugRun”,当程序运行到“软件断点2”处时,查看0x1008~0x100F 单元的变化。
13.闭各窗口,本实验完毕
四、程序流程图
五、实验程序
#include “DspRegDefine.h”
//VC54x 寄存器定义 #include “stdio.h”
//输入输出头文件 #include “e300_codec.h” //**********************子函数声明********************************// void cpu_init(void);//初始化CPU //************************* 主函数 *******************************// void main(){
UINT16 i;
UINT16 * room;
UINT16 * room1;
room=(UINT16 *)0x1000;// 设指针px为1000H
room1=(UINT16 *)0x1008;// 设指针px为1000H //**********************CPU初始化*********************************//
cpu_init();/*将0xAAAA写入从数据空间的地址0x1000开始的8个单元中*/
for(i=0;i
{
* room=0xAAAA;
room++;
}
asm(“ nop”);//加软件断点1 /*从0x1000开始的8个空间读出数据依次写入从0x1008开始的8个单元中*/
for(i=0;i
{
*room1=*(room-1);
room--;
room1++;
}
for(;;)
{
} //加软件断点2 }
//*************************结束**********************************// cpu_init()函数见附录
六 实验结果
1、程序运行到断点1处数据存储器的内容如下图:
2、程序运行到断点2处数据存储器的内容如下图:
实验二 拨码开关实验
—、实验目的1.了解DSP开发系统的组成和结构 2.了解IO 的基本编程方法
二、实验设备
计算机,CCS3.1版本软件,DSP 仿真器,E300 实验箱,DSP-54XP CPU板
三、实验原理位的数字量输入(由拨码开关产生),当拨码打到靠近LED时为低。相反为高。通过74LS244缓冲连接到DSP的数据总线的低8位。CPU通过读指令读取到拨码开关产生的8位输出的数字量,然后CPU通过写指令把读出的8 位数字量写入(0x0200)单元内,使连接到DSP的数据总线的低8 位的74LS273的输出端产生高低信号,此时LED 灯产生亮灭。当对应LED 灯点亮时说明输出为低,熄灭时高。数字量输入输出单元的资源分配如下: 基地址:0000h(当CS0为0时分配有效)数字量分配空间为数据空间地址:基地址+0x200(低8位,只读)拨码开关扩展工作原理
四、实验步骤1.E300 板上的开关SW4 的第一位置ON,其余OFF;SW5开关全部置ON;其余开关全部置OFF。
2.运行Code Composer Studio(CCS)(ccs3.1需要“DEBUG→Connect”)3.用“ProjectOpen”打开系统项目文件 normal 2_io io.pjt; 4.编译全部文件并装载 2_io Debugio.out; 5.单击“Debug Go Main”跳到主程序的开始; 6.单击“Debug RUN”运行程序。
7.任意拨动E300 底板上的拨动开关,观察LED和拨动开关的对应情况。(LED1-LED7分别对应DSP 数据总线的D0-D7)
8.单击“Debug Halt” 暂停持续运行,开关将对灯失去控制.9.关闭所有窗口,本实验完毕.五、程序流程图
六 实验结果
实验三 CPU定时实验
一、实验目的1、熟悉TMS320C54X 的定时器;
2、掌握TMS320C54X 的定时器的控制方法;
3、学会使用CPU定时器中断方式控制程序流程。
二、实验设备
计算机,CCS 3.1版软件,DSP硬件仿真器,E300 实验箱,DSP-54XP CPU板。
三、实验原理说明
实验是采用CPU定时器来定时使LED 亮灭的。C54x 的定时器是一个20 位的减法计数器,可以被特定的状态位实现停止、重新启动、重设置或禁止,可以使用该定时器产生周期性的CPU中断,控制定时器中断频率的两个寄存器是定时周期寄存器PRD和定时减法寄存器TDDR,定时器的中断周期为:
CLKOUT *(TDDR+1)*(PRD+1)在本系统中,如果设置时钟频率为10MHZ,令PRD = 0x30D3,TDDR=15,这样得到每0.02 秒中断一次,通过累计50 次,就能实现1 秒钟定时。0.1us *(15+1)*(12499+1)* 50 =1S
四、实验步骤和内容
1、E300 底板的开关SW4 的第1位置ON,其余位置OFF。其余开关设置为OFF。
2、运行CCS软件,调入样例程序,装载并运行;(进入CCS界面后需要点“Debug--Connect”)
3、用“Project//Open”系统项目文件 normal 03_timer timer.pjt;
4、编译全部文件并装载“..debugtimer.out”;单击“DebugGo main”进入到主程序中
5、单击“Debug RUN”运行,可观察到灯LED1~LED8 的闪烁变化。
6、单击“Debug Halt”,暂停程序运行,LED灯停止闪烁;单击“RUN”,LED灯又开始闪烁变化
7、结束实验程序
五、程序流程图
六、实验程序
1、主函数
/*******************************头文件****************************/ #include “DspRegDefine.h” //VC5402 寄存器定义 #include “stdio.h” //输入输出头文件 #include “e300_codec.h” #include “timer.h” //子函数声明文件
//*********************** 端口定义****************************// ioport UINT16 port0200;//定义输出io端口为0x0200;//*********************** 全局变量定义************************// unsigned int count=0;unsigned int TIMER=0;//*************************************************************// //************************* 主函数 ****************************// void main(){ cpu_init();asm(“ nop ”);set_t0();asm(“ nop ”);for(;;){ switch(count){ case 0: IOout=0x0081;break;case 1: IOout=0x0042;break;case 2: IOout=0x0024;break;case 3: IOout=0x0018;break;case 4: IOout=0x0024;break;case 5: IOout=0x0042;break;case 6: IOout=0x0081;break;case 7: count=0;break;default:break;} } } //*************************结束 **********************************//
2、set_t0()函数
//******************************头文件*****************************// #include “DspRegDefine.h” //VC5402 寄存器定义
/***********************************************************函数说明 : 设置T0的寄存器输出参数 : 无
************************************************************/ void set_t0(){ asm(“ bx intm”);//禁止所有可屏蔽中断 *(unsigned int*)TCR=0x0010;//停止T0定时器记数 //------//TCR DEFINITIONS? // 保留(bit 15-12)00 调试时,遇到断点,定时器停止工作 // PSC(bit 9-6)0 不复位定时器,不重新加载TIM、PSC // TSS(bit 4)0 定时器分频系数 //-----------------------------// 0000 0000 0001 0000 = 0x0010 /*-------*/ *(unsigned int*)PRD=0x30d3;//设置T0的周期寄存器 *(unsigned int*)IMR=*(unsigned int*)IMR|0x0008;//允许T0中断 *(unsigned int*)IFR=*(unsigned int*)IFR;//清除中断标志 *(unsigned int*)TCR=0x002f;//允许T0定时器记数 //------//TCR DEFINITIONS? // 保留(bit 15-12)00 调试时,遇到断点,定时器停止工作
// PSC(bit 9-6)1 复位定时器,重新加载TIM、PSC 7 // TSS(bit 4)1111 定时器分频系数 //-----------------------------// 0000 1100 0010 1111 = 0x0c2f /*-------*/ asm(“ rsbx intm”);//开放所有可屏蔽中断 } //*************************结束 **********************************/
3、Tint0函数
#include “DspRegDefine.h” //VC5402 寄存器定义
//---// extern unsigned int count;extern unsigned int TIMER;//*************************TO中断程序*****************************// interrupt void Tint0(){ TIMER++;if(TIMER%50==0)count=count+1;} //*************************结束 **********************************//
4、cpu_init函数见附录
七 实验结果
LED灯根据定时时间不断的闪烁变化。
汇编语言程序设计实验实验一 程序的控制与转移一、实验目的1、掌握条件算符的使用。2、掌握循环操作指令(BNAZ)二、实验设备计算机、DSP实验箱、ccs5000软件。三、实验内容:编......
实验五 FIR数字滤波器的设计(设计性实验)实验名称:FIR数字滤波器的设计 实验项目性质:编程设计 所属课程名称:数字信号处理 计划学时:4一、实验目的1.掌握用窗函数法、频率采样法......
篇一:dsp实验报告心得体会 tms320f2812x dsp原理及应用技术实验心得体会 1.设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是 软件仿真,可以不设置硬件,但是......
DSP实验学习心得DSP即为数字信号处理器(Digital Signal Proceing),是在模拟信号变换成数字信号以后进行高速实时处理的专用处理器。它的工作原理是将现实世界的模拟信号转换......
DSP实验学习心得论DSP发展前景DSP 即为数字信号处理器(Digital Signal Proceing),是在模拟信号变换成数 字信号以后进行高速实时处理的专用处理器。它的工作原理是将现实世界......