《交通灯设计报告 .docx》由会员分享,可在线阅读,更多相关《交通灯设计报告 .docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结单片机课程设计报告题目 51交通灯的设计专业班级学号同学姓名基于 51 单片机的交通灯掌握系统设计摘要:在日常生活中 , 交通信号灯的使用 , 市交通得以有效治理 , 对于疏导交通流量、提高道路通行才能 , 削减交通事故有明显成效 . 交通灯掌握系统由 89C52 单片机、 LED显示、交通灯延时组成 . 系统除具有基本交通灯功能外 , 仍具有LED信息显示功能 , 使交通实现有效掌握 .关键词: 交通灯, 单片机, 自动掌握一、引言当今, 红绿灯安装在个个道口上 , 已经成为疏导交通车辆最常见和最有效的手段.但这个技术在 19 世纪就已经显现了 .1858年, 在英国伦敦主要
2、街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯 , 用以指挥马车通行 . 这是世界上最早的交通信号灯 .1868 年, 英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上, 安装了世界上最早的煤气红绿灯 . 它由红绿两以旋转方式玻璃提灯组成 , 红色表示“停止” ,绿色表示“留意” .1869 年 1 月 2 日, 煤气灯爆炸 , 是警察受伤 , 遂被取消! 电气启动的红绿灯显现在美国 , 这种红绿灯由红黄绿三色圆形的投光器组成,1914 年始装于纽约市 5 号大街的一座高塔上 . 红灯亮表示“停止” , 绿灯亮可编辑资料 - - - 欢迎下载精品名师归纳总结表示“通行” .信
3、号灯的显现 , 使得交通得以有效的治理 , 对于疏导交通流量、提高道路通行才能、削减交通事故有明显成效 .1968 年, 联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定 . 绿灯时通行信号灯 , 面对绿灯的车辆可以直行, 左转弯和右转弯 , 除非两一种标志禁止某一种转向. 左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行. 红灯是禁行信号灯, 面对红灯的车辆必需在交叉路口的停车线后停车. 黄灯是警告信号 , 面对黄灯的车辆不能越过停车线 , 但车辆已经非常接近停车线而不能安全停车的可以进入交叉路口!二、概要设计2.1 设计思路利用单片机实现交通灯的掌握 , 该
4、任务分以下几个方面:a 实现红、绿、黄灯的循环掌握 , 并且交通灯系统带有左转信号灯 . 要实现此功能需要表示三种不同颜色的共16 个 LED灯, 每两个一组分别接在 51 单片机的不同管脚 , 用软件实现掌握 .b 用数码管显示倒计时 . 采纳 2 个两位共阳极数码管 , 利用动态显示 , 通过单片机 IO 口掌握位选 , 段选动态显示时间情形 .C 实现急通车 . 这需要人工实现 , 编程时利用到中断才能带到目的 , 只要有按钮按下, 那么四个方向全部显示红灯 , 禁止以诶车辆通行 . 当情形解除 , 让时间回到只能隔断处连续进行 .2.2 设计的主要内容和要求交通灯处在十字路口上 . 它
5、有红黄绿三种颜色的灯组成 . 红灯亮时道路上的车辆停止运行。黄灯是一种过渡用的信号灯 , 当它亮时 , 表示道路上的红绿色信号灯即将进行转换 . 下面拿东西南北四个方一直说明 . 当东西方向答应行车可编辑资料 - - - 欢迎下载精品名师归纳总结(或者左转)的时候 , 南北方向就禁止行车 , 即此时东西方向的绿灯亮红灯灭, 而南北方向的绿灯灭红灯亮 . 反之当南北方向答应行车(或者左转)的时候, 东西方向就禁止行车 , 即此时南北方向的绿灯亮红灯灭, 而东西方向的绿灯灭红灯亮. 交通灯配置示意图如图1 所示. 同时当有特别的情形发生时 , 能手动掌握各个方向的信号灯 . 设计任务就是将这一电路
6、用单片机来实现详细的掌握.北绿直行绿左转黄灯缓红灯停数数码码管管西东南图 1十字路口交通灯配置示意图2.3 总体设计框图见图 2:可编辑资料 - - - 欢迎下载精品名师归纳总结交倒通最计灯小时循系环统显示紧 急 情 况 控 制图 2三、 硬件设计3.1 LED 循环电路设计89C52单片机概述MCS-51 单片机内部结构:89C52是 MCS-51系列单片机的典型产品 , 现在以这一代表性的机型进行系统的讲解 .89C52单片机包含中心处理器、程序储备器( ROM)、数据储备器(RAM)、定时 / 计数器、并行接口、串行接口和中断系统等极大单元及数据总线、的址总线和掌握总线等三大总线 .89
7、C52主要功能特性: 标准 MCS-51内核和指令系统 片内 8kROM(可扩充 64kB 外部储备器)可编辑资料 - - - 欢迎下载精品名师归纳总结 32 个双向 I/O 口 256x8bit器)内部 RAM(可扩充 64kB 外部储备 3 个16位可编程定时 / 计数器 时钟频率 3.5-12/24/33MHz 向上或向下定时计数器 改进型快速编程脉冲算法 6 个中断源 5.0V工作电压 全双工串行通信口 布尔处理器帧错误侦测 4 层优先级中断结构自动的址识别 兼容 TTL 和 CMOS规律电平 闲暇和掉电节约模式 PDIP40 和 PLCC44 封装形式单片机的结构有两种类型 , 一种
8、是程序储备器和数据储备器分开的势式, 即哈佛( Harvard )结构 , 另一种是采纳通用运算机广泛使用的程序储备器与数据储备器合二为一的结构 , 即普林斯顿( Princeton )结构.MCS-51 系统的引脚说明:MCS-51 系列单片机中的 8031、8051 及 8751 均采纳 40Pin 封装的双列直接 DIP 结构, 图 3 是它们的引脚配置 ,40 个引脚中 , 正电源和底线两根 , 外置石英振荡器的时钟线两根 ,4 组 8 位共 32 个 I/O 口, 中断口线与 P3 口线复用.可编辑资料 - - - 欢迎下载精品名师归纳总结P1.0140VCCP1.1239P0.0/
9、AD0P1.2338P0.1/AD1P1.3437P0.2/AD2P1.4536P0.3/AD3P1.5635P0.4/AD4P1.6734P0.5/AD5P1.7833P0.6/AD6RST932P0.7/AD7RXD/P3.01031EA/VPPTXD/P3.11130ALE/PROGINT0/P3.21229PESNINT1/P3.31328P2.7/A15T0/P3.41427P2.6/A14Y1/P3.51526P2.5/A13WR/P3.61625P2.4/A12RD/P3.71724P2.3/A11XTAL21823P2.2/A10XTAL11922P2.1/A9GND2021P
10、2.0/A8PDIP图 389C51 的复位方式可以自动复位 , 也可以是手动复位 , 见下图. 除此之外,RESET/Vpd仍是一复用脚 ,Vcc 掉电其间 , 此脚可以接上没用电源 , 以保证单片机内部 RAM的数据不丢失 .在编程时 ,EA/Vpp 脚仍需加上 21V 的编程电压 .3.2 LED 循环说明为了便于说明 , 不妨将东西方向答应直行命名为状态1, 东西方向答应左转命名为状态 2, 东西方向行车到南北方向行车的转换阶段命名为状态3, 将南北方向答应直行命名为状态4, 南北方向答应左转命名为状态5, 南北方向行车到可编辑资料 - - - 欢迎下载精品名师归纳总结东西方向方向行车
11、的转换阶段命名为状态 6.状态 1状态 2状态 3状态 4状态 5状态 6状态 1详细显示周期如下:东西路口直行绿灯亮左转绿灯亮黄灯亮缓行红灯亮禁行南北路口红灯亮禁行50s直行绿灯亮25s左转绿灯亮20s黄灯亮缓行5s图 43.3 单片机 I/O 口掌握交通灯电路protel电路原理图:假定左转绿灯点亮的时间为 25s, 直行绿灯点亮的时间为 20s, 黄灯点亮的时间为 5s, 就对方红灯的点亮时间为 50 秒. 黄灯每隔 500ms 亮一次 , 之后灭500ms(亮灭一次叫作闪耀一次) , 一共闪耀 5 次, 连续 5s. 各个状态之间的变换情形如下:25s20s5s50s状态 1状态 2状
12、态 3状态 4状态 5状态 6可编辑资料 - - - 欢迎下载精品名师归纳总结LED灯采纳共阳极接法 , 全部的 LED灯阳极都接在 5V 电压一端 , 加上限流电阻 , 阴极接单片机的 IO 口, 当 IO 口输出低电平常 LED亮, 通过设置不同的输出来转变 LED的亮灭, 实现交通灯的掌握 .上图为 51 单片机的最小系统 , 包括 51 的晶振电路和上电复位电路 .3.4倒计时显示电路Protel 电路原理图:可编辑资料 - - - 欢迎下载精品名师归纳总结数码管采纳共阳极数码管 , 位选端口直接接在 IO 口上, 段码端口通过 8 个上拉电阻接在 IO 口上, 通过 IO 口掌握数码
13、管显示时间 .3.4 紧急情形按钮电路为了实现此功能 , 利用单片机中断达到目的 . 利用一个手动开关接至单片机外部中断 0, 同时在软件设计时将其设为最高优先级 . 当开关闭合 , 四方全为红灯. 当开关打开 , 回到原先位置置连续执行 , 电路图如下图 .3.5 整体电路图Protel电路原理图:可编辑资料 - - - 欢迎下载精品名师归纳总结上图是利用 protel99se做出的整体设计原理图Protel电路原理图的 PCB图:可编辑资料 - - - 欢迎下载精品名师归纳总结上图是利用 protel99se做出的 51 交通灯的印制电路板 PCB 图.印制电路板 3D 成效图:可编辑资料
14、 - - - 欢迎下载精品名师归纳总结上图是利用 Altium Designer 09打开 PCB图做出的印制电路板 3D 成效图.Proteus 仿真电路图:可编辑资料 - - - 欢迎下载精品名师归纳总结上图是利用 proteus7.5搭建的 51 交通灯仿真电路 , 截图状态为仿真运行开头状态.四 软件按设计4.1 程序流程图:可编辑资料 - - - 欢迎下载精品名师归纳总结4.2 LED 红绿灯显示当 P1 端口输出高电平 , 即 P1 各端口=1 时, 依据发光二极管的单向导电性可知, 这是发光二极管熄灭。当 P1 个端口输出低电平 , 即 P1 各端口=0 时, 发光二极管亮 .
15、通过设置 P1 口不同时段输出电平的不同来掌握发光二极管模拟交通灯的各种状态 .可编辑资料 - - - 欢迎下载精品名师归纳总结4.3 倒计时显示数码管的显示采纳共阳极数码管的动态显示, 通过 P2 口的 P2.0 至 P2.3 分别掌握东西南北方向的数码管位选信号, 然后通过 P0 口作为数码管的段选信号, 通过位选信号的分时挑选来掌握数码管的个位, 十位分别显示 , 又由于这期间的时间间隔很短 , 所以我们看起来数码管的个位十位是同时亮的. 然后利用定时器倒计时 , 通过数码管显示出来 .4.4 急通车掌握将一按钮接到单片机外部中断0 端口. 另一端接的 , 通过在程序里设置外部中断 0
16、为最高优先级 . 当检测到有按钮按下时 , 产生中断 , 停止刚才的程序 , 转向中断执行 .4.5 程序代码见附录.五 总结单片机是一门强调实践的课程, 在学习单片机理论课时候就感觉到内容许多, 学问点很杂 , 分繁琐 . 虽然老师的课上得不错 , 但是对于单片机内部结构仍不是很懂得. 不过单片机综合设计这门课程给了我们一次实践的机会. 通过这次设计逐步明白了单片机的内部构造和工作原理, 以及接外部电路的情形 . 通过实际动手去实践 . 真正把课堂上所学的用到日常生活中 , 理论联系实际 , 做出实物模型 . 这次单片机实习 , 我选的是交通灯设计 , 从代码的编写 , 做仿真到画电路原理图
17、,PCB图, 到最终的做实物 , 都是通过查阅资料 , 自己动手做 . 做完之后 , 感觉真正在这门课上学到了东西 . 动手才能得到了提高 , 对单片机的熟悉也加深了 .这次实习 , 在编程的时候会有困难 , 也可能不肯定胜利 , 所以要经过多次调试, 分析, 改正, 反复去做 . 经受了多次失败的洗礼 , 我明白在以后学习和实践中 , 我要努力把握学问 , 多动手, 多摸索, 以免在以后的学习工作中犯同样的错误 .可编辑资料 - - - 欢迎下载精品名师归纳总结附录:/*十字路口交通灯掌握 C 程序*/ #defineuchar unsigned char#defineuintunsigne
18、d int#include/*定义掌握位 */可编辑资料 - - - 欢迎下载精品名师归纳总结sbit EW_LED2=P2。3 sbit EW_LED1=P2。2 sbit SN_LED2=P2。1 sbit SN_LED1=P2。0/ 东西数码管个位/ 东西数码管十位/ 南北数码管个位/ 南北数码管十位 _可编辑资料 - - - 欢迎下载精品名师归纳总结sbitSN_Yellow=P16。/ 南北黄灯sbitEW_Yellow=P12。/ 东西黄灯sbitEW_Red=P13。/ 东西红灯sbitSN_Red=P17。/ 南北红灯/sbitBusy_Btton=P32 。bitFlag_S
19、N_Yellow。 /南北黄灯标志位bitFlag_EW_Yellow。/ 东西黄灯标志位charTime_EW。/ 东西方向倒计时单元charTime_SN。/ 南北方向倒计时单元uchar EW=50,SN=25,EWL=20,SNL=2。0 /程序初始化赋值 , 正常模式uchar EW1=50,SN1=25,EWL1=20,SNL1=2。0 / 用于存放修改值的变量/uchar code table10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F。/19 段选码uchar code table10=0xc0,0xf9,0xa4,0
20、xb0,0x99,0x92,0x82,0xf8,0x80,0x90 。/uchar code table10=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09。/uchar code S8=0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84。/ 交通信号灯掌握代码uchar code S8=0xd7,0xb7,0xe7,0xb7,0x7d,0x7b,0x7e,0x7b。/*延时子程序 */ voidDelayuchar a可编辑资料 - - - 欢迎下载精品名师归纳总结uchar i。i=a 。whilei-。/*显
21、示子函数 */ voidDisplayvoidchar h,l。h=Time_EW/10。 l=Time_EW%1。0P0=tablel。EW_LED2=。1Delay200 。EW_LED2=。0P0=tableh。EW_LED1=。1Delay200 。EW_LED1=。0h=Time_SN/10。l=Time_SN%10。 P0=tablel。SN_LED2=。1Delay200 。SN_LED2=。0P0=tableh。SN_LED1=。1Delay200 。SN_LED1=。0/*T0中断服务程序 */ void timer0voidinterrupt 1 using 1static
22、 uchar count。TH0=65536-50000/256 。TL0=65536-50000%256。count+。ifcount=10可编辑资料 - - - 欢迎下载精品名师归纳总结/Time_EW-。/Time_SN-。ifFlag_SN_Yellow=1 /南北黄灯标志位SN_Yellow=SN_Yellow 。 ifFlag_EW_Yellow=1 /东西黄灯标志位EW_Yellow=EW_Yellow。ifcount=20Time_EW-。Time_SN-。ifFlag_SN_Yellow=1/南北黄灯标志位Time_SN=Time_E。W/ Time_SN+。SN_Yello
23、w=SN_Yellow。ifFlag_EW_Yellow=1/东西黄灯标志位Time_EW=Time_S。N/Time_EW+。+EW_Yellow=EW_Yellow。/Time_EW-。/Time_SN-。/ Display。count=0 。/*主程序开头 */ voidmainvoidIT1=0。/INT1负跳变触发TMOD=0x01 。/ 定时器工作于方式 1 TH0=65536-50000/256 。/ 定时器赋初值TL0=65536-50000%256。可编辑资料 - - - 欢迎下载精品名师归纳总结EA=1。 /CPU 开中断总答应ET0=1。/ 开定时中断EX1=1。/ 开外
24、部 INTO中断TR0=1 。/ 启动定时PX1=1。/ 中断优先级高while1/*S0状态*/Flag_EW_Yellow=0。/EW关黄灯显示信号Time_EW=E。W Time_SN=S。N whileTime_SN0P1=S0。/SN通行,EW红灯Display。/*S2状态*/ Flag_SN_Yellow=0。 /SN 关黄灯显示信号Time_SN=SN。L whileTime_SN0P1=S2 。/SN 左拐绿灯亮 ,EW红灯Display。/*S3状态*/ P1=0xff 。whileTime_EW0Flag_SN_Yellow=1。 /SN 开黄灯信号位EW_Red=0 。
25、/SN黄灯亮, 等待停止信号 ,EW红灯/SN_LED1=EW_LED。1/SN_LED2=EW_LED。2Display。/*赋值*/ EW=EW。1SN=SN。1EWL=EW。L1 SNL=SNL。1/*S4状态*/Flag_SN_Yellow=0。 /SN关黄灯显示信号Time_EW=S。N Time_SN=E。W可编辑资料 - - - 欢迎下载精品名师归纳总结whileTime_EW0P1=S4。/EW 通行,SN 红灯Display。/*S6状态*/Flag_EW_Yellow=0。/EW关黄灯显示信号Time_EW=EW。L whileTime_EW0P1=S6 。/EW 左拐绿灯亮 ,SN 红灯Display。/*S7状态*/ P1=0Xff 。whileTime_SN0Flag_EW_Yellow=1。 /EN 开黄灯信号位SN_Red=0 。/EW 黄灯亮, 等待停止信号 ,SN 红灯Display。/*赋值*/ EW=EW1。SN=SN。1 EWL=EW。L1 SNL=SNL。1void xint1 interrupt 2 /外部中断 INT1P1=0x77 。Display。Delay200。可编辑资料 - - - 欢迎下载
限制150内