收藏 分销(赏)

十字路口交通灯设计毕业设计论文.doc

上传人:a199****6536 文档编号:5656744 上传时间:2024-11-15 格式:DOC 页数:36 大小:392.99KB 下载积分:12 金币
下载 相关 举报
十字路口交通灯设计毕业设计论文.doc_第1页
第1页 / 共36页
十字路口交通灯设计毕业设计论文.doc_第2页
第2页 / 共36页


点击查看更多>>
资源描述
设计题目:十字路口交通灯设计 系 别: 班 级: 学生姓名: 指导教师: 成 绩: 2012年 7 月 1 日 课 程 设 计 任 务 书 课程设计题目 十字路口交通灯设计 功能 技术指标 用AT89C52单片机自动控制交通信号灯和数码管的时间显示,此设计对十字路口状态预设为三种状态:一种是正常状态,第二种是南北或东西方向无车的情况,另外一种便是紧急情况。在第一种情况下,红灯表示禁止通行,绿灯表示允许通行,黄灯表示已过停止线的车辆或人继续通行,未过停止线的车或人禁止通行,左转绿灯亮和红灯亮时车左转弯,需直行的车辆禁止通行。在第二种情况下,无车方向道路禁止通行,有车方向道路一直按照正常交通规则运行,直至无车方向开始有车,恢复至第一种情况。在第三种情况下,蜂鸣器发出报警声,报警灯闪烁,交通所有道路被禁止通行,在紧急情况解决后,继续正常运行。与此同时,数码管根据不同情况同步显示相应数字或符号。从而实现了十字路口的自动化。 工作量 较大 工作计划 第一周 用仿真软件实现十字路口交通灯 第二周 星期一 了解本实验的注意事项和掌握相关的基本知识,用仪器练习简单的焊接。 星期二 购买所需材料 星期三 完成对硬件电路的基本设计和焊接。 星期四 上午完成所有的电路焊接。下午进行调试和改正。 星期五 进行答辩 指导教师评语 年 月 目录 第1章 绪论…………………………………………………………………………………… 1.1 选题目的…………………………………………………………………………………. 1.2 设计要求…………………………………………………………………………………. 1.21 设计题目和技术指标……………………………………………………………. 1.22 设计功能…………………………………………………………………………. 第2章 电路结构及工作原理………………………………………………………….. 2.1 电路方框图………………………………………………………………………………. 2.11 复位和时钟电路…………………………………………………………………. 2.12 车辆通道和人行道指示灯电路…………………………………………………. 2.13 数码管显示电路…………………………………………………………………. 2.14 按键和报警电路…………………………………………………………………. 2.2 电路流程图 …………………………………………………………………………….. 2.21 主体流程图………………………………………………………………………. 2.22 外部中断流程图…………………………………………………………………. 2.3 电路图和状态图 ………………………………………………………………………. 2.4 交通灯程序……………………………………………………………………………… 第3章 实际电路设计与应用……………………………………………………………. 3.1 实验仪器和材料………………………………………………………………………… 3.11 所需仪器…………………………………………………………………………. 3.12 材料及其参数……………………………………………………………………. 3.2 电路整体设计和调试…………………………………………………………………… 3.3 试验数据整理和故障分析与解决…………………………………………………….. . 3.31产生的故障及处理…………………………………………………………………. 3.32 数据的核实……………………………………………………………………….. 结论……………………………………………………………………………………………….. 收获和体会…………………………………………………………………………… 致谢…………………………………………………………………………………… 参考文献……………………………………………………………………………… 附录………………………………………………………………………………………………. 第一章 绪论 1.1 选题目的 了解交通灯管理的基本工作原理  熟悉AT89C52的工作原理和应用编程  熟悉AT89C52并行接口的各种工作方式和应用  熟悉AT89C52外部中断功能和外部中断扩展的应用与编程  掌握多个LED灯显示问题的解决 掌握按键和蜂鸣器的使用 掌握bcd码数码管的应用和两位数码管的动态显示 1.2 设计要求 1.21 设计题目和技术指标 题目:用单片机控制交通灯 (1)了解中断系统优先级和中断触发电平的设计。 (2)利用单片机的定时或中断方式,实现单片机对信号的控制。 (3)设计一交通信号灯模拟控制系统,晶振采用12MHz。具体要求如下: 1)正常情况下,A、B道(A、B道交叉组成十字路口,A是主道,B道是支道)轮流放行,A道放行60s(其中5s用于警告),B道放行30s(其中5s用于警告)。 2)一道有车而另一道无车(用按键开关S1、S2摸拟)时使有车车道放行。 3)有紧急车辆通过(用按键开关S0摸拟)时,A、B道均为红灯。 图1-1 (4)技术指标:用AT89C52单片机自动控制交通信号灯和数码管的时间显示,同时给出软硬件设计过程,主要包括硬件电路设计和程序设计两大步骤。此设计对十字路口状态预设为三种:一种是正常状态,第二种是南北或东西无车的情况,另外一种便是紧急情况。在第一种情况下,红灯表示禁止通行,绿灯表示允许通行,黄灯表示已过停止线的车辆或人继续通行,未过停止线的车或人禁止通行,左转绿灯亮和红灯亮则车左转弯,需直行的车辆禁止通行。在第二种情况下,无车方向道路禁止通行,有车方向道路一直按照正常交通规则运行,直至无车方向开始有车,恢复至第一种情况。在第三种情况下,蜂鸣器发出报警声,报警灯闪烁,交通所有道路被禁止通行,在紧急情况解决后,继续正常运行。与此同时,数码管根据不同情况同步显示相应数字或符号。从而实现了十字路口的自动化。 1.22 设计功能 南北方向为主要通道,东西方向为次要通道,南北方向交通信号灯运行60秒,东西方向交通灯运行50秒。正常状态:第一,南北方向车辆通道和南北人行道绿灯同时亮40秒,同时各个方向的数码管从40秒倒计时显示,在最后的5秒,南北方向车辆通道和南北人行道的绿灯要闪亮。第二,南北方向车辆通道和南北人行道的绿灯都灭,南北方向车辆通道的红灯和左转弯绿灯亮15秒,南北人行道红灯亮15秒,在最后5秒,南北方向车辆通道左拐弯绿灯闪亮,同时各个方向的数码管从15秒倒计时显示。第三,南北人行道红灯继续亮5秒,南北方向车辆通道的黄灯闪亮5秒,其它灯都灭,同时各个方向的数码管显示5秒倒计时,在此期间,东西方向车辆通道和人行道的红灯一直亮,东西方向的其它灯灭。第四,东西方向车辆通道和东西人行道绿灯同时亮30秒,同时各个方向的数码管从30秒倒计时显示,在最后的5秒,东西方向车辆通道和东西人行道的绿灯要闪亮。第二,东西方向车辆通道和东西人行道的绿灯都灭,东西方向车辆通道的红灯和左转弯绿灯亮15秒,东西人行道红灯亮15秒,在最后5秒,东西方向车辆通道左拐弯绿灯闪亮,同时各个方向的数码管从15秒倒计时显示。第三,东西人行道红灯继续亮5秒,东西方向车辆通道的黄灯闪亮5秒,其它灯都灭,同时各个方向的数码管显示5秒倒计时,在此期间,南北方向车辆通道和人行道的红灯一直亮,南北方向的其它灯灭。 南北或东西无车状态:将对应的按键按下,则无车方向的通道处于禁止状态,而有车方向的通道则按照正常状态下运行,直至无车方向开始有车时,原来有车的方向在运行完后,十字路口则恢复到正常状态。 紧急情况:按下紧急按键,蜂鸣器发出报警声,报警灯闪亮,数码管显示“——”禁止通行符号,所有方向的红灯亮,其它灯灭。直至紧急情况被解决后,按键弹起,十字路口交通灯系统恢复正常状态。 第二章 电路结构及工作原理 2.1 电路方框图 P0 AT89C52 P2 P1 P3 复位和时钟电路 数码管显示电路 人行道指示灯和报警灯电路 车辆通道指示灯电路 蜂鸣器和按键电路 2.11 复位和时钟电路 复位电路:其分为上电自动复位方式和手动复位方式。本设计采用的是手动复位方式。复位是单片机的初始化操作,其目的是使CPU及各个寄存器处于一个确定的初始状态。 时钟电路:其分为内部时钟方式和外部时钟方式。本设计采用的是外部时钟方式。其用于产生单片机工作所需要的时钟信号。 2.12 车辆通道和人行道指示灯电路 主要有红、黄、绿三种灯组成,采用灌电流的方式实现,即低电平有效。不同的灯有不同的含义,从而实现各种功能。 2.13数码管显示电路 本电路采用的是两位八段的数码管,用动态显示的方式实现其功能。 2.14 按键和报警电路 按键在闭合和断开时有抖动现象,一般为5到10ms左右,故需要消抖,防止其对电路功能的实现。方式有软件消抖和硬件消抖。软件消抖是通过延时程序来实现,硬件消抖是通过在按键两端并联一个0.1uf的电容来实现。其部分电路是与或非门组合而成的电路。 报警电路:分为报警器、报警灯两部分。报警灯有四个黄灯组成,采用灌电流方式实现的。报警器电路主要由PNP三极管和蜂鸣器组成,低电平有效。 2.2 电路流程图 2.21 主体流程图 开始 东西直行通行,南北禁止通行,南北东西可以右转弯通行;东西人行道通行,南北人行道禁止。 AT89C51初始化 南北直行通行,东西禁止通行,南北东西可以右转弯通行;南北人行道通行,东西禁止。 通行30秒 N 东西南北直行禁止,东西左拐弯通行,人行道禁止通行。 通行40秒 Y N Y 通行15秒 南北东西直行禁止,南北左拐弯通行,人行道禁止通行。 Y N Y 东西黄灯闪烁 通行15秒 N 闪烁5秒 Y N 南北黄灯闪烁 Y 闪烁5秒 N Y 2.22 外部中断流程图 外部中断0子程序流程图: 按键1按下 INT0中断响应 中断处理 按键1是否为零 Y N 中断返回 外部中断1子程序流程图: 按键X按下 INT1中断响应 是否为按键2 N 南北方向无车中断处理 Y 东西方向无车中断处理 按键3是否按下 按键2是否按下 Y N N 中断返回 中断返回 2.3 电路图和模拟状态图 Proteu仿真电路图 模拟状态图分析 2.4 十字路口交通灯程序 /*********************************************************** 十字路口交通灯控制 C 程序 ***********************************************************/ #include<reg52.h> #define uint unsigned int #define uchar unsigned char /*****定义控制位*******************************************/ sbit nbg=P1^0; sbit nby=P1^1; sbit nbr=P1^2; sbit dxg=P1^3; sbit dxy=P1^4; sbit dxr=P1^5; sbit nbgw=P1^6; sbit dxgw=P1^7; sbit dxwc=P3^0; sbit nbwc=P3^1; sbit tsqk=P3^2; sbit buzzy=P3^4; sbit wei1=P3^6; sbit wei2=P3^7; uchar count0=41,count1=31,count2=16,count3=6,y1,y2,z1,z2,x1,x2,v1,v2; uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /**********************延时子程序**************************/ void dely1() {uint a1,b1; for(a1=0;a1<5;a1++) for(b1=0;b1<125;b1++) ; } /**********************蜂鸣器子程序*******************/ void sound(uchar t) { uchar i,j; for(i=0;i<150;i++) {dxr=0; nbr=0; wei1=0; wei2=0; P0=0x40; nby=1; nbg=1; dxg=1; dxy=1; nbgw=1; dxgw=1; buzzy = ~buzzy; for(j=0;j<t;j++); } } /*****************显示子函数******************************/ void gg1() {count0--; if(count0==5) count0=40; y1=count0/10; y2=count0%10; } void gg2() {count1--; if(count1==5) count1=30; z1=count1/10; z2=count1%10; } void gg3() { count2--; if(count2==5) count2=15; x1=count2/10; x2=count2%10; } void gg4() { count3--; if(count3==0) count3=5; v1=count3/10; v2=count3%10; } void nbdisplay() {uint k,o; nbg=0; P2=0xf6; for(o=0;o<35;o++) { gg1(); for(k=0;k<100;k++) { wei1=0; P0=table1[y1]; dely1(); wei1=1; wei2=0; P0=table1[y2]; dely1(); wei2=1; } } } /*南北绿灯亮35秒*/ void nbdisplaygw() {uint k1,o1; nbgw=0; nbr=0; P2=0xf3; for(o1=0;o1<10;o1++) { gg3(); for(k1=0;k1<100;k1++) { wei1=0; P0=table1[x1]; dely1(); wei1=1; wei2=0; P0=table1[x2]; dely1(); wei2=1; } } }/*南北拐弯路灯亮10秒,南北红灯也亮*/ void nb5gw() {uint k2,k3,o2; nbr=0; P2=0xf3; for(o2=0;o2<5;o2++) { gg4(); for(k2=0;k2<50;k2++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; nbgw=1; } for(k3=0;k3<50;k3++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; nbgw=0; } } }/*南北拐弯5秒倒计时路灯闪亮,南北红灯也亮*/ void dxdisplay() {uint m,q; dxg=0; dxr=1; P2=0xf9; for(q=0;q<25;q++) { gg2(); for(m=0;m<100;m++) {wei1=0; P0=table1[z1]; dely1(); wei1=1; wei2=0; P0=table1[z2]; dely1(); wei2=1; } } } /*东西绿灯亮25秒*/ void dxdisplaygw() {uint m1,q1; dxgw=0; P2=0xf3; dxr=0; for(q1=0;q1<10;q1++) { gg3(); for(m1=0;m1<100;m1++) { wei1=0; P0=table1[x1]; dely1(); wei1=1; wei2=0; P0=table1[x2]; dely1(); wei2=1; } } } /*东西拐弯路灯亮10秒,东西红灯也亮*/ void dx5gw() {uint m2,m3,q2; dxgw=0; dxr=0; P2=0xf3; for(q2=0;q2<5;q2++) { gg4(); for(m2=0;m2<50;m2++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; dxgw=1; } for(m3=0;m3<50;m3++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; dxgw=0; } } } /*东西拐弯5秒倒计时路灯闪亮,东西红灯也亮*/ void nb5g() { uint n,n1,n0; for(n0=0;n0<5;n0++) {gg4(); for(n=0;n<50;n++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; nbg=1; } for(n1=0;n1<50;n1++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; nbg=0; } } } /*南北绿灯5秒倒计时,同时人行道5秒倒计时*/ void nb5y() {uint n2,n3,n6; for(n6=0;n6<5;n6++) { gg4(); for(n2=0;n2<50;n2++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; nby=1; } for(n3=0;n3<50;n3++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; nby=0; } } } /*南北黄灯5秒倒计时*/ void dx5g() {uint g1,g2,g0; for(g0=0;g0<5;g0++) {gg4(); for(g1=0;g1<50;g1++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; dxg=1; } for(g2=0;g2<50;g2++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; dxg=0; } } }/*东西绿灯5秒倒计时,同时东西人行道5秒倒计时*/ void dx5y() {uint g3,g4,g6; for(g6=0;g6<5;g6++) { gg4(); for(g3=0;g3<50;g3++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; dxy=1; } for(g4=0;g4<50;g4++) { wei1=0; P0=table1[v1]; dely1(); wei1=1; wei2=0; P0=table1[v2]; dely1(); wei2=1; dxy=0; } } } /*东西黄灯5秒倒计时*/ /**********************外部1中断服务程序******************/ void int1() interrupt 2 { uint d0,d1,d2; d0=P1; d1=P2; d2=P0; if(dxwc==1) { dxr=0; dxg=1; dxy=1; dxgw=1; nbdisplay(); nb5g(); nbg=1; nbdisplaygw(); nb5gw(); nbr=1; nbgw=1; nb5y(); nby=1; } if(nbwc==1) { nbr=0; nbg=1; nby=1; nbgw=1; dxdisplay(); dx5g(); dxg=1; dxdisplaygw(); dx5gw(); dxr=1; dxgw=1; dx5y(); dxy=1; } P1=d0; P2=d1; P0=d2; } /*外部中断控制的东西或南北方向无车*/ /**********************外部0中断服务程序******************/ void int0() interrupt 0 { uint d3,d4,d5; d3=P1; d4=P2; d5=P0; while(tsqk==0) { P2=0x73; sound(90); P2=0xb3; sound(120); P2=0xd3; sound(90); P2=0xe3; sound(120); } P1=d3; P2=d4; P0=d5; } /*东西或南北方向出现紧急情况*/ /**********************主程序******************/ void main() {P3=0xec; EA=1; EX0=1; EX1=1; PX0=1; while(1) { dxr=0; nbdisplay(); nb5g(); nbg=1; nbdisplaygw(); nb5gw(); nbr=1; nbgw=1; nb5y(); nby=1; dxr=1; nbg=1; nbr=0; dxdisplay(); dx5g(); dxg=1; dxdisplaygw(); dx5gw(); dxr=1; dxgw=1; dx5y(); dxy=1; nbr=1; } } 第三章 实际电路设计与应用 3.1实验仪器和材料 3.11 所需仪器 电烙铁,烙铁架,吸锡器,斜口钳,剥线钳,万用表等。 3.12所需材料及其参数和识别 焊锡丝:把被焊物连接起来,对电路来说构成一个通路。 单片机:AT89c52,40引脚,DIP封装。 晶振:11.0592兆HZ 瓷片电容:30pf 电解电容:10uf 电阻:10k和1k两种 识别:一种为用万用表测量(方式略)。读取方式:采用色环表示阻值大小分为三环色标、四环色标和五环色标。各色别表示对应标称阻值环位数字如下: 棕、红、橙、黄、绿、蓝、紫、灰、白、黑、金、银 1、 2、 3、 4、 5、 6、 7、 8、 9、 0、0.1、0.01 色环精度环各色别对应误差: 棕 红 绿 蓝 紫 金 银 ±1%、±2%、±0.5%、±0.2%、±0.1%、±5%、±10% 对于三环电阻器,第一环、第二环分别为高位、低位,第三环为倍率(10^n),误差20%。 对于四环电阻器,第三环为倍率(10^n)、第四环为误差环; 对于五环电阻器,第四环为倍率(10^n)、第五环为误差环。 误差环宽度要稍大些。 例: 第一环(红) 第二环(紫) 第三环(黑) 第四环(橙) 第五环(金) 则电阻阻值为:270×10^3=270KΩ,其误差为±5%。 先找标志误差的色环,从而排定色环顺序。最常用的表示电阻误差的颜色是:金、银、棕,尤其是金环和银环,一般绝少用做电阻色环的第一环,所以在电阻上只要有金环和银环,就可以基本认定这是色环电阻的最末一环。 棕色环是否是误差标志的判别。。在实践中,可以按照色环之间的间隔加以判别,从间隔大的一端开始计算。 LED灯:分为黄灯,绿灯,红灯。正常发光在10mA左右,工作电压为1.8~2.4v之间。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服