内容发布更新时间 : 2024/12/23 22:13:00星期一 下面是文章的全部内容请认真阅读。
DSP流水灯设计
姓名:彭伟
班级:电子132
前言
随着计算机和信息技术的飞速发展,DSP技术已经应用到我们生活的每一个角落,从军用到民用,从航空航天到生产生活,都越来越多的使用DSP。
DSP的主要应用有数字化移动电话,数据调制解调器,磁盘/光盘控制器需求,图形图像处理需求,汽车电子系统等。应用DSP的领域可以说是不胜枚举。DSP在航空航天方面,主要用于雷达和声纳信号处理;在通信方面,主要用于移动电话,IP电话,ADSL和HFC的信号传输;在控制方面,主要用于电机控制,光驱和因公安驱动器;在电子娱乐方面,主要用于高清晰电视,机顶盒,家庭影院,DVD等应用;还有数字相机,网络相机等等。可以说没有DSP就没有对互联网的访问,也没有多媒体,也没有无线通信。随着科学技术的发展,将会出现更多的DSP新应用领域。 一、设计任务
1、 基于TMS320X281x的 Led显示控制系统设计 要求:
(1)绘制系统框图(VISIO);
(2)编写程序,实现功能; (3)理论分析
(;4)设计过程、源代码和注释、设计说明书。 二、实验目的
⑵ 学习并了解DSP开发版的基本原理;
⑵ 学习并了解TMS320X281x芯片的基本结构和原理; ⑶ 熟悉流水灯的软件实现原理和硬件设计;
⑷ 熟悉Emulator方式下的程序调试规程,并最终能够熟练掌握在DSP软硬件环境下的程序开发流程;能够对现有器件进行简单地编程,实现各种简单地显示控制。
三、实验原理
通过本设计熟悉中规模集成电路进行时序电路和组合电路设计的方法,掌握彩灯循环控制器的设计方法通过对DSP结构、原理及应用的学习。在初步了解DSP结构和原理的基础上,进行简单的应用实验,掌握DSP的基本应用。通过熟悉DSP模板的内部结构以及CCS软件,掌握DSP2407的汇编语言编程和调试方法,了解DSP的指令和I/O端口的寄存器的配置,并结合DSP实验模板对DSP
进行编程控制数字输入/输出端口点亮LED显示管。实验的具体要求如下:实现LED显示管的循环显示:led灯实现两个灯的流水灯跑马状态,从左到右实现左循环。第二步实现三个灯的跑马状态,第三步实现四个led灯的跑马状态。 四、程序设计: 软件设计
本次实验数码管显示电路和led实现,led灯显示七个灯此时的数码管显示七,然后led灯跑马一个灯,随后六个灯显示,数码管显示六,五个灯亮数码管显示五,依次虚幻一直到一,然后两个led灯亮依次跑马1,2,3,4,5,6,7,8,此时的数码管显示1. 五.程序流程图:
由ccs实现主Led灯点亮并且显示对应数码光数字 实验现象结束一直显示1 六 程序部分源代码:
#include \ // DSP281x Headerfile Include File #include \ // DSP281x Examples Include File #define SEG_1 *(Uint16 *)0x80000 //第一位数码管地址 #define LED *(Uint16 *)0x2003 //LED地址 Uint16 i = 0;
Uint16 seg_table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void main(void) {
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP281x_SysCtrl.c file. InitSysCtrl();
// Step 2. Initalize GPIO:
// This example function is found in the DSP281x_Gpio.c file and // illustrates how to set the GPIO to it's default state. // InitGpio();
// Step 3. Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts DINT;
// Initialize the PIE control registers to their default state. // The default state is all PIE interrupts disabled and flags // are cleared.
// This function is found in the DSP281x_PieCtrl.c file. InitPieCtrl();
// Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000; IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines (ISR).
// This will populate the entire table, even if the interrupt // is not used in this example. This is useful for debug purposes. // The shell ISR routines are found in DSP281x_DefaultIsr.c. // This function is found in DSP281x_PieVect.c. InitPieVectTable();