智能交通灯设计与实现Word文件下载.docx
《智能交通灯设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《智能交通灯设计与实现Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
杆状细胞对黄色的光特别敏感,三种锥状细胞则分别对红光、绿光及蓝光最敏感。
山于这种视觉结构,人最容易分辨红色与绿色。
虽然黃色与蓝色也容易分辨,但因为眼球,对蓝光敬感的感光细胞较少,所以分辨颜色,还是以红、绿色为佳。
颜色也有活动的含意,要表达热或剧烈的话,最强是红色,其次是黃色。
绿色则有较冷及平静的含意。
因此,人们常以红色代表危险,黃色代表警觉,绿色代表安全。
而且,由于红光的穿透力最强,其他颜色的光很容易被散射,在雾天里就不容易看见,而红光最不容易被散射,即使空气能见度比较低,也容易被看见,不会发生事故。
所以我们用红色表示禁止。
2)智能交通灯的设计方案
针对道路交通拥挤,交义路口经常出现拥堵的情况。
利用单片机控制技术提出了软件和硬件
由于AT89S51单片机自单带有2计数器,6个中断源,能满足系统的设计要求。
用单片机设计不但设计简单,而且成本低,用其设计的交通灯也满足了要求,所以本文采用单片机设讣交通灯,系统构图如图1所示:
图1系统结构框图
3.智能交通灯方案的实现
根据设汁任务和要求,可画出该控制器的原理框图,为确保十字路口的交通安全,往往都采用交通灯自动控制系统来控制交通信号。
其中红灯亮,表示禁止通行;
黃灯亮表示暂停;
绿灯亮表示允许通行。
1)控制器的系统框图如图2所示
图2交通灯控制器系统框图
2)电路图
智能交通灯电路图如图3所示。
3)智能交通灯系统的组成
交通灯系统山四部分组成:
车检测电路,信号灯电路,时间显示电路,紧急转换开关。
4)工作原理
十字路口的红绿灯指挥着行人和各种车辆的安全通行。
有一个主干道和一个支干道的十字路口如图3-1所示。
每边都设置了红、绿、黃色信号灯。
红灯亮表示禁止通行,绿灯亮表示可以通行,在绿灯变红灯时先要求黃灯亮儿秒钟,以便让停车线以外的车辆停止运行。
I、信号灯电路
信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图5。
每个路口的信号的的转换顺序为:
绿一一〉黃一一>红,绿灯表示允许通行,黃灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。
红灯表示禁止通行,绿灯的时间为20秒,红红最短时间为25秒,黄灯时间为5秒。
II、时间显示电路
在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。
山于东往西方向和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以时间的时间为0-99秒完全可以满足系统的要求。
4.智能交通灯方案的仿真图
五•结束语:
1、能实现的功能
交通灯的状态转换和计时时间的显示,基本能实现甲、乙道路直行和转弯灯的显示功能。
2、不足之处
设讣过程中用的芯片太多。
传统的定时交通灯控制还是起到了一定的作用,但随着社会的高速发展,城市化日益完善,车的数量必然增多,给交通的压力也增大,这是传统的交通控制等已经无法满足现在的通行状况,功能还不够完善。
交通灯红、黃、绿时间还不能按交通紧松完成手控调整,软件编写实现功能还不能很好控制硕件。
通过这次设计,掌握了对Proteus的基本使用方法,掌握了一些单片机的使用及构造知识,对单片机有进一步的认识。
设计中遇到的问题也可以通过自己的查询和同学的帮助解决,锻炼了自己的独立思维能力和动手动脑能力。
要有一个明确的H标和一颗团结合作的心,还要保持一个良好的心态,才能把设计
做得更好!
参考文献:
1、
陈大钦主编
《电子技术基础实验》
高等教育出版社2004年
2、
陈梓城主编
《电子技术实训》
机械工业出版社2003年
3、
吴黎明主编
《单片机原理及应用技术》
科学出版社2003年
4、
李学海主编
《标准80C51单片机基础教程》
北京航空航天大学出版社2006年
5、
刘乐善主编
《微型计算机接口技术及应用》
华中科技大学出版社2004年
附录:
附智能交通灯控制程摩:
ORG0000H
ABIT
EQU
20H
;
用于存放南北十位数
BBIT
21H
CBIT
22H
;
用于存放东西十位数
DBIT
23H
用于存放东西位数
TEMPIEQU24H;
用于存放第一二南北状态要显示的时间
TEMP2EQU25H;
用于存放第一二东西状态要显示的时间
TEMP3EQU26H;
用于存放第三第四南北状态要显示的时间
TEMP4EQU27H;
LJMPMAIN
CLR
CLR;
南北通行,东西禁止通行
MOVPl,#OFFH;
清除先前状态
MOVP2,#OFFH
东西通行,南北禁止通行
ORG0100H;
初始情况
MOVPl,#OFFH
MOVP2,#0FFH;
灭所有灯
MOVTMOD,#55H;
计数方式方式1
MOVTEMPI,#20;
MOVTEMP2,#25
MOVTEMP3,#25
STAR:
MOVA,24H;
将显示时间送A
CJNEA,#20,T40T;
判断时间,选初始值
T20T:
;
南北通行要显示的时间为20的讣数器初始值
CLRTFO;
清TFO
CLRTF1;
清丁扌1
MOVTH1,#OFFH;
送20秒时的初始值
MOVTHO,#OFFH
MOVTLO,#OFCH
LJMPTEMP20;
跳到20秒
TEMP20:
TEMPI二20情况
SETBTRO;
开始讣数
SETBTR1
南北要显示的时间,
MOVTEMP2,#25;
东西要显示的时间
STLOP:
ACALLDISPLAYl
调用显示
DECTEMPI
时间够一秒显示时间减1
DECTEMP2
MOVA,TEMPI
CJNEA,#0,NEXT
若显示时间不为0保持现在状态
LJMPSTAR2
若显示时间为0跳到第二状态
NEXT:
LJMPSTLOP
STAR2:
状态1
SETB
南北黃灯,东西禁止通行
MOVTEMPI,#05;
MOVTEMP2,#05;
东西要显示的时间,
STL0P2:
CJNEA,#0,NEXT2;
JBTF1,T40
判断南北是否多车
JBTFO,T40
判断北南是否多车
MOVTEMPI,#20
少车下次显示时间为20秒
LJMPSTAR3
若显示时间为0跳到第三状态
NEXT2:
LJMPSTL0P2
SETBTR0;
开始计数
MOVTEMP2,#25;
STL0P11:
ACALLDISPLAY1
CJNEA,#0,NEXT11;
LJMPSTAR22
NEXT11:
LJMPSTL0P11
STAR22:
STL0P22:
ACALLDISPLAY1;
DECTEMPI;
CJNEA,#0,NEXT22;
LJMPSTAR3;
NEXT22:
LJMPSTL0P22
STAR3:
MOVA,26H
CJNEA,#25,T40T1;
T20T1:
南北通行要显示的时间为20的计数器初始值
清溢出位
CLRTF1
MOVTH1,SOFFH;
给初值
MOVTL1,SOFCH
MOVTHO,#OFFH
LJMPTEMP320
MOVTH1,#OFFH;
MOVTL1,#0F8H
MOVTLO,#0F8H
LJMPTEMP340
TEMP320:
状态三
SETBTRI;
南北停止计数
东西开始计数
南北要显示的时间,
MOVTEMP4,#20
STLOP33:
ACALLDISPLAY
DECTEMP3
MOVA,TEMP4
CJNEA,#0,NEXT33;
LJMPSTAR34
若显示时间为0跳到笫四状态
NEXT33:
LJMPSTLOP33
STAR34:
状态四
东西黃灯,南北禁止通行
MOVTEMP3,#05
MOVTEMP4,#05
STL0P34:
DECTEMP4
CJNEA,#0,NEXT34;
JBTF1,T402
JBTF0,T402
NEXT34:
LJMPSTLOP34
TEMP340:
SETBTR1;
SETB;
MOVTEMP3,#25;
MOVTEMPI,#20;
STL0P43:
ACALLDISPLAY;
DECTEMP3;
MOVA,TEMP4
CJNEA,#0,NEXT43;
LJMPSTAR44;
若显示时间为0跳到第四状态
NEXT43:
LJMPSTLOP43
STAR44:
STL0P44:
MOVA,TEMP3
CJNEA,#0,NEXT44;
JBTF1,T403
JBTFO,T403
MOVTEMP3,#25
LJMPSTAR
T403:
NEXT44:
LJMPSTL0P44
显示
DISPLAY1:
将南北要显示的数存放到A
MOVB,#10;
B=10
DIVAB;
A除以B商存A,余数B
MOVB_BIT,A
将A放到20H
MOVA_BIT,B
将8放到21H
MOVA,TEMP2
将东西要显示的数存放到A
MOVB,#10
DIVAB
MOVC_BIT,A
将人放到22H
MOVD_BIT,B
将8放到23H
MOVDPTR,#NUMT;
MOVRO,#2;
RO二2
DPLU:
MOVRl,#250;
R1二250
DPL0P1:
MOVA,A_BIT;
将南北要显示的10位数送A
MOVCA,@A+DPTR;
查表
MOVPO,A;
显示南北10位数
ACALLDIMS;
延时IMS
灭南北10位数
MOVA,B_BIT;
将南北要显示的个位数送A
显示南北个位数
ACALLDIMS;
灭南北个位数
MOVA,C_BIT;
将东西要显示的10位数送A
显示东西10位数
灭东西10位数
MOVA,D_BIT;
将东西要显示的个位数送A
显示东西东西位数
灭东西个位数
DJXZRl,DPLOP;
循环扫描
DJXZR0,DPL1
RET;
等待1秒返回
DISPLAY:
MOVA,TEMP3;
MOVB,#10
MOVB.BIT,A;
将A放到20H
MOVA_BIT,B;
将8放到21H
MOVA,TEMP4;
MOVC.BIT,A;
将人放到22H
MOVD_BIT,B;
将8放到23H
MOVDPTR,#NUMT;
MOVR0,#2
R0=2
DPL1:
R1=25O
DPLOP:
MOVCA,©
A+DPTR;
MOVP0,A
DJNZRO,DPL1
DIMS:
MOVR7,#250;
IMS延时程序
DJNZR7,S
RET;