智能交通系统毕业论文


    智能交通系统毕业论文 摘 要 随着现代社会的快速发展,各种各样的交通工具成为了代步工具,特别是近年来小汽车的普及,加重了现有交通资源的压力。优化交通网络可以缓解交通压力,但是投入成本较高,还要受很多环境因素的影响,对于道路交通的控制方法和控制技术的优化显得更容易实现,而交通灯是整个交通网的指挥系统。 本文研究的是以STC89C52RC单片机为控制器的智能交通灯控制系统,该系统在基础交通灯系统的基础上增加了如下功能:(1)自动实时监测车流量并将传回的数据进行处理,动态分配不同方向的通车时间,最大程度优化交通道路资源;(2)紧急情况强制转换通车;(3)根据车流量自动进入夜间模式等功能。本设计进行软硬件整体设计,并利用PROTEUS软件进行软件仿真,并进行了硬件板卡实现。 关键词:智能交通灯;STC89C52;智能控制;74HC573 ABSTRACT With the rapid developments of modern society, all kinds of traffic tools has become the transport, especially the popularity of the car in recent years, which increased the pressure of the existing transport resources, Although optimizing the transportation networks can ease traffic pressure, the cost is higher,and which is influenced by many environment factors also.Optimizing the control methods and control technologies are more easy to implement, and the traffic light is the core command system for entire transportation network. This paper has researched the controller of the intelligent traffic light control system based on STC89C52RC single-chip microcomputer.The system of traffic lights on based system increased automatic real-time monitoring on the basis of the number of cars and will be back to the data, the dynamic distribution of different directions of traffic time, maximum optimization of traffic resources; Emergency coercion; According to the number of cars and the time, the control system can enter the night mode automatically. This design carries on the overall design flow of software and hardware, using the PROTEUS software for simulation, and the circuit board was implemented at last. KeyWords:Intelligent traffic lights; STC89C52; Intelligent control; 74 hc573 目 录 第一章 绪论 1 1.1 智能交通系统发展史 1 1.2 智能交通系统的发展现状 1 1.3 智能交通灯研究的意义 2 第二章 系统总体方案设计 3 2.1 通行状态设计 3 2.2 交通灯系统的功能设计 4 2.3 系统总体框图 5 第三章 硬件电路设计 6 3.1 STC89C52RC单片机简介 6 3.1.1 STC89C52RC主要特性 6 3.1.2 STC89C52RC单片机的工作模式 7 3.1.3 STC89C52RC引脚功能说明 7 3.2 各模块电路设计 12 3.2.1 时钟电路 12 3.2.2 复位电路 13 3.2.3 强制转换电路 13 3.2.4 车流量检测电路 13 3.2.5 数码管显示电路 14 3.2.6 红绿灯显示电路 14 第四章 软件设计 16 4.1 程序主体设计 16 4.2 模块化程序设计 17 4.2.1 主程序 17 4.2.2 初始化函数 17 4.2.3 定时函数 18 4.2.4 毫秒延时函数 18 4.2.5 交通灯函数 18 4.2.6 数码管显示函数 19 4.2.7 强制转换函数 20 第五章 仿真测试 21 5.1 软件仿真 21 5.2 硬件仿真 23 5.3 功能测试 26 第六章 总结 27 参考文献 28 致 谢 29 附录: 源程序 30 第一章 绪论 1.1 智能交通系统发展史 随着社会的快速发展和人口数量的急剧上升,有限的道路资源已经无法满足时代的需要,交通控制也就应运而生。交通控制在人类社会生产和生活中起着越来越重要的作用,没有有序的交通控制,我们的交通网将陷入瘫痪状态。同样,交通控制也在随着我们社会和科学的进步而发展,由最初的人工手动控制发展到机械控制,再发展到电气控制,到现在发展为今天的智能交通系统(ITS,Intelligent Transportation Systems)。 交通灯是交通控制的重要手段,早在19世纪就出现了最原始的交通灯。19世纪初,在英国约克城女性穿着不同颜色的衣服代表不同的身份。在交通灯出现之前,马车压人事件时常在英国会议大厦前上演。直到1868年12月,英国著名机械设计师德· 哈特由红绿色的服装代表不同身份这件人们习以为常的事情中受到了启发,于是他设计了英国也是世界上第一盏交通灯,它是在7米高的灯柱上挂着两盏红绿颜色的煤气灯,通过牵动皮带将不同颜色的灯提上来来告诉是通行还是禁行,最初的交通灯是煤气交通灯,不幸的是第一盏煤气交通灯仅面世23天就因为煤气爆炸炸死人而被迫停止。 爆炸噩梦一直影响着人们,销声匿迹几十年后终于在1914年,通过不断的实验研究,世界上第一台电气信号灯在美国克利夫兰市诞生了。但是到1918年为止,世界上各种各样的交通灯都还是只有红绿两种颜色。伴随着交通的发展和需要,第一盏名副其实的交通信号灯在1918年诞生了,它有红黄绿三种颜色组成,一直延续到今天,我们还是在使用三色交通信号灯。虽然三色信号灯诞生在美国,但是黄色信号灯的发明者是我国当时在美国深造的胡汝鼎。他怀着“科学救国”的抱负到美国深造,当时他在美国通用电器公司工作,某天,他在十字路口看到变为红灯时准备走过去,正好一辆转弯的汽车呼啸而过,差点撞到他,于是他反复思考,终于想到在绿色和红色之间加一个黄色灯提醒人们。他把这一想法反映给有关部门,很快这个建议得到了肯定,并应用到实际中。 1928年在上海的英租界出现的红绿灯是中国最早的交通灯。 1.2 智能交通系统的发展现状 纵观国际上的智能交通系统,在20世纪六七十年代智能交通系统开始萌芽。随着现代社会的快速发展和技术的进步,智能化系统逐步发展到交通系统,智能交通系统包括车辆控制系统、车辆监控系统、车辆高度管理系统。通过监控系统实时监测各路段的实时路况,然后通过卫星联网,实现管理中心与驾驶员的双向通讯,及时告知该路段中驾驶员附近路段的实时路况,避免走拥堵线路,通过这样进行高度管理,然后是汽车本身的智能化,可以根据卫星定位第一时间了解目前所在地和目的地之间的路况,智能提供最优路线给驾驶员。因此,实时性、系统性和交互性是智能交通系统的主要特点。 首先,实时性至关重要,如果监控、采集的数据不是实时的将没有任何意义,就不能有效的做到预防交通拥堵,因此,采集的交通数据要第一时间通过网络发送到交通管理中心,再通过管理中心针对性的将数据发送到相关区域中的驾驶员。 其次是系统性,交通网相互交织,非常复杂,但是必须由点到面,将各个路段的信息收集到一起,再由交通管理中心统一调度,系统管理,这样的交通才能井然有序。 最后是交互性,是智能交通系统中最难的,它不再是单纯的某种技术,而是将各种最先进的技术进行交互式组合形成的。涉及电子、通信、信息、交通工程和系统工程等诸多学科,就是将信息、计算机、数据通信、传感器、自动控制、运筹学、互联网进行有效的组合形成最终的智能交通系统。 智能交通系统通过传播实时的交通信息使出行者对自己所处的实时交通环境有一个全面的了解,进而选择最适合自己出行的路线,最大程度地缓和了道路堵塞、减少了环境污染和交通事故,提高了交通利用者的方便、舒适度。 1.3 智能交通灯研究的意义 现代社会交通拥堵严重,不仅浪费了很多时间,还加重环境的污染和交通事故率的增加,交通问题会造成巨大的经济损失。交通运输关系到国家经济的兴衰,是经济建设的重要组成部分。同时,交通问题也是一个世界性难题。作为智能交通系统的核心部分,智能交通灯的发展对智能交通系统有着决定性的作用。 第二章 系统总体方案设计 2.1 通行状态设计 十字路口车辆通行状态有四种,假设为东西方向和南北方向,四种状态如图2.1: 南北向绿灯、东西向红灯 南北向黄灯、东西向红灯 南北向红灯、东西向绿灯 南北向红灯、东西向黄灯 图2.1 四种通行状态 系统工作时按照上面四个状态依次循环工作,任何时刻只能有一个方向的车通行,四个状态的工作流程如下: (1)南北向通行,东西向禁行,南北向绿灯55秒(初始值,工作一个周期后会根据车流量变化); (2)南北向和东西向都禁行,南北向黄灯5秒(值不变); (3)南北向禁行,东西向通行,东西向绿灯55秒(初始值,工作一个周期后会根据车流量变化); (4)南北向和东西向都禁行,东西向黄灯5秒(值不变); 状态(4)完成后又变换到状态(1),反复循环。 红绿灯的状态表如下表2.1所示: 表2.1 红绿灯状态表 状态1 状态3 状态4 状态6 东西红灯 0 0 1 1 东西黄灯 1 1 1 0 东西绿灯 1 1 0 1 南北红灯 1 1 0 0 南北黄灯 1 0 1 1 南北绿灯 0 1 1 1 说明:1表示灭,0表示亮 2.2 交通灯系统的功能设计 除了常见的基本功能外还增加了车流量检测及自动控制红绿灯时间的功能,提高车辆行驶效率;为了让特殊车辆快速通行,增加了强制转换功能;通过对车流量的统计,当某段时间内通过的车辆数量总和小于某数时将自动进入闲时模式。 (1)车辆检测技术 随着车辆拥有率的不断升高,道路拥堵特别是十字路口的堵塞变得尤为严重,因此,提高十字路口的通行效率也变得尤为重要,这就需要实时的按照车流量的多少智能调整两个方向的红绿灯时间,最大程度的保证车辆的通行。现今的检测技术主要有红外线检测器、地磁检测器、机械压电检测器、磁频检测器、波频检测器、视频检测器等。红外检测车流量是通过使用红外对接管,一个发射,一个接收,能接收到红外是一个电平(有高有低,看硬件参数的),有车的时候会挡住红外的接收,这样接收不到红外,没有车的时候一直可以接收到红外,这样一高一低电平通过单片机计数器可以实现车流量统计,本设计以120秒为一个检测周期,对采集到的数据进行运算,再分配两个方向的绿灯时间,例如南北方向的车流量为SN,东西方向的车流量为WE,那么南北方向下一个周期的绿灯时间为Tsn=(120-10)*SN/(SN+WE),舍去小数部分取整数,东西方向的绿灯时间为Twe=120-10-Tsn,公式中减去的10秒为两次5秒黄灯时间。一个周期是固定,但是不能让一边的时间太短或者太长,所以当任何一边的绿灯时间大于90秒时都取90秒,当任何一边的时间小于20秒时都取20秒。由于没有红外对接管,这里使用按键代替。 (2)强制转换功能 每次看到路上的急救车或者消防车被红绿堵在车流中,都是既焦急又无奈,因此设计了强制转换功能,当某个方向有特殊车辆只需按下该方向的强制转换按钮即可立即让该方向的车辆优先通过,这样就为消防和医院的急救争取了时间。 (3)闲时模式 当车流量很少时,特别是夜间,每个方向的车流量都很少,有时甚至没有,这样如果时间设置的很长很容易让司机产生焦虑,因而不顾交通规则强行通过,车流量很少的时候车速往往很快,这样很容易产生交通事故。通过车流量检测,当两个方向的车辆总数少于一定数量时将自动进入闲时模式,即每个方向都是15秒绿灯时间,一旦车流量超过设置的数值时会自动恢复到正常工作状态。 2.3 系统总体框图 系统外接5V直流电源,并和内部时钟电路、复位电路构成单片机最小系统。在最小系统的基础上,由按键电路和检测电路组成输入电路,按键控制特殊情况强制转换,检测电路实时车流量检测,单片机对输入的信号进行运算和处理,产生输出信号,用来控制交通灯模块和数码管驱动,再通过数码管驱动控制数码管显示剩余时间。 电源 交通灯模块 单片机(MCU) STC89C52 时钟电路 数码管驱动模块 (74HC573) 复位电路 按键电路 检测电路 数码管显示 图2.2 系统总体框图 第三章 硬件电路设计 此设计以STC89C52单片机为主控制器,搭载按键、红外对管、发光二极管、数码管驱动及数码管,构成一个完整的智能交通灯系统。总电路图如图3.1所示: 图3.1 总体硬件电路图 通过单片机控制红外对管,当车辆通过时会不停的阻断红外信号,就会产生不断变化的高低电平,计数器T0和T1分别对东西和南北向的车流量进行计数,然后通过单片机计算东西向和南北向下一个周期的绿灯时间分别是多少,再将数据传给数码管驱动和交通灯,最后通过数码管驱动控制数码管显示剩余时间。本设计的硬件核心是单片机(MCU),型号是STC89C52RC。 3.1 STC89C52RC单片机简介 STC89C52RC单片机是深圳宏晶公司设计的一款高速、低功耗的单片机,并且兼容传统8051单片机。 3.1.1 STC89C52RC主要特性 (1)增强型8051单片机,有6和12两个时钟/机器周期可以任意选择,完全兼容传统8051 (2)工作电压:5V单片机(5.5V~3.3V)/3V单片机(3.8V~2.0V) (3)频率范围:0~40MHz,实际工作频率可达48MHz (4)用户应用程序空间ROM为8K字节 (5)片上集成512字节数据存储空间RAM (6)通用I/O口(32个) (7)支持ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器和仿真 器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序 (8)具有EEPROM功能 (9)具有看门狗功能 (10)共3个16位定时器/计数器 (11)PDIP40封装 3.1.2 STC89C52RC单片机的工作模式 (1)正常工作模式:典型功耗4mA~7mA (2)空闲模式:典型功耗2mA (3)掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序 3.1.3 STC89C52RC引脚功能说明 STC89C52RC引脚图如图3.2所示 VCC(40引脚):电源电压 GND(20引脚):接地 P0端口(39~32引脚):P0口是一个漏极开路的8位双向I/O口。P0口可以作为普通的I/O口使用,但需加上拉电阻构成准双向口。当作为普通I/O口输入 时,应先向端口的输出锁存器写入1。在访问外部程序和数据存储器时,P0口可 以作为地址总线(低8位)和8位数据的分时复用总线。 P1端口(1~8引脚):8位准双向I/O口,具有内部上拉电阻。P1口是专为用户使用的准双向I/O口,当作为普通I/O口输入时,应先向端口的输出锁存器 写入1。 此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),这是和89C51的区别。具体参见下表3.1: 在对Flash ROM编程和程序校验时,P1接收低8位地址。 表3.1 P1.0和P1.1引脚复用功能 引脚号 功能特性 P1.0 T2(定时器/计数器2外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器2捕获/重装触发和方向控制) 图3.2 STC89C52RC引脚图 P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2口可以作为地址总线(高8位)。 P3端口(P3.0~P3.7,10~17引脚):8位准双向I/O口,具有内部上拉电阻。P1口是专为用户使用的准双向I/O口,当作为普通I/O口输入时,应先向端口的输出锁存器写入1。 P3口除作为一般I/O口外,还有第二种复用功能,如下表所示: 表3.2 P3口引脚复用功能 引脚号 复用功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 (外部中断0) P3.3 (外部中断1) P3.4 T0(定时器0的外部输入) P3.5 T1(定时器1的外部输入) P3.6 (外部数据存储器写选通) P3.7 (外部数据存储器读选通) RST(9引脚):复位信号输入端,高电平有效。当单片机运行时,该引脚维持大于两个机器周期(24个时钟振荡周期)的高电平时,单片机将进行复位。在单片机正常工作时,该引脚电压低于0.5V。 ALE/(30引脚):ALE为低8位地址锁存允许信号。在系统扩展时,ALE的负跳沿将P0口发出低8位地址锁存在外接地址锁存器中,然后P0口再作为数据端口,以实现P0口的低8位地址和数据分时传送。 此外,单片机运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率的1/6,该正脉冲信号可以作为时钟源或者定时信号使用。但是要注意的是,每次单片机访问外部RAM时要丢失一个ALE脉冲。因此,严格的说用户不宜用ALE作为精确的时钟源或者定时信号。 为该引脚的第二功能,在对片内Flash存储器编程时,此引脚作为编 程脉冲输入端。 (29引脚):片外程序存储器的读选通信号。在单片机读外部程序存储器时,此引脚输出脉冲的负跳沿作为读外部程序存储器的选通信号。此引脚接外部存储器的端,在访问外部RAM时,信号无效。 /VPP(31引脚):外部程序存储器访问允许控制端。为低电平时,单片机访问从0000H到FFFFH的外部程序存储器,内部程序存储器不起作用。当为高电平时,单片机读取内部程序存储器。VPP为该引脚第二功能,是编程电压输入端。在对片内Flash固化编程时应加+5V或+12V电压。 XTAL1(19引脚):片内振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18引脚):片内振荡器反相放大器的输出端。 3.1.4 特殊功能寄存器(SFR) 在STC89C52RC片内存储器中,80H~FFH共128个单元位特殊功能寄存器(SFR),SFR的地址空间如下表3.3所示: 表3.3 STC89C52RC的特殊功能寄存器 特殊功能寄存器符号 名称 字节地址 位地址 B B寄存器 F0H F7H~F0H A(Acc) 累加器 E0H E7H~E0H PSW 程序状态字 D0H D7H~D0H TH2 定时器/计数器2(高字节) CDH — TL2 定时器/计数器2(低字节) CCH — RCAP2H 定时器2 16位扑捉/自动重载(高字节) CBH — RCAP2L 定时器2 16位扑捉/自动重载(低字节) CAH — T2MOD 定时器/计数器2方式控制 C9H — T2CON 定时器/计数器2控制 C8H CFH~C8H IP 中断优先级控制 B8H BFH~B8H P3 P3口 B0H B7H~B0H IE 中断允许控制 A8H AFH~A8H P2 P2口 A0H A7H~A0H SBUF 串行数据缓冲器 99H — SCON 串行控制 98H 9FH~98H P1 P1口 90H 97H~90H TH1 定时器/计数器1(高字节) 8DH — TH0 定时器/计数器0(高字节) 8CH — TL1 定时器/计数器1(低字节) 8BH — TL0 定时器/计数器0(低字节) 8AH — TMOD 定时器/计数器方式控制 89H — TCON 定时器/计数器控制 88H 8FH~88F PCON 电源控制 87H — DPH 数据指针高字节 83H — DPL 数据指针低字节 82H — SP 堆栈指针 81H — P0 P0口 80H 87H~80H 并非所有的地址都被定义,从80H~FFH共128个字节只有一部分被定义。还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。 不应将“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。 STC89C52RC和其他89C51一样都有T0、T1两个定时器/计数器,都具有四种工作方式,通过工作方式控制寄存器TMOD进行模式和工作方式的选择,TMOD格式如表3.4所示: 表3.4 TMOD格式 D7 D6 D5 D4 D3 D2 D1 D0 GATE C/ M1 M0 GATE C/ M1 M0 T0方式字段 T1方式字段 TMOD各位功能如下: (1)GATE——门控位 GATE=0时,仅用运行控制位TRx(x=0,1)来控制定时器/计数器计数; GATE=1时,需用外中断引脚上的高电平与运行控制位TRx共同控制定时器/计数器计数。 (2)M1、M0——工作方式选择位 M1、M0有四种编码,分别代表四种工作方式,如表3.5所示 表3.5 M1、M0工作方式选择 M1 M0 工作方式 0 0 方式0: 13为定时器/计数器 0 1 方式1: 16位定时器/计数器 1 0 方式2: 8位的常数自动重新装载的定时器/计数器 1 1 方式3: 仅适用于T0,此时T0分成两个8位的计数器,T1停止计数 (3)C/——计数器模式和定时器模式选择位 C/=0,为定时器模式,对晶振12分频后的脉冲进行计数。 C/=1,为计数器模式,计数器对外部引脚T0或T1的外部脉冲(负跳变) 计数。 TCON 有八位,可按位寻址,该设计中只需用到高四位,故只对高四位进行说明: (1)TF1/TF0——计数溢出标志位 当计数器溢出时,该位置“1”,应软件清“0”。 (2)TR1/TR0——计数运行控制位 该位置“1”时启动定时器/计数器工作; 该位清“0”时停止定时器/计数器工作。 STC89C52RC除了有定时器/计数器0和定时器/计数器1之外,还增加了一个定时器/计数器2。控制和状态位分别位于T2CON(见表3.6)和T2MOD(见表3.7)。 定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择。定时器2有三种工作模式:捕捉方式、自动重载和波特率发生器。工作模式由T2CON中的相关位选择(如表3.8所列)。定时器2 有2 个8位寄存器:TH2和TL2。 表3.6 特殊功能寄存器T2CON CFH CEH CDH CCH CBH CAH C9H C8H TF2 EXF2 RCLK TCLK EXEN2 TR2 C/ CP/ 表3.7 定时器2模式控制寄存器(T2MOD) D7 D6 D5 D4 D3 D2 D1 D0 - - - - - - T2OE DCEN 表3.8 定时器2工作方式 RCLK+TCLK CP/ TR2 模式 0 0 1 16位自动重装 0 1 1 16位捕获 1 X 1 波特率发生器 X X 0 (关闭) 自动重装模式该模定时器2递增计数到0FFFFH,并在溢出后将TF2置位,然后将RCAP2L 和RCAP2H中的16位值作为重新装载值装入定时器2。RCAP2L和RCAP2H的值是通过软件预设的。 3.2 各模块电路设计 3.2.1 时钟电路 时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图3.3(a) 所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用晶振和两个30pF电容组成的并联谐振回路。 外部方式的时钟电路如图3.3(b)所示,XTAL1接地,XTAL2接外部振荡器。 (a)内部方式时钟电路 (b)外部方式时钟电路 图3.3 时钟电路 3.2.2 复位电路 复位就是对单片机的进行初始化操作。其主要功能就是将PC值初始化,使单片机从0000H单元开始执行程序。复位除了进入系统的正常初始化之外,当系统处于死循环状态时,为正常工作,可以按复位键重新启动。此设计采用的是按键电平复位,如图3.4所示: 图3.4 复位电路 3.2.3 强制转换电路 强制转换电路是在有特殊车辆或者紧急情况需要一边马上通行的情况下,按下相应的按键,该方向就会一直保持绿灯,紧急情况解除时只需要按复位键即可进入正常模式。 如图3.5所示,正常模式下P3.0和P3.1脚都是高电平,当按下南北向按键时P3.1脚会检测到低电平,通过程序控制使南北向绿灯常亮,东西向保持红灯亮;反之,当按下东西向按键时,P3.0脚会检测到低电平,此时,东西向绿灯常亮,南北向保持红灯亮。 图3.5 强制转换电路 3.2.4 车流量检测电路 如图3.6所示,东西向检测按键接单片机P3.4脚,南北向接P3.5脚,初始状态两引脚都是高电平,当有车辆通过时,按键将被压下闭合,使得对应引脚变为低电平,计数器接收到该信号将自动加1,计数以120秒为一个周期,当到达120秒时计数器将自动置零重新计数。通过对计数器的数据进行运算,分配南北向和东西向的绿灯时间。 图3.6 车流量检测电路 3.2.5 数码管显示电路 如图3.7所示,两个74HC573锁存器,U2是位选锁存器,U3是段选锁存器,当锁存引脚为高电平时为直通状态,当为低电平时为锁存状态,锁定后数据将不再变化,直到解除锁定,通过一定的延时可以实现数码管的动态显示,但是由于延时时间很短,肉眼无法分辨,所以我们看到的是静态的。 图3.7 数码管显示电路 3.2.6 红绿灯显示电路 如图3.8所示,所有发光二极管正极接正5V电压,通过控制负 极的电平来决定是否点亮,例如,当P0.0脚为低电平时,南北方向的 红灯将被点亮,当P0.0为高电平时,南北方向的红灯将熄灭。 图3.8 红绿灯显示电路 特别需要注意的是,因为P0口内部是漏极开路型,所以在做I/O口使用时需要加上上拉电阻,否则电流不足以驱动发光二极管。如图3.9所示: 图3.9 P0口接上拉电阻 第四章 软件设计 4.1 程序主体设计 本设计采用keil软件进行软件设计,编译后生成hex文件可供proteus进行软件仿真和硬件下载到单片机仿真。软件系统由很多模块组成:主程序、初始化程序、延时函数、定时函数、交通灯函数、数码管动态显示函数、东西向和南北向强制转换函数等。对它们进行有序的组合才能让系统正常工作。程序流程图如图4.1所示: 开始 初始化 设定初值 P3.0和P3.1电平检测 东西向红灯 P3.0为低电平 P3.1为低电平 南北向绿灯 东西向绿灯 南北向黄灯5秒 南北向车流量 东西向车流量 南北向红灯 东西向绿灯 南北向红灯 南北向绿灯 东西向红灯 东西向黄灯5秒 图4.1 程序流程总图 4.2 模块化程序设计 4.2.1 主程序 在C语言中有且必须有一个主函数main,都是从main函数开始执行,又是以main函数结束。 void main(void) { init(); //初始化函数 k1=1; k2=1; for(;;) { light(); led(); changewe(); changesn(); } } 首先调用初始化函数,然后将强制转换按钮置高电平,最后进入一个for循环这是一个死循环,循环中调用了很多子程序,如交通灯函数、数码管显示函数、东西向和南北向的强制转换函数。 4.2.2 初始化函数 初始化函数是对计数器和定时器的一些模式和工作方式进行选择、赋初值以及启动计数器和定时器。我们需要对计数器T0、T1和定时器T2赋初值,因为计数器都是从0开始计数,故将计数器的初值都赋值为0,因为工作在方式1,所以,最大计数65536次,对于定时器T2,工作在16位自动重装模式,晶振频率为12MHz,故计数周期为T=12/12MHz=1us,最多计时65.5ms就会溢出,因此采用50ms计时,初值为X=65536-50000,所以RCAP2H = (65536-50000)/256,RCAP2L = (65536-50000)%256。 void init(void) { T2CON=0x01; //16位自动重装 TMOD = 0x55; //计数器T0、T1,工作方式1 TH0=0; //计数初值清0 TL0=0; //计数初值清0 ET0=1; //使T0中断可以溢出 EA =1; //开启总中断 IT0=1; TR0=1; //计数器0启动 TH1=0; //计数初值清0 TL1=0; //计数初值清0 ET1=1; //使T1中断可以溢出 IT1=1; TR1=1; //计数器1启动 RCAP2H = (65536-50000)/256;//晶振12M 60ms 16bit 自动重载 RCAP2L = (65536-50000)%256; ET2=1; //打开定时器中断 TR2=1; //打开定时器开关 } 4.2.3 定时函数 定时函数是通过定时器T2进行定时,主要有两个定时,一个是1秒定时,当一秒到了数码管显示时间将进行减1操作;另外一个是120秒定时,本设计以120秒为一个周期通过计数器T1和T0分别对南北向和东西向车流量进行计数,然后对数据进行运算,求出两个方向的绿灯时间,最后对计数器清零,重新开始计数。 4.2.4 毫秒延时函数 void delay(uchar t) { uchar i; for(t;t>0;t--) { for(i=120;i>0;i--); } } 单片机的晶振是12M时,通过keil仿真该延时函数接近1ms(0.986us)的时间。其他函数中有很多地方需要用到延时函数,比如数码管动态显示、按键的消抖都需要很短暂的延时。 4.2.5 交通灯函数 void light() { P0=c[k]; } 交通灯由12个发光二极管组成,正极都接在正5V电压上,因为通过P0口控制发光二极管负极的高低电平来点亮或者熄灭发光二极管,该函数中通过在不同时间把数组c[4]={0x33,0x35,0x1E,0x2E}的某个元素赋值给P0口来控制交通灯。 4.2.6 数码管显示函数 void led() { P2=b[0]; //南北向个位数码管位选 L2=1; L2=0; P2=a[SN%10]; //南北向个位数码管段选 L1=1; L1=0; delay(20); P2=b[1]; //南北向十位数码管位选 L2=1; L2=0; P2=a[SN/10]; //南北向十位数码管段选 L1=1; L1=0; delay(20); P2=b[2]; //东西向个位数码管位选 L2=1; L2=0; P2=a[WE%10]; //东西向个位数码管段选 L1=1; L1=0; delay(20); P2=b[3]; //东西向十位数码管位选 L2=1; L2=0; P2=a[WE/10]; //东西向十位数码管段选 L1=1; L1=0; delay(20); } 通过锁存器74HC573可以动态的显示四位数码管,因为延时时间极短,人眼不能分辨,所以我们看起来是静态的,实际上是数码管在不停的动态扫描。这样做主要是为了节省I/O口。 4.2.7 强制转换函数 强制转换函数主要是不停的扫描按键电平,当相应方向按键为低电平时将会使该方向的绿灯点亮,另外一个方向的红灯点亮。该函数中要注意按键的消抖,本设计中采用软件消抖,就是检测到低电平时进行一个很短的延时,然后看按键是否还为低电平,如果是则确定是按键按下,然后执行后面的程序。 第五章 仿真测试 5.1 软件仿真 本设计通过使用Proteus进行软件仿真,将系统电路图绘制完成,在单片机上将Keil软件编译生成的hex输出文件载入就可以进行仿真。仿真结果如下: 图5.1 Proteus仿真(南北向绿灯、东西向红灯) 图5.2 Proteus仿真(南北向黄灯、东西向红灯) 图5.3 Proteus仿真(南北向红灯、东西向绿灯) 图5.4 Proteus仿真(南北向红灯、东西向黄灯) 图5.5 Proteus仿真(南北向、东西向强制转换电路) 5.2 硬件仿真 根据电路图使用万能板做成成品,将程序下载到单片机进行硬件仿真,仿真结果如下图: 图5.6 硬件仿真(南北向绿灯、东西向红灯) 图5.7 硬件仿真(南北向黄灯、东西向红灯) 图5.8 硬件仿真(南北向红灯、东西向绿灯) 图5.9 硬件仿真(南北向红灯、东西向黄灯) 图5.10 硬件仿真(南北向强制通行) 图5.11 硬件仿真(东西向强制通行) 5.3 功能测试 经过对设计所包括的功能进行一一测试,均测试通过。车流量检测电路正常工作,计数正确。当计数总数少于20时将进入闲时模式,每个方向15秒绿灯,5秒黄灯,总共40秒一个小周期,三个小周期构成一个大周期120秒,一个大周期内计数器总数大于20将自动进入正常模式。强制转换为单向通行时将不会自动恢复到正常模式,只有按复位键才能恢复正常。 第六章 总结 经过一个月的努力,查看各种书记、资料,通过网络搜索,认真学习了单片机的基础相关知识,对以前所学的知识进行了巩固,圆满完成了毕业设计。 首先是对交通信号灯的功能进行构思,通过不同的方案的比较,主要是车流量检测方案的选择,最终选择红外对管检测,原因是红外检测灵敏度高,操作方便,寿命长,维护方便,成本低。其次是对元器件的选择,设计中需要两个计数器和一个定时器,89C51只有两个定时器/计数器无法满足需要,因此选择STC89C52,它具有三个定时器/计数器,数码管驱动选择74HC573锁存器,编程简单,选择完成后就是对电路图的绘制,然后进行软件编程,编译后生成hex文件,通过proteus软件进行软件仿真,在仿真中不断的修改源程序,直至程序和仿真满足自己的目标。最后按照电路图在万能板上用电烙铁进行焊接,连接好电路。硬件电路连接好后将程序下载到单片机,连接电源线进行硬件仿真。 在整个过程中遇到各种问题,不过通过反复检查修改,问题逐渐减少,最后完全达到了自己最初的目标,软硬件都能正常仿真运行。通过本次设计学会了很多,也将大学四年所学的知识进行了整合运用,在实践中对知识的理解更透彻。 参考文献 [1]方俊锋.嵌入式8位MCU内核的设计研究[D].陕西:西安电子科技大学,2003. [2]孙玉芳.基于单片机的智能交通灯控制系统的研究[D].哈尔滨:哈尔滨工程大学,2009. [3]周蔚吾.道路交通信号灯控制设置技术手册[M].北京:知识产权出版社,2009. [4]迈尔斯(英).智能交通系统手册[M].北京,人民交通出版社,2007. [5]邹力.物联网与智能交通[M].北京,电子工业出版社,2012. [6]余锡存,曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2000. [7]李学海.标准80C51单片机基础教程[M].北京:北京航空航天大学出版社,2006. [8]雷丽文 .微机原理与接口技术[M].北京:电子工业出版社,1997. [9]张靖武,周灵彬.单片机原理、应用与PROTEUS仿真[M].北京:电子工业出版社,2008。 [10]张毅刚,彭喜元.单片机原理与应用设计[M].北京:电子工业出版社,2008. 致 谢 在论文完成之际,我首先向关心帮助和指导我的指导老师XX老师表示衷心的感谢并致以崇高的敬意!从论文的开题到完成,XX老师给了我很多意见和帮助,还给了很多参考资料,从旁引导我完成这篇论文。XX老师严谨的治学态度加上丰富的专业知识使我受益匪浅,在此,再次向佘老师表示衷心的感谢。 此外还要感谢一起生活四年的室友们,感谢那些一起努力的日子,在论文完成过程中给我的帮助,包括资料的收集,图书的借阅,还有论文的排版,没有你们的帮助,我的论文不可能完成的如此顺利。 最后,衷心感谢在百忙之中抽出时间审阅本论文的老师。 附录: 源程序 #include<reg52.h> #define uchar unsigned char sbit k1=P3^0; //东西向强制通行按键 sbit k2=P3^1; //南北向强制通行按键 sbit L2=P3^7; //位选锁存器使能端 sbit L1=P3^6; //段选锁存器使能端 uchar code a[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; uchar code b[4]={0x40,0x80,0x10,0x20}; //P1口低有效 uchar code c[4]={0x33,0x35,0x1E,0x2E}; //P0口 低电平有效 int SN=55,WE=60,SN_G=55,WE_G=55; //SN表示南北方向 WE表示东西方向 int n=0,p; uchar i,k=0,count=0,count1=0,count2,num=0; void delay(uchar t); void light(); void led(); void changesn(); void changewe(); /*******程序初始化**********/ void init(void) { T2CON=0x01; //16位自动重装 TMOD = 0x55; //计数器T0、T1,工作方式1 TH0=0; //计数初值清0 TL0=0; //计数初值清0 ET0=1; //使T0中断可以溢出 EA =1; //开启总中断 IT0=1; TR0=1; //计数器0启动 TH1=0; //计数初值清0 TL1=0; //计数初值清0 ET1=1; //使T1中断可以溢出 IT1=1; TR1=1; //计数器1启动 RCAP2H = (65536-50000)/256;//晶振12M 60ms 16bit 自动重载 RCAP2L = (65536-50000)%256; ET2=1; //打开定时器中断 TR2=1; //打开定时器开关 } /********定时函数*********/ void timer(void) interrupt 5 { TF2=0; //TF2清0 count++; n++; if(count>=20) //定时满1秒, { if(n>=2400) //定时满120秒 { n=0; count2=256*TH0+TL0; //东西向车流量 count1=256*TH1+TL1; //南北向车流量 p=count1+count2; TH0=0; TL0=0; TH1=0; TL1=0; if(p<=20) { SN_G=15; WE_G=15; } else { SN_G=110*count1/p; if(SN_G>20) { if(SN_G>90) { SN_G=90; WE_G=20; } else WE_G=110-SN_G; } else { SN_G=20; WE_G=90; } } } SN--; WE--; led(); count=0; if(SN==0||WE==0) { k++; if(k>3) //当k》3执行switch程序 k=0; switch(k) { case 0: SN=SN_G,WE=SN_G+5;break; case 1: SN=5,WE=5;break; case 2: SN=WE_G+5,WE=WE_G;break; case 3: SN=5,WE=5;break; } } } } /******延时T毫秒*********/ void delay(uchar t) { uchar i; for(t;t>0;t--) { for(i=120;i>0;i--); } } /*********交通灯函数*******/ void light() { P0=c[k]; } /*******数码管时间显示********/ void led() { P2=b[0]; //南北向个位数码管位选 L2=1; L2=0; P2=a[SN%10]; //南北向个位数码管段选 L1=1; L1=0; delay(20); P2=b[1]; //南北向十位数码管位选 L2=1; L2=0; P2=a[SN/10]; //南北向十位数码管段选 L1=1; L1=0; delay(20); P2=b[2]; //东西向个位数码管位选 L2=1; L2=0; P2=a[WE%10]; //东西向个位数码管段选 L1=1; L1=0; delay(20); P2=b[3]; //东西向十位数码管位选 L2=1; L2=0; P2=a[WE/10]; //东西向十位数码管段选 L1=1; L1=0; delay(20); } /*******东西向强制转换函数*******/ void changewe() { if(!k1) { delay(20); //按键防抖延时 if(!k1) { P0=0X1E; while(1) { for(i=0;i<=3;i++) { P2=b[i]; L2=1; L2=0; P2=0X00; //将所有数码管显示“88“ L1=1; L1=0; delay(20); } } } } } /******南北向强制转换函数*********/ void changesn() { if(!k2) { delay(20); //按键防抖延时 if(!k2) { P0=0X33; while(1) { for(i=0;i<=3;i++) { P2=b[i]; L2=1; L2=0; P2=0X00; //将所有数码管显示“88“ L1=1; L1=0; delay(20); } } } } } /********主函数********/ void main(void) { init(); //初始化函数 k1=1; k2=1; for(;;) { light(); led(); changewe(); changesn(); } } led(); changewe(); changesn(); } } 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 8 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    智能火灾报警器毕业论文

     毕业设计(论文) ( 20XX届 ) 论文题目: 基于STC89C52的火灾自动报警系统的设计与开发 DESIGN AND DEVELOPMENT OF AUTO...

    1年前   
    1150    0

    基于plc的智能交通灯控制系统设计毕业论文

    PLC可编程序控制器是以微处理器为基础,综合了计算机技术、自动控制技术和通讯技术发展而来的一种新型工业控制装置。它具有结构简单、编程方便、可靠性高等优点,已广泛用于工业过程和位置的自动控制中。

    6个月前   
    2173    0

    毕业论文《病人倒地呼救智能开关设计》开题报告

    毕业论文《病人倒地呼救智能开关设计》开题报告  (一)选题背景  随着科学技术的日新月异和生活水平的迅速提高,人们对于身体健康保障的要求越来越高。当病人突出心脏病、脑溢血、低血糖、癫痫病等突发...

    5年前   
    157    0

    交通系统竞职演讲

    交通系统竞职演讲第一篇:交通系统竞职演讲各位领导、同志们:我生于是1953年12月 ,现年49周岁,1969年11月参加工作 ,1978年加入中国共产党,刑事技术侦察工程师,高级政工师。参加工...

    6年前   
    172    0

    基于单片机的智能窗帘控制系统设计毕业论文

    基于单片机的智能窗帘控制系统设计 摘 要 在现代的社会中,人们对生活环境很重视,智能家居对人们的生活产生了极其重要的影响。本文将研究一种基于单片机的智能窗帘控制系统。在此设计系统中,以STC8...

    2年前   
    2449    0

    基于AT89C52智能吸尘器控制系统设计毕业论文

    摘要 本设计的智能吸尘器控制系统与智能小车的控制系统相似。是以AT89C52单片机为控制核心,加以步进电机、光电传感器、超声波传感器、压敏传感器和电源电路以及其他电路构成。

    8个月前   
    498    0

    智能密封铅酸蓄电池充电器设计毕业论文

    铅酸蓄电池的制造成本低、容量大、价格低廉,使用十分广泛。由于其固有的特性,若使用不当,寿命将大大缩短。影响铅酸蓄电池寿命的因素很多,采用正确的充电方式能有效延长蓄电池的使用寿命。因此,设计一种全...

    2年前   
    651    0

    交通系统个人述职报告

    交通系统个人述职报告第一篇:交通系统个人述职报告92好论文网在工作中,抓住重点,有针对性的解决人的思想观念、精神状态、发展思路和养护工作等的关键和难点问题,使各项分管工作都取得了一定的成绩,主...

    7年前   
    105    0

    交通系统五一慰问信

    交通系统五一慰问信  同志们:  你们好!  值此“五.一”国际劳动节来临之际,我代表局党组向你们致以节日的问候和崇高的敬意!  春回大地,万物更新。几个月以来,各股室站队领导班子积极运作,超...

    8年前   
    90    0

    交通系统安全生产演讲稿

    交通系统安全生产演讲稿  尊敬的各位评委,同事们:    大家好,我是xxxx收费站的xxx,我演讲的题目是《安全收费,服务大众》。   一说起安全这个话题,不少人会有老生常谈的感觉,这种心态...

    7年前   
    230    0

    县交通系统党建工作思路

    县交通系统党建工作思路  2011年,全县交通系统党建工作思路是:以邓小平理论和三个代表重要思想为指导,学习贯彻党的十七届四中全会、省委九届六中全会、市委五届九次全会和县委十二届七次全会精神,...

    6年前   
    151    0

    交通系统行业文明创建规划

    2008—2009年行业文明创建规划      为切实加强我旗交通系统行业文明建设,大力促进物质文明、精神文明、政治文明协调发展,根据《中共中央关于加强社会主义精神文明建设若干重要问题的决议...

    11年前   
    17132    0

    2018年交通系统七一演讲稿

    交通系统七一演讲稿  继承党的传统 践行党的路线  在新时期争当一名合格的共产党员  尊敬的各位领导,各位同事:  自踏入xx部门工作以来,始终以一名共产党员的标准来提升自己的认识、约束自己的...

    3年前   
    41    0

    交通系统文艺晚会主持词

    交通系统文艺晚会主持词  **市交通系统文艺晚会主持词  男:各位领导 女:各位来宾   合:亲爱的朋友们,晚--上-- --好!  男:今夜星光灿烂;   女:今夜神州放歌;   男: 深情...

    6年前   
    50    0

    交通系统文艺晚会主持词

    交通系统文艺晚会主持词  **市交通系统文艺晚会主持词     男:各位领导           女:各位来宾        合:亲爱的朋友们,晚--上-- --好!  男:今夜星光灿烂;  ...

    8年前   
    118    0

    交通系统党员教育工作总结

    交通系统党员教育工作总结  交通局共有职工****余名,党员***名,下设公路管理站、运输管理站、地方养路费征稽站、路政管理所、沿江港口管理处、收费所、客运总站和航运公司等*个支部(总支)。局...

    6年前   
    52    0

    2010年全市交通系统春运工作总结

    2010年全市交通系统春运工作总结在XX市委、政府的领导和省交通厅的精心指导下,我市交通系统全体干部职工以“三个代表”重要思想为指导,全面落实科学发展观,强化安全管理,积极调剂运力,保障道路畅...

    10年前   
    193    0

    交通系统七五普法工作总结

    交通系统七五普法工作总结一切有接受教育能力的公民, 都应当接受法制宣传教育, 七五普法工作目的就在于提高民众的法律常识和意识。2019 年上半年, 我局的” 七五” 普法工作, 在县委、 政府...

    6个月前   
    786    0

    智能达广告篇

    智能达报纸广告 许老师告诉您:机芯是检验复读机质量的唯一标准! 买复读机是买更长的复读时间?是买更容易学习外语,还是买更好听的音质…… 此时您肯定茫然无措,因为购买复读机一直没有统一标准...

    9年前   
    15642    0

    转型--智能装修公司

    转型--智能装修公司   前言:现今社会是以个多元化的,传统装修行业已进入微利时期,发展空间十分有限,行业竞争也十分激烈。选择什么样的发展方向是我公司目前的困惑,如何在传统装修的基础上去利...

    5年前   
    5044    1

    文档贡献者

    文***品

    贡献于2020-11-14

    下载需要 8 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档