基于单片机课程设计设计的车辆接近预警系统是怎样的一个原理

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于单片机的汽车倒车防撞系统设计
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口第 25 卷第 6 期 (总第 118 期) Vol.25 No.6 (SUM No.118)机 械 管 理 开 发 MECHANICAL MANAGEMENT AND DEVELOPMENT2010 年 12 月 Dec.2010基于单片机的汽车防撞激光预警系统设计王伟杰(国营大众机械厂 第一研究所, 山西 太原【摘要】 运用激光测距理论, 提出汽车防撞预警系统的设计。该系统将单片机的实时控制及数据处理功能与激光测距技术相结030024)合, 可检测汽车运行中前方障碍物与汽车的距离, 通过数显装置显示距离, 并由发声电路根据距离远近情况发出警告声, 通知驾驶员 采取相应措施, 从而避免事故发生。 【关键词】 激光测距; 单片机控制; 报警 【中图分类号】 TP216 【文献标识码】 A 【文章编号】 X (2010) 06-0179-030 引 言 未来汽车发展的方向是实现汽车的安全驾驶提示 和自动控制。设计一种使用方便、 成本低廉的汽车车 距自动化预警系统是人们争相研究的热点。由于激光 测距和单片机系统自身的优点, 使两者结合开发汽车 预警产品有巨大的应用前景。汽车研究自动化车辆安 全距离控制系统在国内、 外均属于高技术产品。道路 条件的改善和车辆的增加使车辆安全行驶问题日益突 出,开发这样的车辆安全辅助装置是目前和今后相当 长的一段时期的必然趋势。 1 激光测距原理 激光测量技术是一种测距准确、性价比高的适用 技术。激光测距即通过测量激光往返目标所需时间来 确定两者之间的距离。由激光器发射激光,光束穿过 大气到达目标,经目标反射后返回,并由探测器接 收。测出从激光发射到反射光被接收所经历的时间, 根据运动学中最基本的关系即可求出目标的距离 [1]。 在实际中,汽车驾驶员在不同的路况、不同的天气条 件下行驶,不能准确目测汽车的车距,甚至小于规定的 标准车距。我们可以采用激光测量技术来不断地测量 车距,通过分析反馈数据来提示驾驶员保持汽车的标 准车距。 有别于一般的测距系统, 本系统由于采用激光, 而 且测量距离并不是很大 (百米量级) 因此需要测量的 , 时间差 t 非常小 (us 量级) 。对于单片机系统来说, 这 样的时间长度采用计量周期数目的方式来实现有较大 难度 (受限于单片机的处理频率) 。因此拟采用电容充 电的方案来测量时间。 测量的基本原理如下: 在激光器发射激光的同时 开始给电容 C 充电, 探测器接收到反射回的激光后停 止充电。则停止后电容两端电压 U 的大小正比于时 间 t。设充电电流为 I, 电容上带电量为 Q, 则有以下 关系:Q = It = CU .所以, 时间 t = CU/ I . 因此我们在保证充电电流恒为 I 的前提下, 只需 测量充电后电容两端电压 U 即可计算出时间 t。 利用高频调制的激光在待测距离上往返产生的位移推算出光束往返所用时间 ΔT , 从而根据公式得到 距离 D: =C × ΔT /2。 D 2 AT89S51 单片机简介 AT89S51 是一种带 4K 字节闪烁可编程可擦除只 读 存 储 器(FPEROM―Falsh Programmable and Eras? able Read Only Memory) 的低电压, 高性能 CMOS8 位微 处理器。该器件采用 ATMEL 高密度非易失存储器制 造技术制造, 与工业标准的 MCS-51 指令集和输出管 脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合 在单个芯片中, ATMEL 的 AT89S51 是一种高效微控制 器, 为很多嵌入式控制系统提供了一种灵活性高且价 廉的方案。 AT89S51 具有如下特点: 个引脚, Bytes Flash 40 4K 片内程序存储器, bytes 的随机存取数据存储器 128 (RAM) 32 个外部双向输入/输出 , (I/O) 5 个中断优 口, 先级 2 层中断嵌套中断, 个 16 位可编程定时计数器,2 2 个全双工串行通信口, 看门狗 (WDT) 电路, 片内时钟 振荡器。 3 系统组成及实现 设计分为 4 个单元, 包括激光测距单元、 单片机控 制单元、 显示单元、 LCD 语音报警单元。 其设计原理如图 1 所示:1)激光测距单元。激光测距传感器的基本原理 是通过测量激光往返于被测目标之间所需的时间, 来 确定被测目标之间的距离。激光测距传感器的原理和 结构都很简单, 是距离检测最有效的手段。 基本工作过程为: 从激光二极管发射出的激光脉 冲, 经发射透镜聚焦成一定形状的光束后, 再用扫描镜 左右扫描, 向空间发送, 照射在前方车辆或其他目标图 1 系统设计原理框图收稿日期:
作者简介: 王伟杰 (1984-) 男, , 山西运城人, 助工, 本科, 从事通信技术工作。? ? 179 第 25 卷第 6 期 (总第 118 期)机 械 管 理 开 发2010 年 12 月上。目标反射光经扫描镜、 接收透镜及回输光纤, 被导 入到信号处理装置内的光电二极管。利用计数器计数 激光二极管的启动脉冲与光电二极管的接收脉冲间的 时间差, 即可得目标距离参数[2]。 2)单片机控制单元。单片机的数据分析计算单元 定时采集激光测距单元的距离数据, 对这些数据进行分 析计算, 完成系统误差修正后, 求出相应的距离, 并输出 到 显 示 单 元。同时利 用适当的加 权处理和公 式运算, 获得 当前的安全 距离 (安全制 动 处 理 时 间) 来 确 定 , 是否给出安 全的提示[3]。 单片机 控制系统运 行框图, 见图 2. 图 2 单片机运行框图 考虑到 不同气象条件对于司机采取措施安全距离的不同, 我 们设置了刹车系数, 正常气象条件、 即: 路面的情况下 刹车系数为 1, 雨天刹车系数降为 0.9, 雪天为 0.8。这 可以在系统启动时通过按钮设置, 来选择单片机运行 程序中不同的参数加以区分。这些刹车系数对于计算 安全行车处理时间非常重要。 计算安全处理时间公式变为: = u L / v . t 式中: 设定刹车系数,为司机处理时间; 为车距, 为 t L v 相对速度。 如果 t 小于我们给定的安全处理时间, 系统就予 以报警。 对于两车相对速度的测量, 我们通过求距离差分 的方法获得两车相对速度 V。测出距离 s1 后, 与以前 测量的距离 s2 之差除以时间差Δt 就是两车 (或与障碍 物) 的相对速度, V= s1-s2) t 即: ( /Δ 由于我们的距离数据实时更新, 因此也可以实时 更新相对速度数据。 3)LCD 显示单元。本单元是将数据分析计算单 元计算出的距离、 速度等信息, 通过 LCD 向司机提示 报警。 LCD 是一种平板薄膜显示器件, 除了功耗低以外, 他还具有美观、 显示工作电压低、 抗干扰能力强、 与 CMOS 电路电性能匹配好等优点[4]。目前, 有段式 LCD 和点阵式 2 种, 在只涉及数据显示及简单字母提示时, 智能仪器通常采用段式 LCD。我们采用的 EDM1190A ? ? 180是一种实用美观的四位串行段式液晶显示模块。LCD 接口电路如图 3 所示:2 个 LCD 显示模块 EDM1190A 分别用来显示 2 个 4 位数。 和 (1) (2) 两个 EDM1190A 的数据输入管脚 DIN 端都与单片机的 P1.0 口相连。单片机的 P1.1 和 P1.2 分别与 (1) (2) 和 两个 EDM1190A 的时钟信号管脚 CLK 相连。预显示数字的二进制段码由 P1.0 口一位一位 地输出, 只要在 P1.1 和 P1.2 两个端口分时产生方波信 号就可以控制在 (1) (2) 和 LCD 上 显 示 距 离 和 相 对 速度。 4)语音提示报警单元。本单元是将数据分析计 算单元判别的安全等信息, 向司机发出语音提示报 警。语音提示报警单元电路设计如图 4 所示:图 3 LCD 接口电路图提示音由语音存储/再生芯片 ISD1420 分段存储, ISD1420 输出的音频信号经电容耦合到两片集成功率 放大器 TDA2003 构成的 BTL 功放电路, 最后由扬声器 输 出 。 由 单 片 机 通 过 P3.6 控 制 ISD1420 的 放 音 , P3.2~P3.5 用来调整放音地址。该电路采用 EEPROM 存储方法将模拟语音数据直接写入半导体存储单元 中, 具有音质自然、 可反复录放、 抗干扰、 低功耗等许多 优点。ISD1420 放音时间为 20 s; 最多可分为 160 段, (下转第 182 页)图 4 语音报警电路图 第 25 卷第 6 期 (总第 118 期)机 械 管 理 开 发2010 年 12 月4 结束语 高达 5 MHz 的时钟下, 数据通信没有发生错误, 传输速 实验证明, 这种双机通信方式是确实可行的。在度为 4 615 bit/s。利用该方式, 角位移测试系统已可与 具有 SPI 接口的外围设备通信, 实现测试参数的远程 SS 引脚的方式, 扩展为一主多从的通信模式。这对于 两种方式已应用于具体项目中, 收到了较好的效果。参考文献 [1] [2] [3] 图 1 主控方程序流程 图 2 从控方程序流程 Tim wilmshurst . PIC 嵌入式系统开发[M]. 陈小文, 闫志强, 李学海 . PIC 单片机实用教程[M]. 北京: 航空航天大学出版 罗 社, 2003: 325-326. 翼, 张宏伟 . PIC 单片机应用系统开发典型实例[M]. 北 译. 北京: 人民邮电出版社, 2008: 255-259.控制和智能调整。另外, 尽管本文是双机通信的模式, 但是主机也可以通过增加从动器选择线来控制从机的 构建分布式角位移测试系统具有重要的意义。目前这京: 中国电力出版社, 2005: 115-117.The Double communication System Design Base on SPI Bus(Key laboratory of Instrumentation Science and Dynamic Measurement, North University of China, Taiyuan 030051, China) 〔Abstract〕 Aim of at the effective demand which an angular displacement measurement test system, paper designs an double this communication system based on SPI (synchronous serial transmission standard). Bus, design idea and the method of realization are also The presented in the article. Through the experiment, system can work well even under the clock of 5MHZ , the which is very quickly in serial transmission .The speed of data transmission can reach to 4615 bit/s. Research enabled function of angular placement test system obtain further developed. 〔Key words〕 A SPI PIC; Data communicationBAI Ming- YANG Rui-feng (上接第 180 页)每段段长最少 125 ms; 输入采样 6.4 kHz; 000 次录 100 音周期; V 单电源供电, 5 放音电流 15 mA, 维持电流 0.5 μA, 完全满足本系统设计需要。 4 结束语 本文采用了激光测距原理对汽车与障碍物进行距 离测量, 并针对其行车过程具体情况给予语音提示和 报警, 提出了汽车激光预警仪的设计。以此为理论和 技术依据来开发研制产品, 达到提醒驾驶员注意, 采取 措施实现避障和防碰撞的目标。[1] [2] [3] [4]参考文献 李相银. 激光原理技术及应用[M] . 哈尔滨:哈尔滨工业大 学出版社,2004. 钟 勇, 姚剑峰. 现代汽车的四种测距方法[J] . 汽车工业研 究, 2001(2) :38 - 40. 谭洪涛, 张学平. 单片机设计测距仪原理及其简单应用[J]. 现代电子技术, 2004, (18) : 94296. 王 丽, 许安涛, 王瑛.激光器的发展及激光测距的方法 [J ]. 焦作大学学报 , 2007 (04) 28. :Design of Laser-Warning System for Automobile Anticollision Based on MCU(NO.1 Research Station, State-owned Machinery Works, Taiyuan 030024, China) 〔Abstract〕 Using laser rangefinder theory, the design of automotive collision avoidance warning system is arranged. The system will com? bine the SCM real-time control and data processing functions and Laser measurment technology.It can detect obstacles in front of cars run? ning with the vehicle in the distance.Through digital-display devices that distance can be getted and voice circuits under conditions issue warnings to notify the driver to take appropriate measures, which to avoid accidents. 〔Key words〕 Laser rangefinder; SCM-control; WarningWANG Wei-jie? ? 182
赞助商链接基于单片机的汽车倒车防撞系统设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于单片机的汽车倒车防撞系统设计
&&基于单片机的汽车倒车防撞系统设计
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩36页未读,
定制HR最喜欢的简历
你可能喜欢基于单片机的汽车超速报警系统的设计 by Eran Wen on Prezi基于单片机的交通灯设计
我的图书馆
基于单片机的交通灯设计
基于单片机的交通灯设计
&&& 基于单片机的交通灯设计
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。
单片机& 交通灯& 闯红灯 检测车流量
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
2 单片机概述
&& &单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
&& &通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
& &&单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
3 芯片简介
3.1 MSC-51芯片简介
MCS-51单片机内部结构
&& 8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。&&&& 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
·中央处理器:
&&&&中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
·数据存储器(RAM)
&&&&8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。&&&
·程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
·定时/计数器(ROM):
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
·并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
·全双工串行口:
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
·中断系统:
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
·时钟电路:
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
下图是MCS-51系列单片机的内部结构示意图2。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图2
MCS-51的引脚说明:
MCS-51系列单片机中的及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:
MCS-51的引脚说明:
MCS-51系列单片机中的及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图3
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图3
Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。
8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
·Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,将用于输入编程脉冲。
·Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
·Pin31:EA/Vpp程序存储器的内外部选通线,单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。
在编程时,EA/Vpp脚还需加上21V的编程电压。
3.2& 8255芯片简介
8255可编程并行接口芯片简介:
&&& 8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。
8255可编程并行接口芯片方式控制字格式说明:
8255有两种控制命令字;一个是方式选择控制字;另一个是C口按位置位/复位控制字。其中C口按位置位/复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。
方式控制字格式说明如表1:
&&& D7:设定工作方式标志,1有效。
&&& D6、D5:A口方式选择
&&&&&&&&&&
&&&&&&&&&&& 0 0 —方式0
&&&&&&&&&&& 0 1 —方式1
&&&&&&&&&&& 1 ×—方式2
&&& D4:A口功能&&&&& &(1=输入,0=输出)
&&& D3:C口高4位功能 (1=输入,0=输出)
&&& D2:B口方式选择& &(0=方式0,1=方式1)
&&& D1:B口功能&&&&& &(1=输入,0=输出)
D0:C口低4位功能 (1=输入,0=输出)
&&& 8255可编程并行接口芯片工作方式说明:
&&& 方式0:基本输入/输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。
&& &方式1:选通输入/输出方式。这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。
&&& 方式2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。
3.3 74LS373简介
74LS373 是一种带三态门的8D锁存器,其管脚示意图如下示:
其中:1D-8D为8个输入端。
&&&&& 1Q-8Q为8个输出端。
&&&&& LE为数据打入端:当LE为“1”时,锁存器输出
&& &&&状态同输入状态;当LE由“1”变“0”时,数据
&&&&& 打入锁存器
&&&&& OE为输出允许端:当OE=0时,三态门打开;
&&&&& 当OE=1时,三态门关闭,输出高阻。
4 &系统硬件设计
4.1交通管理的方案论证
东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道比南北道的车流量大,指示灯燃亮的方案如表2。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
表2说明:&&&&&&&
(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为60秒。
(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。&&&&&&
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为80秒。 东西方向车流大 通行时间长。
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
(5)此表可根据车流量动态设定红绿灯初始值。
4.2系统硬件设计
选用设备8031单片机一片选用设备:8031弹片机一片,8255并行通用接口芯片一片,74LS07两片,MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。
4.2.1& 系统总框图如下:
4.2.2 交通灯硬件线路图&& &&&&&&&&&&&&&&&&&&&&&&&&
4.2.3 系统工作原理
(1)开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统
&(2) 由8051单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PA 口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。
&(3)8051通过& 设置各个信号等的燃亮时间、通过8031设置,绿、红时间分别为60秒、80秒循环由8051的 P0口向8255的数据口输出。
(4) 通过8051单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。
(5)红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后然后恢复正常。
(6)增加每次绿灯时间车流量检测的功能,并且通过查询P2.0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。
(7)绿灯时间倒计时完毕,重新循环。
5.控制器的软件设计
5.1每秒钟的设定
&&& 延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。
5.2计数器硬件延时
5.2.1 计数器初值计算
&& &定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式:
&&&&&&&&& TC=M-C
式中,M为计数器摸值,该值和计数器工作方式有关。在方式0时M为213 ;在方式1时M的值为216;在方式2和3为28
5.2.2& 计算公式
&T=(M-TC)T计数
& 或TC=M-T/T计数
 T计数是单片机时钟周期TCLK的12倍;TC为定时初值
如单片机的主脉冲频率为TCLK12MHZ ,经过12分频
方式0    TMAX=213 *1微秒=8.192毫秒
方式1    TMAX=216 *1微秒=65.536毫秒
 显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.
5.2.3& 1秒的方法
  我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。
5.2.4相应程序代码
(1)主程序 
   定时器需定时50毫秒,故T0工作于方式1。 初值:
    TC=M-T/ T计数 =216 -50ms/1us=15536=3CBOH
&&&&&&&&& ORG 1000H
&&&&& START: MOV& TMOD,& #01H&&& ; 令TO为定时器方式1
&&&&&&&&&&&& MOV& TH0, &&&#3CH&&& ;装入定时器初值
&&&&&&&&&&&& MOV& TL0,&&& #BOH  ;
&&&&&&&&&&&& MOV& IE,   #82H&&&&& ;开T0中断
&&&&&&&&&&&& SEBT  TRO       ;启动T0计数器
&&&&&&&&&&&& MOV  RO,  #14H   ;软件计数器赋初值
LOOP: SJMP&& $         ;等待中断
(2)中断服务子程序
      &ORG  000BH
     & AJMP  BRT0
     & ORG 00BH
 BRTO:DJNZ R0,NEXT
      AJMP&& TIME& ;&&&& 跳转到时间及信号灯显示子程序
DJNZ:MOV RO,#14H ;恢复R0值
  &&&&&&& MOV& TH0,&&& #3CH&&& ;重装入定时器初值
&&&&&&&&&&& MOV& TL0,&&& #BOH  ;
&&&&&&&&&&& MOV& IE,   #82H
      & RET1
5.3 软件延时
& MCS-51的工作频率为2-12MHZ,我们选用的8031单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。
& 具体的延时程序分析:
&DELAY:MOV R4,#08H&&& 延时1秒子程序
&&&DE2:LCALL DELAY1
&&&&& DJNZ R4,DE2
DELAY1:MOV R6,#0& &&&延时125ms 子程序
&&&&& &&&MOV R5,#0
DE1:&& DJNZ R5,$
&&&&& &&&DJNZ R6,DE1
&&&&&& &&RET
MOV RN,#DATA&& 字节数数为2&&&&& 机器周期数为1
所以此指令的执行时间为2ms
DELAY1 为一个双重循坏循环次数为256*256=65536 所以延时时间=072us 约为125us
DELAY& R4设置的初值为8& 主延时程序循环8次,所以125us*8= 1秒
&由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
5.4 时间及信号灯的显示
5.4.1& 8051并行口的扩展
&& 8051虽然有4个8位I/O端口,但真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。因此,8031通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/O端口,显然8031的端口是不够,需要扩展。
&& 扩展的方法有两种:(1)借用外部RAM地址来扩展I/O端口;(2)采用I/O接口新片来扩充。我们用8255并行接口信片来扩展I/O端口。
5.4.2显示原理:
当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环。&&
5.4.3 &8255PA口输出信号接信号灯:
&由于发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光,所以可以用置位方法点亮红,绿,黄发光二极管。
&5.4.4 8255输出信号与数码管的连接:
&&& LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上7FH所以 SP上为0伏,不亮其余为TTL高电平,全亮则显示为8
采用共阴级连接:
其中& PC0\PB0-a,
PC1\PB1-b,
PC2\PB2-c,
PC3\PB3-d,
PC4\PB4-e,&&
PC5\PB5-f,
PC7\PB7 -SP接地
dop g f e d c b a
驱动代码(16进制)
0 0 1 1 1 1 1 1
& 0 0 0 0 0 1 1 0
& 0 1 0 1 1 0 1 1
& 0 1 0 0 1 1 1 1
& 0 1 1 0 0 1 1 0
& 0 1 1 0 1 1 0 0
& 0 1 1 1 1 1 0 0
& 0 0 0 0 0 1 1 1
& 0 1 1 1 1 1 1 1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 表 3& 驱动代码表
5.4.5 的连接:
用8051的P0 口的 p0.7 连接8255的片选信号cs& 我们用8031的地址采用全译码方式,当p0.7 =0&& 时片选有效, 其他无效,& p0.1 p0.1 用于选择8255端口
&P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0
A7&&& A6&& A5&& A4&& A3&& A2&& A1& A0
1&&&& X&&& X&&&& X&&& X&&& X&&& 0&& 0& 00H为8255 的PA口
1&&&& X&&& X&&&& X&&& X&&& X&&& 0&& 1& 01H 为8255的PB口
1&&&& X&&& X&&&& X&&& X&&& X&&& 1&& 0& 02H 为8255的PC口
1&&&& X&&& X&&&& X&&& X&&& X&&& 1&& 1& 03H 为8255的控制口
由于8051是分时对8255和储存器进行访问所以8051的P0口不会发生冲突
5.5 程序设计
5.5.1流程图如图所示
&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&图8
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图9& 程序流程图
5.5.2 程序源代码
&&&&&& ORG 0000H&&&&&&&& ;主程序的入口地址
&&&&&& LJMP MAIN&&&&&&&& ;跳转到主程序的开始处
&&&&&& ORG 0003H&&&&&&&& ;外部中断0的中断程序入口地址&&&&&&&&&
&&&&&& ORG 000BH&&&&&&&& ;定时器0的中断程序入口地址
&&&&&& LJMP T0_INT&&&&&&& ;跳转到中断服务程序处
&&&&&& ORG 0013H&&&&&&&& ;外部中断1的中断程序入口地址&&&&&
MAIN : MOV SP,#50H
&&&&&& MOV IE,#8EH&&&&&& ;CPU开中断,允许T0中断,T1中断和外部中断1中断
&&&&&& MOV TMOD,#51H&&&& ;设置T1为计数方式,T0为定时方式,且都工作于模式1
&&&&&& MOV TH1,#00H&&&&& ;T1计数器清零
&&&&&& MOV TL1,#00H
&&&&&& SETB TR1&&&&&&&&& ;启动T1计时器
&&&&&& SETB EX1&&&&&&&&& ;允许INT1中断
&&&&&& SETB IT1&&&&&&&&& ;选择边沿触发方式
&&&&&& MOV DPTR ,#0003H
&&&&&& MOV A, #80H&&&&& ;给8255赋初值,8255工作于方式0
&&&&&& MOVX @DPTR, A
AGAIN: JB P3.1,N0&&&&&& ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 则跳转
&&&&&& MOV A,P1&&&&
&&&&&& JB P1.7,RED&&&&& ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间&&&
&&&&&& MOV R0,#00H&&&&& ;R0清零
&&&&&& MOV R0,A&&&&&&&& ;存入东西方向绿灯初始时间
&&&&&& MOV R3,A
&&&&&& LCALL DISP1
&&&&&& LCALL DELAY
&&&&&& AJMP AGAIN
RED:&& MOV A,P1
&&&&&& ANL A,#7FH&&&&& ;P1.7置0
&&&&&& MOV R7,#00H&&&& ;R7清零
&&&&&& MOV R7,A&&&&&&& ;存入东西方向红灯初始时间
&&&&&& MOV R3,A
&&&&&& LCALL DISP1
&&&&&& LCALL DELAY
&&&&&& AJMP AGAIN
;-------------------------------------------
N0:&&& SETB TR0&&&&&&&&& ;启动T0计时器
&&&&&& MOV 76H,R7&&&&&&& ;红灯时间存入76H
N00:&& MOV A,76H&&&&&&& ;东西方向禁止,南北方向通行
&&&&&& MOV R3,A&&&&&&
&&&&&& MOV DPTR,#0000H& ;置8255A口,东西方向红灯亮,南北方向绿灯亮
&&&&&& MOV A,#0DDH
&&&&&& MOVX @DPTR, A
N01:&& JB P2.0,B0
N02:&& SETB P3.0
&&&&&& CJNE R3,#00H,N01& ;比较R3中的值是否为0,不为0转到当前指令处执行
;------黄灯闪烁5秒程序------
N1:&&& SETB P3.0
&&&&&& MOV R3,#05H
&&&&&& MOV DPTR,#0000H& ;置8255A口,东西,南北方向黄灯亮
&&&&&& MOV A,#0D4H
&&&&&& MOVX @DPTR,A
N11:&& MOV R4,#00H
N12:&& CJNE R4,#7DH,$&&& ;黄灯持续亮0.5秒
N13:&& MOV DPTR,#0000H&& ; 置8255A口,南北方向黄灯灭
&&&&&& MOV A,#0DDH
&&&&&& MOVX @DPTR,A
N14:&& MOV R4,#00H
&&&&&& CJNE R4,#7DH,$&&& ;黄灯持续灭0.5秒
&&&&&& CJNE R3,#00H,N1&& ;闪烁时间达5秒则退出
;------------------------------------------------------------
N2:&&& MOV R7,#00H
&&&&&& MOV A,R0&& ;东西通行,南北禁止
&&&&&& MOV R3,A
&&&&&& MOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮
&&&&&& MOV A,#0EBH
&&&&&& MOVX @DPTR,A
N21:&& JB P2.0,T03
N22:&& CJNE R3,#00H,N21
;------黄灯闪烁5秒程序------
N3:&&& MOV R3,#05H
&&&&&& MOV DPTR,#0000H&&& ;置8255A口,东西,南北方向黄灯亮
&&&&&& MOV A,#0E2H
&&&&&& MOVX @DPTR,A
N31:&& MOV R4,#00H
&&&&&& CJNE R4,#7DH,$&&&& ;黄灯持续亮0.5秒
N32:&& MOV DPTR,#0000H& ; 置8255A口,南北方向黄灯灭
&&&&&& MOV A,#0EBH
&&&&&& MOVX @DPTR,A
N33:&& MOV R4,#00H
&&&&&& CJNE R4,#7DH,$&&&& ;黄灯持续灭0.5秒
&&&&&& CJNE R3,#00H,N3&& ;闪烁时间达5秒则退出
&&&&&& SJMP N00
;------闯红灯报警程序------
B0:&&& MOV R2,#03H&&&&&&& ;报警持续时间3秒
B01:&& MOV A,R3
&&&&&& JZ N1&&&&&&&&&&&&& ;若倒计时完毕,不再报警
&&&&&& CLR P3.0&&&&&&&&&& ;报警
&&&&&& CJNE R2,#00H,B01&& ;判断3秒是否结束
&&&&&& SJMP& N02
;------1秒延时子程序-------
N7:& &&RETI
T0_INT:MOV TL0,#9AH&&&&&& ;给定时器T0送定时10ms的初值
&&&&&& MOV TH0,#0F1H&&
&&&&&& INC R4
&&&&&& INC R5
&&&&&& CJNE R5,#0FAH,T01& ;判断延时是否够一秒,不够则调用显示子程序
&&&&&& MOV R5,#00H&&&&&&& ;R5清零
&&&&&& DEC R3&&&&&&&&&&&& ;倒计时初值减一
&&&&&& DEC R2&&&&&&&&&&&& ;报警初值减一
T01:&& ACALL DISP&&&&&&&& ;调用显示子程序
&&&&&& RETI&&&&&&&&&&&&&& ;中断返回
;------显示子程序------
DISP:& JNB P2.4,T02
DISP1: MOV B,#0AH
&&&&&& MOV A,R3&&&&&&&&&&& ;R3中值二转十显示转换
&&&&&& DIV AB
&&&&&& MOV 79H,A
&&&&&& MOV 7AH,B
DIS:&& MOV A,79H&&&&&&&&&& ;显示十位
&&&&&& MOV DPTR,#TAB
&&&&&& MOVC A,@A+DPTR
&&&&&& MOV DPTR,#0002H
&&&&&& MOVX @DPTR,A
&&&&&& MOV DPTR,#0001H
&&&&&& MOV A,#0F7H
&&&&&& MOVX @DPTR,A
&&&&&& LCALL& DELAY
DS2:&& MOV A,7AH&&&&&&&&&& ;显示个位
&&&&&& MOV DPTR,#TAB
&&&&&& MOVC A,@A+DPTR
&&&&&& MOV DPTR,#0002H
&& &&&&MOVX @DPTR,A
&&&&&& MOV DPTR,#0001H
&&&&&& MOV A,#0FBH
&&&&&& MOVX @DPTR,A
&&&&&& RET
;------东西方向车流量检测程序------
T03:&& MOV A,R3
&&&&&& SUBB A,#00H&&&&&&&&& ;若绿灯倒计时完毕,不再检测车流量
&&&&&& JZ&& N3&&&&&&&&&&&&&
&&&&&& JB P2.0,T03
&&&&&& INC R7&&&&&&&&&&&&&&&&& &&&&&
&&&&&& CJNE R7,#64H,E1&&
&&&&&& MOV R7,#00H&&&&&&&&& ;中断到100次则清零
E1:&&& SJMP N22
;------东西方向车流量显示程序------
T02:&& MOV B,#0AH
MOV&&& A,R7&&&&&&&&&&&&&&& ;R7中值二转十显示转换
&&&&&& DIV AB
&&&&&& MOV 79H,A
&&&&&& MOV 7AH,B
DIS3:& MOV A,79H&&&&&&&&&& ;显示十位
&&& &&&MOV DPTR,#TAB
&&&&&& MOVC A,@A+DPTR
&&&&&& MOV DPTR,#0002H
&&&&&& MOVX @DPTR,A
&&&&&& MOV DPTR,#0001H
&&&&&& MOV A,#0F7H
&&&&&& MOVX @DPTR,A
&&&&&& LCALL DELAY
DS4:&& MOV A,7AH&&&&&&&&&& ;显示个位
&&&&&& MOV DPTR,#TAB
&&&&&& MOVC A,@A+DPTR
&&&&&& MOV DPTR,#0002H
&&&&&& MOVX @DPTR,A
&&&&&& MOV DPTR,#0001H
&&&&&& MOV A,#0FBH
&&&&&& MOVX @DPTR,A
&&&&&& LJMP N7
;------延时4MS子程序----------
DELAY: MOV& R1,#0AH
LOOP:& MOV& R6,#64H
&&&&&& NOP
LOOP1: DJNZ R6,LOOP1
&&&&&& DJNZ& R1,LOOP
&&&&&& RET&&&&&&&&
;------字符表------
TAB:&& DB& 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
&&&&&& END
本系统就是充分利用了芯片的I/O引脚。系统统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8031芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现 。
通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
1张毅坤. 单片微型计算机原理及应用,西安电子科技大学出版社& 1998
2余锡存 曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2000.7
3雷丽文 等.微机原理与接口技术[M].北京:电子工业出版社,1997.2
& WWW.21ic.com部分资料。
馆藏&130701
TA的推荐TA的最新馆藏[转]&[转]&[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 列车接近防护预警系统 的文章

 

随机推荐