基于51单片机的交通信号灯系统本科毕设论文

合集下载

基于51单片机的交通信号灯模拟控制系统设计

基于51单片机的交通信号灯模拟控制系统设计

XXXX学院毕业设计(论文)课题名称交通信号灯模拟控制系统学生姓名X X X学号XXXXXXXXXXXXX系别自动化工程系专业班级机电一体化X班指导教师X X技术职务讲师XXXXXX学院教务处制指导教师:XXX 2016年9月5 日用51单片机设计交通信号灯模拟控制系统机电一体化X班XXX 指导老师:XXX摘要:城市交通信号灯模拟控制系统模拟了能够对信号灯进行远程投时的城市十字路口控制系统功能。

借助于单片机开发板上的已有资源,构建了模拟实际系统功能的单片机扩N82C55控制LED灯模块、8位七段数码管显示控制模块和板上扩展接线模块。

在分析实际系统工作流程的基础上,给出了针对单片机开发板的模拟系统C51控制程序流程。

用于实际系统时,只需要将代码移植到现场设备并进行具体设置和适当修改即可,可以在满足客户需求的前提下最小化系统开发成本。

交通信号灯模拟控制系统模拟了能够对信号灯进行远程授时的城市十字路口控制系统功能。

基于AT89C51单片机的性能参数和工作原理,应用Keil单片机编译软件的C语言编程以及使用该软件开发单片机程序,说明设计的交通信号灯模拟控制系统的工作原理、程序流程和硬件结构等相关技术,指出该系统的特点。

设计一种基于AT89C51超低功耗单片机的交通信号灯模拟控制系统,详细阐明了交通信号灯模拟控制系统的工作原理,实现了一般交通信号灯控制系统的主要功能及要求,具有实用性。

该系统充分利用了AT89C51单片机的特点,使用现今单片机广泛采用的C语言编制了系统程序,并利用Keil uVision3软件进行编译运行,最终通过Proteus完成了模拟控制系统的仿真。

关键词:AT89C51单片机K eil单片机编译软件仿真软件Proteus 6 C语言交通灯XXXXX学院毕业设计(论文)指导记录表注:指导情况须填明学生在毕业设计(论文)撰写过程中存在的问题,指导教师要求修改的内容或改进措施。

指导情况填写不包括下达任务书和开题报告意见。

基于51单片机控制交通灯的毕业设计

基于51单片机控制交通灯的毕业设计

安徽工商职业学院ANHUI BUSINESS VOCATIONAL COLLEGE毕业设计(论文)基于单片机控制的交通灯毕业设计系别:电子信息系专业班级:10应用电子技术2班学号: ******学生姓名:**指导老师:**二零一二年十月基于单片机控制的交通灯毕业设计摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本设计主要分为五大模块输入:控制电路、时钟控制电路、片内外程序切换控制、显示电路。

以MSC-51系列单片机IntelAT89C51为中心器件来设计交通灯控制器,实现了AT89C51芯片的P0口设置红灯、绿灯、黄灯燃亮时间的功能;为了系统稳定可靠采用了74LS14施密特触发器芯片的消抖电路,避免了系统因输入信号抖动产生误操作;显示时间直接通过AT89C51的P2口输出,由CD4511驱动LED数码管显示红灯燃亮时间。

关键字:AT89C51LED显示交通灯The Traffic Light Based On The Single-chip ControlAbstractThe intersections vehicle wears shuttle, pedestrian Xi Rang, garage driveway, person's sidewalk, orderly. So depend what to carry out this well arranged order? What to depend is a traffic sign light of automatic conductor system. The control method of the traffic sign light is a lot of. This design is mainly divided into five greatest molds a piece the electric circuit, clock of the importation control a control outside procedure inside the electric circuit, slice to cut over a control and shows electric circuit. Take single slice the machine IntelAT89 C51 of the serieses MSC-51s as a center spare part to design transportation light controller, carried out the AT89 C51's P's 0 people's constitution of the chips red, the function in bright time of green light, Huang2 Deng Ran2;For the sake of system stability the credibility adopted a 74 LS14 airtight trigger eliminate of machine chip to tremble electric circuit especially, avoided system because of importation the signal tremble movable property to living a mistake operation; The P 2 people who shows that time directly passes the AT89 C51 output, is driven LED figures a tube by the CD4511 to show red-light Ran bright time.Key word: The AT89 C51 LED show transportation light目录摘要 (2)ABSTRACT (3)前言 (5)一、工程简介 (6)(一)、概述 (6)(二)、工艺流程图 (7)二、工程设计 (7)(一)、控制方案的确定 (7)(二)、硬件部分 (8)(1)、交通灯控制系统的硬件设计 (8)(2)、硬件系统的设计具备以下原则 (8)(3)、硬件结构框图(如图3所示) (8)(4)、交通灯控制系统的原理框图(如图4所示) (8)(5)、8279的结构及引脚功能 (12)(三)、软件部分 (16)(1)、延时子程序的计算 (17)(2)、流程图(如图8所示) (17)三、系统的试调运行 (18)(一)、硬件调试 (18)(1)、静态调试 (18)(2)、动态调试 (18)四、系统设计及总结特点 (19)致谢 (20)参考文献 (20)附录A:源程序 (21)附录B:电路图 (27)前言本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。

基于51单片机的交通灯显示毕业论文

基于51单片机的交通灯显示毕业论文

(此文档为word格式,下载后您可任意编辑修改!)摘要随着社会和城市交通的快速发展, 近几年机动车辆数字急剧增加,道路超负荷承载道路现象严重,致使交通事故逐年增加。

交通灯是城市交通有序、安全、快速运行的重要保障,因此解决好公路交通信号灯控制问题也成了保障交通有序、安全、快速运行的重要环节。

本设计是一款基于单片机AT89C52为控制核心的交通控制系统,它可以实现对车辆、行人的有效导引。

设计中我们选用红、绿、黄三种不同LED发光管作为车辆和行人的指示,简化了设计,形象直观;采用LED数码管作为倒计时显示,可靠性高、抗干扰能力强。

该系统还可根据交通拥挤情况分别设置主干道和次干道的通行时间,以提高效率,缓减交通拥挤。

关键字:单片机AT89S52;LED数码管;通行模式AbstractAlong with the development of society and the rapid development of city traffic, in recent years the motor vehicle numbers increased dramatically, theroad overload bearing road phenomenon is serious, cause traffic accidents the important guarantee, therefore solve good is based on a single chip AT89C52 as the core control traffic control system, it can realize vehicle, pedestrian effective guidance.Design we use red, green, yellow three kinds of LED lamps as the vehicles and the pedestrian 's instructions, simplifies design, visual image; using digital tube LED as the countdown display, according to traffic jams are respectively arranged and sub-trunk roads at the time of passage, to improveefficiency, reduce traffic congestion.Keywords:single chip AT89S52; LED digital tube; traffic pattern.目录一、方案设计与论证 (1)二、系统硬件设计 (2)2.1 总体设计及功能描述 (2)2.1.1 交通灯四种通行模式及行车方向指示 (3)2.1.2 行人通行指示及其实现 (4)2.2 各功能模块硬件设计及实现 (4)2.2.1 单片机控制模块的设计 (4)2.2.2 倒计时显示及状态指示模块的设计 (6)三、系统软件设计 (7)四、系统调试与测试结果分析 (8)五、设计总结 (10)六、参考文献 (11)一、方案设计与论证题目要求要实现交通灯基本信息指示功能的基础上,还要实现倒计时时间和工作状态显示、紧急情况处理等功能,如何选择有效方案至关重要!根据传统十字路口交通灯的设计,可将本系统分为四个模块,第一个模块是控制模块,主要负责整个系统工作的控制和运算,从而使各模块正常工作;第二个模块为显示模块,主要是对车辆和行人应该遵守交通规则的指导性的直观显示,它主要包括倒计时显示和红、绿、黄灯两大部分;第三个模块是输入模块,它的主要作用是辅助控制模块,相当于输入装置,利用它可以对交通灯各路口通行时间的设置以及出现紧急情况时,进行不同工作方式的切换设置;第四个模块是电源模块,它是整个系统的“心脏”,负责给各模块提供合适的电压,让各模块能稳定工作。

基于单片机的十字路口交通灯设计--大学毕业设计(论文)

基于单片机的十字路口交通灯设计--大学毕业设计(论文)

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用MCS-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P3口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。

本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。

关键词:单片机;交通灯AbstractIn recent years, with the rapid development of science and technology, the application of SCM is going deep, driving the traditional detection techniques to renew day by day. In the real-time examination and in the automatic control monolithic integrated circuit application system, the monolithic integrated circuit often took a core part uses. The monolithic integrated circuit aspect knowledge is only insufficient, but should also act according to the concrete hardware architecture software and hardware union, to be improved.The intersection vehicles shuttle, the pedestrian is bustling, car dealership traffic lane, person sidewalk, methodical. Then depending on what to realizes this orderly order? the traffic lights on the automatic control system. There are great number kinds of modes to control the traffic lights. The system uses a series of MCS-51 as the center AT89C51 single-chip device designed to control the traffic lights, so as to realize the function of setting red, green light time by 8051 chip’s P3 port according to the actual traffic flows, lighting the red-light and green-light by turn and lighting the yellow-light to warm while 5 seconds left(outputting the traffic light signal by P1,outpuing the time by P0 and showing the time on double-digits nixie tube). Short of the design cycle, high reliability, practical, simple operation, easy maintenance, the expansion of powerful is this system.Key words:SCM; MCU; traffic light中英文摘要 (1)1 设计要求 (4)2设计目的 (3)3 方案比较、设计与论证 (3)4 原理分析 (4)4.1 交通灯显示时序的理论分析 (4)4.2 交通灯显示的理论分析 (7)5 程序设计流程图 (6)6 总体设计与电路图 (8)6.1 芯片选择 (8)6.2 设计电路图 (10)6.3 PROTEUS仿真图: (11)6.4 交通灯程序 (12)7 仿真测试、数据及结果分析 (18)8 总结与展望 (17)致谢 (20)参考文献: (21)附录 (20)1 设计要求1.1 程序开始运行先南北段通行、东西段禁止60s,后东西段通行、南北段禁止60s,依此循环。

基于AT89C51单片机的交通灯控制系统设计毕业论文

基于AT89C51单片机的交通灯控制系统设计毕业论文

滨江学院单片机交通灯的控制系统设计学生学号专业通信工程班级指导老师———————————二O一三年十二月八日基于AT89C51单片机的交通灯控制系统设计摘要:本文研究的是以AT89C51单片机为控制器的智能交通灯控制系统,通过车辆检测电路采集路况信号,经单片机处理后,分配各车道的绿灯时间,实现车流动态调节,并由74HC244驱动LED数码管显示通行倒计时;左拐、右拐、直行及行人的通行指示灯采用双色高亮度发光二极管,设计中还添加了声音提示电路,方便盲人过人行道。

本设计是以软件和硬件相结合的方式来实现,文中给出了具体的硬件电路图和软件流程及程序源码。

关键词:智能交通灯,AT89C51,车辆检测,74HC244,LEDAbstract: This study is based on AT89C51 single-chip microcomputer intelligent controller for traffic lights controlsystem, traffic signal acquisition, SCM processing, distributionof green light time for each lane, the traffic flowdynamicadjustment, and driven by the 74HC244 LED digital tubedisplay trafficcountdown; traffic lights turn left, turn right, go straight and pedestrian using dual color high brightnesslight-emitting diode, design also added voice promptcircuit, convenient for the blind to the sidewalk. This design is a combination ofsoftware and hardware to achieve, this paper give a specific hardware circuitdiagram and software flow chart and program source code. Key words: intelligent traffic lights, AT89C51, vehicledetection, 74HC244,LED1 引言在人类的生活、工作环境中,交通扮演着极其重要的角色,人们无时无刻不与交通打交道。

毕业设计(论文)-基于51单片机的交通信号灯系统

毕业设计(论文)-基于51单片机的交通信号灯系统

摘 要:随着世界范围内科技的发展,随着世界范围内科技的发展,社会的进步,社会的进步,但也导致城市化进程的加快,但也导致城市化进程的加快,越来越多的人越来越多的人也买得起车了,也买得起车了,从而导致交通拥挤的现象时有发生。

从而导致交通拥挤的现象时有发生。

从而导致交通拥挤的现象时有发生。

由此可以看出,由此可以看出,简单的十字路口交通信号灯已经不能适应现代化发展的潮流,因此需要一个更加合理、有效的智能交通灯控制系统来缓解城市交通的压力。

在现代,在现代,利用单片机来实现交通信号灯的控制成为了我们调控交通的主流。

利用单片机来实现交通信号灯的控制成为了我们调控交通的主流。

运用单片机运用单片机控制交通信号灯比较方便,而且性能高,控制交通信号灯比较方便,而且性能高,易于控制。

易于控制。

易于控制。

所以,所以,所以,我们有必要对这一课题进行一次我们有必要对这一课题进行一次系统的研究学习。

在本次毕业设计中,我的主要设计任务是在一个十字路口设计一个交通信号灯控制系统,号灯控制系统,并且利用单片机来对该系统进行合理的控制。

并且利用单片机来对该系统进行合理的控制。

并且利用单片机来对该系统进行合理的控制。

本系统由本系统由AT89C51单片机、交通信号灯状态控制电路、通信号灯状态控制电路、LED LED 数码管显示电路、按键电路组成。

系统除了拥有基本交通信号灯状态控制功能外,还具有倒计时、时间设置等功能。

关键词:单片机单片机 交通信号灯交通信号灯AbstractWith the worldwide development of science and technology, the progress of the society, but also led the city to speed up, more and morepeople can afford to buy a car, causing traffic congestion phenomenon, can be seen, traffic lights at the crossroads of simple already can not adapt to the modern development trend, so we need a smart traffic the lamp is more reasonable, effective control system to alleviate the city traffic pressure.In modern times, to achieve control of traffic lights using SCM into the mainstream of our traffic regulation. The use of single-chipmicrocomputer to control the traffic signal lamp is convenient, high performance, easy to control. Therefore, we are necessary to study a system on this subject. In this graduation design, the main design taskis to design a control system of traffic lights at a crossroads, and the use of single-chip microcomputer to the reasonable control of the system. This system consists of AT89C51 microcontroller, a key circuit, the state of the traffic lights control circuit, LED digital tube display circuit.In addition to the basic state of the traffic lights control function, but also has a countdown, time setting and other functions.Keywords Keywords:: SCM, traffic signal lamp目 录1 绪论 . (1)1.1交通控制系统的设计背景 . ................................................................................................ 1 1.2交通控制系统设计的现实意义 . ....................................................................................... 1 1.3 国内外交通信号灯系统的发展情况 . .. (1)1.4 主要研究内容 . (2)2 单片机交通控制系统方案设计 (3)2.1单片机交通控制系统的通行方案 (3)2.2 单片机交通控制系统基本原理及所要实现的功能 (3)2.2.1 基本原理 (3)2.2.2 所要实现的要求 . (3)2.3单片机交通控制系统框图 . (4)3 系统硬件电路的设计 . (5)3.1 控制芯片AT89C51单片机 . ............................................................................................... 5 3.1.1 AT89C51单片机简介 . .. (5)3.1.2 AT89C51单片机的主要性能 . (5)3.1.3 单片机组成及结构 . ........................................................................................................ 5 3.1.4 单片机各引脚功能 . ........................................................................................................ 6 3.1.5 AT89C51的中断源 (8)3.2 LED 数码管 ........................................................................................................................... 8 3.3 发光二极管 .. (9)3.4 各电路模块设计 (10)3.4.1 单片机最小系统 . ........................................................................................................... 10 3.4.2 交通信号灯显示电路 ................................................................................................. 10 3.4.3 倒计时显示电路 . .. (10)3.4.4 按键操作电路 (11)4 系统程序设计 (13)4.1主程序框图 (13)4.2 交通灯闪烁子程序 . (13)4.3 LED 数码管显示子程序 . ................................................................................................... 14 4.5 红绿灯时间调整程序 . (15)5 交通灯控制系统仿真与调试 . (18)5.1 开发软件—开发软件—KeilC51KeilC51········································································································ 18 5.2仿真软件—仿真软件—Proteus Proteus 简介............................................................................................... 18 5.3 系统仿真结果 . .. (18)总 结 .............................................................................................................. 20 致 谢 .. (21)参考文献 . (22)附 录 (23)第 1 页 共27页1 绪论1.1交通控制系统的设计背景随着世界范围内城市化进程的加快,并且汽车越来越普及化,城市的交通状况已经成为一个全球性的问题。

毕业设计(论文)-基于单片机的交通信号灯模拟控制系统设计

毕业设计(论文)-基于单片机的交通信号灯模拟控制系统设计

一、设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间。

用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。

二、设计任务和内容:任务:设计一个能够控制交通十字路口十二盏交通信号灯的模拟系统。

要求交通信号灯必须按照交通规则的模试来运行。

内容:因为本课程设计是单片机交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。

假设一个十字路口为东西南北走向。

初始状态O为东西红灯,南北红灯。

然后转状态1东西红灯,南北绿灯通车。

过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。

最后循环至状态1。

注意:双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色『F端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

三、控制系统的总体要求:1.执行程序时,初始态为四个路口的红灯全亮之后;2.东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车;3.延时一段时间后,东西路口的绿灯熄灭,黄灯开始延时并且开始闪烁,闪烁5次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车;4.延时一段时间之后,南北路口的绿灯熄灭,黄灯开始延时并且丌始闪烁,闪烁3次之后,再切换到东西路口方向;之后重复2到4过程……四、设计思想原理:(1)交道口模型如图所示:(2)交通灯控制规则如下:1)每个街口有左拐、右拐、直行及行人四种指示灯。

每个灯有红、绿两种颜色。

自行车与汽车共用左拐、右拐和直行灯。

2)共有四种通行方式:①车辆南北直行、各路右拐,南北向行人通行。

南北向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。

②南北向左拐、各路右拐,行人禁行。

通行时间为1分钟。

③东西向直行、各路右拐,东西向行人通行。

基于51单片机的交通信号灯设计毕业设计

基于51单片机的交通信号灯设计毕业设计
本系统由单片机系统、LED 显示、交通灯演示系统组成。系统包括人行道、左转、 右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、 紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。
关键词:单片机 STC89C52 LED 发光二极管 C 语言程序 交通灯
1
பைடு நூலகம்
Abstract
In a modern city, as the rapid growth of population and vehicles, urban traffic increasingly crowded, if there are no traffic lights as a command tool, I'm afraid The stream never stops flowing. car will be due to the confusion caused by severe obstruction. Therefore, the traffic light is one of the important tools for traffic management departments of city traffic management. With the rapid development of electronic and computer technology, great changes have taken place in electronic circuit analysis and design method. Electronic design automation technology has become an essential design tools and means of modern electronic system. In the field of electronic technology, in order to facilitate the storage, analysis and transmission, often the analog signal coding, namely it is converted to a digital signal using this powerful tool for digital logic digital circuits or digital system analysis and design of complex, as the signal storage, analysis and transmission to create a hardware environment. According to the requirements of the design, the design of a traffic light, we take the traditional electronic design method based engineering design basis, introduced electronic design automation technology, comprehensive design of analog and digital, the combination of hardware and software, by using Protel for Windows software and array logic devices, design of controllable LED traffic signal lamp.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计基于单片机的交通信号的灯控制系统一. 综合实训的主要内容 1.设计任务设计一单片机控制的交通信号灯系统,模拟城市十字路口交通信号灯功能。

2.基本功能要求2.1 交通信号控制直行车道红黄绿灯控制、左行车道绿灯控制、人行横道红绿灯控制。

2.2 通行时间显示数码管倒计时显示通行时间。

2.3 时间参数设置存储按键实现通行时间的设置,并存储到EEPROM (24C02)芯片中。

二. 硬件方案设计与论证 1. 显示模块设计1.1倒计时时间显示设计思想:由于该系统要求完成倒计时显示通行时间的功能,且考虑到实际的交通系统中车辆及行人通行时间不会超过一分钟,基于以上原因,我们考虑完全采用数码管显示,四个路口分别采用一个二位共阴极数码管进行显示。

(其实物图见附录1图5.3)图2.1 数码管原理图原理图分析:为了显示数字或字符,必须对数字或字符进行编码。

七段数码管(a,b,c,d,e,f,g )加上一个小数点(dp),共计8段,构成一个字节,通过对这八段给予高低平使二极管GND abcde fg dp gf ed c ba(a)导通或截止,从而显示不同的数字或字符。

系统中所使用的是2位共阴数码管(实物图见附录),其管脚从左上方起顺时针依次为1,a,b,e,d,2,g,f,dp,c。

1.2 状态灯显示设计思想:由于该系统要求完成状态灯显示的功能,我们把各个路口的红灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需四个状态灯,一个直行通行的绿灯,一个左拐通行的绿灯,一个共有的红灯,一个共有的黄灯,人行横道采用红绿灯控制,综上所述,我们共使用16个LED绿灯,12个LED红灯,4个LED黄灯来完成状态灯显示功能。

2.控制模块设计2.1 设计思想由于本系统结构简单,实现较容易,不需要大量的外围扩展,所以我们采用STC89C51单片机作为主控制器,STC89C51单片机具有体积小,功耗低,控制能力强,价格低、扩展灵活,使用方便等特点,其最小系统由振荡电路、复位电路构成。

2.2 最小系统原理图图2.2 单片机最小系统原理图原理图分析:51单片机最小系统由复位电路,振荡电路组成。

振荡电路使用11.0592MHz高精度晶振,振荡电容选择30pF瓷片电容;复位电路采用RC电路。

3.存储模块3.1 设计思想:系统掉电存储模块采用串行E2PROM,它是基于IIC总线的存储器件,遵循二线制协议,其具有接口方便,体积小,数据掉电不丢失等特点。

3.2 24C02芯片原理图管脚描述:A0A1A2引脚器件地址选择SDA引脚串行数据/地址SCL引脚串行时钟WP 写保护VCC电源1.8~6VVSS 地4.系统理论分析4.1交通灯显示时序的理论分析依次循环共分4种状态:南北方向直行通行、南北方向左拐通行、东西方向直行通行,东西方向左拐通行。

南北方向直行:南北段直行通行(绿灯)、东西段禁止(红灯),,此时,南北段人行道通行(绿灯),东西段人行道禁止(红灯),同时南北段和东西段方向的数码管分别从20s和30s(加上南北段左拐时间)开始倒计时,至最后5s时南北段绿灯变成黄灯闪烁;此后南北段左拐(左拐绿灯亮)通行、东西段禁止(红灯)10s,南北段、东西段人行道都禁止(红灯),同时南北段和东西段方向的数码管都从10s开始倒计时,至最后5s时南北段左拐灯变成黄灯闪烁;再后东西段直行通行(绿灯)、南北段禁止(红灯),东西段人行道通行(绿灯),南北段人行道禁止(红灯),同时东西段和南北段方向的数码管分别从20s和30s开始倒计时,至最后5s时东西段绿灯变成黄灯闪烁;最后东西段左拐(左拐灯亮)通行、南北段禁止(红灯)10s,东西段、南北段人行道都禁止(红灯),同时东西段和南北段方向的数码管都从10s开始倒计时,至最后5s时东西段左拐灯变成黄灯闪烁,即完成一次循环。

4.2 状态切换系统中共设置了四种模式,分别为开始模式、延长通行时间模式、减少左拐时间模式、急停模式,这几种模式分别通过相应的按键进行切换。

开始模式:直行20s,左拐10s;延长通行时间模式:直行40s,左拐20s;减少左拐时间模式:直行40s,左拐10s急停模式:当有紧急事故发生时,所有指示灯全变成红灯,禁止通行,数码管显示00.4.3倒计时显示的具体实现利用定时器中断,设置TH0=TH1=(65536-50000)/256,即每0.05秒中断一次。

每到第20次中断即过了20*0.05秒=1秒时,使时间的计数值减1,便实现了倒计时的功能。

4.4状态灯显示的实现方法黄灯闪烁利用定时器中断。

每到第10次中断即过了10*0.05秒=0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。

4.5 状态切换的实现方法状态切换在定时器中实现,定时器每0.05秒中断一次,完全可以检测按键的发生。

考虑到实际的交通系统不可能立即切换状态,程序一个周期内检测两次状态,若在南北左拐前按键修改状态,则南北左拐结束后切换状态,若在南北左拐后修改状态,则在东西左拐后切换状态。

三.软件编程1.程序流程图图3.1 主程序流程图图3.2 定时0中断流程图2.程序#include<reg52.h>#include"24C02.h"/*************端口定义*************/sbit EW_ShuMa2=P2^3; //EW方向低位数码管控制位sbit EW_ShuMa1=P2^2; //EW方向高位数码管控制位sbit SN_ShuMa2=P2^1; //SN方向低位数码管控制位sbit SN_ShuMa1=P2^0; //SN方向高位数码管控制位sbit SN_Yellow=P1^1; //SN黄灯sbit EW_Yellow=P1^5; //EW黄灯sbit EW_ManGreen=P2^7; //EW人行道绿灯sbit SN_ManGreen=P2^4; //SN人行道绿灯sbit EW_ManRed=P2^6; //EW人行道红灯sbit SN_ManRed=P2^5; //SN人行道红灯sbit EW_Red=P1^6; //EW直行道红灯sbit SN_Red=P1^2; //SN直行道红灯sbit shezhi1=P3^0; //模式设置键sbit shezhi2=P3^1; //模式设置键sbit stop1=P3^7; //紧急情况键bit Flag_SN_Yellow; //SN黄灯标志位bit Flag_EW_Yellow; //EW黄灯标志位char Time_EW; //东西方向倒计时单元char Time_SN; //南北方向倒计时单元uchar EW=30,SN=20,EWL=9,SNL=9; //程序初始化赋值,正常模式uchar EW1=30,SN1=20,EWL1=9,SNL1=9;uchar code table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0-9段选码uchar code State[8]={0xBE,0xBD,0xB7,0xBD,0xEB,0xDB,0x7B,0xDB};/*************函数声明***************/void Delay_ms(uint z);void ShuMa_Display();void timer0_init();void state1();void state2();void state3();void state4();/**************主函数************/void main(){timer0_init(); //定时器初始化EW1=read(10); //24c02读操作SN1=read(11);EWL1=read(12);SNL1=read(13);EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;//Int_init();while(1){state1();state2();state3();state4();}}/*************延时函数*************//*void Delay_ms(uint z){ uint x,y;for(x=120;x>0;x--)for(y=z;y>0;y--);}*//**************数码管显示函数*****************/ void ShuMa_Display(){uchar H,L;H=Time_EW/10;L=Time_EW%10;P0=table[L];EW_ShuMa2=0; //点亮EW_LED2Delay_ms(1);EW_ShuMa2=1; //熄灭EW_LED2P0=table[H];EW_ShuMa1=0; //点亮EW_LED1Delay_ms(1);EW_ShuMa1=1;H=Time_SN/10;L=Time_SN%10;P0=table[L];SN_ShuMa2=0; //点亮SN_LED2Delay_ms(1);SN_ShuMa2=1;P0=table[H];SN_ShuMa1=0; //点亮SN_LED1Delay_ms(1);SN_ShuMa1=1;}/***************模式函数****************/ void state1(){/*********SN通行SW禁止*********/SN_ManRed=1;SN_ManGreen=0; //SN人行道通行EW_ManRed=0; //EW人行道禁止EW_ManGreen=1;Flag_SN_Yellow=0; //SN关黄灯显示信号Flag_EW_Yellow=0; //EW关黄灯显示信号Time_EW=EW;Time_SN=SN;while(Time_SN>=5){P1=State[0]; //SN绿灯,EW红灯ShuMa_Display();}P1=0xff;//关闭P1口所有灯while(Time_SN>=0){Flag_SN_Yellow=1; //SN开黄灯信号位EW_Red=0;//P1=P1 |0XB0; //保持EW红灯ShuMa_Display();}}void state2(){/************SN方向左拐状态**********/SN_ManRed=0; //SN人行道禁止SN_ManGreen=1;EW_ManRed=0; //EW人行道禁止EW_ManGreen=1;Flag_SN_Yellow=0; //SN关黄灯显示信号Flag_EW_Yellow=0; //EW关黄灯显示信号Time_SN=SNL;Time_EW=EWL;while(Time_SN>=5){P1=State[2]; //SN左拐绿灯亮,EW红灯ShuMa_Display();}P1=0xFF;while(Time_SN>=0){Flag_SN_Yellow=1; //SN开黄灯信号位Flag_EW_Yellow=1;ShuMa_Display();}}void state3(){/***********赋值*********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;/*******SN禁止,EW通行状态**********/SN_ManRed=0; //SN人行道禁止SN_ManGreen=1;EW_ManRed=1;EW_ManGreen=0; //EW人行道通行Flag_SN_Yellow=0; //SN关黄灯显示信号Flag_EW_Yellow=0;//EW关黄灯显示信号Time_EW=SN;Time_SN=EW;while(Time_EW>=5){P1=State[4];//EW通行,SN红灯ShuMa_Display();}P1=0Xff;while(Time_EW>=0){Flag_EW_Yellow=1;//EW开黄灯信号位SN_Red=0;//P1=P1|0x0B; //保持SN红灯ShuMa_Display();}}void state4(){/***********EW方向左拐状态**************/ SN_ManRed=0; //SN人行道禁止SN_ManGreen=1;EW_ManRed=0; //EW人行道禁止EW_ManGreen=1;Flag_SN_Yellow=0; //SN关黄灯显示信号Flag_EW_Yellow=0;//EW关黄灯显示信号Time_EW=EWL;while(Time_EW>=5){P1=State[6]; //EW左拐绿灯亮,SN红灯ShuMa_Display();}P1=0Xff;while(Time_EW>=0){Flag_EW_Yellow=1; //EN开黄灯信号位Flag_SN_Yellow=1;ShuMa_Display();}/***********赋值*********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;}/****************定时器0初始化函数***************/ void timer0_init(){TMOD=0x01; //定时器0工作方式1TH0=(65536-10000)/256; //装初值TL0=(65536-10000)%256;EA=1; //开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器}/*******************定时器0服务中断函数***********/ void timer() interrupt 1{uchar t;TH0=(65536-50000)/256;TL0=(65536-50000)%256;t++;if(shezhi1==0){EW1=60;SN1=40;EWL1=19;SNL1=19;write(10,60); //24C02写操作write(11,40);write(12,19);write(13,19);}if(shezhi2==0){EW1=50;SN1=40;EWL1=9;SNL1=9;//write(10,60);//write(11,50);//write(12,9);//write(13,9);}if(stop1==0){P0=table[0];EW_ShuMa2=0;EW_ShuMa1=0;SN_ShuMa2=0;SN_ShuMa1=0;P1=0XBB;EW_ManGreen=1;SN_ManGreen=1;EW_ManRed=0;SN_ManRed=0;while(1);}if(t==10){if(Flag_SN_Yellow==1) //测试南北黄灯标志位{SN_Yellow=~SN_Yellow;}if(Flag_EW_Yellow==1) //测试东西黄灯标志位{EW_Yellow=~EW_Yellow;}}if(t==20){Time_EW--;Time_SN--;if(Flag_SN_Yellow==1) //测试南北黄灯标志位{SN_Yellow=~SN_Yellow;}if(Flag_EW_Yellow==1) //测试东西黄灯标志位{EW_Yellow=~EW_Yellow;}t=0;}}24c02的.h程序#define uchar unsigned char#define uint unsigned intsbit SCL=P3^5;sbit SDA=P3^6;/*************函数声明************/ void delay();void Delay_ms(uint z);void init(void);void start();void stop();void ack();void noack();void write_byte(uchar dat);uchar read_byte(void);void write(uchar add,uchar dat);uchar read(uchar add);void delay()//短延时,大约5us{; ;;;;;;}void Delay_ms(uint z){ uint x,y;for(y=z;y>0;y--)for(x=120;x>0;x--);}void init(void){SDA=1;SCL=1;}void start() //启动信号{SDA=1;delay();SCL=1;delay();//下降沿到来SDA=0;delay();}void stop() //停止信号{SDA=0;delay();SCL=1;delay();SDA=1;//上升沿到来delay();}void ack() //应答信号{uchar i;SCL=1;delay();while((SDA==1)&&(i<250)) //等待应答,用与语句防止一直不应答i++;SCL=0; //若不应答,也将时钟拉低delay();}void noack(){SDA=1;delay();SCL=1;delay();SCL=0;delay();}void write_byte(uchar dat)//写字节{uchar i;SCL=0;for(i=0;i<8;i++){if(dat&0x80){SDA=1;else{SDA=0;}dat=dat<<1;delay();SCL=1;delay();SCL=0; //为下一次写数据做准备delay();SDA=1; //释放总线delay();}}uchar read_byte(void) //读一个字节{uchar i,dat;SCL=0;delay();SDA=1;//释放一次总线delay();for(i=0;i<8;i++){SCL=1;delay();dat=dat<<1;if(SDA){dat++;}SCL=0;delay();}return dat;}void write(uchar add,uchar dat) //在一个地址写一个字节{start();write_byte(0xa0);//写器件地址ack();write_byte(add);//单片机芯片地址ack();write_byte(dat);ack();stop();Delay_ms(30);}uchar read(uchar add) //在一个地址读一个字节{uchar a;start();write_byte(0xa0);//写器件地址ack();write_byte(add);ack();start();write_byte(0xa1);//写器件地址ack();a=read_byte();noack();stop();return a;}四.总结通过本次实训,对已有知识有了更进一步的理解和认识,在实训过程中,虽然碰到了很多的问题,但通过查阅相关书籍、资料以及和周围同学交流后都得以一一解决。

相关文档
最新文档