




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统课程设计报告题目:智能交通灯控制系统姓名: 学 号:年 级 学 院:专业班级:华南理工大学二一年四月1.课程设计项目介绍 1.1 项目的设计任务。设计一个十字路口的交通灯控制电路, 要求南北方向和东西方向两个交叉路口的车辆交替运行。在绿灯转为红灯时, 要求黄灯先亮3秒钟, 才能变换运行车道。 东西方向、南北方向车道除了有红、黄、绿灯指示外, 每一种灯亮的时间都用数码管显示器进行显示( 采用倒计时的方法)。可以人工设定南北方向通行,东西方向停止。或东西方向通行,南北方向停止。可以通过电脑串行通信控制南北方向,东西方向红绿灯的时间长短。 可以通过响应外部按钮统计东西和南北方向的车流量,并且通过车流量的多少智能决定绿灯的时间长短。 1.2 项目方案的选择。 在Keil软件中编写所有C语言代码,同时编译生成 .hex文件用于在Proteus模拟器下的模拟。在原有红绿灯控制系统的基础上,添加根据流量智能控制红绿灯的时间功能以及通过串口通讯控制红绿灯的时间功能。 1.3 项目的功能。 1) 实现传统交通灯基本功能; 2) 实现基于车流量的红绿灯时间控制的功能; 3) 实现串口通讯控制红绿灯时间的功能。2.项目整体结构说明2.1硬件设计。1个89C51 单片机用于系统控制4个7SEG-MPX2 用于红绿黄灯时间的显示12个LED 用于红绿黄灯的闪烁1个MAX232和1个串口用于串口通讯5个按钮用于外部功能(如:东西单向通行,南北单向通行,流量统计控制按钮等)的响应电源电路:用于+5V直流电源晶振电路:提供稳定的时钟周期Reset电路: 用于系统的重启2.2软件设计。串口通信模块智能交通控制系统系统初始化模块正常工作模块按钮功能选择模块单向通行模块流量智能控制模块3.硬件设计3.1 硬件电路整体说明。1个89C51 单片机用于系统控制4个7SEG-MPX2 用于红绿黄灯时间的显示12个LED 用于红绿黄灯的闪烁1个MAX232和1个串口用于串口通讯5个按钮用于外部功能(如:东西单向通行,南北单向通行,流量统计控制按钮等)的响应电源电路:用于+5V直流电源晶振电路:提供稳定的时钟周期Reset电路: 用于系统的重启3.2 电源电路。220V的交流电经过6V0.5A的变压器降压后获得6V交流电源,经过D1,D2,C1全波整流滤波后,在经过7805 C2取得+5V1A直流电源。这个电源将作为单片机以及后级显示电路的动力。3.3 晶振电路。晶振是为电路提供频率基准的元器件,通常分成有源晶振和无源晶振两个大类,无源晶振需要有内部的振荡器,本实验模拟器就采用了11.0592MHz的内部晶振频率,在实际应用中有源晶振不需要芯片内部振荡器,可以提供高精度的频率基准以及更好的信号质量。3.4 Reset电路。 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。下图所示是基本的Reset电路。3.5 串口通信电路。 串口通信电路用于单片机与串口的通信, 之所以采用MAX232芯片,是因为MAX232是专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。MAX232是电荷泵芯片,可以完成两路TTL/RS-232电平的转换,它的的9、10、11、12引脚是TTL电平端,用来连接单片机的。 3.5七段数码管显示电路 在某个时钟周期内,只有一个七段数码管工作,因而在一定时间内,两个数码管交替工作,人眼无法分辨出只有一个七段数码管在显示,选择哪个七段数码管由1、2端口控制,单个数码管的控制由ABCDEFG端口控制。4.软件设计4.1软件模块划分。4.2 串口通信模块(1)主要功能。 通过串口单片机可以接受数据来控制红绿灯的显示时间,由于单片机的定时器1在接下来的流量智能控制模块中用于定时统计的时间,而串口通信波特率的设置需要用到定时器1,因而为了程序实现的方便,将串口通信模块放在主程序的最前面,程序运行后将不能通过串口修改红绿灯的时间。(2)主要结构。配置定时器1 配置串口通信相关寄存器串口数据获取字符转换为红绿灯时间(3)每个软件函数说明。函数名: serial_communication函数原形: void serial_communication()功能描述: 通过串口接受数据并将字符转化为数字输入参数: 无返回值: 无(4)所用到的全局变量说明。uint shiwei; /用于串口通讯的十位数的存储uint gewei; /用于串口通讯的个位数的存储?unsigned char temp; /用于暂存串口输入字符unsigned int j; /用于串口输入字符的个数4.3 初始化模块(1)主要功能。 本模块主要对相关定时器及部分全局变量进行初始化设置。(2)每个软件函数说明。函数名: Init函数原形: void Init(void)功能描述:对相关定时器及部分全局变量进行初始化设置。输入参数: 无返回值: 无(3)所用到的全局变量说明。 uint a; /定时器1的定时周期数初始化为200 uint equalTime;/东西和南北流量相等次数初始化为0 uint KeyFunction; /用于按钮功能的选择4.4 按钮功能选择模块(1)主要功能。 通过外部按钮实现对交通灯单向通行、正常模式以及流量统计等功能。外部按钮的响应(KeyDetect)(2)主要结构。 判断是哪个按钮按下?南北流量自增南北单向通行东西流量自增东西单向通行正常工作模式通过比较东西和南北流量智能增减绿灯时间(3)每个软件函数说明。 函数名: KeyDetect函数原形: void KeyDetect(void)功能描述: 检测哪个外部按钮被按下以及车流量的统计输入参数: 无返回值: 无函数名: timer0函数原形: void timer0() interrupt 1功能描述: 定时器1的中断处理程序,用于红绿灯显示时间的定时控制输入参数: 无返回值: 无函数名: timer1函数原形: void timer1() interrupt 3功能描述: 在定时器1中断时对定时器进行重新设置,以及在定时10秒内通过changeTime 函数实现对红绿灯时间的修改输入参数: 无返回值: 无函数名: changeTime函数原形: void changeTime()功能描述: 根据流量的统计信息对红绿灯的时间进行智能的修改输入参数: 无返回值: 无函数名: main函数原形: void main(void)功能描述: 实现对红绿灯正常工作模式、东西或者南北单向通行时的LED及七段数码管的显示控制输入参数: 无返回值: 无(4)所用到的全局变量说明。uchar h;uchar KeyFunction;uint r=0;uint s;uint Times1;volatile uint Times2;uint a; /定时器1的定时周期的个数uint North_South_count; /南北方向流量计数器uint West_East_count; /东西方向流量计数器uint equalTime; /东西和南北流量相等次数uint greenTime; /东西方向绿灯时间,则南北方向为20-105.项目的实现和测试5.1 系统实现。 智能交通灯控制系统的是实现是基于原有交通灯控制系统的基础上实现的,在原有基础上添加了通过过去10秒内(可以通过程序任意设置)的车流量对红绿灯的时间进行智能设置,以及通过串口通信实现对红绿灯时间的设置的功能。整个项目的难点和重点在于: 1) 如何实现车流量的获得不影响红绿灯的正常工作模式,解决办法是当有流量按钮按下时,在函数KeyDetect中直接实现车流量的累加,同时将KeyFunction重设为0,即正常工作模式;2) 另一个难点在于如何根据车流量对红绿灯的时间进行智能设置,这里我们假设东西和南北方向的绿灯总时间为20秒,在初始状态下为东西和南北均为10秒,根据流量的变化使绿灯时间在515秒内浮动,若连续出现两次两方向流量相等的情况,则绿灯时间重设为初始的10秒。3) 另外一个重点实现的功能是串口通信对红绿灯的初始时间进行设置,这里简单地连续获取了两次字符数据,并且通过ASCII码转化得到一个两位数绿灯时间。5.2 系统测试。1)程序开始先通过虚拟终端输入一个两位数,该两位数即为要设置的初始东西方向的绿灯时间,则南北方向的绿灯时间为20减去此两位数,红灯时间可以通过绿灯时间及黄灯时间计算出;2)程序进入正常工作模式后,按下东西单向通行按钮即可使交通灯东西方向通行,南北禁行,南北单向通行类似;3)按下Normal Condition键可以使程序恢复正常工作模式;4)在正常工作模式状态下,通过两个模拟流量统计按钮可以分别使该方向自增。5.3 系统功能。 经测试,系统可以在串口通信模块未加入时实现对交通灯的智能控制,加入串口通信后交通灯可以正常工作,智能控制模块暂时无法正确运行。 正常工作模式截图:单向通行时截图:串口通信模式下运行:6.感想陈铭洙的感想: 此次嵌入式课程设计我们选择了智能交通灯控制系统,主要实现的功能除了交通灯的常规工作模式外,还添加了通过流量智能控制红绿灯时间的功能,另外还简单实现了通过串口输入绿灯时间的功能,这两个功能中第一个功能的实现比较复杂些,我们的基本想法就是在最近的若干秒内(这里选择了10秒),东西或者南北方向的车流量大的一方在下一个红绿灯周期内绿灯时间将自增1秒,相应地,另一个路口的红灯时间也增加1秒,但是自增不是无限的,我们限定了绿灯时间的浮动范围是在515秒。对于车流量如何统计,我们考虑了最简单实现方法,即按钮按下一次则流量增加1,当然在实际应用中就需要类似于红外感应的感应器材才能实现,另外,怎么样界定最近的10秒,我们考虑通过89C51芯片的定时器中断来实现,但是基于原有的交通灯控制系统,定时器0已经被使用了,因而我们启用了定时器1。具体实现的过程中叶遇到了比较多的细节问题,如:如何是统计流量的按钮不影响交通灯正常的工作模式,流量长时间没有变化的情况下如何处理等,这些问题在设计报告中都有具体的阐述。通过此次嵌入式课程设计,我基本熟悉了简单嵌入式系统的开发过程。首先是要有对硬件的设计,而不只是芯片的选择,当然在这里我们用的是Proteus模拟器,很多电路已经不用我们配置,这和现实生活还是有区别的,模拟的结果不一定也就准确。接着是软件部分的实现,这里是智能交通灯控制系统的实现,通过程序控制整个硬件电路的运行。完成软件部分的设计后,接下来就是对软件的在硬件系统上的测试,这里是通过模拟器实现的测试,测试中对软件部分的缺陷或者不足进行修改。王维的感想:刚开始做这个系统的时候,想在给的例子程序中有所创新,要充分利用自己已学的知识加上自己的创新,就想到了一个车流量的只能控制与串口通讯来控制交通灯的显示时间。那么关键点同时也是难点就在于在不影响原有功能的基础上进行定时器的设置与相应以及串口的通讯及响应。具体开发的难点有定时器的设置,需要通过要求的时间来设置定时器T1的值,并带有中断响应,各个寄存器位的设置要很小心。这个问题同样出现在串口通信模块,因为在串口中利用中断使我们的正常程序无法工作,所以现在的程序还只能在程序开始的时候利用串口来设置交通灯的时间值。通过这个课程设计,我大体了解了嵌入是开发主要包括以下几个步骤:1、系统需求分析:这里主要确定设计任务和设计目标,一般分为功能性需求和非功能性需求两个方面。交通灯就包括要实现基本引导功能,智能流量控制,以及自定义显示时间的功能需求,以及响应时间短,耗电少等非功能需求2、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年酒类企业定制化产品销售合同
- 二零二五版工地施工废弃物清运合同台账
- 2025版苹果出口贸易代理收购合同范本
- 2025版教育机构教职工聘用合同标准文本
- 二零二五年度高考冲刺辅导合同范本
- 2025版木材电商平台木材售后服务合同
- 二零二五年度房屋买卖市场调研委托合同
- 二零二五年度智能家居项目股权转让协议多方合作框架协议
- 二零二五年度电子商务平台用户隐私保密合同样本
- 二零二五年度绿色生态地面施工合同样本
- 城市发展史起源演变和前景概述课件
- 麻醉术后护理业务学习
- 人教版高二语文必修四《中华文化精神》教学设计
- 初中数学-综合与实践 哪一款“套餐”更合适教学课件设计
- 采油采气井控题库
- Cpk 计算标准模板
- 精选浙江省普通高中生物学科教学指导意见(2023版)
- “魅力之光”核电知识竞赛试题答案(二)(110道)
- 外科学课件:食管癌
- 汽机专业设备运行日常点检
- GB/T 2820.12-2002往复式内燃机驱动的交流发电机组第12部分:对安全装置的应急供电
评论
0/150
提交评论