当前位置:文档之家› 模拟交通灯单片机课程设计

模拟交通灯单片机课程设计

模拟交通灯单片机课程设计————————————————————————————————作者:————————————————————————————————日期:ﻩ目录第一章概述ﻩ错误!未定义书签。

1.1设计目的ﻩ错误!未定义书签。

1.2 设计要求ﻩ错误!未定义书签。

1.3 实用价值与理论意义ﻩ错误!未定义书签。

第二章系统硬件设计ﻩ错误!未定义书签。

2.1系统电路设计框图ﻩ错误!未定义书签。

2. 2系统主要硬件需求介绍 ..................................... 错误!未定义书签。

2. 3系统电力模块图ﻩ错误!未定义书签。

2.4系统电路图ﻩ错误!未定义书签。

第三章系统软件设计 ................................ 错误!未定义书签。

3.1 在正常情况下交通灯控制程序流程 ....................... 错误!未定义书签。

3.2源程序清单与注释ﻩ错误!未定义书签。

第四章仿真结果ﻩ错误!未定义书签。

4.1正常情况的仿真图ﻩ错误!未定义书签。

第五章课程设计总结 ................................ 错误!未定义书签。

参考文献ﻩ错误!未定义书签。

第一章概述目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械了。

因此,单片机的学习、开发与应用必须重视。

伴随着社会的发展以及人类生活水平的提高,汽车数量在逐年递增,交通问题不得不引起人们的重视。

早在1858年,英国伦敦在主要街头安装了以燃煤气为光源的红蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

信号灯的出现,是交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时监测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,紧单片机方面知识是不够的,还应根据具体结构软硬件结合,加以完善。

目前交通灯的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以,设计单片机来完成这个需求就显得越加迫切了。

本设计的意义在于通过具体控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。

使大家能在实践教学环节中,积累设计经验,开阔思维空间,全面提高个人的综合能力。

1.1 设计目的通过对模拟交通灯控制系统的制作,掌握定时器应用。

1.2设计要求利用AT89S51单片机控制交通灯,实现三种情况下的控制:正常情况下双方向轮流点亮交通灯,如表所示。

东西方向(简称A方南北方向(简称B方向)状态说明向)黄灯绿灯红灯黄灯绿灯红灯灭灭亮亮灭灭A方向通行,B方向禁行灭灭闪烁亮灭灭A方向警告,B方向禁行灭亮灭亮灭灭A方向警告,B方向禁行亮灭灭灭灭亮A方向禁行,B方向通行亮灭灭灭灭闪烁A方向禁行,B方向警告亮灭灭灭亮灭A方向禁行,B方向警告1.3 实用价值与理论意义随着我国城市现代化进程的不断推进,交通问题是影响我国社会经济发展的一个大问题,而城市道路交通问题的核心就是对十字交叉路口交通信号的控制。

因此,国外一些发达国家把城市交通信号控制研究的重点放在城市交通干线和区域的控制上,可是控制效果并不明显。

人们对十字路口交通信号的控制方法大致有如下两种方式:其一是建立城市交通流的数学模型,提出优化算法,但由于十字路口不同时刻车辆的流量是复杂的、随机的和不确定的,所以数学模型难以建立,控制策略中的最优目标也很难实现,且算法复杂、计算量大,实践证明控制效果不理想,实时性较差;二是根据模糊控制的方法,根据十字路口交通的车辆数确定某一相位的绿灯初始时间和绿灯延长时间,对交通灯的控制实现了一定的模糊化,但是在控制过程中相位转换的顺序不变,因而面对我国城市如此复杂的交通系统,难以保证其灵活性和实时性。

因此,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统是当前的主要任务,以最大限度地减少了十字路口的车辆平均延误时间,提高了路口通行能力,从而达到缓解交通拥挤的目的。

本次设计的模拟交通灯控制系统是以MCS-51系列AT89C51单片机为核心,通过Proteus professional软件进行模拟仿真,完成了交通灯控制系统的基本功能,东西南北四个方向各有红绿黄三只发光二极管,由发光二极管显示红绿黄灯,并且通过按键来实现紧急情况和特殊情况的处理。

从而,完成了对十字路口交通运行状态的智能模拟。

该系统具有运行可靠,成本低,操作方便,适用性强的特点,可以得到广泛应用。

ﻪ第二章 系统硬件设计2.1系统电路设计框图2. 2 系统主要硬件需求介绍 AT 89C51单片机A T89C 51是一种带4K 字节闪烁可编程可擦除只读存储器,是低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C51管脚介绍: VCC :供电电压。

GND :接地。

P0口:P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TT L门电流。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TT L门电AT89C51单 片 机交通灯连接电路单片机电路连接图流。

图2.2.2(1)AT89C51管脚P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。

P3口也可作为AT89C51的一些特殊功能口。

RST:复位输入。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

2. 3系统电力模块图(1)单片机电路连接图图2.1.3(1)为单片机电路连接图,其中晶振频率可以根据自己需要进行选择,范围在0-24MHZ,常用12MHZ。

复位电路得电容一般用22UF,但并不唯一,只要RC所得时间大于两个机器周期即可。

图2.1.3(1)单片机电路连接图(2)交通灯连接电路图图2.1.3(2)为交通灯连接电路图,图中共12个二极管,接法如图所示:图2.1.3(2) 交通灯连接电路图2. 4 系统电路图100101102323130003002001020100100011100212003100101102212022000102101112202122303132101102100002003001XTAL218XTAL119ALE 30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51PROGRAM=1.hexSRCFILE=E:\我的工程\3.hexR1310kC322uF12MHZCRYSTALC130pFC230pFR1300RR2300RR8300RR7300RR6300RR5300RR4300RR3300RR10300RR9300RR11300RR12300RD1LED-REDD2LED-GREEND3LED-RED D4LED-REDD5LED-GREEN D7LED-GREEND8LED-GREEND9LED-YELLOWD10LED-YELLOWD11LED-YELLOWD12LED-YELLOWD6LED-REDS3+5VA 向B 向B 向R1410k图2.1.4 系统电路图第三章系统软件设计3.1 在正常情况下交通灯控制程序流程开始A绿灯,B红灯延时A绿灯闪A黄灯,B红灯延时2A红灯,B绿灯延时10sB绿灯闪A红灯,B黄灯延时2s3.2源程序清单与注释//功能:交通灯控制程序#include<reg51.h>unsignedchar t0,t1;//函数名:delay0_5s1//函数功能:用T1的工作方式1编制0.5s延时程序。

系统采用12MHZ晶振,定时器1,工作方式1定时50ms,再循环10次可定时到0.5s//形式参数:无//返回值:无voiddelay0_5s1(){for(t0 =0;t0 < 0x0a;t0++)//设置10次循环次数{TH1 = 0x3c;//设置定时器初值TL1 = 0xb0;TR1=1; //启动T1while(!TF1);//查询计数是否溢出,即50ms定时时间到,TF1 =0;//50ms定时时间到,将定时器溢出标志位TF0清零}}//函数名:delay_t1//函数功能:实现0.5—128s延时//形式参数:unsigned chart;//延时时间为0.5 sxt//返回值:无void delay_t1(unsigned char t){for(t1 = 0;t1 <t;t1++) delay0_5s1();}void main() //主函数{unsigned chark;TMOD= 0x10;//T1在工作方式1EA=1;//开总中断允许位EX0 =1;//开外部中断0中断允许位IT0= 1;//设置外部中断0为下降沿触发EX1 =1;//开外部中断1中断允许位IT1 =1;//设置外部中断1为下降沿触发while(1){P1 =0xf3;//A道绿灯,B道红灯delay_t1(20);//延时10sfor(k =0;k <3;k++)//A道绿灯闪烁三次{P1=0xf3;delay0_5s1();//延时0.5sP1 = 0xfb;delay0_5s1();//延时0.5s}P1 = 0xeb;//A道黄灯,B道红灯delay_t1(4);//延时2sP1 = 0xde;//A道红灯,B道绿灯delay_t1(20);//延时10sfor(k =0;k< 3;k++)//B道绿灯闪烁三次{P1 = 0xde;delay0_5s1();//延时0.5sP1= 0xdf;delay0_5s1();//延时0.5s}P1= 0xdd;//A道红灯,B道绿灯delay_t1(4);//延时2s}}第四章 仿真结果4.1正常情况的仿真图A 向方向绿灯,B 向方向红灯都亮10S ,然后A向绿灯闪烁3次后变成黄灯亮3S,最后B 向绿灯亮,A 向红灯亮且都亮10S后,B向绿灯闪烁3次后变成黄灯亮3S ,以后按照上述循环下去。

相关主题