DSP课程设计DSP原理及应用实验报告.docx

上传人:b****1 文档编号:12785331 上传时间:2023-04-22 格式:DOCX 页数:28 大小:1.34MB
下载 相关 举报
DSP课程设计DSP原理及应用实验报告.docx_第1页
第1页 / 共28页
DSP课程设计DSP原理及应用实验报告.docx_第2页
第2页 / 共28页
DSP课程设计DSP原理及应用实验报告.docx_第3页
第3页 / 共28页
DSP课程设计DSP原理及应用实验报告.docx_第4页
第4页 / 共28页
DSP课程设计DSP原理及应用实验报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

DSP课程设计DSP原理及应用实验报告.docx

《DSP课程设计DSP原理及应用实验报告.docx》由会员分享,可在线阅读,更多相关《DSP课程设计DSP原理及应用实验报告.docx(28页珍藏版)》请在冰豆网上搜索。

DSP课程设计DSP原理及应用实验报告.docx

DSP课程设计DSP原理及应用实验报告

 

电子通信工程系

DSP原理及应用实验报告

 

学号:

姓名:

专业:

指导老师:

实验一CCS的安装与设置

1.实验目的

掌握CCS2(‘2000)集成开发环境的安装;掌握软件仿真环境的设置方法;熟悉CCS集成开发环境的应用界面。

2.实验设备

PC机、CCS2(‘2000)IDE软件、EXP-IVDSP实验箱

3.实验要求

●熟悉安装CCS2(‘2000)IDE软件的步骤

●根据DSP芯片的型号正确设置软件仿真环境

●了解CCS集成开发环境应用界面的各项内容

4.实验内容

(1)CCS2(‘2000)IDE软件的安装步骤

1.CCS的安装

1.1退出病毒防火墙及杀毒软件

1.2解压CCS20002.2.rar文件并运行setup.exe安装程序文件。

1.3选择安装界面中“CodeCmposterStudio”选项。

如下图(1-1)所示

图(1-1)

1.4完成上述步骤后只需点“Next”继续。

在出现提示确认没有运行病毒检测软件的提示窗口时点“确定”。

如下图(1-2)所示

图(1-2)

1.5选择“Yes”同意CCS的安装协议。

如下图(1-3)所示

图(1-3)

1.6选择默认安装组件,点“Next”。

如下图(1-4)所示

图(1-4)

1.7选择默认安装路径“C:

\ti”点“Next”。

如下图(1-5)所示

图(1-5)

1.8出现下图(1-6)所示时取消勾选项,并点击“Finish”。

图(1-6)

1.9完成上述步骤,再出现的对话框中点击“确定”。

如下图(1-7)所示

图(1-7)

1.10安装完成后,计算机桌面出现如下图(1-8)所示的快捷方式图标。

图(1-8)

(2)TMS320F2812微处理器的软件仿真环境的设置

2.1双击桌面“SetupCCS2”的快捷方式启动设置程序。

2.2在出现的如下图(1-9)所示的窗口中依次进行①单击“Clear”清除原有设置②选择“F2812DeviceSimulator”配置③单击“Import”输入配置④单击“SaveandQuit”

图(1-9)

2.3在接下来的对话框中单击“否”完成对CCS的设置。

图(1-10)

(3)CCS集成开发环境的应用界面

双击桌面上的CCS2(‘C2000)快捷图标。

成功启动的CCS如下图(1-11)所示。

图(1-11)

5.问题与分析

CCS软件仿真环境(Emulator)如何设置?

1.点击“SetupCCS2”更改CCS软件仿真环境的设置。

2.在弹出界面中设置:

在“Filters”中的“Family”选项中选择“F28xx”,在“Platform”选项中选择“simulator”,然后在“AvailableConfigurations”中选择“F2812DeviceSimulator”。

设计如图(1-12)所示:

图(1-12)

3.点击“SaveandQuit”退出设置。

 

实验二XF管脚的驱动与观察

1.实验目的

掌握SPRC097软件包的安装与使用方法;掌握在CCS集成开发环境下建立或打开工程的方法;掌握XF管脚的驱动与测试方法;掌握工程的编译、下载与调试方法;熟悉CCS集成开发环境中寄存器观察工具的使用。

2.实验设备

PC机、CCS2(‘2000)IDE软件、EXP-IVDSP实验箱

3.实验要求

●熟悉SPRC097软件包的安装步骤

●会利用SPRC097中的工程环境建立或打开工程

●实现XF管脚的驱动编程

●会利用寄存器观察工具察看XF管脚的状态

4.实验内容

(1)SPRC097软件包的安装如图(2-1)所示

图(2-1)

(2)XF管脚驱动编程的环境如图(2-2)所示

图(2-2)

(1)主要程序代码

#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile

#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile

voiddelay(void);

voidmain(void)

{

intp,r,q;

InitSysCtrl();

InitPieCtrl();

 

IER=0x0000;

IFR=0x0000;

InitPieVectTable();

//控制XF管脚

EALLOW;

GpioMuxRegs.GPFMUX.all=0xffff;

EDIS;

for(r=0;r<100;r++)

{

/*xf管脚置低*/

asm("clrcxf");

for(p=0;p<10;p++)

{

for(q=0;q<10;q++)

{

delay();

}

}

/*xf管脚置高*/

asm("setcxf");

for(p=0;p<10;p++)

{

for(q=0;q<10;q++)

{

delay();

}

}

}

for(;;)

{

;

}

}

voiddelay(void)

{

unsignedintk,i,j;

for(k=0;k<5;k++);

for(i=0;i<5;i++);

for(j=0;j<5;j++);

}

图(2-3)

5.问题与分析

XF管教的设置可以设置为功能引GpioMuxRegs.GPFMUX.all=0xffff,当配置为功能引脚是可以用setcXF与clrcxf对XF引脚置低货置高,也可以设置为通用输入输出管脚GpioMuxRegs.GPFMUX.all=0x0000,可以通过GpioDataRegs.GPFDAT.all=0x0000与GpioDataRegs.GPFDAT.all=0xffff设置XF引脚输出为低或为高。

仿真时可以通过View下的Registers下的status查看XF管脚寄存器位的变化,如图(2-4)所示:

图(2-4)

实验三GPIO模块的驱动程序设计

1.实验目的

掌握CCS硬件仿真环境的设置方法;掌握GPIO模块的驱动与测试方法;熟悉工程的编译、下载与调试方法。

2.实验设备

PC机、CCS2(‘2000)IDE软件、XDS510仿真器、EXP-IVDSP实验箱

3.实验要求

●熟悉GPIO模块的功能原理

●会利用SPRC097中的工程环境建立或打开工程

●实现GPIO模块的驱动编程

4.实验内容

(1)安装硬件驱动到C:

\ti。

双击

选择安装路径为C:

\ti,点击lnstall如图(3-1)所示

图(3-1)

(2)使用硬件安装向导安装设备驱动如图(3-2)a、b、c所示

图(3-2)a

图(3-2)b

图(3-3)c

(3)CCS硬件仿真环境的设置选择

(4)建立GPIO模块的工程如图(3-3)所示

图(3-3)

(5)主要程序代码

#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile

#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile

 

#defineEXAMPLE11//UseDATAregisterstotoggleI/O's

#defineEXAMPLE20//UseSET/CLEARregisterstotoggleI/O's

#defineEXAMPLE30//UseTOGGLEregisterstotoggleI/O's

 

//Prototypestatementsforfunctionsfoundwithinthisfile.

voiddelay_loop(void);

voidGpio_select(void);

voidGpio_example1(void);

voidGpio_example2(void);

voidGpio_example3(void);

voidmain(void)

{

//Step1.InitializeSystemControl:

//PLL,WatchDog,enablePeripheralClocks

//ThisexamplefunctionisfoundintheDSP281x_SysCtrl.cfile.

InitSysCtrl();

//Step2.InitalizeGPIO:

//ThisexamplefunctionisfoundintheDSP281x_Gpio.cfileand

//illustrateshowtosettheGPIOtoit'sdefaultstate.

//InitGpio();//Skippedforthisexample

//Forthisexampleusethefollowingconfiguration:

Gpio_select();

//Step3.ClearallinterruptsandinitializePIEvectortable:

//DisableCPUinterrupts

DINT;

//InitializePIEcontrolregisterstotheirdefaultstate.

//ThedefaultstateisallPIEinterruptsdisabledandflags

//arecleared.

//ThisfunctionisfoundintheDSP281x_PieCtrl.cfile.

InitPieCtrl();

//DisableCPUinterruptsandclearallCPUinterruptflags:

IER=0x0000;

IFR=0x0000;

//InitializethePIEvectortablewithpointerstotheshell

Interrupt

//ServiceRoutines(ISR).

//Thiswillpopulatetheentiretable,eveniftheinterrupt

//isnotusedinthisexample.Thisisusefulfordebugpurposes.

//TheshellISRroutinesarefoundinDSP281x_DefaultIsr.c.

//ThisfunctionisfoundinDSP281x_PieVect.c.

InitPieVectTable();

//Step4.InitializealltheDevicePeripherals:

//ThisfunctionisfoundinDSP281x_InitPeripherals.c

//InitPeripherals();//Notrequiredforthisexample

//Step5.Userspecificcode:

#ifEXAMPLE1

//ThisexampleusesDATAregisterstotoggleI/O's

Gpio_example1();

#endif//-EXAMPLE1

#ifEXAMPLE2

//ThisexampleusesSET/CLEARregisterstotoggleI/O's

Gpio_example1();

#endif

#ifEXAMPLE3

//ThisexampleusesTOGGLEregisterstotoggleI/O's

Gpio_example3();

#endif

}

voiddelay_loop()

{

shorti;

for(i=0;i<1000;i++){}

}

 

voidGpio_example1(void)

{

//Example1:

//ToggleI/OsusingDATAregisters

//Note:

WhenusingtheDATAreigsters,inputvalues

//maybelost.Ifthereareinputsontheportthen

//usetheCLEAR/SET/TOGGLEregistersinstead.

while

(1)

{

GpioDataRegs.GPADAT.all=0xAAAA;

GpioDataRegs.GPBDAT.all=0xAAAA;

GpioDataRegs.GPDDAT.all=0x0022;

GpioDataRegs.GPEDAT.all=0x0002;

GpioDataRegs.GPFDAT.all=0xAAAA;

GpioDataRegs.GPGDAT.all=0x0020;

delay_loop();

GpioDataRegs.GPADAT.all=0x5555;

GpioDataRegs.GPBDAT.all=0x5555;

GpioDataRegs.GPDDAT.all=0x0041;//FourI/Osonly

GpioDataRegs.GPEDAT.all=0x0005;//ThreeI/Osonly

GpioDataRegs.GPFDAT.all=0x5555;

GpioDataRegs.GPGDAT.all=0x0010;//TwoI/Osonly

delay_loop();

}

}

voidGpio_example2(void)

{

//Example2:

//ToggleI/OsusingSET/CLEARregisters

while

(1)

{

GpioDataRegs.GPASET.all=0xAAAA;

GpioDataRegs.GPACLEAR.all=0x5555;

GpioDataRegs.GPBSET.all=0xAAAA;

GpioDataRegs.GPBCLEAR.all=0x5555;

GpioDataRegs.GPDSET.all=0x0022;

GpioDataRegs.GPDCLEAR.all=0x0041;//FourI/Osonly

GpioDataRegs.GPESET.all=0x0002;

GpioDataRegs.GPECLEAR.all=0x0005;//ThreeI/Osonly

GpioDataRegs.GPFSET.all=0xAAAA;

GpioDataRegs.GPFCLEAR.all=0x5555;

GpioDataRegs.GPGSET.all=0x0020;

GpioDataRegs.GPGCLEAR.all=0x0010;//TwoI/Osonly

delay_loop();

GpioDataRegs.GPACLEAR.all=0xAAAA;

GpioDataRegs.GPASET.all=0x5555;

GpioDataRegs.GPBCLEAR.all=0xAAAA;

GpioDataRegs.GPBSET.all=0x5555;

GpioDataRegs.GPDCLEAR.all=0x0022;

GpioDataRegs.GPDSET.all=0x0041;//FourI/Osonly

GpioDataRegs.GPECLEAR.all=0x0002;

GpioDataRegs.GPESET.all=0x0005;//ThreeI/Osonly

GpioDataRegs.GPFCLEAR.all=0xAAAA;

GpioDataRegs.GPFSET.all=0x5555;

GpioDataRegs.GPGCLEAR.all=0x0020;

GpioDataRegs.GPGSET.all=0x0010;//TwoI/Osonly

delay_loop();

}

}

voidGpio_example3(void)

{

//Example2:

//ToggleI/OsusingTOGGLEregisters

//Setpinstoaknownstate

GpioDataRegs.GPASET.all=0xAAAA;

GpioDataRegs.GPACLEAR.all=0x5555;

GpioDataRegs.GPBSET.all=0xAAAA;

GpioDataRegs.GPBCLEAR.all=0x5555;

GpioDataRegs.GPDSET.all=0x0022;

GpioDataRegs.GPDCLEAR.all=0x0041;//FourI/Osonly

GpioDataRegs.GPESET.all=0x0002;

GpioDataRegs.GPECLEAR.all=0x0005;//ThreeI/Osonly

GpioDataRegs.GPFSET.all=0xAAAA;

GpioDataRegs.GPFCLEAR.all=0x5555;

GpioDataRegs.GPGSET.all=0x0020;

GpioDataRegs.GPGCLEAR.all=0x0010;//TwoI/Osonly

//UseTOGGLEregisterstoflipthestateof

//thepins.

//Anybitsettoa1willflipstate(toggle)

//Anybitsettoa0willnottoggle.

while

(1)

{

GpioDataRegs.GPATOGGLE.all=0xFFFF;

GpioDataRegs.GPBTOGGLE.all=0xFFFF;

GpioDataRegs.GPDTOGGLE.all=0xFFFF;

GpioDataRegs.GPETOGGLE.all=0xFFFF;

GpioDataRegs.GPFTOGGLE.all=0xFFFF;

GpioDataRegs.GPGTOGGLE.all=0xFFFF;

delay_loop();

}

}

 

voidGpio_select(void)

{

Uint16var1;

Uint16var2;

Uint16var3;

var1=0x0000;//setsGPIOMuxsasI/Os

var2=0xFFFF;//setsGPIODIRasoutputs

var3=0x0000;//setstheInputqualifiervalues

EALLOW;

GpioMuxRegs.GPAMUX.all=var1;

GpioMuxRegs.GPBMUX.all=var1;

GpioMuxRegs.GPDMUX.all=var1;

GpioMuxRegs.GPFMUX.all=var1;

GpioMuxRegs.GPEMUX.all=var1;

GpioMuxRegs.GPGMUX.all=var1;

GpioMuxRegs.GPADIR.all=var2;//GPIOPORTsas

output

GpioMuxRegs.GPBDIR.all=var2;//GPIODIRselect

GPIOsasoutput

GpioMuxRegs.GPDDIR.all=var2;

GpioMuxRegs.GPEDIR.all=var2;

GpioMuxRegs.GPFDIR.all=var2;

GpioMuxRegs.GPGDIR.all=var2;

GpioMuxRegs.GPAQUAL.all=var3;//SetGPIOinput

qualifiervalues

GpioMuxRegs.GPBQUAL.all=var3;

GpioMuxRegs.GPDQUAL.all=var3;

GpioMuxRegs.GPEQUAL.all=var3;

EDIS;

}

5.问题与分析

功能引脚与高低电平的设置:

GPIO管教的设置可以设置为功能引脚GpioMuxRegs.GPxMUX.all=0xffff,当配置为功能引脚,也可以设置为通用输入输出管脚GpioMuxRegs.GPxMUX.all=0x0000,GpioMuxRegs.GPxDIR.all=0x0000设置对应管脚为输入引脚,GpioMuxRegs.GPxDIR.all=0xffff设置对应引脚为输出引脚。

档位输出引脚时,可以通过GpioDataRegs.GPxDAT.all=0x0000与GpioDataRegs.GPxDAT.all=0xffff设置对应引脚输出为低电平或为高电平,也可以用pioDataRegs.GPxCLEAR.all=0xffff与GpioDataRegs.GPxSET.all=0xffff设置对应管脚为低电平或为高电平。

 

实验四外部中断的应用

1.实验目的

掌握中断服务程序的编写方法;掌握外部中断的驱动与测试方法;熟悉工程的编译、下载与调试方法。

2.实验设备

PC机、CCS2(‘2000)IDE软件、XDS510、EXP-IVDSP实验箱

3.实验要求

●熟悉外部中断XINT1、XINT2的功能原理

●将工程环境设置为硬件仿真调试环境

●会利用SPRC097中的工程环境建立或打开工程

●实现外部中断的应用编程

4.实验内容

(1)配置硬件仿真环境

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

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

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