交通灯控制Word文档下载推荐.docx
《交通灯控制Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《交通灯控制Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
![交通灯控制Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-11/15/b72a5e18-a1f7-4dce-a18c-e3cdb6a5f65f/b72a5e18-a1f7-4dce-a18c-e3cdb6a5f65f1.gif)
1引言·
·
3
2十字路口交通灯设计·
2.1设计目标·
2.2设计流程图·
2.3硬件设计·
4
2.4软件设计·
9
3调试与实验·
17
3.1程序编写与调试·
3.2仿真结果与分析·
18
4结论·
19
5附录·
20
引言
随着社会的发展,人们生活水平的改善,私家车越来越多。
车流量的增加给交通带来了极大的压力,也使得交通安全日益严峻。
而交通灯则成为疏通车辆,缓解交通压力,减少交通事故,维护交通安全,制定交通规则最常见和最有效的手段。
十字路口是生活中常见的交通路线,而十字路口也是车流量较多,导致车辆堵塞教为严重的交通路口,因此,十字路口交通灯成了交通路线上最常见的交通设备。
红灯停绿灯行成了每个人口熟能详的交通规则。
在很久以前,交通灯仅仅只是通过简单的时序电路控制红绿灯的切换,这导致了人们对时间把握的不准确,如行人和司机不能正确的把握交通灯的变换,从而出现不必要的交通事故。
由单片机控制的十字路口交通灯具有时间倒计时显示、绿灯闪烁警示、黄灯示意减速停车等功能,完善了交通灯功能,减少交通事故,做到了更好的改善交通环境,维护人们生命和财产安全,为创造美好城市交通形象发挥了不可替代的作用。
2十字路口交通灯设计
2.1设计目标
十字路口交通灯设计要求通过89C51单片机的控制,实现十字路口交通灯的切换和倒计时显示。
东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、绿、黄三个指示灯,指挥车辆和行人安全通行。
红灯的设计时间为25秒,绿灯20秒后闪烁警示,然后绿灯灭,黄灯亮2S。
要求两干道交通灯显示正确,时间显示不错乱。
2.2设计流程图
程序设计确定为交通灯后,根据设计要求,通过ISIS画出电路图,由电路图和设计要求通过keil编写汇编语句并调试,调试成功生成*.HEX文件,打开ISIS选择单片机将*.HEX文件添加进源文件,然后进行调试,调试成功,则完成设计。
图2-1设计流程图
2.3硬件设计
2.3.1系统构成
电路板一块,AT89C52单片机一片,74LS164芯片两片,74LS48两片,100欧姆电阻6个,七段数码管4个,发光二极管12个(红、黄、绿各四个),5伏电源一个。
2.3.2系统工作流程
(1)程序设置初始时间,通过89C52单片机内部相应寄存器来实现。
(2)有89C52单片机的定时器每秒通过P3.0口向74LS164的数据端口发送信息,由74LS164的输出口显示南北红、绿、黄灯的燃亮时间情况。
(3)程序设计将东西方向的燃亮时间十位数由P1口输出,个位数由P0口输出。
(89C52只有一个串行输出端口,其余数据有简单I/O口输出。
)
(4)89C52通过程序设置各个信号灯的燃亮时间,通过程序设置黄绿灯时间依次为2s,20s,25s循环,由89C52的P3口向74LS163的数据口输出。
(5)通过89C52单片机的P3口来控制系统的工作。
2.3.3硬件选择
1)89C52芯片
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元.
主要功能特性:
标准MCS-51内核和指令系统
片内8kROM(可扩充64kB外部存储器)
32个双向I/O口
256x8bit内部RAM(可扩充64kB外部存储器)
3个16位可编程定时/计数器
时钟频率3.5-12/24/33MHz
向上或向下定时计数器
改进型快速编程脉冲算法
6个中断源
5.0V工作电压
全双工串行通信口
布尔处理器
—帧错误侦测
4层优先级中断结构
—自动地址识别
兼容TTL和CMOS逻辑电平
空闲和掉电节省模式
PDIP(40)和PLCC(44)封装形式
表2-189C52主要特性
图2-289C52引脚图
管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。
当P0口的管脚第一次写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口作为AT89C51的一些特殊功能口,管脚备选功能:
P3.0RXD(串行输入口)、P3.1TXD(串行输出口)、P3.2/INT0(外部中断0)、 P3.3/INT1(外部中断1)、P3.4T0(计时器0外部输入)、P3.5T1(计时器1外部输入)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数据存储器读选通)。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2)74LS164
74LS164为串行输入、并行输出移位寄存器,74LS164为单线总线驱动器。
在串行口为方式0状态,即工作在移位寄存器方式,波特率为振荡频率的十二分之一。
器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。
在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时,允许从TXD端输出移位脉冲。
第一帧(8位)数据发送完毕时,各控制信号均恢复原状态只有T1保持高电平,呈中断申请状态。
第一个74LS164把第一帧数据并行输出,LED1显示该数据。
然后,用软件将T1清0,发送第二帧数据。
第二帧数据发送完毕,LES1显示第二帧数据,第一帧数据串行输入给第二个74LS164,LED2显示第一帧数据。
依此类推,直到把数据区内所有数据发送出去。
应该注意,数据发送完后,第一帧数据在最后一个LED显示。
由于TXD端最多可以驱动8个TTL门。
3)74LS48
74LS48是4线-7段译码器/驱动器(BCD输入,有上拉点位)。
图2-374LS48引脚图
表2-274LS48真值表
2.3.4交通灯控制线路图
图2-4交通灯控制线路图
2.4软件设计
2.4.1交通灯信号系统程序设计流程图
图2-5交通灯信号系统程序设计流程图
2.4.2交通灯控制程序代码
*************主程序****************
SECOND1EQU30H
SECOND2EQU31H
DBUFEQU40H
TEMPEQU44H
LED_G1BITp2.0/各路口红绿黄灯输出端口分配
LED_Y1BITp2.1
LED_R1BITp2.2
LED_G2BITp2.3
LED_Y2BITp2.4
LED_R2BITp2.5
ORG0000H
JMPSTART
ORG