基于89C51单片机设计报告Word下载.docx
- 文档编号:17533914
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:12
- 大小:162.10KB
基于89C51单片机设计报告Word下载.docx
《基于89C51单片机设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《基于89C51单片机设计报告Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
3)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法)。
4)同步设置人行横道红、绿灯指示。
5)考虑到特殊车辆情况,设置紧急转换开头。
三、技术方案
1、设计总体思路
AT89S51单片机有2个计数器,6个中断源,能满足系统要求。
用单片机设计智能交通灯的成本低,相对其它技术较简单,且设计的产品能够满足要求,所以本文采用单片机设计交通灯,系统原理框图如图1所示:
CANBUS
图1
系统利用红外遥控装置实现各十字路口现场信号灯控制红外发射器发射出的编码信号经接收器接收后送人单片机控制器,控制信号灯红绿变换、等待时间、急车强通。
另外,车流检测装置安放在各十字路口东西、南北道路方向实时检测车道车流信息。
并将检测到的信息输至单片机进行处理。
通过单片机编程技术实现信号灯绿、红切换及等待时间设定。
此外,PC机通过通讯串口与节点上的单片机控制器进行通信,实现数据信息在CAN总线上的发送与接收。
PC机负责网络上所有信号灯控制装置的集中管理功能:
同时向各信号灯控制器下传工作模式控制信息。
2、设计中的技术重点和难点
设计改智能交通灯的技术重点是交通灯运行控制功能模块框图,难点是如何检测十字路口的车流量,道路上的车流量具有极大的随机
性和模糊性,是一个典型的时变系统。
特别在上、下班时间,路口往往堆积着大量车辆,给人们的通行带来了极大的不便。
如何根据检测到的车流量来动态、实时地控制当前绿灯时间是一个难点。
3、解决重点难点基本思路
对车流量的检测可以通过采用一个压电传感器,把各种车的图像等参数发送到传感器进行识别,最后由控制系统实现对信号灯的控制。
如下图2所示:
系统中在每条路的进口安装六个检测器,即每一车道上两个。
每条路的近侧检测器(靠近路口端)和远侧检测器问需一定的距离,使得能把后面的车辆预到达的信息反馈给系统,在此取100m。
四、硬件设计
系统采用AT89C51单片机作为主控制芯片。
8255A作为东西和南北方向的红灯、绿灯、黄灯的I/O接口芯片。
图3、4、5为交通灯的控制系统原理图。
图3
图4
图5
对关键元件的选择说明
(1)AT89C51(主控芯片):
CPU作为该系统的核心,控制芯片,起控制、管理交通灯的作用。
(2)采用双色LED模拟显示交通灯的状态
双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,共用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮;
红色正端加低电平,绿色正端加高电平时,绿灯亮;
两端都加高电平时,黄灯亮。
(3)紧急优先控制功能
该功能主要是为了交通管理中紧急处理。
因此。
在交通信号灯正常控制的基础上,增加紧急优先处理功能。
如消防、急救等情况出现时,东西、南北方向的红灯均变亮。
以便紧急处理。
有紧急情况时。
89(251通过INTO请求中断,使系统可靠地接收紧急信号。
紧急情况处理后。
交通信号灯又恢复到先前的工作状态。
五、软件设计
智能交通灯的软件设计流程图如下图所示:
否
是
否
是
否
否
程序代码如下:
ORG0000H
A_BITEQU20H;
用于存放南北十位数
B_BITEQU21H;
C_BITEQU22H;
用于存放东西十位数
D_BITEQU23H;
用于存放东西十位数
TEMP1EQU24H;
用于存放第一二南北状态要显示的时间
TEMP2EQU25H;
用于存放第一二东西状态要显示的时间
TEMP3EQU26H;
用于存放第三第四南北状态要显示的时间
TEMP4EQU27H;
LJMPMAIN
ORG0003H;
外部中断0入口
LJMPINT0;
跳转到外部0中断
ORG0013H;
外部中断1入口
LJMPINT1;
跳转到外部1中断
INT0:
MOVA,P1;
外部0中断
PUSHACC
MOVA,P2;
中断保护
MOVP1,#0FFH;
清除先前状态
MOVP2,#0FFH
CLRP1.0
CLRP1.4;
南北通行,东西禁止通行
CLRP1.6
CLRP2.3
JNBP3.2,$;
判断是否还在中断状态
POPACC
MOVP2,A;
返回中断前状态
MOVP1,ACC
RETI;
中断返回
INT1:
MOVA,P1;
外部1中断
PUSHACC;
MOVA,P2
CLRP1.2
CLRP2.1
CLRP1.3;
东西通行,南北禁止通行
CLRP1.5
JNBP3.3,$;
MOVP1,A
MAIN:
ORG0100H;
初始情况
MOVP1,#0FFH
MOVP2,#0FFH;
灭所有灯
MOVTMOD,#55H;
计数方式方式1
MOVIE,#85H;
开中断
MOVTEMP1,#20;
MOVTEMP2,#25
MOVTEMP3,#25
MOVTEMP4,#20
STAR:
MOVA,24H;
将显示时间送A
CJNEA,#20,T40T;
判断时间,选初始值
T20T:
;
南北通行要显示的时间为20的计数器初始值
CLRTF0;
清TF0
CLRTF1;
清TF1
MOVTH1,#0FFH;
送20秒时的初始值
MOVTL1,#0FCH;
在些设计20秒6辆为多车
MOVTH0,#0FFH
MOVTL0,#0FCH
LJMPTEMP20;
跳到20秒
T40T:
南北通行要显示的时间为40的计数器初始值
MOVTH1,#0FFH;
送40秒时的初始值
MOVTL1,#0F8H;
在些设计40秒8辆为多车
MOVTL0,#0F8H
LJMPTEMP40;
跳到40秒
TEMP20:
TEMP1=20情况
SETBTR0;
开始计数
SETBTR1
CLRP2.1;
CLRP1.3
南北要显示的时间,
MOVTEMP2,#25;
东西要显示的时间
STLOP:
ACALLDISPLAY1;
调用显示
DECTEMP1;
时间够一秒显示时间减1
DECTEMP2
MOVA,TEMP1
CJNEA,#0,NEXT;
若显示时间不为0保持现在状态
LJMPSTAR2;
若显示时间为0跳到第二状态
NEXT:
LJMPSTLOP
STAR2:
状态1
SETBP1.2
CLRP1.1;
南北黄灯,东西禁止通行
SETBP1.3
CLRP1.4
MOVTEMP1,#05;
MOVTEMP2,#05;
东西要显示的时间,
STLOP2:
CJNEA,#0,NEXT2;
JBTF1,T40;
判断南北是否多车
JBTF0,T40;
少车下次显示时间为20秒
DJNZR1,DPLOP;
循环扫描
DJNZR0,DPL1
RET;
等待1秒返回
D1MS:
MOVR7,#250;
1MS延时程序
DJNZR7,$
RET
参考文献
[1]梅丽凤,王艳秋.单片机原理及接口技术[M].北京:
清华大学出版社,北京交通大学出版社,2009.
[2]韩来吉.用89C51实现急救车优先的交通灯控制系统[J].
[3]温欣玲,张玉叶.基于单片机交通灯智能控制系统研究[J].中文核心期刊《微计算机信息》(嵌入式与SOC)2007年第23卷第1O一2期
[4]陈志强,芮延年,陈冶湘.城市路口交通灯多级智能控制方法的研究J.2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 89 C51 单片机 设计 报告