DSP实验报告

2018-12-01 16:27

专业: 电气工程及其自动化 姓名: 学号: 实验报告

一、实验目的和要求(必填) 三、主要仪器设备(必填) 五、实验数据记录和处理 七、讨论、心得

日期: 2014.11.5 地点: 课程名称: 微机原理及其应用 指导老师: 徐习东 成绩: 实验名称: 实验一二三综合实验报告 实验类型: 同组学生姓名:

二、实验内容和原理(必填) 四、操作方法和实验步骤 六、实验结果与分析(必填)

一、实验目的和要求

1、 了解DSP的基本原理和实验过程。完成实验一、二、三。完成4段程序的运行过程。 2、 了解DSP的编程方法,学习TI资源文件的使用方法, 3、 认识中断、GPIO、定时器等的编程使用方法。

装 二、实验内容和原理

实验一

LED绿灯的控制:

共阳极发光二极管原理图如下

订 线

图1 发光二极管原理图

GPIO端口: GPIOF13~GPIOF8 实验二

通过GPIO控制发光二极管DS20~DS25的亮灭。当GPIOFx=0时,对应的发光二极管被点亮。

P.2

实验名称: DSP实验综合报告 姓名: 学号:

利用CPU定时器和中断实现点亮了4盏规定的绿灯,同时控制灯分别以1s,100ms,10ms,1ms为周期交替亮灭。

通过设置CPU定时器,使1ms产生1个中断输出,再通过循环计数控制当分别产生1ms、10ms、100ms、1s的时间间隔进入中断,控制相应LED亮灭。

实验三

分别用两种TI资源的方法编程,实现控制绿灯和红灯的要求。方法一是仅仅使用TI规定的变量编程,方法二是使用TI资源的内置文件,初始化文件和.c文件等中的自带函数。 把6盏绿灯及16盏红灯有规律地控制点亮。 红灯的控制: LED接口如图:

装 订 线

1、一端接电源高电平红灯的控制: 2、一端接锁存器的输出; 3、由两个锁存器控制16盏灯;

P.3

实验名称: DSP实验综合报告 姓名: 学号:

两个锁存器: 1、输入数据为 GPIOB8 ~GPIOB15;

2、锁存信号由GPIOE0 ~GPIOE2 控制 ; 点灯控制:

1、先确定第几组,第几盏;

2、GPIOE输出组号,GPIOB输出位号; 3、延时,GPIOE输出锁存信号

三、主要仪器设备

TMS实验板、PC机、程序烧写器

装 四、操作方法和实验步骤

1、 实验一

(1)学习DSP的相关内部元件的使用方法。 (2)了解C语言编写DSP程序的方法。

(3)在软件CSS3.3中读懂并改写老师上传的程序,通过对相关的寄存器赋值完成项目的程序编写工作。 (4)学习软件的调试运行方法。把相关的程序烧写入开发板中,调试,实现原来预想中的功能。 2、实验二

(1)学习CPU定时器的初始化设置及使用; (2)学会使用CPU中断系统; (3)设计并编写项目程序;

(4)把相关的程序烧写入开发板中,调试,实现原来预想中的功能。 3 实验三

(1)学习红灯LED控制方法; (2)设计并编写相关程序;

(3)把相关的程序烧写入开发板中,调试,实现原来预想中的功能。

订 线 五、实验结果与分析

1、 实验一:试验中点亮了一排灯,按老师的所要求的方式闪亮。

实验程序设计:

P.4

实验名称: DSP实验综合报告 姓名: 学号:

1 程序段○

#define EALLOW asm(\#define EDIS asm(\#define PLLCR #define HISPCP #define WDCR

*((volatile unsigned int *) 0x7021) *((volatile unsigned int *) 0x701A) *((volatile unsigned int *) 0x7029)

#define PCLKCR *((volatile unsigned int *) 0x701C) #define LOSPCP *((volatile unsigned int *) 0x701B) #define SCSR *((volatile unsigned int *) 0x7022) #define GPFMUX *((volatile unsigned int *) 0x70D4) #define GPFDIR *((volatile unsigned int *) 0x70D5) #define GPFDAT

*((volatile unsigned int *) 0x70F4)

简单宏定义,将相关寄存器与其地址相关联。其中#define EALLOW asm(\

#define EDIS asm(\表示将汇编指令‘EALLOW’与‘EDIS’进行宏定义,在后面以C语言编写的程序可以直接调用。

装 2 程序段○

void InitPll(void) {

int i; EALLOW;

PLLCR = 10; //SYSCLK = 外部振荡频率 * PLLCR /2 EDIS;

for(i= 0; i< ( (131072/2)/12 ); i++) {;} //延时,使得PLL模块能够完成初始化操作 }

void InitPll(void)函数用于锁相环初始化,初始化PLL模块;

如果外部晶振为30MHz,计算得SYSCLK为30MHz*10/2=150MHz。 3 程序段○

void InitPeripheralClocks(void) {

EALLOW;

HISPCP = 1; // HISPCLK= SYSCLK * HISPCP /2 LOSPCP = 2; // LOSPCLK= SYSCLK * LOSPCP /2 PCLKCR = 0x909;// 开启部分外设 EDIS; }

void InitPeripheralClocks(void)函数用于初始化外设时钟。

设置高速外设时钟预定表寄存器HISPCP和HSPCLK,使高速外设时钟频率

订 线 P.5

实验名称: DSP实验综合报告 姓名: 学号:

=SYSCLK/(HSPCLK*2)=150MHz/2=75MHz;

设置低速外设时钟预定表寄存器LOSPCP的LSPCLK,使低速外设时钟频率=SYSCLK/(LSPCLK*2)=150MHz/4=37.5MHz;

向PCLKCR写入0x909,用来使能EVA,ADC,SPI,SCIB 等外设时钟。

4 程序段○

void DisableDog(void) {

EALLOW;

WDCR = 0x0068; //关闭看门狗;; EDIS; }

void DisableDog(void)该函数用于关闭看门狗;

设置看门狗控制寄存器WDCR的WDDIS(位6)为1屏蔽看门狗模块。 5 程序段○

装 void InitSysCtrl(void) {

DisableDog(); InitPll();

InitPeripheralClocks(); }

void InitSysCtrl(void)函数用来初始化系统控制;

包括关闭看门狗,设置初始化始终频率,初始化外设时钟频率。 6 程序段○

void InitGpiof(void) { }

void InitGpiof(void)函数用来初始化GPIO口;

设置模式寄存器GPFMUX的相关位为0,使GPIOF引脚配置为通用数字I/O模式; 设置方向寄存器GPFMUX的相关位为1,使引脚配置为输出。 7 程序段○

void main(void)

订 线 EALLOW; GPFMUX =0x0000; GPFDIR =0xFF00;

EDIS;


DSP实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实训五 企业所得税应纳税额的计算

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: