交通灯控制倒计时的

上传人:cl****1 文档编号:511930804 上传时间:2023-05-24 格式:DOCX 页数:9 大小:454.89KB
返回 下载 相关 举报
交通灯控制倒计时的_第1页
第1页 / 共9页
交通灯控制倒计时的_第2页
第2页 / 共9页
交通灯控制倒计时的_第3页
第3页 / 共9页
交通灯控制倒计时的_第4页
第4页 / 共9页
交通灯控制倒计时的_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《交通灯控制倒计时的》由会员分享,可在线阅读,更多相关《交通灯控制倒计时的(9页珍藏版)》请在金锄头文库上搜索。

1、项目一 基于AT89C51单片机的交通灯控制系统设计1.1 项目概述随着微控技术的日益完善和发展,单片机的应用在不断走向深入。它的应用必定导 致传统的控制技术从根本上发生变革。它在工业控制、数据采集、智能仪表、机电一体 化、家用电器等领域得到广泛的应用,极大地提高了这些领域的技术水平和自动化控制。 同时,伴随着我国经济的高速发展,私家车、公交车的增加,无疑会给我国的道路交通 系统带来沉重的压力,很多大城市都不同程度地受到交通堵塞问题的困扰。下面以AT89C51单片机为核心,设计出以人性化、智能化为目的的交通灯控制系统。本项目主要从单片机应用上来实现十字路口交通灯智能化的管理,用来控制过往车 辆

2、的正常化运作。1.2 项目要求用AT89C51单片机控制一个交通灯系统,晶振采用12MHz。设A车道与B车道 交叉组成十字路口,A车道是主干道,B为支道。设计要求如下:(1)用发光二极管模拟交通信号灯。(2)正常情况下,A、B两车道轮流放行,A车道放行50S,另有5S用于警告;东 西南北车道放行30S,另有5S用于警告(3)在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状太,以缓解交通拥挤状况。在B车道放行期间,若A车道有车而B车道无车, 按下模拟开关K1使A车道放行15S;在A车道放行期间,若B车道有车而A 车道无车,按下模拟开关K2使B车道放行15S。(4)有紧急车辆通

3、过时,按下开关K3使A、B车道均为红灯,禁止通行20S。1.3 系统设计交通灯控制系统主要控制A、B两车道的交通,以AT89C51单片机为核心芯片, 通过控制三色LED的亮灭来控制各车道的通行;另外通过3个按键来模拟各车道有无 车辆的情况和有紧急车辆的情况。根据设计要求,制定总体设计思想如下: 正常情况下运行主程序,采用0.5S延时子程序的反复调用来实现各种定 时时间。 一个车道有车而另一个车道无车时,采用外部中断1 执行中断服务程序, 并设置该中断为低优先级中断。 有紧急车辆通过时擦,采用外部中断0执行中断服务程序,并设置该中断 为高优先级中断,实现二级中断嵌套。1.3.1 框图设计基于 A

4、T89C51 单片机的交通信号控制系统由电源电路、单片机主控电路、按键控制电路和道路显示电路几部分组成,框图如下图所示。1.3.2 知识点通过学习和查阅资料,本项目需掌握和了解如下知识: +5V电源原理及设计。 单片机复位电路工作原理及设计。 单片机晶振电路工作原理及设计。 按键电路工作原理及设计。 驱动电路 74LS07 的特性及使用。 LED 的特性及使用。 AT89C51单片机引脚。 单片机汇编语言及程序设计。1.4 硬件设计1.4.1 电路原理图用12只发光二极管模拟交通信号灯,以AT89C51单片机的P0控制这12只发 光二极管,由于单片机带负载的能力有限,因此,在P0 口与发光二极

5、管之间用74LS07 作驱动电路, P0 楼输出低电平时,信号灯亮;输出高电平时,信号灯灭。在正常情况 和交通繁忙时,A、B两车道的6只信号灯的控制状态有5种形式,即P0 口控制功能 及相应如下表所示。分别以按键K1、K2模拟A、B车道的车辆检测信号,开关K1按 下时,A车道放行;开关K2按下时,B车道放行;开关K1和K2的控制信号经异或 取反后,产生中断请求信号(低电平有效)通过外部中断1向CPU发出中断请求;因 此产生外部中断1中断的条件应是:INT1 = KK2,可用集成块74LS266(如无74LS266, 可用 74LS86 与 74LS04 组合代替)来实现。采用中断加查询扩展法,

6、可以判断出要求 放行的是A车道(按下开关K1)还是B车道(按下开关K2)。以按键K3模拟紧急车辆通过开关,当K3为高电平时属正常情况,当K3为低电平时,属紧急车辆通过的情况,直接将K0信号接至IN厂0(P3.2)脚即可实现中断0 中断。控制状态P0 口控制码P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0未用未用B道绿灯B道 黄灯B道红灯A道 绿灯A道 黄灯A道 红灯A道放行,B道禁止F3H11110011A道警告,B道禁止F5H11110101A道禁止,B道放行DEH11011110A道禁止,B道警告EEH11101110A道禁止,B道禁止F6H11110110综上所述,可设

7、计出基于AT89C51单片机控制交通信号灯模拟控制系统的电路图如下所示。U4:A CRYSTALiPREQ=12MHzPOO/ADO P01/AD1 P0 2/AD2 P0 3/AD3 P0 4/AD4 P0.5/AD5 P0 6/AD6 P0.7/AD7P2 0/A8 P21/A9 P2.2/A10 P2.3/A11 P24/A12 P2.5/A13 P26/A14 P2.7/A15P3 O/RXD P3.1/TXDP3 2ntrro P3 JflNTiP3.4/TOP3.5/T1P3&WRP37/RD3 OR30R41)01一-三二5D-9 OR309 OD 110R30D1红1.4.2序

8、号元件名称规格数量151单片机AT89C511个2晶振12M立式1个3集成电路74LS861个74LS041个74LS071个4按键4个5复位电容22uF/10V1个6起振电容30pF瓷片电容2个7电阻1K4个电阻300 Q12个8LED红、黄、绿各4个12个9电源5V/0.5A1个元件清单1.5 软件设计主程序采用查询方式定时,由R2寄存器调用0.5S延时子程序的次数,从而获取交 通灯的各种时间。子程序采用定时器1方式1查询定时,定时器定时50ms, R3寄存器 确定50ms循环10次,从而获得0.5S的延时时间。有车车道放行的中断服务程序首先要保护现场,因需要用到延时子程序和P0 口, 故

9、需保护的寄存器有R3、P0、TH1和TL1,保护现场时还需关中断,以防止高优先级 中断(紧急车辆通过产生的中断)出现导致程序混乱。开中断,由软件查询P3.0和P3.1 口,判别那一车道,再根据查询情况执行相应的 服务。待交通灯信号出现后,保持15S的延时,然后,关中断,恢复现场,再开中断, 返回主程序。紧急车辆出现时的中断服务程序也需要保护现场,但无须关中断(因其为高优先级 中断),然后执行相应的服务,待交通灯信号出现后延时20S,确保紧急车辆通过交叉 路口,然后,恢复现场,返回程序。1.5.1 程序流程图交通信号灯模拟控制系统程序流程图如图所示。-中断响应关中断保护现场I开中断延时15盯*关

10、中恢复现场开中断(W)A绿灯、R红灯NN红灯、B绿灯紧急情况时的 中断服务程序 (中断响应)保护现场A红灯、B红灯恢复现场(W)1.5.2 程序清单ORG LJMP ORG LJMP ORG LJMP ORG0000HMAIN0003HINTT00013HINTT10200H;转向紧急车辆中断服务程序;转向有车车道中断服务程序MAIN:MOVSP,#30HSETBPX0;置外部中断0 为高优先级中断MOVTCON,#00H;置外部中断0、1 为电平触发MOVTMOD,#10H;置定时器1为方式 1MOVIE,#85H;开CPU中断,开外部中断0、1中断LOOP:MOVP0,#0F3H;A 道绿

11、灯放行, B 道红灯禁止MOVR1,#90;置 0.5S 循环次数(0.5X90=45S)DIP1:ACALLDELAY;调用0.5S延时子程序DJNZR1,DIP1;45S 不到继续循环MOVR1,#06;置A道绿灯循环次数WAN1:CPLP0.2;A绿灯闪烁ACALLDELAYDJNZR1,WAN1;闪烁次数未到继续循环MOVP0,#0F5H;A黄灯警告,B红灯禁行MOVR1,#04H;置0.5S循环次数(0.5X4=2S)YL1:ACALLDELAYDJNZR1,YL1;2S 未到继续循环MOVP0,#0DEHMOVR1,#32HDIP2:ACALLDELAYDJNZR1,DIP2MOV

12、R1,#06HWAN2:CPLP0.5;B 绿灯闪烁ACALLDELAYDJNZR1,WAN2MOVP0,#0EEH;A红灯,B黄灯MOVR1,#04HYL2:ACALLDELAYDJNZR1,YL2AJMPLOOP;循环执行主程序INTT0:PUSHP0;p0 口数据压栈保护PUSHTH1;TH1 压栈保护PUSHTL1;TL1 压栈保护MOVP0,#0F6H;A、B 道均为红灯MOVR2,#40H;置0.5S循环初值(20S)DEY0:ACALLDELAYDJNZR2,DEY0;20S 未到继续循环POPTL1;退栈恢复现场POPTH1POPP0RETI;返回主程序INTT1:CLREA;

13、关中断PUSHP0;压栈保护PUSHTH1PUSHTL1SETBEA;开中断JBP3.0,BOP;A道无车转向B道MOVP0,#0F3H;A道绿灯,B道红灯SJMPDEL1;转向 15S 延时BOP:JBP3.1,EXIT;B 道无车退出中断MOVP0,#0DEH;A红灯,B绿灯DEL1:MOVR5,#30;置0.5S循环初值(15s)NEXT:ACALLDELAYDJNZR5,NEXT;15S未到继续循环EXIT:CLREAPOPTH1;退栈恢复现场POPTL1POPP0SETBEARETIDELAY: MOVR3,#0AH;0.5S 延时子程序(50msX10=0.5S)MOVTH1,#3CH;置 50ms 初值 X=3CB0HMOVTL1,#0B0HSETBTR1;启动 T1LP1: JBCTF1,LP2;查询

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号