DSP课程设计(3)

2019-04-22 18:31

多种形式,主要有红色和绿色;按亮度强弱可分为高亮和普亮,指通过同样的电流显示亮度不一样,这是因发光二极管的材料不一样而引起的。

LED数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.5~2V额定电流为10mA,最大电流为40mA。静态显示时取10mA为宜,动态扫描显示可加大,加大脉冲电流,但一般不超过40mA。

指导实验的基本理论是DSP的数字I/O端口以及其寄存器的配置。通过对这些理论的掌握和运用,达到了解和熟悉一般DSP数字I/O的知识。

(1)数字I/O端口

TMS320LF2407系列有多达41个通用、双向的数字I/O(GPIO)引脚,其中大多数是基本功能和一般I/O复用引脚,TMS320LF2407系列的大多数都可以用来实现其他功能。数字I/O端口模块采用了一种灵活的方法,以控制专用I/O和复用I/O引脚的功能,所有I/O和复用引脚的功能可以通过9个16位控制寄存器来设置,这些寄存器可以分为两类:

1、 I/O口复用控制寄存器(MCRx):用来控制选择I/O引脚作为基本功能或一般I/O

引脚功能。

2、 数据和方向控制寄存器(PxDATDIR):当I/O引脚作为一般I/O引脚功能时,用数

据和方向控制寄存器可控制数据和I/O引脚的数据方向,这些寄存器直接和I/O引脚相连。

(2)数字I/O端口寄存器

图1给出了TMS320LF2407系列I/O端口复用引脚配置简图,从图上可以看出一些寄存器单元的配置对应于实际I/O引脚的内部结构之间的联系。

图4.1 复用引脚配置图

9

4.2 LED数码管显示方式

LED数码管显示电路在单片机应用系统中可分为静态显示方式和动态显示方式。 ① 静态显示方式

在静态显示方式下,每一位显示器的字段需要一个8位I/O口控制,而且该I/O口须有锁存功能,N位显示器就需要N个8位I/O口,公共端可直接接+5V(共阳)或接地(共阴)。显示时,每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新显示为止。也就是各字段的亮灭状态不变。静态显示方式编程较简单,但占用I/O口线多,即软件简单、硬件成本高,一般适用显示位数较少的场合。 ② 动态扫描显示方式

当要求显示位数较多时,为简化电路、降低硬件成本,常采用动态扫描显示电路。所谓动态扫描显示电路是将显示各位的所有相同字段线连在一起,每一位的a段连在一起,b段连在一起?g段连在一起,共8段,由一个8位I/O口控制,而每一位的公共端(共阳或共阴COM)由另一个I/O口控制,如图4-4所示。这种连接方式由于将多位字段线连在一起,当输出字段码时,由于多门同时选通,每一位将显示相同的内容。因此要显示不同的内容,必须采取轮流显示的方式。即在某一瞬间时,只让某一位的字位线处于选通状态(共阴极LED数码管为低电平,共阳极为高电平),其他各位的字位线处于开断状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位暗。同样在下一瞬时,单独显示下一位,这样依次轮流显示,循环扫描。由于人的视觉滞留效应,人们看到的是多位同时稳定显示。

10

图4.2 动态显示LED数码管连接方式

4.3 硬件电路及功能

该程序最重要的部分是通过端口的赋值点亮LED显示管和点亮之后循环显示的过程中的算法运算。

在第2部分基本理论里面已经说了数字I/O口的I/O复用寄存器和数据、方向寄存器。第3部分讲到了具体的算法。根据算法产生的数据赋值到端口的数据寄存器上,数据寄存器的数据经过74HC273产生的驱动脉冲驱动输出,当对应的数据位输出为高电平的时候,就点亮所在LED显示管的相应的位置。同时产生的锁存脉冲使得被点亮的LED灯一直保持点亮的状态,直到软件延时结束之后,DSP将新的数据输送到端口寄存器,端口的数据被刷新,LED显示管的各位的灯就按照程序设计的方式被点亮起来。

算法的重要性体现在灯的循环点亮的过程中,实际上是在每个循环中分为两个部分完成的。首先由第一个灯被点亮到1、2个被点亮,?,到1-4全部点亮,这个过程是一部分,通过对初始值01H左移后与01H相或,使得二进制初始值中的为1的最后一位不断前移,而且在移动的过程中不断补充后面左移得到的0,使之为1,那么就可以得到实验要求的循环的前面半部分;而后面的半部分是和前面的相反,但又不是仅仅相反而已。实际上实现程序的后半部分可以将前半部分显示过的数据进行逆运算完成,而这个过程结束判断的标志位也相应的发生了变化。

将现有的输送到端口的值进行判断(根据寄存器的第9位的值是否为1),达到要求的时候认为前半部分的点亮完成;进入逆运算。将数据右移之后并与7FH相与,即是和0111 1111B(二进制数)相与,可以把寄存器的数据的较高位的1移到下一位,并将原来的高位置零。这正是实验的目的。此时判断的条件其实变化为读取寄存器的最低位是否为0,当满足条件的时候就认为程序的一个循环结束了,跳转到循环开始之初,即赋初值的地方去就可以实现实验要求的功能了。

用Altium designer软件画出电路图并转为PCB图,经转印机转印后附在了覆铜板上,经三氯化铁腐蚀后,电路板上有铜存在的地方即为电路,经打孔机打孔,安插元器件并焊接,则完成硬件设计。其流程中所涉及的图片见附录一。 4.4 系统整体原理图及PCB图

详见附录二。 4.5 系统实物图

详见附录一。

11

5 LED灯控制系统软件设计

TMS320F2812 DSP芯片开发环境一般为CCS2,CCS2代码调试器是一种针对标准TMS系列设计接口的集成开发环境IDE,它包含源代码编辑工具、代码调试工具、可执行代码生成工具和实时分析工具,并支持设计和开发的整个流程,如图4-1 所示。 开始运行程序之后:

图5.1 二极管图

5.1 系统软件总体设计

这里用软件延时的方法来调整发光二极管的延时时间间隔。当发光二极管被点亮之后,通过改变端口的电平输出,达到点亮不同的LED显示管的目的。

实验要求实现LED显示管的循环显示:先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。第4个灯亮。如此循环显示。在给寄存器GPBCLEAR的值与temp的值相或,其相应位被写1,实现相应的端口输出低电平,LED灯亮,通过寄存器GPBSET的值再与temp值相或,则相应的端口输出高电平,LED等灭,通过tenp的值左移便可以完成0000 0001?? ??10000000的改变,每改变一次就可以实现相应的LED灯的亮灭。当数据的最高位等于1的时候,temp重新赋初值,即给程序重新赋值为0000 0001,进行下一轮的循环。如此即可以实现实验要求的功能。

12

根据设计要求,由于控制是由不同的各种状态按顺序发生的, 我可以采用状态机制控制方法来解决此问题。这种方法是: 首先列举所有可能发生的状态; 然后将这些状态编号, 按顺序产生这些状态;状态延续的时间用程序控制,对于突发情况, 可采用在正常顺序的控制中插入特殊控制序列的方式完成。设计思路

根据DSP的硬件中断、定时器、I/O访问的原理。用定时器定时,用I/O口控制红绿黄灯的开关,用硬件外部中断模拟急救车的到达。有急救车到达时,两向为全红,以便让急救车通过。急救车通过后,交通灯恢复硬件中断前的状态。触发开关(红色按纽)为中断申请,表示有急救车通过。在实验箱上交通灯模块由高8位数据线控制:南北红灯D9、D11为高,南北黄灯D9、D11、D13、D15为高,南北绿灯D13、D15为高,东西红灯D8、D10为高,东西黄灯由D8、D10、D12、D14为高,东西绿灯D12、D14为高。 5.2 软件总体设计程序

详见附录三。 5.3 程序流程图

13


DSP课程设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高二地理试题及答案 - 图文

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

马上注册会员

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