- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)