《基于51单片机的交通灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的交通灯控制系统设计.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于51单片机的交通灯控制系统设计 目录 一引言 (2) 二概要设计 (2) 2.1 设计思路 (2) 2.2总体设计框图 (3) 三硬件设计 (3) 3.1LED循环电路设计 (3) 3.1.1 89cs51单片机概述 (3) 3.1.2 LED循环说明 (5) 3.2 倒计时显示电路 (6) 3.2.1 74LS164芯片 (6) 3.2.2 共阴极数码显示管 (7) 3.2.3 倒计时电路 (7) 3.2.4 急通车电路 (7) 四软件按设计 (8) 4.1 程序流程图: (8) 4.2 LED红绿灯显示 (9) 4.3倒计时显示 (10) 4.4 急通车控制 (10) 4.5程序代码
2、(10) 五总结 (10) 参考文献 (10) 附录一: (10) 附录二: (11) 基于51单片机的交通灯控制系统设计 摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提 高道路通行能力,减少交通事故有明显效果。交通灯控制系统由80C51单片机、键盘、LED 显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功 能,市交通实现有效控制。 关键词:交通灯,单片机,自动控制 一引言 当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这个技术在19世纪就已经出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光
3、源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消! 电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号
4、协定对各种信号灯的含义作了规定。绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口! 二概要设计 2.1 设计思路 利用单片机实现交通灯的控制,该任务分以下几个方面: a 实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。 b 用数码管显示倒计时。可以利用动态显示或静态显示
5、,串行并出或者并行并出实现。 C 实现急通车。这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。当情况解除,让时间回到只能隔断处继续进行。 2.2总体设计框图 见图一: 三 硬件设计 3.1LED 循环电路设计 3.1.1 89cs51单片机概述 MCS-51单片机内部结构: 89CS51是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 89CS51单片机包含中央处理器、程序存储器(ROM )、数据存储器(RAM )、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现
6、在分别加以说明。 *中央处理器: 中央处理器(CPU )是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。 交通灯循环 最小系统 倒 计时显示 强通车控制 图一 *数据存储器(RAM): 89CS51内部有128个8位用户数及存储单元和128个寄存器单元,他们是统一编 址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用 户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间 结果或用户自定义的字型表。 *程序存储器(ROM): 89CS51共有409
7、6个8位掩膜ROM,用于存放用户程序,原始数据或表格。 *定时/计数器(ROM): 89CS51有两个16位的可编程定时/计数器,一时想定时或计数产生中断用于控制 程序转向。 *并行输入输出(I/O)口: 89CS51共有4组8位I/O口(P0、P1、P2或P3),用于对外数据传输。 *全双工串行号: 89CS51内置一个全双行串行通信口,用于与其它设备间的串行数据传输,该串行 口既可以用作异步通信收发器,也可以当同步移位器使用。 *中断系统: 89CS51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行 中断,客满著不同的控制要求,并具有2级优先级别选择。 *时钟电路: 8
8、9CS51内置最高频率高达12Hz的时钟电路,用于产生整个单片机运行的脉冲时 序,但89CS51单片继续外置震荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。 MCS-51系统的引脚说明: MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图二是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用 图二 8951的抚
9、慰方式可以自动复位,也可以是手动复位,见下图。除此之外,RESET/Vpd 还是一复用脚,Vcc 掉电其间,此脚可以接上没用电源,以保证单片机内部RAM 的数据不丢失。 在编程时,EA/Vpp 脚还需加上21V 的编程电压。 3.1.2 LED 循环说明 东西、南北两干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人的安丘按通行。红灯禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西,南北两干道的公共停车时间。 25s 3s 2s 25s 3s 2s 东西通道 红灯亮 红灯亮 红灯亮 绿灯亮 绿灯闪 黄灯亮 南北通道 绿灯亮 绿灯闪
10、黄灯亮 红灯亮 红灯亮 红灯亮 上表说明东西路口哈珀能够灯亮,南北路口绿灯亮,同时开始25s 倒计时。25s 倒计时结束后开始5s 倒计时,南北铝扣绿灯闪烁,计时至最后2s 时,南北路口黄灯亮。完成一次这样的循环要30s 。30s 结束,南北路口红灯亮,东西路口绿灯亮,并重新30s 倒计时,依次循环。电路图如图三所示。 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 Y1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 GND PDIP VCC
11、P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA/VPP ALE/PROG PESN P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 图三 3.2 倒计时显示电路 3.2.1 74LS1
12、64芯片 74LS164用于扩展并行输出口。用89CS51串行口外接164串入-并出移位寄存器扩展8位并行口。8位并行口的每位分别接到数码显示管的不同显示端。74LS164芯片管脚排列如下图,管脚1、2相连共同接单片机管脚RXD,8管脚接单片机管脚TXD,9管脚接高电平,7管脚接地,14管脚接高电平,其他管脚依次接数码显示管管脚。 图四 3.2.2 共阴极数码显示管 这里列出了共阴和共阳数码管的管脚平排列和内部结构。数码管3、8管脚内部连在一起。如果是共阳极则将其接到高电平。如果是共阴极则将其接地。为了数码显示管的安全这里用三个二极管与其串联来降压。 图五 3.2.3 倒计时电路 倒计时显示电
13、路如图六。利用两个74LS164芯片并联后,其1、2管脚至单片机RXD 管脚8管脚至单片机TXD管脚。然后其他管脚依次接至数码管个管脚。对于数码管其3、8管脚经过三个串联的二极管接地。 图六 3.2.4 急通车电路 为了实现此功能,利用单片机中断达到目的。利用一个手动按钮开关接至单片机外部中断0,同时在软件设计时将其设为最高优先级。当有按键按下,四方全为红灯,同时将终端位置的PSW、ACC进栈保护。当再按下按钮,将PSW、ACC出栈,回到原来的位置继续执行,电路图如下图。 图七四软件按设计 4.1 程序流程图: 如图八所示。 图八 4.2 LED红绿灯显示 如图三所示,当P1端口输出高电平,即
14、P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。我们可以使用SETB指令使P1各端口输出高电平,使用CLR指令时P各端口输出 低电平。至于循环需要软件控制,程序见附录。 4.3倒计时显示 此处采用LED静态显示方式,当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另个字符为止。89C51的串行口RXD和TXD为一个全双工串行通信口,但工作在方式0下可作同步移位寄存器,其数据由RXD端串行输出或输入;而同步移位时钟由TXD端串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。在不需要使用串行通信的场合
15、,利用串行口加外围芯片74LS164就可构成一个或多个并行输入输出口,用于串并转换或显示器LED驱动。此利用后者。 4.4 急通车控制 将一按钮接到单片机外部中断0端口。另一端接地,通过在程序里设置外部中断0为最高优先级。当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。在此过程必须利用PUSH、POP指令保护现场,这样当情况解除可以回到原来的地方继续执行。 4.5程序代码 见附录二 五总结 在学习单片机理论课时候就感觉到内容很多,知识点很杂,分繁琐。在老师的讲解下,在通过自己的努力也更进一步了解了单片机的内部构造和工作原理,以及接外部电路的情况。当然光有理论知识那只是“纸上谈兵”
16、,还需要实际动手去实践。真正把所学的用到日常生活中,理论联系实际,做出实物模型。这次单片机实习,我选的是交通灯设计,通过这次设计我感觉到要想做成功,必须花时间多准备,查阅大量资料,认证分析每一步每一个模块要实现的功能,然后分步进行,最后正和一个整体。 通过这次实习,我们要对所做的事情有耐性,在编程的时候会有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做。 在这次实习中,经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。 参考文献 1 叶挺秀.应用电子学M.杭州:浙江大学出版社,1994 2 朱承高.电工及
17、电子技术手册M.北京:高等教育出版社,1990 3 阎石.数字电子技术基础(第三版)M.北京:高等教育出版社,1989 4 周润景.PEOTEUS在MCS-51&ARM7系统中的应用百例M.北京:电子工业出版社,2022 5 李朝青.单片机原理及接口技术(第三版)M.北京:北京航空航天大学出版社,2022 附录一: 附录二: 源程序代码 SECOND1 EQU 30H ;东西路口计时寄存器 SECOND2 EQU 31H ;南北路口计时寄存器 DBUF EQU 40H ;显示码缓冲1 TEMP EQU 44H ;显示码缓冲2 LED_G1 BIT P1.0 ;东西路口绿灯 LED_Y1 BIT
18、 P1.1 ;东西路口黄灯 LED_R1 BIT P1.2 ;东西路口红灯 LED_G2 BIT P1.5 ;南北路口绿灯 LED_Y2 BIT P1.6 ;南北路口黄灯 LED_R2 BIT P1.7 ;南北路口红灯 ORG 0000H LJMP START ORG 0003H LJMP INTO0 ORG 0100H START:MOV TMOD,#01H 置T0工作方式1 MOV TH0,#3CH MOV TLO,#0B0H CLR TFO SETB TRO 启动T0 SETB EX0 SETB PX0 设置外中断0高优先级 SETB EA LOOP: MOV R2,#20 置1s计数初值 MOV R3,#20 红灯亮20S MOV SECOND1,#25 东西路口计时显示初值25s