




免费预览已结束,剩余24页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文 智能交通灯控制系统 年 级 专 业 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 智能交通灯控制系统 【摘要】 随着经济的飞速发展,车辆越来越多,给道路交通带来巨大的压力。而微控技术同时也在日益完善和发 展,其中单片机的应用越来越成熟。单片机渗透在我们生活的各个领域,几乎很难找到在哪个领域没有单片机的踪迹。 其广泛应用于家用电器、仪器仪表、航空航天、医用设备、专用设备的过程控制及智能化管理等领域,大大的提高了 这些领域的自动化控制技术水平。 本系统采用 80c51 单片机为核心部件,通过 proteus 仿真交通灯的运行。本系统还包括按键及 led 显示部分。系 统除了基本的人行道、右转、直行、左转等交通灯功能外,还具有倒计时显示、紧急情况处理、夜间模式等功能。其 中红绿灯变换的倒计时是利用七段数码管来显示,按键控制复位、紧急情况及夜间模式的输入。 【关键词】 单片机;交通灯;倒计时;74hc595;proteus 目 录 前言 .1 交通灯的历史 .1 红黄绿交通灯的出现 .1 1 方案介绍 3 1.1 四种常规通行状态 3 1.2 紧急情况处理功能 4 1.3 保持当前状态的功能 4 1.4 夜间模式 4 2 硬件设计 5 2.1 框图设计 5 2.2 电路原理图 5 2.3 主要器件的应用简介 7 2.3.1 80c51 单片机 7 2.3.2 74hc595 .10 2.3.3 cd4511 11 3 软件设计 .13 3.1 主程序流程图 .13 3.2 外部中断 0 子程序流程图 .14 3.3 显示子程序流程图 .15 4 仿真及调试 .16 4.1 仿真软件介绍 .16 4.2 系统总体调试 .16 5 部分程序清单 .21 5.1 主程序清单 .21 5.2 外部中断 0 子程序清单 .21 5.3 外部中断 1 子程序清单 .22 致 谢 .24 参考文献 25 1 前言 十字交叉路口车辆穿梭,行人熙攘,人行人道,车行车道,有条不紊。那么交通的井然秩序是靠 什么来实现的呢?靠的是交通信号灯的自动化指挥系统。交通灯一般由红、黄、绿三种颜色灯组合而 成,用来指挥交通。绿灯亮时,允许车辆通行,黄灯亮时,已经越过停止线的车辆可以继续通行;红 灯亮时,禁止该方向所有车辆通行。 交通灯的历史 如今,红绿灯安装在各个车流较多道口上,已然成为了疏导交通车辆最为常见和最为有效的方法。 但早在 19 世纪就已经出现了这一种技术了。 1858 年,在伦敦主要的街头都安装了红、蓝两色的扳手式信号灯,这些信号灯是以燃烧煤气为光 源的,用来指挥马车的通行,这便是世界上最早的指示交通的信号灯。1868 年,在英国伦敦威斯敏斯 特区议会大厦前的广场上,英国机械工程师纳伊特安装了世界上第一个煤气红绿灯。这种煤气红绿灯 由红、绿两块矩形玻璃提灯组成,以旋转式转换红绿灯,红的代表“停止”,绿的代表“注意”。 1869 年,由于煤气灯爆炸,导致警察受伤,因此这种煤油信号灯被取消。 1914 年,美国纽约的一座高塔上安装了用电气启动的红绿信号灯,此种红绿信号灯由红、黄、绿 三种颜色的圆形投光器构成。绿灯亮时,表示允许通行,红灯亮时,表示禁止通行。 1918 年,又出现了两种新型的红绿灯。一种是红外线红绿灯,当有行人踏上感应压力的路面时, 它就能感应到路面有行人即将从马路上通过,此时红外光束能使信号灯的红灯点亮并延长一定的时间, 暂停车辆的通行,以避免交通事故的发生。另一种是带有控制功能的红绿灯,这种带有控制功能的红 绿灯又分为了两种,其中一种是在地下安装了压力传感器,当车辆行近时,压力传感器采到的信号, 此时红灯变为绿灯;另外一种是用声音传感器来启动红绿灯,当司机遇红灯时,按一下喇叭,就使红 灯转变为绿灯。 信号灯的出现,使交通得到有效管制,对于交通流量的疏导、道路通行能力的提高,以及交通事 故的减少有明显效果。1968 年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规 定: 绿灯代表通行信号,面对的绿灯亮时,车辆允许右转弯、直行和左转弯,除非在某一个通行转向 上,有另一种禁行标志。其中左右转弯的车辆,都必须让符合规定且正在路口内行驶的车辆,以及还 在人行横道上的行人优先通行; 黄灯表示“警告”,面对黄灯的车辆,已经越过停车线,或者非常接近停车线而又无法及时安全 的将车停止在停车线前的车辆,可以继续通行,除此其他车辆都不得越过停车线; 红灯表示“禁行”,面对红灯的所有车辆必须在交叉路口的停车线前停车。 伴随着科学与经济的发展,交通运输中相继出现了一些传统办法难以解决的问题。道路拥挤的现 象日趋严重,造成的经济损失愈来愈大,并一直保持着大比例的增长。现在的交通系统已经满足不了 经济发展的需求。随着生活水平的提高,人们对交通运输的安全性以及服务水平提出了更高的要求。 在交通管理系统中引入单片机交通灯控制替代交管人员在交叉路口服务,使得交通运输的安全性、交 通管理的服务质量得到很大的提高,并且在一定程度上尽可能的降低了由道路拥挤造成的经济损失, 同时工作人员的劳动强度也得到了减小。 中国车辆数量在不断的增加,在交通管理中,交通控制越来越重要。智能交通灯的管理比重修一 条马路,无论是在经济、交通运行速率上都有更好的效益,更加的节约了资源。使交管人员有更多的 精力和时间投入到整个城市交通控制的管理中,以带来更大的经济和社会效益,为更美好的城市交通 形象的创造发挥更多的作用。 红黄绿交通灯的出现 2 随着各种交通工具的发展,为满足交通指挥的需求,第一盏名副其实的三色(红、黄、绿) 交通信 号灯于 1918 年诞生了。它是三色圆形的四面投影器,安装在纽约市五号街的一座高塔上,由于它的诞 生,大大改善了城市交通。 黄色信号灯是我国的胡汝鼎发明者的,当时他怀着“科学救国”的抱负出国深造,后来任职于美 国通用电器公司,这家公司的董事长正是大发明家爱迪生。有一次,胡汝鼎站在红绿灯路口等待通行, 当他看见绿灯亮了,正准备要通过人行道时,突然一辆急转而来的汽车“呼”的一声与他擦身而过, 把他吓出了一身冷汗。回到宿舍后,胡汝鼎反复琢磨,于是想到在红、绿灯之间再加上一个黄灯,以 提醒人们注意危险。他的建议立即得到有关方面的认可。因此红、黄、绿三色信号灯即组成了以一个 完整的指挥信号,遍及于全世界陆、海、空的交通领域。 3 1 方案介绍 目前,国内的交通灯一般设在十字交叉路口,用红、黄、绿三种颜色的指示灯再加上一个显示倒 计时的计时器放置在醒目位置,用来控制行车。我国交通法规也对交通指挥信号灯做出明确的规定: 绿灯亮时,允许该方向上车辆和行人通行,但转弯的车辆必须让直行的车辆以及被放行的行人 优先通行; 黄灯亮时,不准该方向上车辆和行人通行,但已越过停止线的车辆和已进入人行横道的行人, 可以继续通行; 红灯亮时,禁止该方向上所有车辆和行人通行; 绿色箭头灯亮时,所示方向对应车道上的车辆按箭头所示的方向通行; 黄灯闪烁时,车辆行人在确保安全的原则下可以通行。 1.1 四种常规通行状态 交通信号灯的出现,使交通得到了有效的管制,对于交通流量的疏导、道路通行能力的提高和交 通事故的减少有明显效果。按照交通灯控制规则,每个街口有左拐、直行、右拐及行人四种指示灯。 每个指示灯有红、黄、绿三种颜色灯(人行道一般只有红、绿两种颜色灯)。如图 1-1 所示为本设计 的红绿灯规则的状态图。 图 1-1(a)状态 s1 图 1-1(b)状态 s2 图 1-1(c)状态 s3 图 1-1(d)状态 s4 状态 s1:东西走向,车行道直行和人行道均允许通行,时间 15 秒; 状态 s2:东西南北走向车行道右转允许通行,南北走向左转也允许通行,时间 20 秒; 4 状态 s3:南北走向,车行道直行和人行道均允许通行,时间 25 秒; 状态 s4:东西南北走向车行道右转允许通行,东西走向左转也允许通行,时间 20 秒; 说明: 状态 s1 和 s3,车行道只是直行道开放,以确保不会与同时开放的人行道交叉通行,保证行人安 全; 状态 s2 和 s4,在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车 流量,效率特别高。 当系统启动时,经初始化后,依次进入状态 s1、s2、s3、s4,然后返回 s1,如图 1-2 所示。 开始 状态 s1 状态 s3状态 s4 状态 s3 图 1-2 状态循环图 1.2 紧急情况处理功能 在十字交通路口常出现的紧急情况,比如有紧急执行任务的车辆通过,若不及时处理将形成不良 隐患。当交道口的行人有紧急情况发生,那么交警可以对信号灯进行手动控制,按下紧急情况处理键, 通过软件使所有红灯亮,控制路口车辆及行人禁行、通行,直至紧急情况结束后再转成常规的自动状 态。从紧急状态恢复到常规状态,又分了两种方式。第一种是自动恢复,即当进入紧急模式时,启用 定时功能,当定时结束时,自动恢复到常规状态;另一种是手动恢复,即只有手动按下恢复命令时, 才恢复到常规状态。本设计,紧急情况处理功能的优先级别高于其他。 1.3 保持当前状态的功能 车辆与行人南来北往,各个路口待通行的车辆和行人的数量,在不同时刻是不一样的。如果能根 据各个路口的实际情况,改变红绿灯显示的时间,那红绿灯口的效率会大大提高。 对此,本设计采用了“保持当前状态”的功能,即当某个路口带通行的车辆比较多时,等红绿灯 转向该路口可以通行的时候,可以按下“保持当前状态”的按钮,此时,红绿灯暂停倒计时,等车辆 过得差不多时,再撤除保持状态,红绿灯恢复倒计时。 1.4 夜间模式 在夜间的时候,由于交通流量变少,此时根据实际情况可以将红绿灯设置成夜间模式,该模式下, 所有路口均闪烁黄灯,此时,车辆和行人,可以根据路面实际情况,安全的通过十字交叉口。进入和 退出夜间模式最好的方式是利用定时器定时,可以根据实际情况设定何时进入与退出夜间模式。由于 这个时间跨度比较长,答辩的时候,不方便演示,本设计将进入和退出夜间模式设计成手动进入和退 出。 5 2 硬件设计 2.1 框图设计 本设计以 80c51 单片机为控制核心,采用模块化设计,主要分以下几个功能模块:单片机控制模 块、键盘模块、状态显示模块及倒计时模块等。 单片机作为整个硬件系统的核心,它既是数据处理器,又是协调整机工作的控制器。它由单片机 复位电路、晶振电路等组成。 本设计显示倒计时的功能是采用双位数码管,显示数字范围为十进制的 0099,十六进制的 00ff。 在交通比较特殊的情况下,可以通过按键对交通灯进行控制。 交通灯控制的框图如图 2-1 所示,主要有晶振电路、复位电路、电源电路、控制电路、显示电路 及功能按键等电路组成。 单片机 80c51 红绿灯 驱 动 倒计时 功能键 装置 电 源 晶振电路 复位电路 图 2-1 系统总体设计框图 2.2 电路原理图 控制部分如图 2-2 所示。 所有功能键,除复位按键外,都是通过外部中断来通知单片机的,其中除夜间模式是用外部中断 1,其余的通过与门,连接到外部中断 0。一旦有中断请求,如果是外部中断 1 的话,就直接响应夜间 模式;如果是外部中断 0,进入中断程序后,再判断是哪个功能键按下,然后转去执行相应的功能。 74hc595 是用于扩展单片机的引脚,串行输入,并行输出,74hc595 还可以无限级联,可以解决单片 机引脚不够用的问题。 6 图 2-2 电路原理图控制部分 显示部分如图 2-3 所示。 图 2-3 电路原理图显示部分 7 2.3 主要器件的应用简介 2.3.1 80c51 单片机 单片机是一种集成在电路的芯片,是采用超大规模集成电路技术将具有数据处理能力的中央处理 器 cpu、 只读存储器 rom、 随机存储器 ram、定时器/计时器、多种 i/o 口和中断系统等功能(可能 还包括显示驱动电路、 a/d 转换器 等电路、pwm 电路、模拟多路转换器)集成在一块硅片上,构成 一个体积小而功能完善的计算机系统。单 片 机 又 叫 单 片 微 型 控 制 器 , 它 不 是 单 纯 完 成 某 一 逻 辑 功 能 的 硅 芯 片 , 而 是 把 一 个 计 算 机 系 统 采用超大规模集成电路 技术集 成 在 一 块 芯 片 上 , 相 当 于 一 台 微 型 计 算 机 , 只 是 同 计 算 机 相 比 , 单 片 机 缺 少 了 i/o 设 备 。 总 的 来 说 , 一 块 单 片 机 芯 片 就 构 成 了 一 台 计 算 机 , 它 不 仅 体 积 小 、 质 量 轻 而 且 价 格 便 宜 , 这 些 优 势 使 得 在 单 片 机 的 学 习 、 应 用 和 开 发 方 面 , 都 非 常 便 利 。 如今单片机已渗透到人们生活的各个领域,没有单片机踪迹的领域几乎很难找到:计算机的数据 传输与网络通讯;交通工具上各类仪表的控制;飞机、导 弹 使用的导航装置;随处可见的各类智能 ic 卡 ;工业和自动化过程的实时控制和数据处理;摄 像 机 ; 录 像 机 ;全自动智能洗衣机;小轿车安全保 障系统;以及电子遥控玩具等,这些都离不了单片机,更不用说自动控制领域的智能仪表、机器人、 医疗器械等各种智能机械了。因此,单片机的学习、开发及应用将造就一批计算机应用和智能化控制 的科学家、工程师。 单片机的种类有很多,其中 51 系列单片机的功能越来越强大,然而价格却越来越便宜,不同型号 的单片机集成了不同的功能,有些 i/o 口带有 ad 转换的功能,有些内部含有 eeprom,有些内部有 独立的波特率发生器,还有些内部程序运行速度比传统单片机高几倍不同型号的 51 系列单片机, 内部功能不一样,价格也不一样,然而基于本设计,使用传统的 51 单片机即已满足所需要的功能,故 本设计选用了 80c51 单片机。 80c51 单片机除包含中央处理器外,还包含定时/ 计数器、程序存储器 (rom)、数据存储器(ram) 、串行接口、并行接口和中断系统等几大单元及地址总线、数据总线和控制总线,如图 2-4 所示。现 在我们分别加以说明: 图 2-4 单片机 8051 的内部结构 1.中央处理器: 中央处理器即 cpu,是整个单片机的核心部件,是 8 位数据宽度的处理器,能同时处理 8 位二进 制数据及代码,cpu 负责调度、指挥和控制整个单元系统的工作,完成数据运算和控制数据读入输出 功能等操作。 2.定时/计数器: 80c51 有两个可编程的 16 位定时 /计数器,通过定时或者计数,使寄存器溢出产生中断,从而控 制程序执行的方向。 3.程序存储器: 80c51 总共有 4kb 的 rom,用于存放程序、原始数据和表格。 4.数据存储器: 8 80c51 内部有 128 字节的专用寄存器和 128 字节的用户数据存储单元,它们是统一编址的,其中 专用寄存器只能用于存放控制指令数据,用户只能访问专用寄存器,而不能用于存储用户数据,所以, 用户能使用的 ram 其实只有 128 字节,这 128 字节的 ram 可用于存储读写的数据、运算产生的中 间结果和用户定义的字型表。 5.串行通信口: 80c51 内部有一个全双工串行通信口,用来跟其它设备之间进行串行通信,这个全双工串行口既 可以当同步移位寄存器使用,也可以用作异步通信收发器。 6.并行 i/o 口: 80c51 总共有 4 组 8 位并行 i/o 口(p0、p1、p2 和 p3),用于与外设互相传输数据。 7.中断系统: 80c51 有着比较完善的中断系统,包括两个外部中断、两个定时/ 计数器中断和一个串行中断,这 些中断具有 2 级的优先级别可供选择,可根据不同的控制要求到相应的控制寄存器进行设置。 8.时钟电路: 80c51 内部有一个时钟电路,用以产生单片机运行时的脉冲时序,它内置了最高频率可达 12mhz 的晶振电路,但 80c51 单片机在工作时,需要外加振荡电容。外部时钟电路如图 2-5 所示。 图 2-5 时钟电路 9.80c51 的引脚说明: 9 如图 2-6 所示,80c51 采用 40pin 封装的双列直接 dip 结构,在 40 个引脚中,正电源和地线两根, 外置石英振荡器的时钟线两根,4 组 8 位共 32 个 i/o 口,中断口线与 p3 口线复用。现在我们对这些 引脚的功能加以说明: 图 2-6 单片机的引脚图 p0 口:p0 口是一个 8 位漏极开路的双向 i/o 口,它是一个多功能口,用作分时多路转换地址 (低 8 位)和数据总线。在没有外部存储器时,p0 口作为并行 i/o 口使用,但必须外接上拉电阻。它 能驱动 8 个 ttl 门电路。 p1 口:p1 口是一个带有内部上拉电阻的 8 位双向 i/o 口。p1 口 常作为通用的 i/o 口,输出缓 冲器能带动 4 个 ttl 门电路。 p2 口:p2 口是一个带有内部上拉电阻的 8 位双向 i/o 口,它是一个多功能口。在访问外部存储 器时,p2 口送出地址的高 8 位,在没有外部存储器的时候 p2 口作为普通的 i/o 口使用,输出缓冲器 能驱动 4 个 ttl 逻辑电平。 p3 口:p3 口是一个具有内部上拉电阻的 8 位双向 i/o 口,它是一个多功能口。当它作为普通 i/o 口使用时,输出缓冲器能驱动 4 个 ttl 逻辑电平。p3 口亦作为 80c51 特殊功能(第二功能)使 用,p3 端口引脚的第二功能如下: p3.0:串行输入口(rxd); p3.1:串行输出口(txd) ; p3.2:外中断 0 输入口(into); p3.3:外中断 1 输入口(int1) ; p3.4:定时/计数器 0 外部输入口(to) ; p3.5:定时/计数器 1 外部输入口(t1); p3.6:外部数据存储器写选通(wr); p3.7:外部数据存储器读选通(rd) 。 本设计的功能键就是利用了 p3.0 和 p3.1 两个外部中断口 ,功能键的电路图如图 2-7 所示,紧急 情况(自动撤除)、紧急情况(手动撤除)及保持当前模式三个功能的按键的一端共阴(即接地), 另一端分别连接 p0.3、p0.4 和 p0.5,并通过与门连接到 p3.2。一旦有哪个功能键按下,立即产生外部 中断,单片机响应中断后,立即读取 p0 口,并判断 p0 口哪根引脚为低电平,由此即可判断按下的是 10 哪个功能键,然后程序转去执行相应的功能。而夜间模式,单独使用了外部中断 1,因为夜间模式恢 复到常规模式,要按复位键,故单独列出,但要并在外部中断 0,也可,原理同其他功能键一样。 图 2-7 功能键连接图 rst:复位输入。复位信号有效时,rst 输入高电平,并持续两个机器周期以上的高电平将使单 片机复位。复位有上电复位和按键手动复位两种。 上电复位的过程是在加电时,外部电容通过充电来实现的,其电路如图 2-8 所示,在充电瞬间, 电容加给 rst 端短暂的高电平,使 rst 出现正脉冲,于是复位。 手动复位则是通过按钮 k 实现的。 图 2-8 复位电路 ale/prog:当访问外部数据存储器或程序存储器时,ale(地址锁存允许)输出脉冲用于锁存 地址的低 8 位。当不访问外部存储器时,ale 仍然固定以 1/6 的时钟振荡频率输出脉冲信号,因此它 可以用作对外输出的时钟,也可用于定时。ale/prog 是一个复位引脚,对 flash 存储器编程时, 该引脚还用于输入编程脉冲(prog)。 psen:外部程序存储器的读选通信号。当 80c51 从外部程序存储器取指令或数据时,该引脚低 电平有效,以实现对外部 rom 的读操作。 ea/vpp:程序存储器内外部选通信号。如果 ea 端接低电平,cpu 只能访问外部程序存储器。 如果 ea 接高电平时,cpu 先读内部程序存储器。当超过了 4kb 的地址时,cpu 则读取外部程序存 储器。 xtal1 和 xtal2:时钟信号引脚,片内振荡器反相放大器的输入端和输出端。 2.3.2 74hc595 74hc595 是硅结构的 cmos 器件,兼容 ttl 电路。74hc595 内部具有一个 8 位的移 位 寄 存 器 和 一个存储器。移位寄存器和存储器使用的是不同的时钟。移位寄存器有一个串行输入(ds),和一个 串行输出(q7)。本设计中,单片机与 74hc595 使用同步通信的方式,因此,将 sh_cp 引脚与单片 机的 p3.1(txd)引脚连接,将 ds 与单片机的 p3.0(rxd)连接。在 sh_cp 引脚的上升沿期间将 11 数据输入到移位寄存器中,当 8 位数据全部传送到 74hc595 的移位寄存器后,移位寄存器内的数据会 在 st_cp 的上升沿输入到存储寄存器,当使能 oe,即 oe 为低电平时,存储寄存器的数据输出到总 线。即达到了串行输入,并行输出的目的。总之,74hc595 的功能就是 8 位串行输入,8 位串行或并 行输出。74hc595 引脚图如图 2-9 所示。 图 2-9 74hc595 引脚图 74hc595 引脚说明: q0q7:第 15 脚及第 17 脚,并行数据输出; gnd:第 8 脚,接地; q7:第 9 脚,串行数据输出; mr:第 10 脚,主复位(低电平); sh_cp:第 11 脚,移位寄存器时钟输入; st_cp:第 12 脚,存储器时钟输入; oe:第 13 脚,输出有效(低电平); ds:第 14 脚,串行数据输入; vcc:第 16 脚,电源。 2.3.3 cd4511 cd4511 是用于驱动共阴极 led 数码管显示器的 bcd 码七段码译码器,它具有 bcd 转换、 七段译码、消隐和锁存控制及驱动功能的 cmos 电路,能提供较大的拉电流,可直接驱动 led 显示 器。 cd4511 的引脚排列如图 2 所示,其中 a、b 、c、d 为 bcd 码输入,a 为最低位。lt 为灯测 试端,置高电平时,显示器正常显示,置低电平时,显示器一直显示数码“8”,即各笔段都被点亮, 以检查显示器是否有故障。bi 为消隐功能端,低电平时使所有笔段均消隐,正常显示时,b1 端应置 高电平。另外 cd4511 有拒绝伪码的特点,即当输入数据超过十进制数的 9(二进制的 1001)时,显 示字形也自行消隐。le 是锁存控制端,高电平时锁存,低电平时传输数据。ag 是 7 段输出,也是 七段数码管的输入,可驱动共阴 led 数码管。所谓共阴 led 数码管是指 7 段 led 的阴极是连在 一起,并在应用中接地。限流电阻的选择要依据电源电压的大小,电源电压为 5v 时可使用 300左右 的限流电阻。 用 cd4511 实现 led 与单片机的并行接口方法如图 2-10 所示。 12 图 2-10 cd4511 实现 led 并行接口接线图 cd4511 引脚图如图 2-11 所示。 图 2-11 cd4511 引脚图 其引脚功能介绍如下: lt:第 3 脚是测试数码管的输入端,当 bi=1,lt=0 时,ag 全部输出“1”,不管输入 a、b 、 c、d 状态如何,七段全部发亮,即显示数码“8”,这个引脚主要是用来检测七段数码管是 否有损坏。 bi:第 4 脚是控制消隐的输入端,当 bi=0 时,无论其它引脚状态如何,七段数码管始终不显示 任何数字,即处于熄灭(消隐)状态。 le:第 5 脚是控制锁定的引脚,当 le=0 时,允许 ag 输出译码后的数据。当 le=1 时,译码器 处于锁定保持状态,此时译码器输出之前 le=0 时的数值。 13 3 软件设计 3.1 主程序流程图 软件总体设计及流程图见图 3-1,本系统主程序模块主要完成的工作是对系统的初始化,以及按 序执行常规状态下,各红绿灯的状态的顺序。其流程图如图 3-1 所示,当系统启动时,经初系统初始 化后,依次进入状态 s1、s2、s3 、s4,然后返回 s1,如此一直循环下去。 开始 初始化 状态 1 显示 15 秒 状态 2 显示 20 秒 状态 4 显示 20 秒 状态 3 显示 25 秒 图 3-1 主程序流程图 14 3.2 外部中断 0 子程序流程图 如图 3-2 所示,当有按键按下时,程序跳转至中断函数,首先判断此时是否黄灯在闪,如果是的 话,就不执行任何操作,因为黄灯在闪的时候,说明此时红绿灯状态在改变,如果此时转去执行别的 功能,可能导致司机来不及反应而造成事故。如果没有黄灯在闪,判断是哪个功能键按下,然后去执 行相应的操作,操作完毕后返回主程序。 y n y n y n y n 图 3-2 外部中断 0 子程序流程图 开始 有黄灯在闪? k1 按下? k2 按下? k3 按下? 返回 执行对应操作 duiying 执行对应操作 duiying 执行对应操作 duiying 15 3.3 显示子程序流程图 如图 3-3 所示,当程序进入显示子程序时,先判断当前执行的交通灯状态,然后取得相应倒计时 数值,转换为 bcd 码后,串行输出至 74hc595,然后 74hc595 并行输出至 cd4511,如此 led 数码 管将显示相应的数值。 开始 取相应倒计时数值 转换成 bcd 码 发送至 74hc595 输出显示 结束 判断此时的状态 图 3-3 显示子程序流程图 16 4 仿真及调试 本设计采用 proteus 硬件仿真软件对该设计的硬件电路进行了实物功能仿真,仿真效果良好。 4.1 仿真软件介绍 proteus 是英国 labcenter electronics 公司出版的仿真软件,它除了具有其它 eda 工具软件的仿真 功能外,还可以仿真单片机及单片机外围器件。它是迄今为止最好的单片机仿真工具之一。虽然刚在 我国推广不久,但是已经受到许多单片机教学的教师和单片机开发人员的青睐。proteus 将电路仿真、 pcb 设计以及虚拟模型仿真三合为一,从绘制原理图、到调试代码,再到整体仿真,最后一键转换为 pcb 设计,这一系列完整的实现了产品的设计。 proteus 除了支持 51 系列单片机外,还支持 avr、 arm 等微处理器的仿真,并支持 keil 等多种编 译 器 。 当原理图绘制好后,导入已经编译好的 hex 目标文件,运行 proteus,此时不但可以观察到所有元 器件的所有引脚的电平状态,还可以观察到整个系统的运行过程,并且还具有暂停运行等功能,更方 便了对系统的观测和调试。本设计采用 keil 编译器编辑、编译源程序。keil 可以与 proteus 联调,实 现单步调试功能,有利于程序的编写及调试。 4.2 系统总体调试 连接完电路图,导入程序后,运行软件,先后观测初始状态、常规状态、紧急处理功能,保持当 前状态功能,夜间模式,总体运行,均能正确实现预期效果。 初始状态,如图 4-1,此时系统刚运行,默认所有路口五秒红灯。 图 4-1 初始状态 常规下,四种状态分别如图 4-2 至 4-5,每种状态在过渡时,最后三面,绿灯会闪烁,时间结束后, 会有三秒的黄灯等待时间。 17 图 4-2 状态 1 图 4-3 状态 2 18 图 4-4 状态 3 图 4-5 状态 4 19 紧急情况功能处理,自动撤除和手动撤除分别如图 4-6,图 4-7 所示。 图 4-6 紧急处理功能,自动撤除(有倒计时) 图 4-7 紧急处理功能,手动撤除(无倒计时,一直显示 00) 20 夜间模式下,所有路口均闪烁黄灯,如图 4-8 所示。 图 4-8 夜间模式 21 5 部分程序清单 5.1 主程序清单 void main() int0init(); /初始化外部中断 0 int1init(); /初始化外部中断 1 lights_init(); /显示初始化 for(;) status_1(); /状态 1 display(15); /显示 yellow_lights(); /黄灯 status_2(); /状态 1 display(20); /显示 yellow_lights(); /黄灯 status_3(); /状态 1 display(25); /显示 yellow_lights(); /黄灯 status_4(); /状态 1 display(20); /显示 yellow_lights(); /黄灯 5.2 外部中断 0 子程序清单 void int0(void) interrupt 0 char i; if(p3 /中断标志,防止按键多次按下,导致同一中断排队执行多次 for(i=3; i=0; i-) /有绿灯的,绿灯闪四秒 g_l_shan(i); p1 = 0x95; /全部红灯 p2 = 0x15; p3 = p3 22 for(i=19; i=0; i-) send(i/10)=0; i-) /有绿灯的,绿灯闪四秒 g_l_shan(i); p1 = 0x95; /全部红灯 p2 = 0x15; p3 = p3 while(p0_4); /保持此时状态,直到此开关再次按下 else if(p0_5 = 0) while(p0_5); switch(status_flag) case 1:status_1();break; case 2:status_2();break; case 3:status_3();break; case 4:status_4(); int0_flag = !int0_flag; /中断标志取反,使接触中断后不会再执行新的中断处理 5.3 外部中断 1 子程序清单 void int1(void) interrupt 2 send(0x00); p0 = 0; p1 = 0; p2 = 0; p3 = 0x0c; while(1) p3 = p3 | 0xf0; p1_6 = 1; p2_6 = 1; delay500ms(); 23 p1 = 0; p2 = 0; p3 = 0x0c; delay500ms(); 24 致 谢 本设计是在导师 xxx 老师的虚心和耐心的指导下进完成的,在设计过程中,x 老师给我提供了很 多的建议和帮助,并给予我耐心地辅导。另外,还要感谢几位耐心帮助过我的同学,他们在我平时设 计中指出我设计上不足,并且和我一起探讨问题,没有他们的帮助我也不可能这样顺利地结稿。 在此,再次对所有帮助过我的老师和同学,表示深深的谢意。 25 参考文献 1潘新民,王艳芳.微型计算机控制技术 电子工业出版社, 2011.1 2潘新民,王艳芳.微型计算机控制技术实用教程 电子工业出版社, 2006 3杨居义.单片机课程设计指导 清华大学出版社,2009.9 4赵全利,肖兴达.单片机原理及应用教程 机械工业出版社, 2010.7 5(美)霍顿(horton,i.)著,张欣等译.c 语言入门经典 机械工业出版社,2007.5 6楼兰苗,李光飞.单片机课程设计指导 北京航空航天大学出版社, 2007.7 7马忠梅.单片机的 c 语言程序设计(第 4 版) 北京航空航天大学出版社, 2007 26
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年速冻丸类制品合作协议书
- 智慧城市发展背景下智能交通系统的战略规划
- 2025年紫外固化材料项目发展计划
- 创新教育心理学方法激发学生内在动力
- 情绪心理学与课堂氛围的营造
- 医疗培训中的教育政策与效果评估研究
- 以数据为支撑的学生行为心理分析实践
- 在线教育在商业领域的广泛应用及未来前景
- 混合式学习模式在医学教学中的实践应用研究
- 中职教育课件
- 2025年上半年西安交通投资集团限公司招聘29人易考易错模拟试题(共500题)试卷后附参考答案
- 奶茶店转让合同书
- 2025年军转干考试全真模拟题库及答案(共三套)
- 供应商评鉴管理办法课件
- 青少年暑期安全知识课件
- 劳动与社会保障题库(含答案)
- GB/T 4074.7-2024绕组线试验方法第7部分:测定漆包绕组线温度指数的试验方法
- 蓝色医疗肝硬化腹水病人的护理
- 床护栏市场需求与消费特点分析
- 幕墙工程施工方案
- 2024秋期国家开放大学本科《合同法》一平台在线形考(任务1至4)试题及答案
评论
0/150
提交评论