DSP交通灯综合控制
DSP十字路口交通灯课程设计
DSP十字路口交通灯课程设计问题描述在城市交通中,十字路口是交通流量极大的交汇点。
为了保障交通安全和交通效率,交通信号灯的设计和优化显得尤为重要。
本文将介绍一种基于数字信号处理(DSP)技术的十字路口交通灯控制系统的设计。
需求分析在设计十字路口交通灯系统时,需要满足以下需求:1.实现交通信号灯的控制,包括红灯、绿灯和黄灯的变化;2.根据交通流量调整信号灯的时长,以提高交通效率;3.实现紧急情况下的临时信号灯控制,例如救护车或警车的经过;4.提供人行道信号灯,以保障行人的交通安全。
系统设计硬件设计本系统的硬件设计包括以下组成部分:1.十字路口交通信号灯,包括红灯、绿灯和黄灯的LED灯;2.交通流量检测器,用于检测不同道路上的车辆数量;3.紧急情况检测器,用于检测救护车或警车的到达;4.人行道信号灯,用于指示行人过马路的时机。
软件设计本系统的软件设计包括以下几个主要模块:1.交通信号灯控制模块:根据交通流量和紧急情况,控制交通信号灯的变化。
可以使用DSP算法对交通流量进行实时分析和预测,以决定不同道路上的信号灯时长。
2.交通流量检测模块:利用传感器或计数器等装置,实时监测不同道路上的车辆数量,并将数据传输给交通信号灯控制模块。
3.紧急情况检测模块:通过紧急情况检测器,实时检测救护车或警车的到达,并将信号传输给交通信号灯控制模块,暂停其他道路的交通以保障紧急车辆的通行。
4.人行道信号灯控制模块:根据人行道上的行人数量以及交通信号灯的变化,控制人行道信号灯的显示,保障行人的交通安全。
系统实现为了实现DSP技术在十字路口交通灯设计中的应用,我们可以按照以下步骤进行实施:步骤一:选择合适的DSP芯片根据实际需求和性能要求,选择适合的DSP芯片,具有足够的计算能力和IO接口以支持交通信号灯和其他传感器的连接。
步骤二:确定交通信号灯控制算法根据交通流量和紧急情况的检测数据,设计合适的控制算法,以控制交通信号灯的变化。
DSP十字路口交通灯(程序代码还有图哦)
4.1.5数码显示输出模块
数码管显示采用了四位一体的数码管。其显示由DSP的高八位数据线控制位码显示,低八位数据线控制段码显示。其数据经过了74HC273锁存,图中锁存信号是LEDALE,清零信号是LEDCS,这两信号经过CPLD逻辑组合而来,逻辑功能描述如下:
LEDALE<=ios or not a15 or not a14 or a2 or a1 or a0;--DSP采用I/O方式访问数码管,所以DSP的控制线IS(此为IOS)和地址线组合来锁存送往数码管的数据,其地址C000h,LEDCS<=rst;--DSP的复位RS(此写成RST)来对锁存器清零。
LEDCS2<=ios or not a15 or not a14 or a2 or not a1 or a0;--DSP采用I/O方式访问指示灯,所以DSP的控制线IS(此写IOS)和地址线组合来锁存送往指示灯的数据,其地址C002h。其硬件图如下:
3.2课程设计原理………………………………………………………………………5
3.2.1系统工作原理…………………………………………………………...…5
3.2.2系统工作状态………………………………………………………...……6
4设计步骤及过程…………………………………………………………………….…....8
图3.7状态四
状态五:紧急状态下东西南北均亮红灯;
图3.8状态五
4设计步骤及过程
4.1硬件的选择
4.1.1主控制器的选择
采用TI公司DSP芯片TMS320VC5402。C5402采用改进的Harvanl处理结构,指令流水线操作。计算和处理速度很高,系统单指令周期可达到10ns。在片内提供16k的RAMห้องสมุดไป่ตู้作程序和数据存储,其最大可扩展寻址空间为1M字节。C5402提供的McBSP串口和DAM数据传送方式极大地方便它在通信领域的应用和开发。如下图所示:
DSP 课程设计 交通灯的控制与实现
设计结果部分截图
2.6心得体会
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,和同学们相互探讨,相互学习。在此次的课程设计中,主要资料的查阅和对电路图的总体设计,对电路的设计包括绘制电路原理图。由于平时在对本课程的学习中,没有注重系统的设计,故在设计电路原理图的过程中也遇到了各种各样的问题。但是,这些问题在跟同组的同学讨论和向老师请教后也得到了解决。由此可以得出,我对本门课程的掌握还是很不好,动手的能力还是很欠缺的。在今后的学习过程中不仅要注意对理念知识的掌握,而且还要培养自己的对手操作能力。最后在老师的辛勤的指导下,终于迎刃而解,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
};
void main(void)
{
int nWork1,nWork2,nWork3,nWork4,k;
int nNowStatus,nOldStatus,nOldTimeCount,nSaveTimeCount,nSaveStatus;
unsigned int nScanCode;
nTimeCount=0; bHold=0;
void Delay(unsigned int nTime);
void SetLEDArray1(int nNumber);//修改显示内容
单片机DSP系统设计 单片机控制的十字路口交通灯系统
单片机及DSP课程设计报告专业:电子信息工程班级:姓名:学号:指导教师:时间:一.摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。
交通信号灯控制方式很多。
当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。
因此,一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给予技术革新。
随着大规模集成电路及计算机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现代科技发展的主流方向。
本系统采用单片机8051为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。
本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。
本设计系统由单片机I/O口扩展系统(8255)、交通灯状态显示系统、LED数码显示系统、紧急情况中断系统等几大部分组成。
系统除基本的交通灯功能外,还具有倒计时、更改计时常数、紧急事故处理等功能,较好的模拟实现了十字路口可能出现的状况。
软件上采用C51编程,主要编写了主程序,LED数码管显示程序,中断程序延时程序、按键扫描等。
经过整机调试,实现了对十字路口交通灯的模拟。
关键词:8051 8255 LED 数码管交通灯程序单片机二.设计任务和要求2.1设计任务:设计用单片机控制的十字路口交通灯系统,可以控制延时时间以及实现在交通事故时道口封锁、单方向通行的状态。
2.2设计要求:(1)设计接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图。
(2)编写程序实现下列功能:用红、绿、黄三支共两组发光二极管表示交通信号灯,利用单片机模拟有时间显示的定时交通信号灯控制管理。
信号灯的变化规律可如下:①放行线:绿灯亮放行25秒,黄灯亮警告5秒,然后红灯亮禁止。
②禁示线:红灯亮禁止30秒,然后绿灯亮放行。
③同时用2位数码管进行30秒钟递减时间显示。
(3)当有紧急事故时,封锁路口,当有特殊情况时可以单方向通过。
基于DSP实现道路交通灯控制系统设计
基于DSP实现道路交通灯控制系统设计道路交通灯控制系统是现代城市中的重要组成部分,它通过使用数字信号处理(Digital Signal Processing,DSP)技术,能够在不同的交通情况下实现自动化的交通信号控制。
本文将以DSP技术为基础,设计一种道路交通灯控制系统,并详细介绍其实现原理和设计步骤。
首先,我们需要明确系统的设计目标。
本文设计的道路交通灯控制系统旨在提高交通流畅性、减少交通拥堵、优化交通信号时长,并提高城市交通系统的效率和安全性。
设计步骤如下:(1)采集交通流量数据。
为了准确地控制交通信号灯的时长和变化,我们需要实时地获得各个道路的交通流量数据。
这可以通过在道路上安装传感器,如车辆、摄像头、雷达等,来检测交通流量和车辆速度信息。
然后,将这些数据传输给DSP系统进行处理和分析。
(2)信号处理和分析。
DSP系统将采集到的交通流量数据进行处理和分析,通过对交通数据的统计和分析,可以准确地估计出各个道路的交通状况,并预测未来一段时间内的交通流量。
这些分析结果将用作交通信号灯控制的依据。
(3)交通信号灯控制算法。
基于分析得到的交通数据,我们可以设计一种控制算法来自动化地控制交通信号灯的时长和变化。
这个算法可以根据交通流量来动态地调整不同方向的交通信号灯的时长。
例如,在交通繁忙时,可以适当延长绿灯亮起的时间,从而提高车辆通过的效率。
(4)控制信号输出。
根据控制算法的结果,DSP系统将输出控制信号,控制交通信号灯的时长和变化。
这个信号可以通过控制器直接控制交通信号灯的开关,使交通信号灯能够根据实际交通状况及时地调整和变化。
(5)实时监测和反馈。
为了保证交通信号灯控制系统的稳定性和可靠性,需要实时监测交通信号灯的状态和交通流量,在需要的时候进行调整和反馈。
这可以通过在交通信号灯上安装传感器,并将监测到的数据传输给DSP系统进行实时监测和分析。
通过以上设计步骤,基于DSP实现的道路交通灯控制系统能够自动化地根据实际交通状况来调整交通信号灯的时长和变化,提高交通系统的流畅性和效率,减少交通拥堵,提高交通安全性。
基于DSP的交通灯控制与设计毕业论文
本科生毕业(学位)论文论文题目:基于DSP的交通灯控制与设计学生姓名:庞文轩学号: 1415系别:电气信息系专业:电气工程及其自动化年级: 11级电气工程指导教师:张恒时间:2015年5月摘要数字信号处理(Digital Signal Processing,简称DSP)就是用数值计算的方式对信号进行加工的理论和技术,是一门涉及而又广泛应用于许多领域的学科。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波,执行转换或提取信息,从而处理现实信号。
这项技术在二十世纪六十年代从校园中兴起,到七十年代才由计算机实现部分实时处理,而多用于八十年代前后的高尖端领域。
陆续有公司设计出适合于DSP处理技术的处理器。
在过去的二十年中,数字信号处理技术飞速发展,在许多领域得到广泛的应用。
本设计是基于DSP原理,使用ICETEK-VC5509-A实验箱设计交通灯控制系统软硬件系统,同时利用DSP实验箱显示控制模块发光二极管的亮灭模拟十字路口交通信号,同时考虑紧急情况处理,模仿紧急情况发生时交警手动控制,利用TMS320VC5509DSP片上定时器定时产生时钟计数,再利用计数对应具体时间,设计模拟实际生活中十字路口交通灯。
【关键词】:DSP;TMS320VC5509;交通灯控制;发光二极管AbstractDigital Signal Processing is the theory and technology of signal processing by numerical calculation. It is a discipline that involves and is widely used in many fields .The purpose of digital signal processing is to measure or filter the continuous analog signal of the real world. In addition it can perform conversion or extract information to process the real signal. The technology emerged from the campus in the sixty's in twentieth Century, by the seventy's by the computer to achieve real-time processing. DSP used for high - point areas in eighty’s. One after another, the company has been designed for DSP processing technology processor. Over the past twenty years, the Digital Signal Processing technology had a rapid development and had a widely used in many areas. This design is based on DSP, operate atICETEK-VC5509-A experiment box to achieve the aim of controlling the software and hardware system. At the same time, the traffic signal of the traffic signal is simulated by the light of the DSP experimental box. We also consider processing emergency and imitate manual control by policeman when emergency happens. It can produce clock count by timer on TMS320VC5509DSP.And we can correspond the actual time by using count to design simulation of real life crossroads traffic lights. [Key Words]: DSP, TMS320VC5509, Traffic Light Control, LED目录1.绪论 (6)2.课程设计的目标 (7)2.1研究背景 (7)2.2 设计目的 (7)2.3 交通灯控制要求 (8)3.课程设计总体方案 (10)3.1 设计流程图 (10)3.2 系统工作原理 (10)4.DSP芯片介绍 (11)4.1 DSP芯片的特点 (11)4.2 DSP芯片的分类 (12)4.3 DSP芯片的选择 (12)4.4 所用DSP芯片介绍 (14)5.系统硬件设计 (15)5.1硬件组成 (15)5.2硬件各模块设计 (15)5.2.1 通用定时器部分 (15)5.2.2 时钟部分 (16)5.2.3 计数器部分 (16)5.2.4 JTAG插头部分 (16)5.2.5 存储空间部分 (17)5.2.6 I/O寄存器部分 (17)6.系统调试 (17)6.1电源调试 (17)6.2 Emulator调试 (18)6.3 USB驱动程序 (19)6.4 软件设置 (20)6.5程序运行 (22)6.6 系统联调 (22)7.软件部分设计 (24)7.1 总体设计流程 (24)7.2 时钟发生器 (24)7.2.1 时钟工作模式 (24)7.2.2 时钟模式的初始化设定 (24)7.3 信号灯控制模块 (24)7.4 通用定时器 (30)8.致谢 (32)参考文献 (33)附录............................................................................. 错误!未定义书签。
DSP课程设计交通灯控制设计报告
D S P课程设计交通灯控制设计报告IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】《D S P器件及应用》课程设计报告题目:基于DSP的交通灯控制系统的设计专业:电子信息工程班级:大探131班2016年6月28日评分表小组成绩:基于DSP的交通灯控制系统的设计ThedesignoftrafficlightcontrolsystembasedonDSP摘要随着计算机技术、网络技术的、通讯技术的飞速发展,这个世界已经步入了信息时代。
作为世界上最大的发展中国家,中国人的生活方式发生了巨大的变化。
经济在高速发展,城市化进程在不断加快,车辆猛增,城市交通问题成为一个日益引起人们关注的问题。
人、车、路三者关系的协调,成为交通管理部门需要解决的当务之急。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
如何采用合适的控制方法,最大限度利用好城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,成为交通运输管理和城市规划部门需要解决的问题之一。
数字信号处理器(DSP,即DigitalSignalProcessor)是进行数字信号处理的专用芯片,是伴随着微电子学、数字信号处理技术、计算机技术的发展而产生的新器件。
由于它特殊的结构设计,可以把数字信号处理中的一些理论和算法实时实现,因而在计算机应用领域中得到了广泛的使用。
本报告提出了基于DSP的交通灯控制系统的设计。
关键词:数字信号处理器(DSP),交通灯控制系统,三色灯目录1引言1.1课题背景1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
基于DSP的交通灯控制系统设计与实现
毕业设计(论文)基于DSP的交通灯控制系统设计与实现姓名系别、专业计算机科学系、通信工程导师姓名、职称完成时间目录摘要 (I)ABSTRACT ........................................................................................................ I I 1绪言 .. (1)2DSP与VISUAL C++技术简介 (1)2.1DSP概述 (1)2.2TMS320CF2812DSP结构以及组成 (3)2.3DSP的开发流程 (4)2.4C++语言 (6)3总体设计方案 (8)3.1系统功能描述 (9)3.2系统设计流程图 (10)3.3硬件设计 (11)3.4软件设计 (13)4系统测试 (20)4.1DSP系统测试环境 (20)4.2程序的调试 (23)4.3系统测试结果 (23)5总结 (26)参考文献 (27)致谢 .................................................................................. 错误!未定义书签。
摘要数字信号处理(Digital Signal Processing,DSP),是20世纪60年代前后发展并广泛应用于许多领域的学科。
20世纪70年代以来,随着大规模集成电路(LSI)和超大规模集成电路(VLSI)及微处理器技术的迅猛发展,数学信号处理的理论和技术得到长足发展,使其在数字通信、雷达、遥感、声纳、语音合成、图像处理、测量与控制、多媒体技术、生物医学工程及机器人等各个领域都得到广泛的应用。
交通拥堵在我国的大部分城市特别是大城市一直是一个难以解决的问题,也成为了困扰我国城市发展的一个大问题。
所以本设计是基于DSP原理设计的交通灯控制系统,采用的是软硬件结合的方法。
在硬件上利用TI公司德州仪器生产的用于工业自动控制TMSC320F2812系列的DSP芯片,四组发光二极管,在软件上使用CCS集成开发环境,在此环境中用C语言编写定时器程序来控制发光二极管的亮灭情况以达到模拟十字路口的交通灯,从而管理十字路口车辆的秩序,使交通畅通无阻。
用DSP的GPIO口实现控制交通灯
用DSP的GPIO口实现控制交通灯1.1实验目的(1)熟悉使用ICETEK–F2812-AE评估板控制ICETEK-CTR上交通灯的方法。
练习自主独立的设计,实现理论和实践的统一,提高自我动手能力。
(2)掌握TMS320F2812DSP定时器的使用和编程。
(3)掌握TMS320F2812DSP外中断的使用和编程。
(4)学习复杂控制程序设计思路。
(5)利用DSP开发环境CCS C2000对源程序文件进行编译、链接、装载调试,以完成基本的DSP项目文件设计。
(6)通过此次课程设计,学习DSPF2812芯片的I/O端口控制方法,熟悉字模的简单构建和使用,熟悉掌握在DSP软硬件环境下的程序开发流程,达到学以致用的目的。
1.2实验总体方案本次设计过程中主要利用了F2812的通用I/O来实现对东西南北方向红绿灯亮灭的控制,以及数码管显示的控制。
而实现定时的操作主要通过定时器0中断调用来实现。
硬件设计的总框图如下:1.3实验原理1.2.1 F2812中GPIO的介绍F2812有多达56个通用数字量输入输出端口(GPIO),其中绝大部分是通用I/O和专用功能复用引脚。
数字量I/O端口模块采用一种灵活配置的方法控制复用引脚功能。
GPxMUX寄存器:选择F2812的引脚操作模式。
GPxDIR寄存器:配置数字量I/O的方向。
GPxSET寄存器:对数字量进行置位。
GPxDAT寄存器:独立读/写I/O信号。
GPxQUAL寄存器:消除数字量I/O引脚的噪声信号。
GPxCLEAR寄存器:对数字量进行清零。
1.2.2定时器0及其中断介绍F2812器件上有3个32位的CPU定时器(TIMERO/1/2)。
定时器1和2留给实时操作系统DSP/BIOS使用,只有定时器0可以在应用程序中使用。
若处理器采用30MHz的外部时钟经过锁相环10/2倍频之后,系统时钟工作在150MHz,一旦定时器被使能,定时器时钟经过与预定标记数器递减计数,预订标计数器产生下溢之后向定时器的32位计数器借位。
基于某DSP实现道路交通灯控制系统设计
1 引言 (1)2项目设计实现功能 (2)2.1交通灯控制要求 (2)2.2 液晶显示器控制 (3)3 项目实现方案 (3)3.1项目设计整体思路 (3)3.2设计原理 (5)3.2.1 CPU定时器原理 (5)3.2.2 DSP外设中断扩展模块 (6)3.2.3 发光二极原理 (6)3.2.4 TMS320F28x DSP 的I/O (7)3.2.5 液晶显示器控制原理 (8)4 程序设计 (8)4.1 程序总体设计 (8)4.2 程序编写(见附页) (9)5 心得体会 (9)附页 (10)基于DSP实现道路交通灯控制系统设计摘要:DSP数字信号处理,是一门涉及多学科而又广泛应用于许多领域的新兴学科。
随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法。
本次设计是基于dsp原理设计交通灯控制系统软硬件系统,利用发光二极管亮灭模拟交通信号,数码管倒计时时间,利用TMS320F2812 DSP片上定时器产生时钟计数,设计模拟实际生活中的十字路口交通灯。
关键字:DSP;TMS320F2812;发光二极管;交通灯;Abstract: DSP digital signal processing, is a multidisciplinary and widely applied in many fields of the emerging discipline. Along with the computer and the rapid development of information technology, digital signal processing technology to emerge as the times require and develop rapidly. Digital signal processing is through the use of a mathematical skills to perform the conversion or extraction of information, to deal with real signal method. The design is based on the principle of DSP design of traffic light control system software and hardware system, using light-emitting diodes to eliminate simulated traffic signal countdown time, digital tube, the use of TMS320F2812 DSP on-chip timer generates a clock counting, designed to simulate the actual life of the crossroads traffic lights.Keyword: DSP; TMS320F2812; light emitting diode; traffic lights;1 引言交通是经济、社会发展的基础性产业,是社会、经济活动中人流、物流、资金流和信息流的主要流动方式。
DSP课程设计_交通灯综合控制器
湖南工程学院
课程设计
课程名称DSP原理及应用
课题名称交通灯综合控制器
专业测控技术与仪器
班级
学号
姓名
指导教师徐谦、林国汉、刘正青等
2013 年12 月23 日
湖南工程学院
课程设计任务书
课程名称DSP原理及应用
课题交通灯综合控制器
专业班级测控技术与仪器
学生姓名
学号
指导老师徐谦、林国汉、刘正青、万琴等审批黄峰、汪超、刘星平
任务书下达日期2013 年12 月23 日任务完成日期2014 年01 月03 日
电气信息学院课程设计评分表
指导教师签名:________________
日期:________________
注:①表中标*号项目是硬件制作或软件编程类课题必填内容;
②此表装订在课程设计说明书的最后一页。
课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。
基于DSP的交通路口智能行驶控制
一.实验目的基于DSP的交通路口智能行驶控制是自行在DSP2812上设计行驶控制方案,按照红灯停、绿灯行、黄灯准备的原则,实现在某陌生路段,其交通信号灯按绿灯-〉黄灯-〉红灯的次序循环点亮。
某汽车以50转/秒(10m/s,36 km/h)的速度匀速行驶进入该路段。
该汽车见到信号灯时,信号灯的状态随机,汽车与信号灯的距离随机,信号灯的保持时间随机。
二.实验设备计算机,ICETEK-F2812-EDU 实验箱(或ICETEK 仿真器+ICETEK-F2812-AE 系统板+相关连线及电源)。
三.实验原理1.键盘控制方法:键盘接收寄存器MCTRKEY 地址由0x108005 给出,键盘清除寄存器CTRCLKEY 地址由0x108006 给出。
使能液晶模块后,每当有键盘按下,MCTRKEY 中的相应位就会置1,向CTRCLKEY 中写入0 会将MCTRKEY 清零。
关于寄存器MCTRKEY 的详细描述见第二部分,第二章,二.ICETEK DSP 教学实验箱硬件编程。
2.扩展IO 接口:ICETEK-F2812-AE 是一块以TMS320F2812DSP 为核心的DSP 扩展评估板,它通过扩展接口与实验箱的显示/控制模块连接,可以控制其各种外围设备。
3.液晶显示模块的访问、控制是由F2812 DSP 对扩展接口的操作完成。
控制口的寻址:液晶屏幕指令寄存器LCDCOMMAND 的地址为0x108001,液晶屏幕参数寄存器LCDDATA 的地址为0x108002,液晶屏幕状态字寄存器LCDSTATUS 的地址为0x108000。
这几个寄存器的地址和说明请参考第二部分、第二章、五。
4.显示控制方法:本实验中使用已写好的库函数对液晶屏幕进行操作。
需要在工程文件中加入库lcd.lib 以及头文件lcd.h。
下面给出lcd.lib 的控制液晶屏幕的接口函数及其功能描述:LCDSetOrigin(int nX,int nY):重新设定新原点的位置,nX,nY 为新原点的坐标。
基于DSP的交通灯控制的设计
XXXXXX电子信息工程学院课程设计报告交通灯综合控制设计人:XXX专业:电子信息工程班级:电子班学号:指导教师:二零一X年X月目录1 设计目的及要求 (4)1.1设计目的 (4)1.2设计要求 (4)1.2.1交通灯控制 (4)1.2.2计时 (5)1.2.3紧急情况 (5)1.2.4 程序设计 (5)2 设计原理及方案 (7)2.1课程设计总体方案 (7)2.1.1设计思路 (7)2.2 课程设计原理 (7)2.2.1系统工作原理 (7)2.2.2 系统工作状态 (8)3 硬件设计 (10)3.1硬件总体设计 (10)3.2交通灯显示模块 (11)3.3计数显示模块 (12)3.4开关模块 (13)4 软件设计 (14)4.1程序流程 (14)4.2交通灯模拟显示 (15)4.3定时器及中断设计 (15)4.4外中断设计 (16)5 系统调试 (18)5.1硬件调试 (18)5.1.1电源调试 (18)5.1.2Emulator 调试 (18)5.2软件调试 (21)5.2.1软件设计 (21)5.2.2程序运行 (23)5.3 系统下载 (24)6 结论分析及体会 (25)7 参考文献 (26)1设计目的及要求1.1设计目的(1)熟悉使用 ICETEK–F2812-AE 评估板控制 ICETEK-CTR上交通灯的方法。
练习自主独立的设计,实现理论和实践的统一,提高自我动手能力。
(2)掌握 TMS320F2812DSP定时器的使用和编程。
(3)掌握 TMS320F2812DSP外中断的使用和编程。
(4)学习复杂控制程序设计思路。
(5) 利用 DSP开发环境 CCS C2000对源程序文件进行编译、链接、装载调试,以完成基本的DSP项目文件设计。
(6)通过此次课程设计,学习DSPF2812芯片的I/O 端口控制方法,熟悉字模的简单构建和使用,熟悉掌握在 DSP软硬件环境下的程序开发流程,达到学以致用的目的。
基于DSP的交通灯综合控制系统的设计
基于DSP的交通灯综合控制系统的设计————————————————————————————————作者:————————————————————————————————日期:基于DSP的交通灯综合控制系统的设计徐向美,黄乡生(东华理工大学电子与机械工程学院,江西抚州344000)摘要:介绍了一种基于DSP芯片TMS320VC5509A的交通灯综合控制系统的设计,主要采用了DSP中的定时器进行定时设计模拟实际生活中交通灯的控制情况。
关键词:DSP,交通灯控制中图分类号:TP273 文献标识码: B 文章编号:Abstract:Key Words:CLC number: TP273 Document code: B Article ID:1.引言随着社会经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
而DSP是伴随着微电子学、数字信号处理技术和计算机技术等学科的发展而产生的,是体现这三个学科综合科研成果的器件。
由于它特殊的结构设计,可以把数字信号处理中的一些理论和算法实时实现,并逐步进入了控制器市场,因而在计算机应用领域中得到了广泛的使用。
所以本文提出了基于DSP 的交通灯综合控制系统的设计。
2.器件选择本系统所采用的是TI公司的TMS320VC5509A,TMS320VC5509A是TI公司推出的定点数字信号处理器C5000系列中的一种,TMS320VC5509A通过增加乘累加MAC单元,增强了DSP的运算能力,而且性能更好,功耗更低,是目前TMS320家族中最省电的芯片。
DSP交通灯控制实验
交通灯控制实验一、实验目的1.熟悉2812的指令系统;2.熟悉74HC573的使用方法;3.熟悉DSP的IO操作使用方法。
二、实验设备1. 一台装有CCS软件的计算机;2.插上2812主控板的DSP实验箱;3. DSP硬件仿真器。
三、实验原理此模块由发光二极管和一个锁存器组成。
数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由CPLD模块译码后再控制锁存器。
74HC573功能:当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
四、实验步骤1.把2812模块小板插到大板上;2.在CC2000环境中打开本实验工程编译Example_ crossled.prj,生成输出文件,用过仿真器把执行代码下载到DSP芯片;3.运行程序,发光二极管按交通灯方式点亮熄灭;4.参考源代码,自行修改程序,实现不同的交通灯控制方式。
五、实验现象及分析实验运行程序后,发光二极管按交通灯方式点亮熄灭。
交通控制灯有红黄绿三种颜色组成,红灯代表停止,黄灯代表警示,绿灯代表通行,在车辆逐渐增多的今天,交通灯的出现大大缓解了交通堵塞,以及减少了交通事故的发生。
目前交通信号灯控制系统有多种的实现方法,比如可编程序控制器PLC、标准逻辑器件、单片机等方案来实现,本实验采用插上 2812 主控板的DSP 实验箱为核心器件配以数码显示管,发光二极管来进行交通控制灯的设计,采用CCS2000 软件来进行模拟仿真,提高了系统的可实用性,在教学过程中能够使授课内容及过程更加形象生动。
六、实验心得在本次实验中使我掌握了 2812的指令系统和74HC573的使用方法及IO口的操作使用方法、锁存器等硬件结构的工作原理。
进一步掌握用C语言编写DSP程序的方法,及编译、除错能力。
这次试验也遇到很多编程上的问题,例如在一句程序结束之后一定要注意要加分号,数据类型要设好等等。
基于DSP的交通灯控制的设计
基于DSP的交通灯控制的设计交通灯控制是城市交通管理中非常重要的一环,它能够有效地指导车辆和行人的通行,减少交通事故的发生,提高交通效率。
随着科技的不断进步,越来越多的交通信号灯控制系统采用数字信号处理(DSP)来管理和控制交通信号灯。
本文将详细介绍基于DSP的交通灯控制的设计。
首先,该交通灯控制系统采用DSP芯片作为核心处理单元。
DSP芯片具有高性能、高速度、低功耗等特点,能够实时处理信号和数据,并且可以灵活地进行编程和算法设计。
它能够通过与传感器和执行器的连接,实现对交通灯的控制和监测。
其次,该系统使用各种传感器来获取交通状况和环境信息。
例如,车辆检测器可用于检测车辆的数量和速度,行人检测器可用于检测行人的数量和位置。
此外,还可以使用环境监测器来获取天气状况、能见度等信息。
获取到的信息将送入DSP芯片进行处理和分析。
然后,基于DSP芯片,交通灯控制系统可以实时地根据交通情况来调整交通信号灯的状态。
通过分析传感器获取的数据,DSP芯片可以根据预先设计好的算法和规则,自动计算出最优的信号灯显示时间和相位。
例如,在车辆较少的情况下,可以适当延长其他方向的红灯时间,以提高交通的流畅性和效率。
此外,该系统还具有实时监测和自适应调整的功能。
监测模块可以不断地检测信号灯的状态、交通流量等信息,并实时反馈给DSP芯片。
DSP芯片可以根据这些反馈信息,进行实时调整和优化。
例如,如果检测到一些方向的车辆排队过长,可以自动增加该方向的绿灯时间,以缓解交通压力。
最后,该系统还可以集成交通管理中心,实现远程监控和调度。
交通管理中心可以通过与交通灯控制系统的通信接口,实时获取系统状态和交通状况,并远程控制信号灯的工作模式。
交通管理人员可以根据实时数据和分析结果,进行合理的调度和指挥,从而提高整个交通系统的效能。
综上所述,基于DSP的交通灯控制系统具有高性能、实时监测和智能优化的特点。
它能够通过与传感器和执行器的连接,实时获取和处理交通信息,根据交通状况来优化交通信号灯的控制策略。
基于.DSP实现道路交通灯控制系统设计
1 引言 (1)2项目设计实现功能 (2)2.1交通灯控制要求 (2)2.2 液晶显示器控制 (3)3 项目实现方案 (3)3.1项目设计整体思路 (3)3.2设计原理 (5)3.2.1 CPU定时器原理 (5)3.2.2 DSP外设中断扩展模块 (6)3.2.3 发光二极原理 (6)3.2.4 TMS320F28x DSP 的I/O (7)3.2.5 液晶显示器控制原理 (8)4 程序设计 (9)4.1 程序总体设计 (9)4.2 程序编写(见附页) (10)5 心得体会 (10)附页 (10)基于DSP实现道路交通灯控制系统设计摘要:DSP数字信号处理,是一门涉及多学科而又广泛应用于许多领域的新兴学科。
随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法。
本次设计是基于dsp原理设计交通灯控制系统软硬件系统,利用发光二极管亮灭模拟交通信号,数码管倒计时时间,利用TMS320F2812 DSP片上定时器产生时钟计数,设计模拟实际生活中的十字路口交通灯。
关键字:DSP;TMS320F2812;发光二极管;交通灯;Abstract: DSP digital signal processing, is a multidisciplinary and widely applied in many fields of the emerging discipline. Along with the computer and the rapid development of information technology, digital signal processing technology to emerge as the times require and develop rapidly. Digital signal processing is through the use of a mathematical skills to perform the conversion or extraction of information, to deal with real signal method. The design is based on the principle of DSP design of traffic light control system software and hardware system, using light-emitting diodes to eliminate simulated traffic signal countdown time, digital tube, the use ofTMS320F2812 DSP on-chip timer generates a clock counting, designed to simulate the actual life of the crossroads traffic lights.Keyword: DSP; TMS320F2812; light emitting diode; traffic lights;1 引言交通是经济、社会发展的基础性产业,是社会、经济活动中人流、物流、资金流和信息流的主要流动方式。
DSP交通灯综合控制
DSP原理及应用课程设计交通灯综合控制学院电气信息工程专业电子信息工程班级____________________学号____________________分组成员_______________________指导教师_______________________2013年6 月1 引言 (1)2 课程设计得目标 (2)2、1课程设计得背景.................................. 2.2、2设计要求......................................... 2.2、3设计思路简介..................................... 2.2、4交通灯控制要求.................................. 3.2、5交通灯模拟...................................... 3.2、6 计时........................................... 4..2、7紧急情况......................................... 4.2、8程序设计......................................... 4.3 DSP定时器得算法原理 (6)3、1 CPU定时器得原理 (6)3、2 CPU定时寄存器原理 (6)4 系统程序设计 (7)4、1流程图.......................................... 7..4、2试验程序......................................... 7.5 心得体会 (18)1引言随着计算机与信息技术得飞速发展数字信号处理技术得到迅速得发展。
DSP (Digital Sig nal Process ing就是一门涉及许多学科与领域得新兴学科。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP原理及应用课程设计交通灯综合控制学院电气信息工程专业电子信息工程班级学号分组成员指导教师2013 年 6 月目录1引言 (1)2课程设计的目标 (2)2.1课程设计的背景 (2)2.2设计要求 (2)2.3设计思路简介 (2)2.4交通灯控制要求 (3)2.5交通灯模拟 (3)2.6计时 (4)2.7紧急情况 (4)2.8程序设计 (4)3DSP定时器的算法原理 (6)3.1CPU定时器的原理 (6)3.2CPU定时寄存器原理 (6)4系统程序设计 (7)4.1流程图 (7)4.2试验程序 (7)5心得体会 (18)1引言随着计算机和信息技术的飞速发展数字信号处理技术得到迅速的发展。
DSP (Digital Signal Processing)是一门涉及许多学科和领域的新兴学科。
数字信号处理是一种通过数字信号处理器来处理现实信号的方法这些信号由数字序列表示。
在过去的二十多年时间里数字信号处理已经在通信等领域得到极为广泛的应用。
本次设计是基于DSP来实现交通灯的控制利用发光二级管来模拟交通信号利用数码管显示倒计时时间利用TMS320VC5416DSP片上定时器定时产生时钟计数来模拟实际生活中十字路口交通灯。
关键词:DSPTMS320VC5416;交通灯;发光二极管2课程设计的目标2.1课程设计的背景DSP是一种将处理器的计算核心和一定的外部设备集成在一个单片芯片上而构成的类似于单片机的一种处理器芯片。
不同于一般单片机的是由于DSP 采用了特殊的总线结构和体系因此它在执行数字信号处理计算方面具有更高的性能。
数字信号处理已经在通信、信号处理等领域得到极为广泛的应用。
十字路口交通灯在我们的日常生活中随处可见它为繁忙的道路交通及人们的安全提供了较好的保障。
然而我们只知道交通灯在红、黄、绿三色之间交替更换来控制人车流量去对其内部的工作原理及软硬件的设计了解很少因此要通过此次简单道路交通灯控制系统软硬件设计来进一步研究交通灯的内部结构。
最重要的是将学习到的DSP系统的组成与原理应用到交通灯的设计当中。
通过《DSP技术及应用》课程设计,是学生能够将学到的DSP系统的组成与原理用到具体的实际系统中,加深对DSP系统的理解,是将该门课程与实际问题相连接的关键步骤。
通过课程设计,能够提高学生分析问题,解决问题,从而运用所学知识解决实际问题的能力,并培养基本的、良好的软硬件射进能力。
2.2设计要求利用C语言在CCS环境中编写一个交通灯综合控制程序,并能通过硬件仿真对所编写的程序及其应用性、可行性进行验证。
2.3设计思路简介在TMS320C54x系统开发环境CCS(Code Composer Studio)下对交通灯综合控制的实现原理进行讨论。
通过实验仿真,可以在硬件实验箱上看到对交通灯的模拟控制。
交通等综合控制的控制原理2.4交通灯控制要求利用ICETEK-S60 实验箱提供的设备,设计模拟实际生活中十字路口交通灯控制的程序。
要求如下:- 交通灯分红黄绿三色,东、南、西、北各一组,用灯光信号实现对交通的控制:绿灯信号表示通行,黄灯表示警告,红灯禁止通行,灯光闪烁表示信号即将改变。
- 计时显示:液晶屏幕上8×8 点阵显示0-9 计数。
- 正常交通控制信号顺序:正常交通灯信号自动变换:⑴南北方向绿灯,东西红灯(20 秒)。
⑵南北方向绿灯闪烁。
⑶南北方向黄灯。
⑷南北方向红灯,东西方向黄灯。
⑸东西方向绿灯(20 秒)。
⑹东西方向绿灯闪烁。
⑺东西方向黄灯。
⑻返回⑴循环控制。
- 紧急情况处理:模仿紧急情况(重要车队通过、急救车通过等)发生时,交通警察手动控制⑴当任意方向通行剩余时间多于10 秒,将时间改成10 秒。
⑵正常变换到四面红灯(20 秒)。
⑶直接返回正常信号顺序的下一个通行信号(跳过闪烁绿灯、黄灯状态)。
2.5交通灯模拟利用ICETEK-CTR 上的一组发光二极管(共12 只,分为东西南北四组、红黄绿三色)的亮灭实现交通信号的模拟。
发光二极管的控制方法可参见第二部分、第二章、二、2。
2.6计时使用TMS320VC5416DSP 片上定时器,定时产生时钟计数,再利用此计数对应具体时间。
定时器控制及中断编程可参考实验3.3 程序。
2.7紧急情况利用ICETEK-CTR 上键盘产生外中断,中断正常信号顺序,模拟突发情况。
外中断编程控制可参考实验3.4 程序。
2.8程序设计根据设计要求,由于控制是由不同的各种状态按顺序发生的,我们可以采用状态机制控制方法来解决此问题。
这种方法是:首先列举所有可能发生的状态;然后将这些状态编号,按顺序产生这些状态;状态延续的时间用程序控制。
对于突发情况,可采用在正常顺序的控制中插入特殊控制序列的方式完成。
时钟计数:采用250ms 一次中断进行累加计数。
表格 1其中,正常顺序每112 秒(计数值448)为一个循环,状态“*”为非顺序状态。
这样,只要根据计数值就可确定当前状态,根据状态再分情况处理。
对于计数显示,当处于状态1、5、*中时需要进行倒计时,需要计算在此状态中的计数值增量,根据增量判断是否更新计数显示。
3DSP定时器的算法原理3.1CPU定时器的原理本次设计主要用的是F2812器件上的3个32位CPU定时器(TIMER0/1/2)。
其中定时器1和定时器2预留给实时操作系统使用(如DSP-BIOS),只有定时器0用户可以在应用程序中使用。
定时器功能框图如下:3.2CPU定时寄存器原理定时器在工作过程中,首先把周期寄存器(PRDH:PRD)的值装入32位计数寄存器。
计数寄存器根据SYSCLKOUT时钟递减计数。
当计数寄存器等于0时,定时器中断输出产生一个中断脉冲。
(1)定时器计数寄存器(TIMERxTIM和TIMERxTIMH)(2)定时器控制寄存器(TIMERxTCR):使能中断,定时功能;(3)定时器周期寄存器(TIMERxPRD):符合条件则周期性重新装载并保存周期值(4)定时器预定标寄存器(TIMERxTPR和TIMERxTPRH):控制多久减1。
4系统程序设计4.1流程图图4-1实验程序流程图图4-2设计总流程图设计总流程图4.2试验程序#include "scancode.h"#define SPSA0 *(unsigned int *)0x38#define SPSD0 *(unsigned int *)0x39#define REGISTERCLKMD (*(unsigned int *)0x58)#define TIM *(int *)0x24#define PRD *(int *)0x25#define TCR *(int *)0x26#define IMR *(int *)0x0 //IM R中断屏蔽寄存器#define IFR *(int *)0x1 //IFR中断标志寄存器#define PMST *(int *)0x1d //PMST处理器模式状态寄存器(地址1dh)#define nStatusNSGreenEWRed 160 //状态1计数结束时间#define nStatusNSFlashEWRed 184#define nStatusNSYellowEWRed 200#define nStatusNSRedEWYellow 216#define nStatusNSRedEWGreen 376#define nStatusNSRedEWFlash 400#define nStatusNSRedEWYellow1 416#define nStatusNSYellowEWRed1 432#define nTotalTime 448#define nStatusHold 160#define statusNSGreenEWRed 0#define statusNSFlashEWRed 1#define statusNSYellowEWRed 2#define statusNSRedEWYellow 3#define statusNSRedEWGreen 4#define statusNSRedEWFlash 5#define statusHold 6#define LCDDELAY 1#define LCDCMDTURNON 0x3f#define LCDCMDTURNOFF 0x3e#define LCDCMDSTARTLINE 0xc0#define LCDCMDPAGE 0xb8#define LCDCMDVERADDRESS 0x40ioport unsigned int port3004;// CTR扩展寄存器定义ioport unsigned int port8000;ioport unsigned int port8001; //8001:读键盘扫描值,写液晶控制寄存器地址ioport unsigned int port8002; //8002:液晶控制寄存器地址ioport unsigned int port8003; //8003,8004:液晶显示数据寄存器地址ioport unsigned int port8004; //ioport unsigned int port8005; //8005:发光二极管显示阵列控制寄存器地址ioport unsigned int port8007; //8007:发光二极管显示阵列控制寄存器地址#define CTRGR port8000#define CTRLCDCMDR port8001#define CTRKEY port8001#define CTRCLKEY port8002#define CTRLCDCR port8002#define CTRLCDLCR port8003#define CTRLCDRCR port8004#define CTRLA port8005#define CTRLR port8007void InitDSP(); //void表示此函数为空类型,执行此函数后不产生函数值void InitTimer();void InitICETEKCTR();void interrupt time(void);void interrupt xint2(void); // XINT2中断服务程序void SetLEDArray(int nNumber); // 修改显示内容void RefreshLEDArray(); // 刷新显示void EndICETEKCTR();void TurnOnLCD();void LCDCLS();void Delay(unsigned int nDelay);unsigned int uWork,nTimeCount;unsigned int uLightStatusEW,uLightStatusSN;unsigned int bHold;unsigned char ledbuf[8],ledx[8];unsigned char led[40]={0x7E,0x81,0x81,0x7E,0x00,0x02,0xFF,0x00,0xE2,0x91,0x91,0x8E,0x42,0x89,0x89,0x76,0x38,0x24,0x22,0xFF,0x4F,0x89,0x89,0x71,0x7E,0x89,0x89,0x72,0x01,0xF1,0x09,0x07,0x76,0x89,0x89,0x76,0x4E,0x91,0x91,0x7E};unsigned char ledkey[10][8]={{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2{0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00},{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}};main(){int nWork1,nWork2,nWork3,nWork4,tKey;int nNowStatus,nOldStatus,nOldTimeCount,nSaveTimeCount,nSaveStatus; unsigned int nScanCode;nTimeCount=0; bHold=0;uLightStatusEW=uLightStatusSN=0;nNowStatus=0; nOldStatus=1; nOldTimeCount=0;InitDSP(); // 初始化DSP,设置运行速度InitICETEKCTR(); // 初始化显示/控制模块InitTimer(); // 设置定时器中断// 根据计时器计数切换状态// 根据状态设置计数和交通灯状态while ( 1 ){if ( bHold && nNowStatus==statusHold ){if ( nTimeCount>=nStatusHold ){nNowStatus=nSaveStatus;nTimeCount=nSaveTimeCount;bHold=0;}}else if ( nTimeCount<nStatusNSGreenEWRed ) nNowStatus=statusNSGreenEWRed;else if ( nTimeCount<nStatusNSFlashEWRed ) nNowStatus=statusNSFlashEWRed;else if ( nTimeCount<nStatusNSYellowEWRed ) nNowStatus=statusNSYellowEWRed;else if ( nTimeCount<nStatusNSRedEWYellow ) nNowStatus=statusNSRedEWYellow;else if ( nTimeCount<nStatusNSRedEWGreen ) nNowStatus=statusNSRedEWGreen;else if ( nTimeCount<nStatusNSRedEWFlash ) nNowStatus=statusNSRedEWFlash;else if ( nTimeCount<nStatusNSRedEWYellow1 ) nNowStatus=statusNSRedEWYellow;else if ( nTimeCount<nStatusNSYellowEWRed1 ) nNowStatus=statusNSYellowEWRed;if ( nNowStatus==nOldStatus ){switch ( nNowStatus ){case statusNSFlashEWRed:nWork1=nTimeCount-nStatusNSGreenEWRed;nWork2=nStatusNSYellowEWRed-nStatusNSFlashEWRed;nWork3=nWork2/3;nWork4=nWork3/2;if ( nWork1>=0 && nWork2>0 && nWork3>0 && nWork4>0 )uLightStatusSN=( (nWork1%nWork3)<=nWork4 )?(0x49):(0x40); //满足条件,取0x49地址的值,否则,取0x48的值break;case statusNSRedEWFlash:nWork1=nTimeCount-nStatusNSRedEWGreen;nWork2=nStatusNSRedEWYellow1-nStatusNSRedEWFlash;nWork3=nWork2/3;nWork4=nWork3/2;if ( nWork1>=0 && nWork2>0 && nWork3>0 && nWork4>0 )uLightStatusEW=( (nWork1%nWork3)<=nWork4 )?(0x09):(0x00);break;case statusNSGreenEWRed:nWork1=nStatusNSGreenEWRed/20;if ( nWork1>0 ){nWork2=20-nTimeCount/nWork1;if ( bHold ){if ( nWork2>10 ){nTimeCount=nWork1*10;nWork2=10;}}if ( nOldTimeCount!=nWork2 ){nOldTimeCount=nWork2;SetLEDArray(nWork2);}}break;case statusNSRedEWGreen:nWork1=(nStatusNSRedEWGreen-nStatusNSRedEWYellow)/20;if ( nWork1>0 ){nWork2=20-(nTimeCount-nStatusNSRedEWYellow)/nWork1;if ( bHold ){if ( nWork2>10 ){nTimeCount=nStatusNSRedEWYellow+nWork1*10;nWork2=10;}}if ( nOldTimeCount!=nWork2 ){nOldTimeCount=nWork2;SetLEDArray(nWork2);}}break;case statusHold:nWork1=nStatusHold/20;if ( nWork1>0 ){nWork2=20-nTimeCount/nWork1;if ( nOldTimeCount!=nWork2 ){nOldTimeCount=nWork2;SetLEDArray(nWork2);}}break;}}else{if ( bHold ){nSaveStatus=nNowStatus;nSaveTimeCount=nTimeCount;nNowStatus=statusHold;nTimeCount=0;if ( nSaveStatus==statusNSFlashEWRed || nSaveStatus==statusNSYellowEWRed ){nSaveStatus=statusNSRedEWGreen;nSaveTimeCount=nStatusNSRedEWYellow;}else if ( nSaveStatus==statusNSRedEWFlash || nSaveStatus==statusNSRedEWYellow ){nSaveStatus=statusNSGreenEWRed;nSaveTimeCount=0;}}nOldStatus=nNowStatus;switch ( nNowStatus ){case statusNSGreenEWRed:uLightStatusEW=0x24; uLightStatusSN=0x49;SetLEDArray(20);break;case statusNSFlashEWRed:uLightStatusEW=0x24; uLightStatusSN=0x49;SetLEDArray(0);break;case statusNSYellowEWRed:uLightStatusEW=0x24; uLightStatusSN=0x52;SetLEDArray(20);break;case statusNSRedEWYellow:uLightStatusEW=0x12; uLightStatusSN=0x64;SetLEDArray(20);break;case statusNSRedEWGreen:uLightStatusEW=0x09; uLightStatusSN=0x64;SetLEDArray(20);break;case statusNSRedEWFlash:uLightStatusEW=0x09; uLightStatusSN=0x64;SetLEDArray(0);break;case statusHold:uLightStatusEW=0x24; uLightStatusSN=0x64;SetLEDArray(20);break;}}CTRLR=uLightStatusEW; CTRLR=uLightStatusSN; // 设置交通灯RefreshLEDArray(); // 刷新发光二极管显示nScanCode=port8001; // 读键盘扫描码nScanCode&=0x0ff;tKey=CTRCLKEY;if ( nScanCode==SCANCODE_9 ) break;}EndICETEKCTR();exit(0);}// 定时器中断服务程序,进行时钟计数void interrupt time(void){nTimeCount++;nTimeCount%=nTotalTime;}// 设置发光二极管显示内容void SetLEDArray(int nNumber){int i,ShowNumber;ShowNumber=nNumber/2;if(ShowNumber>9) ShowNumber=0; CTRLCDCMDR=LCDCMDPAGE; // 设置操作页=0 Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS; // 起始列=0 Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( i=0;i<8;i++ ){CTRLCDLCR=ledkey[ShowNumber][i];Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}}// 将缓存中点阵送发光二极管显示void RefreshLEDArray(){int i;for ( i=0;i<8;i++ )CTRGR=ledx[i];CTRLA=ledbuf[i];}}// 初始化DSP,设置运行速度=8MHzvoid InitDSP(){REGISTERCLKMD=0; // 复位PLLREGISTERCLKMD=0x1007; // 速度设置=16MHz}// 设置定时器参数、允许中断void InitTimer(){unsigned int k;asm(" ssbx INTM"); // 关中断,进行关键设置时不许打扰// 设置通用定时器k=PMST; // 设置PMST寄存器PMST =k&0xff; // 中断向量表起始地址=80HIMR = 0x0c; // 使能TINTTCR = 0x41f; // 预分频系数为16TIM = 0; // 时钟计数器清0PRD = 0x0f423; // 周期寄存器为0ffHTCR = 0x42f; // 复位、启动IFR = 0x0c; // 清中断标志位port3004=0; // 使能XINT2asm(" rsbx I NTM"); // 开中断}// 初始化ICETEK-CTR板上设备void InitICETEKCTR(){int k;CTRGR=0; // 初始化ICETEK-CTRCTRGR=0x80;CTRGR=0;CTRLR=0; // 关闭东西方向的交通灯CTRLR=0x40; // 关闭南北方向的交通灯CTRLR=0x0c1; // 开启发光二极管显示阵列CTRLR=0xc8; //使能外部中断for ( k=0;k<8;k++ ){ledbuf[k]=0x0ff; // 显示为空白ledx[k]=(k<<4); // 生成显示列控制字k=CTRCLKEY; // 清除键盘缓冲区TurnOnLCD(); // 打开显示LCDCLS(); // 清除显示内存CTRLCDCMDR=LCDCMDSTARTLINE; // 设置显示起始行CTRLCDCR=0;}void interrupt xint2(void) // XINT2中断服务程序{bHold=1;}void EndICETEKCTR(){int k;CTRLR=0; // 关闭东西方向的交通灯CTRLR=0x40; // 关闭南北方向的交通灯CTRLR=0x0c0; // 关闭发光二极管显示阵列k=CTRCLKEY; // 清除键盘缓冲区}void TurnOnLCD(){CTRLCDCMDR=LCDCMDTURNON;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDSTARTLINE;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}void LCDCLS(){int i,j;CTRLCDCMDR=LCDCMDSTARTLINE;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( i=0;i<8;i++ ){CTRLCDCMDR=LCDCMDPAGE+i;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( j=0;j<64;j++ ){CTRLCDLCR=0;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}CTRLCDCMDR=LCDCMDPAGE+i;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( j=0;j<64;j++ ){CTRLCDRCR=0;Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);}}}void Delay(unsigned int nDelay){int ii,jj,kk=0;for ( ii=0;ii<nDelay;ii++ ){for ( jj=0;jj<1024;jj++ ){kk++;}}}5心得体会这次DSP课程设计前前后后一共用了一周左右的时间,期间也遇到了很多的困难,主要是对DSP的中断不够熟悉,以及对课上老师讲过的知识点的掌握还不够深刻,所幸通过查阅大量的资料,以及同老师同学的讨论,最终问题得以顺利解决,收获颇丰,有一种柳暗花明的感觉。