实验一LED闪烁实验.docx

实验一LED闪烁实验.docx
实验一LED闪烁实验.docx

实验一: LED 闪烁实验

一、实验仪器: PC 机一台, TMS320VC5416 DSK 一套(附 CCS)

二、实验目的

1.初步了解 TMS320VC5416DSK 硬件的基本结构及工作原理;

2.学习和熟悉Code Composer Studio 开发环境;

3.学习 BSL( Board Support Library)。

三、实验原理

1.硬件原理图

E M I F

CPLD

CTRL DATA

ADDR

5416

指示灯一指示灯四

指示灯二指示灯三

2.软件流程图

开始

DSP 初始化

NO

While(1)

YES

第一个灯亮

调子函数延时

第二个灯亮

结束

第 n 个灯亮

调子函数延时

3.使用的软件函数、宏,叙述调用形式、参数、返回值和包括该函数的库

文件、头文件

1)DSK5416_init()

功能 : 这段程序是初始化 DSP环境。

调用形式: void DSK5416_init();

2)Blink0()

功能:这段程序是用户自己编写的,用来控制LED的闪烁的。

调用形式: void Blink0 ();

3) TSK_sleep()

功能 : 程序中完成延时的功能

调用形式: void TSK_sleep(nticks);(nticks为要延时的系统时钟周期

数)

4)DSK5416_LED_on()

功能:使 DSK 上的 LED 发光

调用形式:void DSK5416_LED_on(num) ;(num 为 LED 的编号( 0- 3))5)DSK5416_LED_off ()

功能:使 DSK 上的 LED 熄灭

调用形式: void DSK5416_LED_off(num) ;(num 为 LED 的编号( 0-

3))

三、实验步骤

发光灯闪烁程序可以使人了解使用 CCS 来开发 TMS320VC5416 DSK 的一些

特点。发光灯闪烁演示如何使用DSK上的四个信号灯。这个例子将使信号灯按照

一定的规律连续闪烁。

1.如果你的软件安装在 C 盘的 C \ ti 目录下,就请在 c:\ti\ myprojects 目录下

创建 LED子目录;如果安装目录在其他位置,则在相应位置的myprojects目录下创建 LED子目录。

2.从实验一\LED\LED目录里拷贝所有的文件到新建的文件夹。

3.单击“开始”菜单,选择“程序”,在Texas Instruments\Code Composer Studio

组中选择 Code Composer图标,启动 Code Composer Studio,或者单击桌面上 C5416 DSK CCS图标。

4.在Code Composer Studio主界面中打开 Project 菜单,选择 New 选项。

5.在“ Save New Project”对话框中选择刚刚建立的工作目录,在文件名编辑框中输入 LED为项目名称,建立工程项目文件 LED.prj ,打开“ Project”菜单选择“ Add file to project ”,在随后打开的窗口中选择 led.c 并按“打开”按钮。

6.打开“ Project”菜单,选择“ Add file to project ”,在随后打开的窗口

中改变文件类型为 Configuration file(*.cdb) ,选择 led.cdb,并按“打开”按钮。

7.打开“ Project”菜单,选择“ Add file to project ”,在随后打开的窗口中改变文件类型为 Select Linker Command File(*.cmd),选择 led.cmd,并按“打开”按钮。

在项目视图中将所有“+”项展开(如上图所示),可以看到此工程包括以

下文件:

◎led.c C主程序,定义如何对 DSK 进行检测。

◎ledcfg.cmd 命令文件,将段映射到存储器中。

8.在项目浏览器中双击 led.c,激活 led.c文件浏览该文件的内容。

9.在项目浏览器中双击 led.cdb,激活 led.cdb文件进行编辑。

10.在 scheduling下的 TSK 一栏中,单击右键,选择“ Insert TSK”,新建

一个任务,随后在 TSK Manager下出现一个名为 TSK0的图标。

11.选择该图标,单击右键,选择“ Properties”,弹出属性对话框,在Functions 标签下的 Task function输入: _blink0 ,然后单击确定,退出对话框。

12.打开“Project”菜单,选择“Build Options ”,弹出对话框,在“Compiler”一栏中选择“ Advanced”,勾上选项“ use far calls”。在“ Linker ”一栏中选择

“ Basic”,在“ Include Libraries”一栏中填入“ dsk5416f.lib ”。

12.打开“ Project”菜单,选择“ Rebuild all”选项, Code Composer Studio 重新编译和链接这个工程项目,整个的处理过程在屏幕下方的Message窗口中返回信息,当改变了设置后必须从新编译所有的文件。当整个项目通过编译,汇编,

连接后就会在产生一个输出文件(*.out )。

13.打开“ File”菜单,选择“ Load Program”选项,在“ Load Program”对话框中选中新建目录下的 debug,在 debug目录下选中 led.out 文件,此时 Code Composer Studio将把这个目标文件装载到 5416DSK上,同时 Code Composer Studio 打开反汇编窗口,显示被加载程序的汇编指令码。

14.打开“ Debug”菜单,选择“ Run”选项或按 F5运行程序,观察 5416 DSK 上的信号灯可以按一定规律的间隔连续闪烁。

15.打开“ Debug”菜单,选择“ Halt”选项或按 Shift-F5 终止实验结果。

四、实验结果

实验的最后现象看到 5416DSK上的四个信号灯按一定规律连续闪烁。

五、可能会遇到的问题

1.先用 USB电缆将 5416DSK 与PC 机相连而后再将电源接上

2.防止静电容易烧坏电路板

3.要在断电的情况下插拔器件

六、练习

1.在实验中,只有一盏 LED发光,请考虑,如何修改源文件,来改变 LED闪烁的时间间隔?如何让多盏 LED 按照一定的规律同时闪烁?

2.请考虑:在源文件中,定义的函数名称是 blink0(), 为何在 TSK function 一栏中输入的却是 _blink0?

3.认真阅读 BSL概述 .doc和TSK.doc,为下次实验做准备。

附源文件

#include "ledcfg.h"

#include "dsk5416.h"

#include "dsk5416_led.h"

void Blink0()

{

int delay,i,j;

//Set delay between LED transitions

delay = 500;

//Blink LED #0

while(1)

{

for(i=1;i<=4;i++)

{

for(j=0;j

{

// Turn the LED on

DSK5416_LED_on(j);

}

TSK_sleep(delay);

for(j=0;j

{// Turn the LED off

DSK5416_LED_off(j);

}

TSK_sleep(delay);

}

}

}

void main()

{

//Initialize the board support

library DSK5416_init();

}

相关主题
相关文档
最新文档