一、实验目的
掌握GPIO引脚配置方法和定时器控制LED的原理,并实现交通灯的闪烁控制。
二、实验原理
StarterWare
StarterWare是一个免费的软件开发包,它包含了示例应用程序。StarterWare提供了一套完整的GPIO寄存器配置接口,简化了开发步骤,程序开发时只需要调用相应接口即可。
安装StarterWare 后,可在安装目录下找到 C6748 所有通用库函数和对应的源码(StarterWare的 drivers 目录下,部分位于其他相关目录下),同时可在安装目录docs 文件夹内找到所有库函数的使用方法。
硬件原理图
找到TRAFFIC LIGHT,可看到控制交通灯的GPIO管脚。当GPIO输出为高电平时,LED会点亮,输出低电平时,LED会熄灭。同时可以查看数码管的原理图,数码管会显示30秒倒计时。
数码管
数码管分为共阴极和共阳极两种类型,TL6748-PlusTEB实验箱使用的5461数码管为共阴极,是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
程序流程设计
程序流程设计中首先要进行外设使能和GPIO管脚复用,配置GPIO管脚为输出,然后进行定时器和DSP中断的初始化,最后设置交通灯的闪烁,同时数码管末两位显示30秒倒计时。
源码
方向配置源码
管脚方向配置。
使用StarterWare 库函数将 GPIO 口配置为输出模式。相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIODirModeSet(SOC_GPIO_0_REGS, 1, GPIO_DIR_OUTPUT);
将GPIO配置为输出的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数时GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的方向。
数据配置源码
数据寄存器配置。
使用StarterWare 库函数设置GPIO输出值。
相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIOPinWrite(SOC_GPIO_0_REGS, 3, GPIO_PIN_LOW);
配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。
数据配置源码
数据寄存器配置。
使用StarterWare 库函数设置GPIO输出值。
相关函数通过“gpio.h”文件引用。
StarterWare API 接口。
GPIOPinWrite(SOC_GPIO_0_REGS, 3, GPIO_PIN_LOW);
配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。
三、操作现象
实验设备
本实验使用的硬件接口为交通灯和数码管,所需硬件为实验板、仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口,
(2)将拨码开关拨到DEBUG模式01111,
(3)连接实验箱电源,拨动电源开关上电。
软件操作
导入工程
编译工程
将CCS连接开发板并加载程序
点击运行程序
可以看到交通灯亮起(南北方向绿灯亮,东西方向红灯亮),同时数码管末两位开始30秒倒计时。设定南北方向为主干道方向,东西方向为支干道,当主干道绿灯亮时,支干道开始亮红灯,红灯持续亮30秒,主干道绿灯亮25秒,然后转为亮黄灯,持续5秒后,主干道转为亮红灯。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。