用51单片机控制交通灯汇编语言编写

上传人:第*** 文档编号:34093696 上传时间:2018-02-20 格式:DOC 页数:15 大小:4.07MB
返回 下载 相关 举报
用51单片机控制交通灯汇编语言编写_第1页
第1页 / 共15页
用51单片机控制交通灯汇编语言编写_第2页
第2页 / 共15页
用51单片机控制交通灯汇编语言编写_第3页
第3页 / 共15页
用51单片机控制交通灯汇编语言编写_第4页
第4页 / 共15页
用51单片机控制交通灯汇编语言编写_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《用51单片机控制交通灯汇编语言编写》由会员分享,可在线阅读,更多相关《用51单片机控制交通灯汇编语言编写(15页珍藏版)》请在金锄头文库上搜索。

1、1基于 51 单片机的交通灯控制系统设计摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由 80C51 单片机、键盘、LED显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有时间设置、LED 信息显示功能,市交通实现有效控制。关键词:交通灯,单片机,自动控制一引言当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这个技术在 19 世纪就已经出现了。1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。186

2、8 年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转方式玻璃提灯组成,红色表示“停止” ,绿色表示“注意” 。1869 年 1 月 2 日,煤气灯爆炸,是警察受伤,遂被取消!电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914 年始装于纽约市 5 号大街的一座高塔上。红灯亮表示“停止” ,绿灯亮表示“通行” 。信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。1968 年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯时通行信号灯,面对绿灯的车

3、辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口!二概要设计2.1 设计思路利用单片机实现交通灯的控制,该任务分以下几个方面:a 实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的 LED 灯分别接在 P1 个管脚,用软件实现。b 用数码管显示倒计时。可以利用动态显示或静态显示,串行并出或者并行并出实现。C 实现急通车。这需要人工实现,编程

4、时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。当情况解除,让时间回到只能隔断处继续进行。2.2 总体设计框图见图一:2交通灯循环 最小系统 倒计时显示强通车控制图一三 硬件设计3.1LED 循环电路设计3.1.1 89cs51 单片机概述MCS-51 单片机内部结构:89CS51 是 MCS-51 系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。89CS51 单片机包含中央处理器、程序存储器(ROM) 、数据存储器(RAM) 、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。*中

5、央处理器:中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。*数据存储器(RAM):89CS51 内部有 128 个 8 位用户数及存储单元和 128 个寄存器单元,他们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户自定义的字型表。*程序存储器(ROM):89CS51 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。

6、*定时/计数器(ROM):89CS51 有两个 16 位的可编程定时/计数器,一时想定时或计数产生中断用于控制3程序转向。 *并行输入输出(I/O)口:89CS51 共有 4 组 8 位 I/O 口(P0、P1、P2 或 P3) ,用于对外数据传输。*全双工串行号:89CS51 内置一个全双行串行通信口,用于与其它设备间的串行数据传输,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 *中断系统:89CS51 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,客满著不同的控制要求,并具有 2 级优先级别选择。 *时钟电路:89CS51 内置最高频率高达 12Hz

7、 的时钟电路,用于产生整个单片机运行的脉冲时序,但 89CS51 单片继续外置震荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。MCS-51 系统的引脚说明:MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构,图二是它们的引脚配置,40 个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用P1.0P1.1

8、P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4Y1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1GNDPDIPVCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPESNP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A840393837363534333231302928272625242322211234567

9、891011121314151617181920图二48951 的抚慰方式可以自动复位,也可以是手动复位,见下图。除此之外,RESET/Vpd 还是一复用脚,Vcc 掉电其间,此脚可以接上没用电源,以保证单片机内部 RAM 的数据不丢失。在编程时,EA/Vpp 脚还需加上 21V 的编程电压。3.1.2 LED 循环说明东西、南北两干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人的安丘按通行。红灯禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西,南北两干道的公共停车时间。状态 循环时间 45s 5s 45s 5s 45s 。 。

10、。南北通道 红灯亮 红灯亮 绿灯亮 黄灯闪 红灯亮 。 。 。东西通道 绿灯亮 黄灯闪 红灯亮 红灯亮 绿灯亮 。 。 。上表说明东西路口亮绿灯的同时,南北路口红灯亮,同时开始 45s 倒计时。倒计时结束后开始 5s 倒计时,东西黄灯闪烁南北还是亮红灯,计时结束后状态交换然后依次循环下去。完成一次这样的循环要 50s。电路图如图三所示。5图三3.2 倒计时显示电路3.2.1 74LS164 芯片74LS164 用于扩展并行输出口。用 89CS51 串行口外接 164 串入-并出移位寄存器扩展8 位并行口。8 位并行口的每位分别接到数码显示管的不同显示端。74LS164 芯片管脚排列如下图,管脚

11、 1、2 相连共同接单片机管脚 RXD,8 管脚接单片机管脚 TXD,9 管脚接高电平,7 管脚接地,14 管脚接高电平,其他管脚依次接数码显示管管脚。倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的 1 种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择 。6图四3.2.2 共阴极数码显示管这里列出了共阴和共阳数码管的管脚平排列和内部结构。数码管 3、8

12、 管脚内部连在一起。如果是共阳极则将其接到高电平。如果是共阴极则将其接地。为了数码显示管的安全这里用三个二极管与其串联来降压。图五3.2.3 倒计时电路倒计时显示电路如图六。利用两个 74LS164 芯片并联后,其 1、2 管脚至单片机 RXD管脚 8 管脚至单片机 TXD 管脚。然后其他管脚依次接至数码管个管脚。对于数码管其 3、8管脚经过三个串联的二极管接地。7图六3.2.4 急通车电路 为了实现此功能,利用单片机中断达到目的。利用一个手动按钮开关接至单片机外部中断 0,同时在软件设计时将其设为最高优先级。当有按键按下,四方全为红灯,同时将终端位置的 PSW、ACC 进栈保护。当再按下按钮

13、,将 PSW、ACC 出栈,回到原来的位置继续执行,电路图如下图。4.2 交通灯中的中断处理流程()现场保护和现场恢复:有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况8保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。()中断打开和中断关闭:为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。()中断服务程序:有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。()中断返回:执行

14、完中断服务程序后,必然要返回,即回交通灯信号回到中断前状态,显示时间也和中断前一样。系统硬件总电路构成及原理实现本设计要求的具体功能,可以选用 AT89C51 单片机及外围器件构成最小控制系统,12 个发光二极管分成 4 组红绿黄三色灯构成信号灯指示模块,8个 LED 东西南北各两个构成倒计时显示模块,若干按键组成时间设置和紧急按钮。4.3.1 系统硬件电路构成本系统以单片机为核心,系统硬件电路由状态灯,LED 显示,按键,组成。其具体的硬件电路总图七四 软件按设计4.1 程序流程图:如图八所示。9开始设置中断工作方式、触发方式、初始化是否有中断运行过程执行中断YN中断结束,退出中断,返回主程

15、序10运行过程SN:绿灯(45),EW:红灯是否到 45 秒SN:黄灯亮,EW:红灯Count5?SN:黄灯灭,EW:红灯是否到 0 秒NYYNNEW:绿灯(45s),SN: 红灯是否到 45 秒EW:黄灯每秒闪一次,SN:红灯Count5?EW:黄灯灭,EW:红灯是否到 0 秒YYYNNNLED显示缓冲区 DISPY11图八4.2 LED 红绿灯显示如图三所示,当 P1 端口输出高电平,即 P1 各端口=1 时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;当 P1 个端口输出低电平,即 P1 各端口=0 时,发光二极管亮。我们可以使用 SETB 指令使 P1 各端口输出高电平,使用

16、CLR 指令时 P 各端口输出低电平。至于循环需要软件控制,程序见附录。4.3 倒计时显示此处采用 LED 静态显示方式,当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另个字符为止。89C51 的串行口 RXD 和 TXD 为一个全双工串行通信口,但工作在方式 0 下可作同步移位寄存器,其数据由 RXD 端串行输出或输入;而同步移位时钟由 TXD 端串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。在不需要使用串行通信的场合,利用串行口加外围芯片 74LS164 就可构成一个或多个并行输入输出口,用于串并转换或显示器 LED 驱动。此利用后者。4.4 急通车控制将一按钮接到单片机外部中断 0 端口。另一端接地,通过在程序里设置外部中断 0为最高优先级。当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。在此过程必须利用 PUSH、POP 指令保护现场,这样当情况解除可以回到原来的地方继续执行。4.5 程序

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

当前位置:首页 > 办公文档 > 解决方案

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