基于51单片机的十字路口交通灯控制系统设计(含源码及仿真图).pdf

上传人:wj151****6093 文档编号:80919935 上传时间:2023-03-23 格式:PDF 页数:19 大小:1.03MB
返回 下载 相关 举报
基于51单片机的十字路口交通灯控制系统设计(含源码及仿真图).pdf_第1页
第1页 / 共19页
基于51单片机的十字路口交通灯控制系统设计(含源码及仿真图).pdf_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《基于51单片机的十字路口交通灯控制系统设计(含源码及仿真图).pdf》由会员分享,可在线阅读,更多相关《基于51单片机的十字路口交通灯控制系统设计(含源码及仿真图).pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 课程设计任务书 课 程 名 称 单片机原理及应用课程设计 院 部 名 称 信息技术学院 专 业 计算机科学与技术 班 级 09 计(嵌入式系统方向)姓 名 学 号 *指 导 教 师 刘 钰 金陵科技学院教务处制 摘要 本文介绍了一个基于 MCS-51 及 PROTEUS 的十字路口交通灯控制系统的设计与仿真,通过对现实路况交通灯的分析研究,理解交通控制系统的实现方法。十字路口交通灯控制系统通常要实现自动控制和在紧急情况下禁止普通车辆,而让紧急车辆优先通行。本文还对 MCS-51 单片机的结构特点和重要引脚功能进行了介绍,同时对智能交通灯控制系统的设计进行了详细的分析。最后介绍了 PROTEU

2、S 嵌入式系统仿真与开发平台的使用方法,利用 Proteus软件对交通灯控制系统进行了仿真,仿真结果表明系统工作性能良好。关键字:单片机,proteus 仿真,中断,十字路口交通灯控制系统前言 1,十字路口的交通控制系统指挥着人和各种车辆的安全运行,对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。交通灯信号灯的出现是人类历史上的一次重大改革,使人类的聚居生活,产生了深远的影响。使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。如何采用合适的控制方法,最大限度利用好耗

3、费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。2,此十字路口交通灯控制系统,分东西道和南北道,设东西道为 A 道,南北道为 B道。规定:A 道放行时间为 2 分钟,B 道放行 1.5 分钟;绿灯放行,红灯停止;绿灯转红灯时,黄灯亮 2 秒钟;若有紧急车辆要求通过时,此系统应能禁止普通车辆,而让紧急车辆通过。3,应用单片机实现对交通灯的控制,在十字路口用红,黄,绿的指示灯,加上四个以倒计时显示的数码管来控制交通。考虑到紧急车辆,设

4、计紧急车辆开关。一、正文 4.1 芯片介绍 AT89C51 是一种带 4K 字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51

5、 是一种高效微控制器。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 4.2 交通灯状态 北 B A A B S1:东西通行,南北禁止 S2:东拐南,西拐北通行 S3:南北通行,东西禁止 S4:北拐东,南拐西通行 S1 状态 120 秒,S2 状态

6、20 秒,S3 状态 90 秒,S4 状态 20 秒,循环执行。4.3设计步骤 1,利用 proteus 7.5 sp3 仿真软件绘制仿真实例 1 用 traffic lights 和一个绿色 LED 灯表示红、黄、绿,以及允许左拐的信号灯。2 用 P0 口控制交通灯,用 P1 口控制数码管的段选,P2 口控制数码管的位选。3 P3.6 和 P3.7 接收中断信号并返回给 INT0 接口处理。2,利用 Keil 软件按要求编写程序实现相应功能。五、硬件设计 5.1 通过proteus 7.5 sp3 设计如下仿真图:S1 状态:黄灯亮:S2状态:黄灯亮:S3 状态:黄灯亮:S4 状态:黄灯亮:

7、六、软件设计 6.1 系统流程图 主程序 开始 设置中断工作方式、触发方式、初始化 是否有中断 运行过程 执行中断 Y N 中断结束,退出中断,返回 6.2 定时器原理 定时器工作的基本原理其实就是给初值,让它不断加 1 直至减完为模值,这个初值是送到 TH 和 TL 中的。它是以加法记数的,并能从全 1 到全 0 时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为 C,把计数初值设定为 TC 可得到如下计算通式:TC=M-C 式中,M 为计数器模值。计数值并不是目的,目的是时间值,设计 1 次的时间,即定时器计数脉冲的周期为 T0,它是单片机系统主频周

8、期的 12 倍,设要求的时间值为 T,则有 C=TT0。计算通式变为:T=(MTC)T0 模值和计数器工作方式有关。在方式 0 时 M 为 8192;在方式 1 时 M 的值为 65536;在方式 2 和 3 为 256。就此可以算出各种方式的最大延时。如单片机的主脉冲频率为12MHZ,经过 12 分频后,若采用方式最大延时只有 8.129 毫秒,采用方式最大延时也只有 65.536 毫秒。这就是为什么扫描周期为 50ms 的原因,若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只用计数器,因为显然秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才

9、能解决这个问题。6.3 软件延时原理 MCS-51 的工作频率为 12MHZ,机器周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时间为 12*(1/12MHZ)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定 1 秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。6.4 外部中断原理 本系统主要使用了外部中断,中断信号有引脚INT0 和 INT1 输入,低电平有效,CPU每个时钟周期都会检测 INT0 和 INT1 上的信号,AT89C51 允许外部中断以电平方式或负边沿方式两种中断方式输入中断请求信号,可由用户通过设置

10、TCON 中 IT0 和 IT1 位的状态来实现。以 IT0 为例,IT0=0,为电平触发方式,IT0=1,为负边沿触发方式,本设计采用电平方式,IE0 为其中断标志位,有中断信号则置位,中断服务子程序响应后,IE0 自动清零。IE 中的 EA 为允许中断的总控制位,为 1 开启,EX0 为外部中断允许控制位,为 1 开启。在优先级的允许下,一旦有外部中断信号产生,单片机 CPU 首先保护断点,PC 值进栈,然后执行相应的中断服务子程序,执行完后,用RETI 指令返回,此时 CPU 会从堆栈中取保存的断点地址,送回 PC,程序再正常执行。6.5 程序模块设计 6.5.1 数码管显示子程序 6.

11、5.2 T0 中断子程序 6.5.3 INT0 中断子程序 紧急状态按键连接到外部中断引脚 P3.2,即 INT0 捕获到一个低电平,则进入该中断进行相关处理。定时计数初值 50ms 计数(count)加 1 判断 1S(count=20?)到否 count 清 0 Time_SN-;Time_EW-恢复现场 中断返回 N Y 七、系统软件调试 7.1.1 集成开发环境 KEIL IDE Vision2 集成开发环境主要由以下部分组成:u Vision2 IDE。ision2 IDE 包括:一个工程管理器,一个功能丰富并有交互式错误提示的编辑器选项设置生成工具,以及在线帮助。使用 vision

12、2 创建源文件并组成应用工程加以管理。vision2 可以自动完成编译汇编链接程序的操作;C51 编译器和 A51 汇编器。Vision2 IDE 创建的源文件可以被 C51 编译器或 A51 汇编器处理生成可重定位的 object 文件。KEIL C51 编译器遵照 ANSI C 语言标准支持 C 语言的所有标准特性,另外还增加了几个可以直接支持 at89C51 结构的特性。KEIL A51 宏汇编器支持 at89C51 及其派生系列的所有指令集;LIB51 库管理器。B51 库管理器可以从由汇编器和编译器创建的目标文件建立目标库,这些库是按规定格式排列的目标模块,可在以后被链接器所使用当链

13、接器处理一个库时仅仅使用了库中程序使用了的目标模块而不是全部加以引用;BL51 链接器定位器。L51 链接器使用从库中提取出来的目标模块和由编译器汇编器生成的目标模块创建一个绝对地址目标模块,绝对地址目标文件或模块包括不可重定位的代码和数据所有的代码和数据都被固定在具体的存储器单元中。利用 KEIL 开发和调试系统软件流程大致如下:启动 Vision2,进入 KEIL 软件的集成开发环境;利用 KEIL 内置的文本编辑器进行程序源文件的编辑,因为 KEIL 集成的文本编辑器对中文支持不是很好,可以选择其他的编辑器(本文使用的文本编辑器是 Ultraedit32),Vision2 能够自动识别外

14、部改变了的源文件;建立工程,指定针对哪种单片机进行开发,指定对源程序的编译、链接参数,指定调试方式(本文采用外部硬件仿真器仿真调试的方式,即使 TKS 仿真器仿真),然后对工程进行相关设置;设置好工程后即可进行编译、链接。连接仿真器对软件进行调试。也可以生成下载到单片机存储器上的 HEX 文件。7.1.2 系统仿真调试 系统的仿真调试借助于 PROTEUS 仿真器,在进行系统仿真的连续调试之前要先进行软件的初调,就是要使各个子程序模块运行正确,程序的运行流程正确,生成hex 文件。参考文献:l边海龙,孙永奎.单片机开发与典型工程项目实例详解J.电子工业出版社,2008,(10):143-160

15、.2张鑫,华臻,陈书谦.单片机原理及应用J.电子工业出版社,2008(5).3黄智伟.凌阳单片机课程设计指导J.北京航空航天大学出版社,2007.8 4余 锡 存 曹 国华.单 片 机 原理 及接 口 技 术 M.陕 西:西安 电子科技大学 出版社,2000.7 5雷丽文 等.微机原理与接口技术M.北京:电子工业出版社,1997.2 6柴钰.单片机原理和应用M.西安电子科技大学出版社.7张靖武.单片机系统的 PROTUSE 设计和仿真M.电子工业出版社.2007.附:#include#define uchar unsigned char#define uint unsigned int sbi

16、t Button_A=P36;/sbit Button_B=P37;uchar table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/共阴段码表 0-9 char Time_EW;/东西方向倒计时 char Time_SN;/南北方向倒计时 uchar EW=89,SN=89,EWJ=29,SNJ=29,EWL=19,SNL=19;/程序初始化赋值 uchar count=0;/*/void delay(unsigned char i)/延时 i ms unsigned char j;while(i-)for(j=

17、0;j=0)P0=0 x0c;Display();/*A 道+30s*/Time_SN=SNJ;/SNJ=29 Time_EW=EWJ;/EWJ=29 while(Time_EW=2)P0=0 x0c;Display();/*A 道黄灯*/while(Time_EW=0)P0=0 x0a;Display();/*S2*A 道左拐*/S2 状态 Time_SN=SNL;/20 s Time_EW=EWL;/20 s while(Time_EW=2)P0=0 x80;Display();/*A 道黄灯*/while(Time_EW=0)P0=0 x0a;Display();/*S3*B 道放行*/S3 状态 Time_EW=EW;/90s Time_SN=SN;/90s while(Time_EW=2)P0=0 x21;Display();/*B 道黄灯*/while(Time_EW=0)P0=0 x11;Display();/*S4*B 道左拐*/S4 状态 Time_SN=SNL;/20 s Time_EW=EWL;/20 s while(Time_EW=2)P0=0 x40;Display();/*B 道黄灯*/while(Time_EW=0)P0=0 x11;Display();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁