电路CAD交通信号灯的设计规划.doc

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

一、设计任务和要求 1.1要求和任务 ①东西与南北方向灯轮流交替工作,按照下面示意图进行。 图一 循环流程图 ②要求设计中所用的计数器为一个到两个,定时时间最长为4分钟。在南北向和东西向增加强行绿灯按钮,可以强制某个方向通行而另一个方向禁止。 ③路口增加车辆传感器,某方向无车辆时可跳过绿灯时段。 ④红绿灯时段长度做成可调的,方便设置通行的时间。 ⑤增加译码显示电路,使用数码管显示倒计时。 二、方案选择与论证 2.1使用数字逻辑电路 使用数字电路需要进行计时电路以及显示电路的设计,元件规模小,电路也可靠,采用状态机方式实现也具有可操作性。 2.2选择使用51单片机控制电路 使用51单片机的优点是电路简单,作为本次设计完全具备硬件控制要求,在成本上也与数字逻辑电路相当。另外,单片机控制方便,电路修改性强,可根据具体的情况修改程序,从而达到更切合实际的效果。 综上,此次我们选择STC89C51单片控制电路实现。 三、单片机资源分配与程序设计 3.1一秒定时的实现 由于单片最长定时时间为65536us,所以无法需要计数形式的定时。我们采用方式二定时,一次定时200us,则需要重复5000次,具体定时程序如下: TMOD=0x2; //设置为采用方式二定时 TH0=0x38; //赋初值 TL0=0x38; //赋初值 设置一个变量Y,当Y=5000时,定时器溢出,则开始下一次计时。这样实现了1s的定时。 3.2控制选择设置 本次需要增加了方向传感器和强制按钮以及检测按钮,所以设计嵌套和优先级关系,还有时间调节按钮。它们关系为时间调节按钮最大,强制开关是稍次,其次是检测开关,控制循环结构的跳转,最低的是最基本的灯循环工作结构。对应程序部分如下: if(q1==0) { 时间调节部分; } else if(q2==0) { 南北方向强制控制部分; } else if(q3==0) { 东西方向强制控制部分; } else { 基本指示循环工作; } 3.3数码管显示倒计时设计 本次采用四位数码管,基本的循环指示状态下两位数码管显示倒计时,而在调节时间是,每两位分别显示当前南北和东西的绿灯定时时间。数码管采用三极管共阳形式接法。 图二 数码管驱动原理 3.4循环指示工作的实现 对于循环工作的实现,本次设计定义了两个标志a和b,共计四种状态。a=0且b=0时为东西绿灯,南北红灯;a=0,b=1时为东西绿灯闪烁,南北红灯;a=1,b=0时为东西红灯,南北为绿灯;a=1,b=1时为东西红灯,南北绿灯闪。程序实现如下 if(a==0b==0) { if(timegre1=5) { a=0;b=0; } } if(a==0b==1) { if(timegre1=0) { a=1;b=0; } } if(a==1b==0) { if(timegre2=5) { a=1;b=1; } } if(a==1b==1) { if(timegre2=0) { a=0;b=0; } } 3.5时间调节的设计 针对时间的调节部分,我们采用按键形式,分别定义东西绿灯时间加和减,南北时间加和减,共计四个按键。采用扫描判断,有低电平来时,认为按键按下,对应数码管显示当前设置的时间。具体部分程序入下 if(q1==0) { 关闭各个方向的指示灯; if(zz==0) { yanshi(10) ; //消除抖动 if(zz==0) { 按键按下,执行东西方向绿灯时间加动作; } while(!zz) ; //等待按键的弹起 } if(jj==0) { yanshi(10) ; if(jj==0) { 按键按下,执行东西方向绿灯时间减动作; } while(!jj) ; } if (jj2==0) { yanshi(10) ; if (jj2==0) { 按键按下,执行南北方向绿灯时间加动作; } while(!jj2) ; } if (zz2==0) { yanshi(10) ; if (zz2==0) { 按键按下,执行东西方向绿灯时间减动作; } while(!zz2) ; } dispaly2(z_timegre1 ,z_timegre2 ) ; //调用数码管显示函数,同时显示两个方向时间 } 本次设计完整的程序设计详见附录一。 3.6单片机输入输出端口分配以及基本参数定义 有以上分析,我们对单片机的输入输出端口进行分配,还针对控制部分定义参数。 输入部分 管脚定义 输出部分 管脚定义 参数定义 说明 时间调节 控制按钮 q1=P3^5; 东西绿灯 gre1=P2^5 timegre1 东西绿灯 时间变量 东西绿灯 强制按钮 q2=P3^6; 东

文档评论(0)

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

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

1亿VIP精品文档

相关文档