基于51单片机交通信号灯课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《电子系统设计》课程设计报告题目:交通信号灯控制器姓名:
院系:电力学院
专业:
学号:
指导教师:
完成时间:年月日
目录
一、任务与目得
二、总体设计
三、硬件设计:原理图(接线图)及简要说明
四、程序框图与清单
五、实验结果与体会
目得与要求
本次课程设计得目得就是设计一个交通信号灯控制器,使其拥有以下功能:
1.在十字路口每个入口处设置一个红绿灯,并且有数码管显示通行时间.
2.主干道通行得时候支路禁止通行,支路通行时主干道禁止通行。
3.主干道通行时间为45S,支路通行时间为25S,中间有5S黄灯过渡。
4.在支路设有传感器,当检测不到有支路有车时,主干道将一直通行.
总体设计
核心为AT89C51单片机,输出计时秒表采用单片机程序输出BCD码再由74LS47译码至共阳数码管上.红绿灯输出则使用74LS160计数器得前四位进行循环译码至红绿灯,并且使用单片机程序控制输出固定脉冲至计数器CLK端使计数器按红绿灯计时跳变输出。
检测支路就是否来汽车可由在马路内放置压力传感器,当有汽车停靠在白线内等待红灯时,传感器向单片机某端口输入低电平使其被检测到。
硬件设计
红绿灯电路
首先分析十字路口红绿灯总用会有多少种可能,如下表:
00 1 00 00 1
01 1 0 0 0 1 0
10 0 0 1 1 0 0
11 0 10 1 0 0
我们不难从表中瞧出,十字路口得红绿灯状态最多分为4中.所以我们可以取74LS160计数器得低2位进行编码。然后将每一位对应相应得显示规则,电路原理图如下:
当74LS160输出为00时,4条译码规则中中只有NAND4这一条输出为高电平,此时对应状态为主干道绿灯亮,支路红灯亮.当74LS160输出为01时,对应主干道黄灯亮,支路红灯亮。当74LS160输出为10时,主干道红灯亮,支路绿灯亮.当74LS160输出为11时,主干道红灯亮,支路黄灯亮。当74LS160输出跳变至100时,Q2端向74LS160返回复位信号,重归00状态。
因此,依照设计规则00状态与01状态期间间隔为45S,01与10为5S,10与11为
25S,11与复位之间得间隔为5S.
在实际电路中,红绿灯往往不就是由几个单一得LED组成,而就是由数量较多得LED组成灯珠.因此,单单靠单片机输出功率来带动红绿灯就是不现实得.但就是可以靠将以上4个译码输出加载在双极性晶体管作为驱动,而使用电力电子开关来控制电路。如下图:
通过电力电子开关,可以使单片机电源与LED灯珠组电源隔离开,使得红绿灯能使用大功率得灯珠组。
数码管电路
数显电路采用由单片机P0、7~P0、4输出BCD码高位,P0、3~P0、0输出BCD码低位,再通过两个74LS47译码显示至共阳极得数码管上,电路原理图如下:
数码管真值表.
74LS47真值表。
因此当P0口输出为45H~00H时,数码管会显示相印得数字。
检测车辆电路
ﻩ由于支路只需要检测就是否有车到来,而并不就是需要反馈路上车辆得具体压力.因此无需在马路上设置特殊得压力传感器,只需通过车辆自身得压力使得单片机某段信号接地即可。
以下为设想:
当车辆在停靠线内侧等待红灯时,由于车辆施加得压力,使得马路内部小空间发生微小形变,使两个触点相接,并通过相应转换电路使得相当于单片机该端口接地,处于低电平状态。
ﻩ或者就是使用类似表面贴片式得形式来检测就是否有车到来。
红绿灯总体电路图
程序框图
主程序:
ORG 00H
ﻩAJMP START
ﻩORG 030H
START:ﻩMOV P0,#088H
PRE:MOVR7,#0ﻩ;数显表显示偏移量,偏移量为0时首显为45MOV R6,#40 ﻩﻩ;偏移量40时首显为5
ﻩﻩMOVﻩR5,#20ﻩﻩ;首显为25
C1: MOVﻩA,R7
ﻩﻩACALL S EG45
MOVﻩP0,Aﻩﻩﻩ;将数显表内显示数值送入P0口
ﻩACALLﻩDELAY1
ﻩACALL DELAY1ﻩ;调用延时子程序
ﻩINCﻩR7ﻩﻩ;显示一次偏移量+1
CJNEﻩR7,#45,C1 ;就是否显示45次
ﻩﻩMOV R7,#00H ;重新填装偏移量
ﻩJBﻩP2、5,C1 ﻩ;检测支路就是否有车到来,若无车到来则继续主干道绿灯ﻩCLR P2、4
ﻩﻩACALLD ELAY5
SETB P2、4ﻩ;向74LS160芯片输出一个CLK脉冲
C2:ﻩﻩMOVﻩA,R6
ﻩﻩACALL SEG45
ﻩMOV P0,A
ﻩACALL DELAY1
ACALLﻩDELAY1
ﻩINCﻩR6
ﻩCJNER6,#45,C2
ﻩMOVﻩR6,#40
ﻩﻩCLRﻩP2、4
ﻩACALLﻩDELAY5
SETBﻩP2、4
C3:ﻩMOVﻩA,R5
ﻩACALLﻩSEG45
ﻩﻩMOVﻩP0,A
ACALLﻩDELAY1 ﻩﻩACALL DELAY1
ﻩﻩINCﻩR5
ﻩCJNER5,#45,C3ﻩﻩMOVﻩR5,#20H
ﻩﻩCLRﻩP2、4
ﻩﻩACALL DELAY5
SETB P2、4
C4: MOVA,R6
ACALL SEG45
MOVP0,A
ﻩﻩACALL DELAY1
ﻩACALL DELAY1
ﻩINC R6
ﻩCJNER6,#45,C4 ﻩMOV R6,#40
ﻩﻩCLR P2、4
ﻩﻩACALLﻩDELAY5