交通灯课程计0932班40号.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
交通灯课程计0932班40号

长沙民政职业技术学院 《C51程序设计》 课程设计报告书 题 目:定时器控制交通指示灯 班 级: 自动化0932 学 号: 0919033240 姓 名: 肖文涛 指导老师: 王宏彦老师 成 绩: 绪言 (一) 设计任务 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用。 实验目的: 由于随着交通量的快速增长和缺乏对道路的系统研究和控制,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。为了确保十字路口的行人来往的安全以及车辆顺利,畅顺地通过,要求我们设计一个交通灯逻辑控制电路,利用交通灯中的红绿灯来控制车辆和人的行止。 本实例通过单片机c语言设计一个简易的交通指示灯。名称为定时器控制交通指示灯。目的是实现一个具有东西南北四个方向、共12个指示灯控制功能的交通灯。东西向绿灯亮10s后,黄灯闪烁,闪烁5次亮红灯,红灯亮后,南北向由红灯变成绿灯,5s后南北向黄灯闪烁, 闪烁5次后亮红灯,东西向绿灯亮,如此往复。也可以根据不同方向的车流量来改变控制时间。 (二)提出方案及方案论证 东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。假如东西道的车流量大,所以绿灯的控制时间比南北道多。 10s 5s 5s 5s . …… 东西道 绿灯亮 黄灯亮 红灯亮 红灯亮 …… 南北道 红灯亮 红灯亮 绿灯亮 黄灯亮 …… 表1 表1说明: (1)当东西方向为红灯,此道车辆禁止通行;南北道为绿灯,此道车辆通过,时间为5秒。 (2)黄灯闪烁5秒,警示车辆红、绿灯的状态即将切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,。时间为10秒。 (4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。 (三)原理说明: 本系统采用AT89C51单片机来设计交通灯控制,实现了能根据实际车流量通过89C51芯片的P0口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示; 交通灯是城市交通中不可缺少的重要工具,是城市交通秩序的重要保障。 根据现实生活中交通灯的工作过程,用指示灯来模拟交通灯的一般工作过程。实验采用了中断的形式来控制交通灯的运行顺序,通过单片机的p0口来控制指示灯,达到模拟交通灯的作用效果。 二、系统设计 (一) 电路设计 程序流程图 (三) C51程序设计 #includereg51.h #define uchar unsigned char #define uint unsigned int sbit RED_A=P0^0; //东西向指示灯 sbit YELLOW_A=P0^1; sbit GREEN_A=P0^2; sbit RED_B=P0^3; //南北向指示灯 sbit YELLOW_B=P0^4; sbit GREEN_B=P0^5; //延时倍数,闪烁次数,操作类型变量 uchar T=0,F=0,Op=1; //定时器0中断函数 void T0_INT() interrupt 1 { TL0=-50000/256; TH0=-50000%256; switch(Op) { case 1: //东西向绿灯与南北向红灯亮10s RED_A=0;YELLOW_A=0;GREEN_A=1; RED_B=1;YELLOW_B=0;GREEN_B=0; if(++T!=200) return; //10s(200*50ms)切换 T=0; Op=2; break; case 2: //东西向黄灯开始闪烁,绿灯关闭 if(++T!=8) return; T=0; YELLOW_A=~YE

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档