您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页基于单片机ATC52控制的交通灯

基于单片机ATC52控制的交通灯

来源:测品娱乐
电子信息工程系毕业论文

摘 要

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本设计主要分为五大模块输入控制电路、时钟控制电路、片内外程序切换控制、显示电路。以MSC-51系列单片机IntelATC52为中心器件来设计交通灯控制器,实现了ATC52芯片的P1口设置红、绿灯、黄灯燃亮时间的功能;为了系统稳定可靠采用了74LS14施密特触发器芯片的消抖电路,避免了系统因输入信号抖动产生误操作;显示时间直接通过ATC52的P3口输出,由NPN驱动LED数码管显示红灯燃亮时间。

Abstract

The 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 IntelAT C52of the serieses MSC-51s as a center spare part to design transportation light controller, carried out the AT C52's P's 1 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 3 people who shows that time directly passes the AT C52 output, is driven LED figures a tube by the NPN to show red-light Ran bright time.

- I -

电子信息工程系毕业论文

目 录

摘 要 .............................................................................................................................. I Abstract .......................................................................................................................... I 目 录 ........................................................................................................................... II 第一章 绪论 ................................................................................................................. 1

1.1交通灯设计的意义 ................................................................................................................. 1 1.2交通灯设计的思想 ................................................................................................................. 1 1.3交通灯设计满足的基本功能 ................................................................................................. 2

第二章 总体方案 ......................................................................................................... 3

2.1总体方案设计思想 ................................................................................................................. 3 2.2系统方案选择与比较 ............................................................................................................. 3 2.3系统总体方案论证 ................................................................................................................. 4

第三章 硬件设计 ......................................................................................................... 6

3.1 总体设计与描述 .................................................................................................................... 6 3.2 交通灯通行模式及行车方向指示 ........................................................................................ 6 3.3 主干道单独时间设置功能 .................................................................................................... 8 3.4 倒计时计数功能及其实现 .................................................................................................... 8 3.5 各功能模块硬件设计及实现 ................................................................................................ 9

第四章 软件设计 ....................................................................................................... 12

4.1 软件总体流程图 .................................................................................................................. 12 4.2 定时器初始化 ...................................................................................................................... 12 4.3 动态显示.............................................................................................................................. 13 4.4 设置状态子程序 .................................................................................................................. 13

第五章 系统调试 ....................................................................................................... 15

5.1 系统操作说明 ...................................................................................................................... 15 5.2 调试...................................................................................................................................... 15 5.3 调试心得.............................................................................................................................. 19

第六章 设计总结 ....................................................................................................... 21 致 谢 ......................................................................................................................... 22

- II -

电子信息工程系毕业论文

参考资料 ..................................................................................................................... 23 附录 ............................................................................................................................. 24

Ⅰ原理图..................................................................................................................................... 24 Ⅱ原程序..................................................................................................................................... 25

- III -

电子信息工程系毕业论文

第一章 绪论

1.1交通灯设计的意义

交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。交通灯是城市交通中的重要指挥系统,它与人们日常生活密切相关.随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性。

对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。

单片机自问世以来,性能不断提高和完善,其资源又能满足很多场合的应用,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉,其易于产品化、抗干扰能力强、可在各种恶劣环境下可靠的工作等特点。特别是它强大的面向控制能力,使它在工业控制领域,智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。

考虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,拟采用MCS - 51系列的单片机来实现十字路口交通信号灯的控制。 正常情况下,十字路口的红绿灯应交替变换,考虑紧急情况下,如有救护车或警车到来时,应优先让其通过。

另外,单片机课程设计是应用电子专业学生的必修课程。通过交通灯模拟系统的设计可以进一步认识单片机在控制系统中的重要性。在完成理论学习和必要的实验后,掌握了单片机的基本原理和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。

交通灯模拟系统的课程设计既让学生巩固了课本学到的理论,还让学生学习了单片机硬件电路设计和用户程序设计的整个过程,同时学习了查阅资料、参考资料的方法。单片机的课程设计主要是通过学生设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对单片机的认识,充分发挥学生的创新能力。 1.2交通灯设计的思想

该设计在熟练掌握单片机及其仿真系统的使用方法基础上,综合应用单片机原理、单片机应用技术等课程方面的知识,设计一个采用ATC52单片机控制的交通灯控制电路。

根据设计功能及要求,我们可得系统的原理框图如图所示。

1

电子信息工程系毕业论文

LED数码管工作状态显示 北 LED数码管显示模块开关电源单片机ATC52西 LED数码管显示模块红、绿、黄、蓝LED状态指示灯东 LED数码管显示模块按键输入 南 LED数码管显示模块图1-1系统原理框图

根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。具体设计思路如下:收集并整理资料,硬件设计,软件设计,Proteus仿真,设计体会与总结。 1.3交通灯设计满足的基本功能

1、南北方向(主干道)车道和东西方向(次干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为20秒、支干道每次通行间为20秒,时间可设置修改。

2、在绿灯转为红灯时,要求黄灯先亮3秒钟,才能变换运行车道; 3、黄灯亮时,要求每秒闪亮一次

4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。

5、一道有车而另一道无车,交通灯控制系统能立即让有车道放行。

2

电子信息工程系毕业论文

第二章 总体方案

2.1总体方案设计思想

根据传统十字路口交通灯的设计,可将本系统分为四个模块,第一个模块是控制模块,主要负责整个系统工作的控制和运算,从而使各模块正常工作;第二个模块为显示模块,主要是对车辆和行人应该遵守交通规则的指导性的直观显示,它主要包括倒计时显示和红、绿、黄灯两大部分;第三个模块是输入模块,它的主要作用是辅助控制模块,相当于输入装置,利用它可以对交通灯各路口通行时间的设置以及出现紧急情况时,进行不同工作方式的切换设置;第四个模块是电源模块,它是整个系统的“心脏”,负责给各模块提供合适的电压,让各模块能稳定工作。其系统设计结构如图2-1所示:

工作状态显示 北 显示模块开关电源控制模块西 显示模块东 显示模块按键输入2.2系统方案选择与比较 2.2.1控制模块方案选择

南 显示模块图2-1系统设计结构图

方案一:由计数器74LS161级联组成,配合译码器和秒脉冲信号发生器等器件组成交通灯系统,整个系统简单,控制简单,调试容易等优点。

方案二:采用ATC公司的单片机ATCC52作为控制器。单片机运算能力强,软件编程灵活,自由度大。它是MCS-51系列单片机的派生产品,在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,使用时容易掌握;采用ATCC52单片机稳定可靠、应用广泛、通用性强,在系统/在应用可编程。

方案比较:采用方案一来实现十字路口交通灯控制系统非常方便,电路结构简单,控制单一,但整个系统性能不是很高,倒计时不是非常精确,如果要求系统能设置不同工作时间不容易,因而对于完成题目较困难,而方案二完全能实现

3

电子信息工程系毕业论文

设计要求,容易掌握,利用编程,易控制,I/O接口很多,易于扩展外围电路,价格便宜,故选择方案二。 2.2.2显示模块方案选择

该系统要求完成倒计时、状态灯等功能。基于上述原因,考虑了三种方案。 方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。

方案二:完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。

方案三:用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能。 方案比较:方案一和方案二都不符合设计要求,实现较复杂,而方案三采用数码管与LED灯相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,选择方案三。

2.2.3输入模块方案选择

方案一:采用8155扩展I/O 口及键盘,显示等。该方案的优点是: 使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。

方案二: 直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用三个按键,分别是SET_KEY、UP_KEY、DOWN_KEY。

由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二。 2.2.4电源模块方案选择

方案一:采用单片机控制模块提供电源。该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高,不能驱动数码管。

方案二:采用的稳压电源,采用开关电源作为整个系统的供电,它具有多路电源输出,此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用电源。

方案比较:方案一只采用单片机自身的I/O来驱动数码管显示是不行的,而方案二虽然要给各模块供电,但却能给各模块提供稳定可靠的电压从而达到显示明亮的程度。故选择第二种方案。 2.3系统总体方案论证

经上述各模块的方案选择与论证,十字路口交通灯控制系统的控制芯片选用单片机ATC52作为整个系统的核心控制器件,主要负责整个系统工作的控制和

4

电子信息工程系毕业论文

运算,从而使各模块正常工作;采用七段LED数码管和LED灯作为显示器件,用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能;用触发按键构成系统的输入部分,它可以对系统进行状态设置,结合数码管,可根据交通情况对整个系统进行直观的控制;以开关电源作为系统电源部分,它有+12V、-12V、+5V、-5V电压输出,可方便对各个模块供电。系统设计方框总图如图2-2:

LED数码管工作状态显示 北 LED数码管显示模块开关电源单片机ATC52西 LED数码管显示模块红、绿、黄、蓝LED状态指示灯东 LED数码管显示模块按键输入

南 LED数码管显示模块图2-2系统设计方框总图

5

电子信息工程系毕业论文

第三章 硬件设计

硬件设计是整个系统的基础,要考虑的方方面面很多,除了实现交通灯基本功能以外,主要还要考虑如下几个因素:①系统稳定度;②器件的通用性或易选购性;③ 软件编程的易实现性;④系统其它功能及性能指标;因此硬件设计至关重要。现从各功能模块的实现逐个进行分析探讨。 3.1 总体设计与描述

本设计以单片机ATS52为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及状态显示、行车方向指示和倒计时模块等。

① 单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机、时钟电路、复位电路等组成。

②行车方向指示采用红、绿、黄、蓝(表示向左转)LED发光管,用四种颜色指示车辆放行、暂停、禁止,形象直观。

③键盘及状态显示,键盘采用三只触发按键组成,电路简洁可靠;显示器采用七段LCD数码管,可实时显示系统运行状态,可供交警在室内实时监视交通状况。通过键盘可设置:紧急情况发生时的交通灯状态控制、主干道通行时间等。

④系统采用双数码管倒计时计数功能,最大显示数字不超过80。 交通灯模拟仿真如图3-1所示:

图3-1交通灯模拟仿真图

3.2 交通灯通行模式及行车方向指示

按交通灯控制规则,每个街口有转弯、直行及行人三种指示灯。主要指示灯有红、绿、黄三种颜色,但我在其中修改了一下,加进一个蓝灯。交道口模型如图3-2所示:

6

电子信息工程系毕业论文

图3-2交道口模型图

2组LED数码管按照设置的通行时间(各路口默认的通行时间均为20秒)进行倒计时,并各自进行显示,共有四种通行状态,分别为:

图3-3 通行状态一示意图

图3-4 通行状态二示意图

7

电子信息工程系毕业论文

图3-5 通行状态三示意图

图3-6 通行状态四示意图

直行默认时间为20秒,转弯默认时间为20秒,系统设置了任意更改功能,可以根据实际情况进行倒计时调整,以提高车辆通过率,缓减交通压力。在直行状态变为转弯状态时黄灯倒计时3秒后转弯。

本设计选用一只绿色、一只蓝色LED发光管来指示转弯、直行等交通指示信息。绿灯亮表示直行,蓝灯亮表示允许转弯行驶,红色则表示禁止通行。所有指示信息一目了然。

3.3 主干道单独时间设置功能

当主干道方向的车辆过多发生堵塞,正常的信号灯时序将会使交通状况更加恶化。本设计添加了主次干道单独时间设置功能,交警可按需求设置绿灯的点亮时间,该措施可在一定程度缓减短暂的交通压力。三个按键如图3-7所示:

图3-7按键功能

3.4 倒计时计数功能及其实现

本系统使用数码管完成倒计时显示功能。以南北方向为例,数码管显示的数值从绿灯的设置时间最大值往下减,每秒钟减1,一直减到0。然后又从红灯的设置时间最大值往下减,一直减到0。接下来又显示绿灯时间,如此循环。

系统共有2个两位的LED数码管,分别放置在模拟交通灯控制板上的南北、东西路口。因为对应的两个方向应该显示同样的内容,所以可以把它们同样对待。也就是说各个方向的数码管个位(把数码管第二位定义为个位,第一位定义为十位)用一根信号线控制,十位用另一根信号线控制。

8

电子信息工程系毕业论文

3.5 各功能模块硬件设计及实现 3.5.1单片机控制模块设计

单片微机简称为单片机。它在一块芯片上集中成了处理单元CPU、随机存储器RAM、只读存储器ROM、定时/计数和多功能输入/输出I/O口,如并行口I/O、串行口I/O和转换A/D等。

MCS-51系列单片机在我国得到了广泛的应用,是单片机的主流系列,软硬件应用设计资料丰富齐全。为了提高指令的执行速度和效率,采用了面向控制的结构和指令系统的CPU。

因此本设计采用ATC52单片机作为系统的控制器件,这是因为ATC52是目前应用比较广泛的MCS-51系列兼容单片机作为主控制器。

ATC52单片机的主要性能特点:1、与MCS-51系列单片机产品兼容;2、8K字节在系统可编程Flash存储器,1000次擦写周期;3、全静态操作:0~33Hz;4、三级加密程序存储器;5、32个可编程I/O口线,3个16位定时器/定时器,8个中断源;6、全双工UART串行通道,低功耗空闲和掉电模式;7、掉电后中端可唤醒,看门狗定时器;8、双数据指针和掉电标识符;

电源、时钟信号以及复位电路时单片机工作的基本条件,缺一不可。ATC52单片机系统的基本工作电路包括电源电路、时钟电路、复位电路。其组成方框图如图3-8所示:

电源电路时钟电路复位电路单片机ATC52

图3-8单片机控制系统基本硬件组成方框图

(1)、电源电路

电源电路模块为系统板上的其他模块提供+5V电源。供电电源可由开关电源提供,即能满足。

(2)、时钟电路模块的设计

单片机的时钟信号用来为单片机芯片内部的各种操作提供时间基准。

9

电子信息工程系毕业论文

时钟电路为单片机产生时钟脉冲序列,作为单片机工作的时间基准,典型的晶体振荡频率为12MHz。

MCS-51系列单片的时钟信号可以由两种方式产生:一种是内部时钟方式,利用芯片内部的振荡电路;另一种方式为外部时钟方式。

(3)、复位电路模块设计

复位电路使单片机或系统中的其他部件处于某种确定的状态。

当在MCS-51系列单片的RST引脚处引入高电平并保持2个机器周期,单片机内部就执行复位操作。复位操作有两种基本形式:一种是上电复位,另一位是按键复位。本设计采用按键复位方式。 3.5.2倒计时显示及状态指示模块的设计

倒计时显示采用七段数码管显示,如下表格所示是七段显示组合与数字

对照表3-1: 段码 位码 0 1 2 3 4 5 6 7 8 9 a H L H H L H H H H b H H H H H L L H H c H H L H H H H H H d H L H H L H H L H e H L H L L L H L H f H L L L H H H L H G L L H H H H H L H H H H H L H H (表中“L”表示低电位,“H”表示高电位) 状态指示采用LED数码管,半导体数码管又称LED数码管,是一种广泛使用的显示器件。LED有两种:共阳极型和共阴极型。

LED优点:亮度高、字形清晰,工作电压低(1.5~3V)、体积小、可靠性高、寿命长,响应速度极快。如图3-10所示是硬件中的LED灯:

10

电子信息工程系毕业论文

图3-9硬件中的LED灯

3.5.2键盘及状态指示显示模块的设计

键盘及状态显示如图3-11所示:

图3-10键盘及状态显示

按下开始设置SET_KEY一下首先开始南北直行绿灯设置,可以增也可以减时间;按下SET_KEY两下设置南北的左转弯蓝灯时间,可以增也可以减时间;按下SET_KEY三下东西直行绿灯设置,可以增也可以减时间;按下SET_KEY四下东西左转弯蓝灯设置,可以增也可以减时间;按下SET_KEY五下返回正常运行状态。

11

电子信息工程系毕业论文

第四章 软件设计

硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。由于编程多涉及到数值运算,比较复杂,还有LCD的菜单界面设计都是需要多重选择判断,用我们平时常用的汇编语言编程是很难实现的,这里我们选用了移值性好、结构清晰、能进行复杂运算的C语言来实现编程。 4.1 软件总体流程图

软件总体设计及流程图见图4-1,主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化。

开始设置定时,显示初始化判断当前状态南北直行绿灯亮,东西红灯亮,延时南北左转弯蓝灯亮,东西红灯亮,延时东西直行绿灯亮,南北红灯亮,延时东西左转弯蓝灯亮,南北红灯亮,延时

图4-1总流程图

4.2 定时器初始化

定时/计数器方式寄存器TMOD相关知识如表4-1

T1 GATE

M1 M0 工作方式 12

T0 M1 M0 GATE C/T M1 M0 C/T M1和M0为方式选择位。定义如下表4-2:

功能说明 电子信息工程系毕业论文

0 0 0 1 1 0 1 1 TMOD=0x21;

方式0 方式1 方式2 方式3 13位计数器 16位计数器 自动再装入8位计数器 定时器0:分成两个8位计数器 定时器1:停止计数 intChar.uiTime0=0xffff-10000; TH0=intChar.ucTime0Buf[0]; TL0=intChar.ucTime0Buf[1]; TR0=1; TH1=0xfd;

程序中用到两个定时器,分别是 定时器1跟定时器0,采用了方 式2跟方式1,TMOD=0X21,调 用了定时器T0和T1。定时器1 方式2定时器0方式1

TL1=0xfd; TR1=1;SCON=0x50;ET0=1;ES=1;EA=1;

4.3 动态显示

主要是灯跟数码管显示,数码管显示流程图如图4-2所示:首先是位码初始化然后送位码,选位码,位码右移,延时,关位码。

开始位码初始化选段码送段码选位码位码右移延时关位码结束

图4-2动态显示流程图

4.4 设置状态子程序

在设置状态,按下开始设置SET_KEY一下首先开始南北直行绿灯设置,可以增也可以减时间;按下SET_KEY两下设置南北的左转弯蓝灯时间,可以增也可以

13

电子信息工程系毕业论文

减时间;按下SET_KEY三下东西直行绿灯设置,可以增也可以减时间;按下SET-_KEY四下东西左转弯蓝灯设置,可以增也可以减时间;按下SET_KEY五下返回正常运行状态。蓝灯和绿灯的时间最大可以设为79,超出79的时候会出现乱码现象。如图4-3所示是设置状态子程序流程图:

开始按SET_KEY一下,南北直行时间设置按下SET_KEY两下,南北左转弯时间设置按SET_KEY三下,东西直行时间设置按SET_KEY四下,东西左转弯时间设置按SET_KEY五下,返回正常状态结束 图4-3设置状态子程序流程图

14

电子信息工程系毕业论文

第五章 系统调试

因本设计本身要求有稳定性高、免维护、抗干扰能力强等功能,系统调试除了验证数据处理的精度,确保判断的准确性外,同时必须确认各项的功能的正常运行。

5.1 系统操作说明

系统分为两个状态:设置状态和显示状态。利用键盘可以进行两个状态间的切换;开机时,系统为显示状态,此时数码管从默认的倒计时时间开始倒计时;LED灯开始有规律工作,作行车方向指示;设置状态时利用键盘可以设置各路口通行倒计时时间,主次干道的通行时间可以不相等,这里我们增添了分开分别设置功能;显示状态时,交通灯四个LED灯进行倒计时;LED发光管各组的交替指示;如果LED箭头指示板上的绿灯亮,两边红灯亮,则显示的是通行时间;显示过程中按键可以重新进入设置状态。 5.2 调试

根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试,包括对:交通灯演示功能调试,倒计时功能调试,主次干道分开设置功能调试等。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。最后将各模块组合后在交道口模型上进行整体测试,使系统的所有功能得以实现。 5.2.1 硬件调试

总硬件图如图5-1所示:如硬件系统图所示接线,图中,在十字路口的红、黄、绿、蓝交通灯,主要是对通行方式功能调试、倒计时功能调试。包括对四种通行方式控制调试,行车方向指示灯和驱动电路调试。

15

电子信息工程系毕业论文

图5-1总硬件图

具体仿真效果:

1、如图5-2所示正常情况下南北方向亮绿灯,东西方向亮红灯。南北放行,东西禁行,绿灯20S,红灯46S

图5-2南北直行通道

2、如图5-3所示是南北直行绿灯转为黄灯到下一个状态,黄灯3S延时:

16

电子信息工程系毕业论文

图5-3黄灯延时3S转下一个状态

3、如图5-4是南北左转弯显示20S:

图5-4南北左转弯通道

4、如图5-5是东西直行绿灯亮15S:

17

电子信息工程系毕业论文

图5-5东西直行通道

5、如图5-6所示是东西直行绿灯转为黄灯到下一个状态,黄灯3S延时:

图5-6黄灯延时3S转下一个状态

6、如图5-7所示是东西左转弯蓝灯显示,时间为12S:

18

电子信息工程系毕业论文

图5-7东西左转弯通道

5.2.2 软件调试

本系统的软件系统很大,全部用C51来编写。除了语法差错外,当确认程序没问题时,通过直接下载到单片机来调试。采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。

5.2.3 软硬件联调

系统做好后,进行系统的完整调试。主要任务是检验实现的功能及其效果并校正数值。根据实测数据,逐步校正数据,使测量结果更准确。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。 5.3 调试心得

通过交通灯的编程到硬件的实现,我们只有充分掌握了理论知识的基础之上才能做好。首先,判断数码管是共阴管还是共阳管,其次根据操作要求和自己的程序设计进行调试看是否相同。

在课程设计中,我们学习到了很多的东西:

首先,怎么样去查阅资料,收集与课设要用的有关的知识。其次,要完成一件工作,还得专心致志才行,细心耐心。第三,遇到困难要冷静,要多想解决办法,多尝试。

通过这次毕业设计,我们也进一步熟悉数字电路的设计与特点。而且让我们

19

电子信息工程系毕业论文

了解了电路设计的基本思路,增强了实践动手能力,理论结合实际的能力加强。除此以外,我们还深深地认识到严谨、认真的科学态度在科学实验中发挥的重要作用。

交通灯是本次课设中原理比较简单的一个,但是它的组成部分多,电路连接有些复杂,出现问题后分析起来比较困难,所以我们养成了完成一个部分就调试检验一个部分,确保正确才进行下一步工作,出现了问题只要在未检验的部分查寻就可以很快找出,效果很不错。

此次课程设计中我投入了很大的热情和精力,从设计电路图,选择元器件,使用protel99,其过程中出现了不少的问题,我没有气馁,没有退缩,积极向同学请教,并且一遍又一遍的重复实践,直到期望的结果实现。事实也证明我们的努力没有白费,认真严谨的实习态度给我带来了成功的喜悦! 这短短一月的实践,我感觉到自己在课本上学到的理论知识和实践仍有一定的差距。有的知识,自己感觉已经掌握得差不多了,但是实际操作起来就有问题出现了。我还遇到了不少,花费了很多的时间。这让我们重新反思我们的学习,觉得这与自己当时不注意实验课是分不开的。

20

电子信息工程系毕业论文

第六章 设计总结

本设计以单片机ATC52为核心,以LED发光管作为直行和左右拐弯指示,以LED数码管作为倒计时指示,以双色LED点阵作为行人通行的指示,完成了题目要求的所有功能。在此基础上,增设了可根据交通拥挤情况分别设置主干道和次干道的通行时间,并对系统机械结构进行了优化设计。该设计很好地完成了题目的各项要求,但这与实际情况还有很大一部分差距,具体有以下几个方面:

1、出现紧急情况时,交通灯的控制; 2、人行通道的设计没有加进去;

3、软件中设计左转弯是交通灯颜色的改变。

虽然这些功能未能设计进去,但这一样可以简单实现交通灯的控制,该设计在确保功能实现的基础上,充分考虑了控制系统操作方便、人性化、抗干扰能力强、可靠性高、稳定性好等要求。

本设计虽然结束了,但由于时间、设备、条件和水平等各方面因素有限,系统还存在一些不足,一个新系统最终走向成熟和完善还需要我们在以后的学习和工作中作不懈的努力!

另外,在重复修改与设计的过程中,我又重新把《单片机原理与应用技术》这本书仔细的看了一下,弄懂了一些以前一知半解的东西,进一次加强和巩固了我的理论知识。

在此次课程设计过程中,我把单片机的理论知识用于实践中,使理论与实践相结合,使我的理论知识的到了巩固,在查资料翻阅资料的过程中也丰富了我的知识跟阅历。

21

电子信息工程系毕业论文

致 谢

通过本次毕业设计,我在指导老师包军卫的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习电子方面的知识有极大的帮助。另外,令我感触最深的就是同学们倾心的帮助,由于我的《单片机原理与应用技术》学的并不是很好,所以对某些知识点并不是很清楚,可是同学们总是不厌其烦的给我一遍又一遍的讲解,直到我弄清楚为止!他们的知识阅历另我打开眼界,他们的无私精神更另我感动不已!在此我忠心感谢包军卫老师以及各位同学的指导和支持。在未来的工作和学习中,我将以更好的成绩来加报各位老师和同学。

通过这次的设计使我认识到我对单片机方面的知识知道的太少了,对于书本上的。

很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。本次的设计使我从中学到了一些很重要的东西,理论知识固然很重要,但是一旦转到实际操作中,变的无法适应用突然.所以最重要的那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。让理论知识变为实践的开拓先锋。

22

电子信息工程系毕业论文

参考资料

[1]胡汉才 单片机原理及其接口技术 [M] 清华大学出版,1996

[2]蔡美琴 MCS-51系列单片机系统及其应用 高等教育出版社 2004.2 [3]付家才 单片机控制工程实践技术[M] 化学工业出版社,2004.5 [4]潘新民 微型计算机控制技术 [M] 人民邮电出版社,1999.9

[5]余锡存 单片机原理及接口技术[M] 西安电子科技大学出版社,2000.7 [6]雷丽文 等.微机原理与接口技术[M] 电子工业出版社,1997.2

[7]蒋万君 在论循环时序电路的简便设计[J] 机电一体化,2005 第5期 [8]周立功 增强型80C51单片机速成与实战 北京航空航天大学出版社2004.5 [9]何立民 单片机应用技术选编⑩ 北京航空航天大学出版社 2004.3 [10]何立民 单片机应用技术选编⑨ 北京航空航天大学出版社 2004.3 [11]何立民 MCS-5系列单片机应用系统设计 北京航空航天大学出版社,1995. [12]李华 MCS-51系列单片机实用接口技术[M]北京航空航天大学出版社,1993 [13 张云龙. 交通信号控制器的设计[J].兵工自动化 ,2003,(04) .

[14] 白炳良. 单片机自动控制交通信号灯[J].漳州师范学院 ,1997,(02) . [15] 谭浩强. C 程序设计[M]. 清华大学出版社,1999 年12 月第2 版

23

电子信息工程系毕业论文

附录

Ⅰ原理图

24

电子信息工程系毕业论文

Ⅱ原程序

#include

#define uchar unsigned char #define uint unsigned int

//I/O 口定义 定义南北方向为主通道 东西方向为次通道 sbit CI_GREEN=P1^0; //次通道--绿灯 sbit ZHU_GREEN=P1^1; //主通道--绿灯 sbit CI_ZUO=P1^2; //次通道--左转 sbit ZHU_ZUO=P1^3; //主通道--左转 sbit CI_RED=P1^4; //次通道--红灯 sbit ZHU_RED=P1^5; //主通道--红灯 sbit CI_YELLOW=P1^6; //次通道--黄灯 sbit ZHU_YELLOW=P1^7; //主通道--黄灯 sbit ZHU_LED1=P3^4; sbit ZHU_LED2=P3^5; sbit CI_LED1=P3^6; sbit CI_LED2=P3^7;

//位变量定义 bit bFlag10ms; bit bResponse; bit bShan;

//字节变量定义 uchar ucKey; uchar ucNextKey;

uchar ucSetState,ucDispState;

uchar ucZhuTime,ucZhuZhuan,ucCiTime,ucCiZhuan; //主通道直行时间 主通道转弯时间 次通道直行时间 次通道转弯时间 uchar ucZhuTimeDisp,ucCiTimeDisp; uchar ucMiaoCount; uchar ucShanCount;

//常量定义

#define SET_KEY 0xee #define UP_KEY 0xde #define DOWN_KEY 0xdd

uchar code DISP_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//////////////////////////// union

25

电子信息工程系毕业论文

{

uchar ucTime0Buf[2]; uint uiTime0; }intChar;

//函数申明 void intSys();

uchar testKey(void); uchar readKey();

dealKey(uchar tempkey); void StateCov(void); void display();

void dispSM(uchar x,uchar y); delay();

/////////////////////////////////////////////////////////////////////////

void main(void) {

uchar temp; intSys(); while(1) {

if(bFlag10ms==1) {

bFlag10ms=0; temp=testKey(); if(temp!=0xff) {

ucKey=readKey(); if(ucKey!=0xff) {

dealKey(ucKey); } } else {

bResponse=0; }

if(ucMiaoCount==0) {

ucMiaoCount=99; StateCov(); }

26

电子信息工程系毕业论文

else {

ucMiaoCount--; }

display(); } } }

void timeSer(void) interrupt 1 using 1 {

TH0=intChar.ucTime0Buf[0]; TL0=intChar.ucTime0Buf[1]; bFlag10ms=1; }

void UARTSer(void) interrupt 4 using 1 { }

/********************************************************* *函数名:intSys

*函数功能:系统初始化,包括内存单元、定时器、串行口、中断 **********************************************************/ void intSys() {

ucNextKey=0xff;

ucSetState=ucDispState=0; ucZhuTime=20; ucZhuZhuan=18; ucCiTime=15; ucCiZhuan=12; ucMiaoCount=99; ucShanCount=19; ucDispState=0;

ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6; ucZhuTimeDisp=ucZhuTime; P1=0xff; ZHU_GREEN=0; CI_RED=0; ZHU_LED1=0;

27

电子信息工程系毕业论文

ZHU_LED2=0; CI_LED1=0; CI_LED2=0; bResponse=0; TMOD=0x21;

intChar.uiTime0=0xffff-10000; TH0=intChar.ucTime0Buf[0]; TL0=intChar.ucTime0Buf[1]; TR0=1;

TH1=0xfd; TL1=0xfd; TR1=1; SCON=0x50; ET0=1; ES=1; EA=1; }

/********************************************************* *函数名:testKey

*函数功能:键盘测试函数,测试键盘是否有键按下

**********************************************************/ uchar testKey(void) {

uchar i; P0=0xf0; i=P0; i=i|0x0f; return i; }

/********************************************************* *函数名:readKey

*函数功能:键盘键值读取函数

**********************************************************/ uchar readKey() {

uchar i,j; P0=0xf0; i=P0; P0=0x0f; j=P0; i=i+j;

if(ucNextKey==i)

28

电子信息工程系毕业论文

{

if(bResponse==0) {

bResponse=1; return i; } else

return 0xff; } else {

ucNextKey=i; bResponse=0; return 0xff; } }

/********************************************************* *函数名:dealKey

*函数功能:键盘键值处理函数

**********************************************************/ dealKey(uchar tempKey) {

switch(tempKey) {

case SET_KEY: {

if(ucSetState==4) {

ucSetState=0; ucDispState=0;

ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6; ucZhuTimeDisp=ucZhuTime; P1=0xff; ZHU_GREEN=0; CI_RED=0; } else {

ucSetState++; }

break; }

case UP_KEY:

29

电子信息工程系毕业论文

{

switch(ucSetState) {

case 0: {

break; }

case 1: {

if(ucZhuTime<80) ucZhuTime++; break; }

case 2: {

if(ucZhuZhuan<80) ucZhuZhuan++; break; }

case 3: {

if(ucCiTime<80) ucCiTime++; break; }

case 4: {

if(ucCiZhuan<80) ucCiZhuan++; break; } }

break; }

case DOWN_KEY: {

switch(ucSetState) {

case 0: {

break; }

case 1: {

30

电子信息工程系毕业论文

if(ucZhuTime>5) ucZhuTime--; break; }

case 2: {

if(ucZhuZhuan>5) ucZhuZhuan--; break; }

case 3: {

if(ucCiTime>5) ucCiTime--; break; }

case 4: {

if(ucCiZhuan>5) ucCiZhuan--; break; }

default: break; }

break; }

default: break; } }

/********************************************************* *函数名:stateCov

*函数功能:显示状态转换函数 *入口参数:键盘键值

**********************************************************/ void StateCov(void) {

if(ucSetState==0) {

switch(ucDispState) {

case 0: //主通道绿灯状态结束判断

31

电子信息工程系毕业论文

{

if(ucZhuTimeDisp==1) {

ucDispState++; ucZhuTimeDisp=3; } else {

ucZhuTimeDisp--; ucCiTimeDisp--; }

break; }

case 1: //主通道黄灯状态结束判断 {

if(ucZhuTimeDisp==1) {

ucDispState++;

ucZhuTimeDisp=ucZhuZhuan; } else {

ucZhuTimeDisp--; ucCiTimeDisp--; }

break; }

case 2: //主通道左转弯绿灯状态结束判断 {

if(ucZhuTimeDisp==1) {

ucDispState++; ucZhuTimeDisp=3; } else {

ucZhuTimeDisp--; ucCiTimeDisp--; }

break; }

case 3: //主通道左转弯绿灯闪烁状态结束判断 {

if(ucZhuTimeDisp==1)

32

电子信息工程系毕业论文

{

ucDispState++;

ucZhuTimeDisp=ucCiTime+ucCiZhuan+6; ucCiTimeDisp=ucCiTime; } else {

ucZhuTimeDisp--; ucCiTimeDisp--; }

break; }

case 4: //次通道绿灯状态结束判断 {

if(ucCiTimeDisp==1) {

ucDispState++; ucCiTimeDisp=3; } else {

ucZhuTimeDisp--; ucCiTimeDisp--; }

break; }

case 5: //次通道黄灯状态结束判断 {

if(ucCiTimeDisp==1) {

ucDispState++;

ucCiTimeDisp=ucCiZhuan; } else {

ucZhuTimeDisp--; ucCiTimeDisp--; }

break; }

case 6: //次通道左传绿灯状态结束判断 {

if(ucCiTimeDisp==1) {

33

电子信息工程系毕业论文

ucDispState++; ucCiTimeDisp=3; } else {

ucZhuTimeDisp--; ucCiTimeDisp--; }

break; }

case 7: //次通道左传绿灯闪烁状态结束判断 {

if(ucCiTimeDisp==1) {

ucDispState=0;

ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6; ucZhuTimeDisp=ucZhuTime; } else {

ucZhuTimeDisp--; ucCiTimeDisp--; }

break; }

default: break; } } }

/********************************************************* *函数名:display

*函数功能:灯和数码管显示函数

**********************************************************/ void display() {

uchar x,y;

if(ucShanCount==0) {

ucShanCount=19; bShan=~bShan; } else

34

电子信息工程系毕业论文

{

ucShanCount--; }

switch(ucSetState) {

case 0: {

x=ucZhuTimeDisp; y=ucCiTimeDisp; switch(ucDispState) {

case 0: {

P1=0xff; ZHU_GREEN=0; CI_RED=0; break; }

case 1: {

P1=0xff;

ZHU_YELLOW=0; CI_RED=0; break; }

case 2: {

P1=0xff; ZHU_ZUO=0; CI_RED=0; break; }

case 3: {

P1=0xff;

ZHU_ZUO=bShan; CI_RED=0; break; }

case 4: {

P1=0xff; ZHU_RED=0; CI_GREEN=0;

35

电子信息工程系毕业论文

break; }

case 5: {

P1=0xff; ZHU_RED=0; CI_YELLOW=0; break; }

case 6: {

P1=0xff; ZHU_RED=0; CI_ZUO=0; break; }

case 7: {

P1=0xff;

CI_ZUO=bShan; ZHU_RED=0; break; }

default: break; }

break; }

case 1: {

P1=0xff;

ZHU_YELLOW=0; CI_YELLOW=0; ZHU_GREEN=0; x=ucZhuTime; y=ucCiTime; break; }

case 2: {

P1=0xff;

ZHU_YELLOW=0; CI_YELLOW=0; ZHU_ZUO=0;

36

电子信息工程系毕业论文

x=ucZhuZhuan; y=ucCiZhuan; break; }

case 3: {

P1=0xff;

ZHU_YELLOW=0; CI_YELLOW=0; CI_GREEN=0; x=ucZhuTime; y=ucCiTime; break; }

case 4: {

P1=0xff;

ZHU_YELLOW=0; CI_YELLOW=0; CI_ZUO=0; x=ucZhuZhuan; y=ucCiZhuan; break; }

default: break; }

dispSM(x,y); }

/********************************************************* *函数名:dispSM

*函数功能:数码管显示驱动函数

**********************************************************/ void dispSM(uchar x,uchar y) {

uchar i,j; i=x/10; j=x%10; ZHU_LED1=0;

P2=DISP_TAB[i]; ZHU_LED1=1; delay(); ZHU_LED1=0;

37

电子信息工程系毕业论文

ZHU_LED2=0;

P2=DISP_TAB[j]; ZHU_LED2=1; delay(); ZHU_LED2=0;

i=y/10; j=y%10; CI_LED1=0;

P2=DISP_TAB[i]; CI_LED1=1; delay(); CI_LED1=0; CI_LED2=0;

P2=DISP_TAB[j]; CI_LED2=1; delay(); CI_LED2=0; }

////////////////////////////////////////// delay() {

uint i;

for(i=200;i>0;i--); }

38

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务