《基于单片机的交通灯设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯设计毕业论文.docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、兰州文理学院学生毕业论文题 目: 基于单片机的交通灯设计 作 者: 指导老师: 电子信息工程 学院 电子 系电子信息工程技术 专业 11 级 三 年制 2 班 年 月 日主要内容简介: 交通灯是现代交通非常重要的一个组成部分,一套好的交通灯往往对提升城市交通运输效率,降低事故发生率有至关重要的影响。近年来随着科技的飞速发展,一个以微电子技术、计算机技术和通信技术为先导的信息革命正在蓬勃发展。计算机技术作为三者之一,怎样与实际应用更有效的结合并发挥其作用。单片机作为计算机技术的一个分支,正在不断的应用到实际生活中,同时带动传统控制检测的更新。在实时检测和自动控制的应用系统中,单片机往往是作为一个
2、核心部件使用,针对具体应用对象的特点,配以其它器件来加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现交通的井然秩序呢?靠的是交通信号灯的自动指挥系统,来实现交通的井然有序。交通信号灯控制方式很多。本系统采用美国ATMEL公司生产的单片机AT89C51,以及其它芯片来设计交通灯控制。实现了通过AT89C51芯片的P1口设置红、绿灯点亮的功能,通过AT89C51芯片的RXD、TXD输入、输出设置显示时间。交通灯的点亮采用发光二极管实现,时间的显示采用七段数码管实现。单片机系统采用的直流供电。为了系统稳定可靠,系统内集成了“看门狗”芯片,避免了系统因为死机而停止工
3、作的情况发生。系统实用性强、操作简单、扩展性好。基于单片机交通灯设计摘要:本文用AT89C51单片机设计交通灯,用P1口控制6个发光二极管,模拟十字路口交通灯的工作。东西向与南北向的红,绿,黄灯各一个。交通灯的工作规律:十字路口是东西南北走向,每一时刻每个方向只能有一个灯亮,初始状态STATE0为东西南北均红灯亮,1s后转入状态STATE1,南北绿灯亮同时东西红灯亮,延时20s后转入状态STATE2,南北黄灯亮东西红灯亮,5s后转入状态STATE3,东西绿灯亮南北红灯亮,20s后转入状态STATE4,东西黄灯亮南北红灯亮,5s后转入状态1,如此顺序循环。关键词:单片机AT89C51;发光二极管
4、;交通灯目录1引言42方案论证52.1设计要求52.2 方案一 52.3 方案二 53 交通灯系统硬件设计53.1 系统构成53.2单片机AT89C5163.2.1 AT89C51的主要性能及引脚功能63.2.2 AT89C51的内部结构93.3 模块设计123.3.1 主控制系统123.3.2 元器件清单124 交通灯软件设计124.1 程序方案124.1.1 延时的设定134.1.2 各阶段状态134.2 程序流程134.2.1 程序设计总框图134.2.2 程序详细流程图134.3 交通灯控制线路图155仿真155.1 编写程序代码155.2 按照系统硬件连线图连接好系统并调试15结论1
5、6参考文献17附录181引言今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。随着社会和城市交通的快速发展,近几年机动车辆数字急剧增加,道路超负荷承载道路现象严重,致使交通事故逐年增加。交通灯是城市交通有序、安全、快 速运行的重要保障,因此解决好公路交通信号灯控制问题也成了保障交通有序、安全、快速运行的重要环节。作为车辆通行瓶颈所在的十字路口,通过研究其车辆通行规律,找出提高其车辆通行效率,对缓解交通拥堵,提高道路畅通率具有十分现实的意义1。国内的在十字路口的交通灯,一般用红 、绿 、黄三种颜色的指示灯和一个倒计时的显示计时器来控制行车。近年来,国家虽然不断加大城市道路建
6、设的力度,但仍赶不上城市机动车的增长速度,我国城市仍普遍存在道路面积偏低的问题,这也是制约着我国大城市发展的一个重要原因。随着交通需求越来越旺盛,车多、路多了,但运营成了瓶颈,运输效率逐步下降。我国与发达国家在车辆、道路、交通管理系统、人工智能技术在交通管制中的应用、信息采集和提取等方面存在着很大的差距。由于交通控制系统不健全等原因,我国交通道口的交通事故率居高不下,且随着城市交通运量逐年的增长,城市车流行驶速度逐年下降,这些都是由于交通通行不佳。针对整个交通控制系统的发展状况,本设计根据道路交通拥挤,十字路口经常出现拥堵的情况,运用功能强大的单片机芯片为控制核心,设计出了十字路口智能交通灯控
7、制系统,以改善十字路口实时通行状况。本设计是一款基于单片机AT89C51 为控制核心的交通控制系统,它可以实 现对车辆、行人的有效导引。设计中我们选用红、绿、黄三种不同L E D发光管 作为车辆和行人的指示,简化了设计,形象直观,采用L E D 数码管作为倒计时显示,可靠性高、抗干扰能力强。该系统还可根据交通拥挤情况分别设置主干 道和次干道的通行时间,以提高效率,缓减交通拥挤,当出现紧急情况时, 交警可将系统设置成手动 ,全路口车辆、 行人禁行,紧急情况结束后再转成自动 状态。本设计并对系统物理结构进行了优化,使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美
8、好的城市交通形象发挥更多的作用。2 方案论证2.1设计要求(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯此道车辆通过,行人禁止通行。时间为20秒1。(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为20秒。 东西方向车流大通行时间长。(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。2.2 方案一 PLC控制交通灯 PLC主要应用于强电方面的工业控制,或者整条流水线的控制。虽然比较稳定,但是功耗要大。2.3 方案二 单片机控制交通灯
9、单片机具有结构简单、编程方便、经济、易于连接等优点, 特别是其内部定时器计数器、中断系统资源丰富, 可对交通灯进行精确的控制, 有应用价值。3 交通灯系统硬件设计3.1 系统构成电路板一块,AT89C51单片机一片,7407芯片一片,发光二极管六个(红色、绿色、黄色各2个),同相驱动器,DIP封装插座。AT89C51单片机系统7407复位电路LED显示系统结构框图如:图1图1 系统结构框图系统各部分工作:(1) 程序设置初始时间,通过AT89C51单片机内部相应寄存器来实现。用P1口控制6个发光二极管,模拟十字路口交通灯的工作。东西向与南北向的红,绿,黄灯各一个。交通灯的工作规律:十字路口是东
10、西南北走向,每一时刻每个方向只能有一个灯亮,初始状态STATE0为东西南北均红灯亮,1s后转入状态STATE1,南北绿灯亮同时东西红灯亮,延时20s后转入状态STATE2,南北黄灯亮东西红灯亮,5s后转入状态STATE3,东西绿灯亮南北红灯亮,20s后转入状态STATE4,东西黄灯亮南北红灯亮,5s后转入状态1,如此顺序循环。其中7407用于提高P1口的驱动能力。实际应用中常采用74系列芯片及4000系列芯片驱动一些简单的电路负载2。(2) 由AT89C51单片机的定时器每秒钟通过P3.0口向7407的数据端口送信息,由7407的输出口显示红、绿、黄灯的点亮时间情况;由AT89C51的P1.0
11、、P1.1、P1.2、P1.3口显示每个灯的点亮情况。(3) AT89C51通过程序设置各个信号灯的点亮时间,通过程序设置左转绿、绿、红时间依次为20秒、20秒、20秒循环,由AT89C51的 P3口向7407的数据口输出。 (4)AT89C51本身集成了看门狗指令,当系统出现异常看门狗将发出溢出中断。通过专用端口输出,引起RESET复位信号复位系统3。3.2单片机AT89C51AT89C51是一种高效微控制器,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的Flash只读程序存储器(FPEROMFlash Programmable and Er
12、asable Read Only Memory) 和1288位的随机存取数据存储器(RAM),该器件采用ATMEL公司的高密度、非易失性存储技术生产,它与MCS-51系统产品兼容,AT89C51单片机功能强大,具有8Kb中央处理器(CPU)和4KbFlash程序存储器,性价比高,可应用于很多要求高性价比的场合,灵活地应用于各个控制领域。3.2.1 AT89C51的主要性能及引脚功能4(1)AT89C51的主要性能内含4Kb可重编程的FPEROM;与MCS-51产品指令系统完全兼容;1288位的内部RAM;4个8位(32根)双向可位寻址的I/O端口;2个16位的计数/定时器;全双工方式的串行通道
13、(UART);6个中断源;5个向量二级中断结构;最高时钟振荡频率可达12MHz;指令集中64条为单周期指令,支持6种寻址方式,共111条指令;低功耗空闲和掉电方式;片内振荡器和时钟电路。(2) AT89C51的引脚功能(3) AT89C51为双列直插(DIP)式封装的51单片机芯片,有40条引脚,其引脚示意及功能分类如图2所示。图2 89C51单片机引脚图各引脚功能说明如下:(1)主电源引脚 Vcc(40脚):接+5(120)V电源正端; Vss(20脚):接地。(2)I/O引脚P0口(3932脚):P0.0P0.7统称为P0口。P0口是一组8位漏极开路型双向I/O口,分时复用为低8位地址总线
14、和双向数据总线。作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口作为原码输入口,当Flash进行校验时,P0口输出原码,此时P0外部必须被拉高。P1口(18脚):P1.0P1.7统称为P1口,可作为准双向I/O口使用。P1是一个带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。P1口被外部下拉为低电平时,输出电流,是因为内部存在上
15、拉电阻,某个引脚被外部信号拉低时会输出一个电流。在Flash编程和校验时,P1口作为第八位地址接收。P2口(2128脚):P2.0P2.7统称为P2口,一般作为准双向I/O使用。P2是一个带内部上拉电阻的8位双向I/O口。P2的输出缓冲器可驱动4个TTL逻辑门电路。当对P2端口写“1”时,内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电(IIL)。在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作高8位地址总线。当给出地址为“1”时,它就利用内部上拉优势,当对外部八位地址数据存储器进行读/写时,P2口便输
16、出其特殊功能寄存器的内容5。在FLASH编程和校验时,P2口接收高八位地址信号和控制信号。P3口(1017脚):P3.0P3.7统称为P3口。P3口是一组带有内部上拉电阻的8位双向I/O口。P3口的输出缓冲器可驱动4个TTL逻辑门电路接收输出电流。当P3口写“1”时,通过内部的上拉电阻上拉为高电平并作为输入口。此时由于外部下拉为低电平,P3口将输出电流(IIL)。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口第二功能祥见表16 :表1 P3口第二功能表口线第二功能信号名称P3.0RXD串行数据接受P3.1TXD串
17、行数据发送P3.2INT0()外中断0申请P3.3INT1()外中断1申请P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6WR()外部数据存储器写选通P3.7RD()外部数据存储器读选通(3)外接晶体引脚XTAL1(19脚):它在单片机内部是一个反向放大器的输入端,构成了片内振荡器。当采用外部时钟时,HMOS单片机的该引脚应接地;CHMOS单片机的该引脚作为外部振荡信号的输入端。XTAL2(18脚):它在单片机内部是片内振荡器的反向放大器的输出端。当采用外部时钟时,HMOS单片机的该引脚作为外部振荡信号的输入端;CHMOS单片机的该引脚应悬空不接。(4)控制线A
18、LE/PROG() (30脚):地址锁存允许/编程信号。在访问片外程序存储器期间,此信号可用于控制锁存P0输出地址总线的低8位,ALE以每机器周期两次进行信号输出;在FLASH编程期间,此引脚用作编程脉冲的输入端。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率fosc的1/6,可作为对外输出的时钟脉冲或用于定时目的。但要注意的是:在访问片外数据存储器期间,ALE脉冲会跳空一个。若想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE执行MOVX,MOVC指令使ALE起作用。另外,该引脚将被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN()(29脚):
19、片外程序存储器读选通信号输出端,低电平有效。在由外部程序存储器读取指令或常数期间,每个机器周期内PSEN()两次有效,P0口读回指令或常数。当访问内部程序存储器时,信号不跳变。RST/VPD (9脚):RST即RESET,VPD为备用电源,该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。E
20、A()/VPP(30脚):为片外程序存储器选用端,访问内部程序存储器控制信号。当EA()端接高电平时,CPU访问内部程序存储器。当接低电平时,则在此期间外部程序存储器(0000H-FFFFH),则强调CPU访问外部存储器,而不管程序计数器的内容是多少。此外,该引脚还用做EPROM编程电压的输入端。在编程期间,此引脚用作21V编程电源VPP的输入端。3.2.2 AT89C51的内部结构89C51单片机内部组成结构中包含运算器和控制器(CPU)、片内存储器、4个并行I/O接、串行口、定时/计数器、中断系统、振荡器等功能部件。PC是程序计数器;PSW是程序状态字寄存器;DPTR是数据指针寄存器7。运
21、算器和控制器89C51的运算器和控制器功能类似于一般微机中的微处理器(CPU),是单片机的核心部件,它决定了单片机的主要功能特性。它完成逻辑算术运算并协调单片机其它各部分的工作。各种算术、逻辑运算所涉及到的寄存器包括:累加器ACC、寄存器B、暂存器1(TEMP1)和暂存器2(TEMP2)、程序状态字寄存器PSW,程序计数器PC,堆栈指针SP,数据指针寄存器DPTR等。它们位于CPU内部,又称CPU专用寄存器,以区别于I/O接口专用寄存器。存储器MCS-51系列单片机存储器组成是所谓的哈佛结构,存储器的组织方式与通用单片机系统不同,包含程序存储器与数据存储器,其地址空间是相互独立的,而不是程序存
22、储器与数据存储器统一编址。在89C51单片机中,程序存储器采用EEPROM,而数据存储器采用RAM。它们又可以进一步分成内部或外部两类。程序存储器 程序存储器内部和外部是统一连续编址的,内部占用地址空间的低4KB,地址0000H0FFFH,外部地址范围1000HFFFFH,共60KB。程序存储器主要用来存放程序和常数。当程序计数器PC由内部ROM开始执行到外部ROM时,会自动寻址外接程序存储器。程序地址空间原则上可由用户任意安排,但复位和中断源的程序入口地址在51系列单片机中是固定的,用户不能改变。入口地址见表2。复位后,CPU从0000H地址开始执行程序。其他地址为中断服务程序入口地址,响应
23、某个中断时,将自动从其对应的入口地址执行中断服务程序。表2 51单片机复位、中断入口地址操 作入口地址复位0000H外部中断00003H定时器/计数器0溢出000BH外部中断10013H定时器/计数器1溢出001BH串行口中断0023H定时器/计数器2溢出或T2EX端负跳变(52子系列)002BH数据存储器 MCS-51系列单片机数据存储器也有内部、外部之分。但与程序存储器不同,片内、片外存储器是分别独立编址的,片内数据存储器除RAM块外,还有特殊功能寄存器(SFR)块,其中片内数据存储器有128个字节,其编制为00HFFH;特殊功能寄存器也占128个字节,其编制为80HFFH;二者连续而不重
24、叠。外部RAM地址范围0000HFFFFH,共64KB。内部存储器可直接寻址。尽管片内、片外地址空间的低256B有重叠,但寻址并不会造成混乱。这是因为片内、片外存储器使用不同的指令(MOV和MOVX)。扩展的I/O地址也占用数据存储器空间。对I/O端口操作无须特殊指令且访问程序存储器是用信号选通,而访问片外数据存储器时,由RD()信号(读)和信号(写)选通。寄存器区 内部数据存储器分为4个区域,数据RAM用于存放临时变量,下面介绍其他三个寄存器区:a) 工作寄存器区 它占用地址00FFH的32个内存单元,又分成4个区。每个区有R0R7共8个工作寄存器。工作寄存器区的选择又由程序状态寄存器PSW
25、的第4位和第3位(RS1和RS0)共同指定。单片机复位时,RS1和RS0为零,故指向0区。通过位操作改变RS1和RS0的值,可以方便地指向任一个区间。b) 位寻址区 每位都有一个独立的8位地址(占据空间007F),共128位。此外,在专用寄存器SFR中还有一部分是可以位寻址的(有些位可能无定义)。c) 专用寄存器区 共有21个专用寄存器SFR,位于80FFH地址空间。这些寄存器又可以分为CPU专用寄存器和接口专用寄存器。CPU专用寄存器前面己经提过,而接口专用寄存器包括两部分。一部分就是单片机的I/O端口P0P3,分别编址为80H、90H、A0H、B0H,共4个单元,32位,每一位都可以独立寻
26、址。另一部分为定时/计数器,串行口、中断的一些控制寄存器。定时/计数器89C51有两个16位定时/计数器(T0,T1)。在定时功能中,每个机器周期定时器加1,由于l个机器周期包含12个振荡周期,因而它的计数频率为1/12,即由定时器计数到的脉冲为振荡周期频率的1/12。在计数器功能中,在外部事件相应输入脚(T0或T1)产生负跳变时,计数器加1。由于计数器的计数过程需要2个机器周期(24个振荡周期),所以,最高的计数频率为振荡频率的1/24。这两个定时/计数器的工作状态(定时/计数)及工作方式(方式0方式3)的选择是由定时/计数器方式寄存器(TMOD)中的每位值所决定的。定时/计数器的控制由控制
27、寄存器(TCON)完成。I/O口 89C51不仅有4个8位并行口,供单片机和外部RAM、EEPROM等扩展连接用或与其它设备交换信息用,它还有一个全双工串行口,能同时发送和接收数据。串行口也就是P3.0和P3.1的第二功能。它既能工作在异步方式,又能工作在同步方式。该串行口是全双工的,它在物理上分为两个独立的发送缓冲器和接收缓冲器SBUF,但它们占用一个特殊功能寄存器的地址99H,只需对SBUF进行写或读的操作,就可以同时发送和接收了。串行口的工作方式选择、波特率选择、串行通信协议的完成,由两个特殊功能寄存器,即串行口控制寄存器SCON和功耗控制寄存器PCON完成。中断89C51单片机提供了6
28、个中断源,而每一个中断源都能被程控为高优先级或低优先级。其中5个中断源包括2个外部中断和3个内部中断。两个外部中断源为INT0和INT1,外部设备的中断请求信号、掉电等故障信号都可以从INT0而和INT1引脚输入,向CPU提出中断申请,INT0和INT1的中断请求标志IE0、IE1分别设在TCON寄存器的TCON.1、TCON.3。3个内部中断源为T0、Tl溢出中断源及片内串行发送或接收中断源,T0、Tl中断请求标志TF0和TF1分别设在TCON寄存器的TCON.5、TCON.7,串行发送或接收中断标志TI或RI设在SCON寄存器的第SCON.0、SCON.1。5个中断源中的一个、几个或全部中
29、断源的开、关由中断允许寄存器(IE)完成,而每个中断源的优先级别的高低由中断优先级控制寄存器(IP)完成。89C51单片机中断源简要特性见表3。表3 中断源特性表名称符号标志符号标志符号位置矢量地址优先级别外部中断INT0IE0TCON.10003H最高最低定时器0溢出中断TF0TF0TCON.5000BH外部中断1INT1IE1TCON.30013H定时器1溢出中断TF1TF1TCON.7001BH串行口中断R1+T1R1SCON.00023HT1SCON.13.3 模块设计3.3.1 主控制系统主控器采用AT89C51,是美国ATMEL公司生产的一款性能稳定、低功耗的单片机,兼容MCS-5
30、1系列产品指令系统及引脚。片内含4KB的可重复编程的Flash程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,使用5(120)V的电源电压, 1288位的内部RAM,4个8位的双向可位寻址的I/O端口,2个16位定时/计数器,6个中断源,AT89C51单片机可提供许多高性价比的应用,灵活应用于各种控制领域。单片机的P1口及P2口分别应用于控制南北及东西方向的通行灯,P0口及P3.0P3.2口应用于4组LED计时器的控制,T0和T1分别作为东西方向和南北方向和车流量流量控制,INT0和INT1分别用于东西方向和南北方向的特种车辆通行紧急转换电路3.3.2 元器件清单(1) 用到
31、的各元器件如下表5表5 元器件清单序号元件名称规格数量151单片机AT89S511个2晶振12MHz立式1个3起振电容30pF瓷片电容2个4复位电容10uF 16V电解电容1个5复位电阻10k 电阻1个6限流电阻220 电阻6个7发光二极管红色、绿色、黄色LED各2个86同相驱动器74071个9DIP封装插座40脚、14脚集成插座各1个10ISP下载接口DC3-10P牛角座1个11万能板150mm*90mm1块 (2) 7407输出信号与信号灯要使行人能看见信号灯的情况,必须把P1口输出的信号进行放大,这里我们用74LS04缓冲器,当极性为高电平时晶闸管导通,该支路指示灯亮;当极性为低电平时关
32、断,该支路指示灯灭。LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮。 4 交通灯软件设计4.1 程序方案4.1.1 延时的设定延时方法可以有两种一种是利用AT89C51内部定时器的溢出断来确定1秒的时间,另一种是采用软件延时的方法。4.1.2 各阶段状态各二极管在相应P1口线输出为0时发光。各阶段状态对应如下表68:表6各阶段状态端口P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P1状态悬空悬空东西黄东西绿东西红南北黄南北绿南北红码值STATE011110110F6HSTATE111110101F5HSTATE211110011F3HSTATE31
33、1101110EEHSTATE411011110DEH4.2 程序流程4.2.1 程序设计总框图程序设计总框图如图4所示。开始初始化系统调试显示程序处理驱动电路处理图4 程序设计框图4.2.2 程序详细流程图程序详细流程图如图5所示9。显示时间是否为0显示时间减1第二状态,第二状态显示时间第四状态,第四状态显示时间显示时间是否为0显示时间减1显示时间减1显示时间是否为0第三状态,第三状态显示时间第一状态,第一状态显示时间显示时间减1显示时间是否为0是否 否是是 否 否 是图5 程序详细流程图流程图说明: 图中定时器在每50ms中断一下,设置为循环20次(此时为1秒),每1秒以后,R0,R1自动
34、减1。程序中的判断在相等情况下从右边出,不相同的情况往下走。程序初始化,将软件计数器赋初值后,红灯开始计数倒计时,红灯倒计时结束后黄灯闪烁5秒。闪烁完后将转入绿灯倒计时程序,倒计时完毕后,黄灯闪烁5秒,此时程序结束或重新转入红灯倒计时。十字路口是东西南北走向,每一时刻每个方向只能有一个灯亮,初始状态STATE0为东西南北均红灯亮,1s后转入状态STATE1,南北绿灯亮同时东西红灯亮,延时20s后转入状态STATE2,南北黄灯亮东西红灯亮,5s后转入状态STATE3,东西绿灯亮南北红灯亮,20s后转入状态STATE4,东西黄灯亮南北红灯亮,5s后转入状态1,如此顺序循环。4.3 交通灯控制线路图
35、 图 6 交通灯控制线路图5仿真5.1 编写程序代码5.2 按照系统硬件连线图连接好系统并调试1调试程序 打开Keil软件,新建工程; 选择芯片; 新建文档,把编写好代码写入文档并保存了ASM文件; 把保存的文档加载到Source Group; 编译程序; 设置转换成16进制; 运行程序的结果;2. 把编译好的16进制文件(jtd.hex) 输入单片机AT89C51仿真器和对其进行初始化。3给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直到与预定目的一致。结论本系统就是利用了AT89C51芯片的I/O引脚。系统采用美国ATMEL公司生产的单片机AT89C51,以及其它芯片(如
36、:74HC164、7407六位反向器、L7805三端稳压电源)来设计交通灯控制器,用AT89C51单片机设计交通灯,用P1口控制6个发光二极管,模拟十字路口交通灯的工作。并通过AT89C51来控制7407芯片的输出口设置红、绿灯点亮的功能来实现在交通灯控制系统;为了系统稳定可靠系统内集成了“看门狗”芯片,避免了系统因为死机而停止工作的情况发生。系统设计简便、实用性强、操作简单、程序设计简便。东西向与南北向的红,绿,黄灯各一个。交通灯的工作规律:十字路口是东西南北走向,每一时刻每个方向只能有一个灯亮,初始状态STATE0为东西南北均红灯亮,1s后转入状态STATE1,南北绿灯亮同时东西红灯亮,延
37、时20s后转入状态STATE2,南北黄灯亮东西红灯亮,5s后转入状态STATE3,东西绿灯亮南北红灯亮,20s后转入状态STATE4,东西黄灯亮南北红灯亮,5s后转入状态1,如此顺序循环。参考文献:1李明,毕万新. 单片机原理与其接口技术M.大连理工大学出版,第三版.2温欣玲,张玉叶.基于单片机交通灯智能控制系统研究微计算机信息 19993孙杰,苑伟. 微机原理M. 大连理工大学出版,第四版.4宋燕飞,孔繁庭,苑毅. 模拟电子技术项目驱动教程M. 兰州大学出版社,2010.5倪志莲,张怡典,郭稳涛. 单片机应用技术M. 北京理工大学出版社,第二版.6朱运利.单片机技术应用 M. 北京机械工业出
38、版社,2005.7黄仁欣.单片机原理及应用技术 M.北京清华大学出版社,2005.8朱清慧.PROTEUS教程电子线路设计、制版与仿真 M.北京清华大学出版社,2008.9李群芳,张士军,黄建.单片微型计算机与接口技术 (第二版) M。 北京电子工业出版社,2005.附录程序实现代码初始状态STATE0为东西南北均红灯亮,1s后转入状态STATE1,南北绿灯亮同时东西红灯亮,延时20s后转入状态STATE2,南北黄灯亮东西红灯亮,5s后转入状态STATE3,东西绿灯亮南北红灯亮,20s后转入状态STATE4,东西黄灯亮南北红灯亮,5s后转入状态1,如此顺序循环。参考程序如下: ORG 0000
39、H LJMP START ORG 0100H START: MOV SP,#50HSTATE0: MOV A, #0F6H ;延时状态全红灯 MOV P1, AMOV R2, #1 ;延时1sLCALL DELAYSTATE1: MOV A, #0F5H ;南北绿灯,东西红灯 MOV P1, A MOV R2, #20 ;延时20s LCALL DELAYSTATE2: MOV A, #0F3H ;南北黄灯,东西红灯 MOV P1, A MOV R2, #5 ;延时5s LCALL DELAYSTATE3: MOV A, #0EEH ;南北红灯,东西绿灯 MOV P1, A MOV R2, #20 ;延时20s LCALL DELAYSTATE4: MOV A, #0DEH ;南北红灯,东西黄灯 MOV P1, A MOV R2, #5 ;延时5s LCALL DELAY LJMP STATE1 ;转至状态1DELAY: MOV R7, #20 ;1s延时程序D1: MOV R6, #200D2: MOV R5, #123 NOP DJNZ R5, $DJNZ R6, D2DJNZ R7, D1DJNZ R2, DELAYRETEND
限制150内