基于单片机的十字交通灯课程设计_第1页
基于单片机的十字交通灯课程设计_第2页
基于单片机的十字交通灯课程设计_第3页
基于单片机的十字交通灯课程设计_第4页
基于单片机的十字交通灯课程设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

姓名 姓名 班级 班级 学号 学号 时间 时间 设计题目十字交通灯模拟设计 设计要求 1 设计一个十字口的交通灯控制电路 要求两条交叉道路上的车 辆交替运 行 每次通行时间都设为 25s 2 要求黄灯先亮 5s 才能变换运行车道 3 黄灯亮时 要求每秒钟闪亮一次 4 倒数秒数显示 摘要 近年来随着科技的飞速发展 单片机的应用正在不断深入 同时带动传统控制检测技术日益更新 在实时检测和自动控制的单 片机应用系统中 单片机往往作为一个核心部件来使用 仅单片机 方面知识是不够的 还应根据具体硬件结构软硬件结合 加以完善 十字路口车辆穿梭 行人熙攘 车行车道 人行人道 有条不 紊 那么靠什么来实现这井然秩序呢 靠的就是交通信号灯的自动 指挥系统 交通信号灯控制方式很多 本系统采用 MSC 52 系列单 片机 AT89C52 来设计交通灯控制器 实现设置红 绿灯燃亮时间 的功能 红绿灯循环点亮 倒计时剩 5 秒时黄灯闪烁警示 交通灯 信号通过 P1 P3 口输出 显示时间直接通过 P0 口输出至双位数 码管 并用复位按键表示出现特殊情况时四个方向禁止通行 本系统实用性强 操作简单 扩展功能强 关键词 单片机 交通灯 数码管 按键 1 设计任务和要求设计任务和要求 1 设计一个十字口的交通灯控制电路 要求两条交叉道路上 的车辆交替运行 每次通行时间都设为 25s 2 要求黄灯先亮 5s 才能变换运行车道 3 黄灯亮时 要求每秒钟闪亮一次 4 倒数秒数显示 2 方案论证方案论证 方案一 采用 8155 扩展 I O 口显示 使用灵活可编程 若用 该方案 可提供较多 I O 口 但是电路构成比较复杂 操作起来稍 显繁琐 从节省材料及电路设计图尽量简单明了的角度建议不使用 此方案 方案二 从设计所要完成的任务与要求来看 显示通行时间用 二位数码管 对于 7 段数码管 占用 7 个单片机的 I O 口 另外设 置两个电子开关对 2 位显示进行配合 占用 2 个 I O 端口 十字路 口共需 4 组红绿灯 加上转换黄灯 一共是 12 只灯 须用 12 个端 口进行控制 为此 选用 AT89c52 来作为中央处理器 这款单片 机的 I O 端口作为输出时 具有较大的电流吸收能力 因此我们可 以选用共阴极数码管 这样由单片机的 I O 口就可以直接驱动 能 简化硬件电路的设计 故选择方案二 3 系统硬件设计系统硬件设计 3 1 系统原理图系统原理图 本设计的硬件电路由主控部分 单片机 AT89c52 交通灯显示 部分 时间显示部分 数码管 复位部分 按键 4 个部分 组成 各部分之间相互协作 构成一个统一的有机整体 实现 交通灯功能 其系统 Proteus 仿真图附录 2 所示 3 2 AT89S52 功能分析功能分析 图 1 AT89S52 引脚图 1 引脚介绍 VCC 供电电压 GND 接地 2 P0 口 P0 口是一组 8 位漏极开路型双向 I O 口 也即地址 数 据总线复用口 作为输出口用时 每位能吸收电流的式驱动8 个 TTL 逻辑门电路 对端口 P0 写 1 时 可作为高阻抗输入端 用 在访问外部数据存储器或程序存储器时 这组口线分时转换 地址 低 8 位 和数据总线复用 在访问期间激活内部上拉电 阻 在 Flash 编程时 P0 口接收指令字节 而在程序校验时 输出指令字节 校验时 要求外接上拉电阻 3 P1 口 P1 是一个带内部上拉电阻的 8 位双向 I O 口 P1 的输 出缓冲级可驱动 吸收或输出电流 4 个 TTL 逻辑 门电路 对端口写 1 通过内部的上拉电阻把端口拉到高 电平 此时可作输入口 作输入口使用时 因为内部存在上拉电 阻 某个引脚被外部信号拉低时会输出一个电流 IIL 与 AT89C51 不同之处是 P1 0 和 P1 1 还可分别作为定时 计数 器 2 的外部计数输入 P1 0 T2 和输入 P1 1 T2EX 4 P2 口 P2 是一个带有内部上拉电阻的 8 位双向 I O 口 P2 的 输出缓冲级可驱动 吸收或输出电流 4 个 TTL 逻辑 门电路 对端口 P2 写 1 通过内部的上拉电阻把端口拉 到高电平 此时可作输入口 作输入口使用时 因为内部存在上 拉电阻 某个引脚被外部信号拉低时会输出一个电流 IIL 在访问外部程序存储器或 16 位地址的外部数据存储器 例 如执行 MOVX DPTR 指令 时 P2 口送出高 8 位地址数据 在访问 8 位地址的外部数据存储器 如执行MOVX RI 指令 时 P2 口输出 P2 锁存器的内容 Flash 编程或校验时 P2 亦接收高位地址和一些控制信号 5 P3 口 P3 口是一组带有内部上拉电阻的 8 位双向 I O 口 P3 口输出缓冲级可驱动 吸收或输出电流 4 个 TTL 逻 辑门电路 对 P3 口写入 1 时 它们被内部上拉电阻拉高 并可作为输入端口 此时 被外部拉低的P3 口将用上拉电阻 输出电流 IIL P3 口除了作为一般的 I O 口线外 更重要的用途是它的第 二功能 P3 口还接收一些用于 Flash 闪速存储器编程和程序校 验的控制信号 6 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期 以上高电平将使单片机复位 7 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁存 允许 输出脉冲用于锁存地址的低8 位字节 一般情况下 ALE 仍以时钟振荡频率的 1 6 输出固定的脉冲信号 因此它可 对外输出时钟或用于定时目的 要注意的是 每当访问外部数据 存储器时将跳过一个 ALE 脉冲 对 Flash 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如有必要 可通过对特 殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置位 可禁止 ALE 操作 该位置位后 只有一条 MOVX 和 MOVC 指令才 能将 ALE 激活 此外 该引脚会被微弱拉高 单片机执行外部 程序时 应设置 ALE 禁止位无效 8 PSEN 程序储存允许 PSEN 输出是外部程序存储器的读选通信 号 当 AT89C52 由外部程序存储器取指令 或数据 时 每个 机器周期两次 PSEN 有效 即输出两个脉冲 在此期间 当访 问外部数据存储器 将跳过两次 PSEN 信号 9 EA VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需注意的 是 如果加密位 LB1 被编程 复位时内部会锁存 EA 端状态 如 EA 端为高电平 接 Vcc 端 CPU 则执行内部程序存 储器中的指令 Flash 存储器编程时 该引脚加上 12V 的编 程允许电源 Vpp 当然这必须是该器件是使用 12V 编程电压 Vpp 10 XTAL1 振荡器反相放大器的及内部时钟发生器的输入端 XTAL2 振荡器反相放大器的输出端 3 3 整体电路整体电路 1 上电复位电路 上电复位电路 上电复位电路如图 2 所示 复位方法一般有上电自动复位和外 部按键手动复位 单片机在振荡电路工作以后 在 S1 端持续给出 2 个机器周期的高电平时就可以完成复位操作 使用晶振频率为 12MHz 时 则复位信号持续时间应不小于 2us 本设计采用的是外 部手动按键复位电路 其中 R3 选用 470 R4 选用 8 2K C3 选用 4 7uF R3 470 R4 8 2k C3 4 7uF S VCC RES C2 30pF C1 30pF XT1 XT2 图 2 上电复位电路 图 3 晶振电路 2 晶振电路 晶振电路 晶振电路如图 3 所示 XT1 和 XT2 分别是片内振荡电路的输 入端和输出端 现采用片内时钟振荡方式 需在 18 和 19 脚外接石 英晶体 频率为 1 2 12MHz 和振荡电容 振荡电容的值一般取 10 30pF 典型值为 30Pf 2 因为一个机器周期含有 6 个状态周期 而每个状态周期为 2 个 振荡周期 所以一个机器周期共有 12 个振荡周期 如果外接石英 晶体振荡器的振荡频率为 12MHZ 一个振荡周期为 1 12us 故而 一个机器周期为 1us 3 灯控制电路设计 灯控制电路设计 如图 4 所示 交通灯状态显示电路由东西南北四个方向各三个 LED 灯组成 分别显示四个方向上红 黄 绿三个状态 用以指 示十字路口各方向车辆的行驶 通过软件编程 可使路口交通变化 情况为 南北方向车道和东西方车道两条交叉道路上的车辆交替运 行 主干道每次通行时间都设为 20S 在绿灯转为红灯时 要求黄 灯先亮 5 秒钟 才能变换运行车道 黄灯亮时每秒闪亮一次 图 4 交通灯状态显示电路 图 5 数码管显示电路原理 图 3 倒计时显示电路设计倒计时显示电路设计 如图 5 所示 由一个共阴极四位数码管来实现倒计时 由于 P0 口输出电流小 需外接上拉电阻 P 0 0 脚接 5V 电源 数码显 示管与单片机的接口电路如图 6 所示 硬件电路设计简单 图 6 数码管显示电路与 AT89C51 单片机连接图 4 软件设计软件设计 程序见附录 1 4 1 显示程序流程图显示程序流程图 如图 7 所示流程图为数码管内部显示过程 数码管为二位共阴 数码管 从流程图可以看出 首先送入十位数据 此时关个位开关 显示 采用时钟中断 1 中断时间不能超过 1 5ms 这里延时 1ms 再次关十 位开关 显示个位数据 再延时 1ms 关个位开关 送入十位数据 如此 循环 4 2 主程序流程图主程序流程图 如图 8 所示流程图为三种颜色发光二极管 即交通灯 配合数码 管动态显示的过程 此设计中 初始状态为南北方向绿灯 东西方向红 灯 数码管从 25S 开始倒计时 当计时时间到了 20S 四个方向黄灯开 始闪烁 5 秒 每秒闪烁一次 当闪烁了 5 秒后 数码管从 0 变为 25S 此 时南北方向变为红灯 东西方向变为绿灯 再次等待 20 秒的时间后 四个方向变为黄灯闪烁 5 秒 数码管从 0 变为 25S 此时南北方向变 为绿灯 东西方向变为红灯 如此循环 送入十位数据 开十位开关 延时 1ms 关十位开关 送入个位数据 开个位开关 延时 1ms RET 图 7 显示程序流程图 图 8 主程序流程图 5 系统测试结果及分析系统测试结果及分析 5 1 硬件调试硬件调试 1 把电路板焊好后 先通过检查电路板表面检查是否有漏 焊 错焊 接触不良等 2 编写检测程序逐个点亮数码管 检查数码显示部分是否 有硬件问题 3 编写检测程序检测矩阵扫描是否有硬件问题 5 2 调试结果分析调试结果分析 否 是 开 始 初始化初始化 南北方向 显示状态 20s 到 黄灯闪显 示子程序 5s 到 是 是 东西方向 显示状态 否 20s 到 黄灯闪显 示子程序 5s 到 否 是 1 仿真开始时南北向绿灯亮 东西向红灯亮 同时数码管 显示从 25s 开始进行倒计时 过 20s 后 剩余 5s 红绿灯都不亮 转为四个方向的黄灯 每隔一秒亮一次 5s 完成后 开始转向为 南北向红灯亮东西向绿灯亮 同时数码管显示从 25s 开始计时 过 20s 后 剩余 5s 红绿灯都不亮 转为四个方向的黄灯 每一秒亮一 次 5s 完成后 循环此过程 至此实现了交通灯的主要显示过程 在调试过程中发现 数码管的显示不是很清晰且有一点闪烁 这是本次设计的主要缺点所在 主要原因是 1 共阴数码管没有 安装驱动电路 2 中断时间影响了扫描周期的时间 即中断时间 长于扫描周期 就会出现闪烁或闪烁的常用数据内存被快速更改后 又改过来 属于寄存器的重复使用 因没有影响到显示时间的读取 故没有调整 2 当按下复位按键时 四个方向的交通灯全部为红灯亮 代 表的是紧急处理情况 不允许四个方向的车辆通行 系统硬件电路见附录 2 6 结束语与心得体会结束语与心得体会 本系统采用 MSC 52 系列单片机 AT89C52 为中心器件来设计 交通灯控制器 实现了通过双位数码管的显示时间控制红 绿 黄 灯亮灭功能 红绿灯循环点亮 20s 倒计时剩 5 秒时黄灯闪烁警示 及特殊情况下按键复位功能 系统不足之处不能控制车的左 右转 以及自动根据车流改变红绿灯时间等 这是由于本身地理位子以及 车流量情况所定 如果有需要可以设计扩充原系统来实现 通过这次课程设计 我不仅加深了对单片机理论的理解 将理 论很好地应用到实际当中去 而且我还学会了如何去培养我们的创 新精神 从而不断地战胜自己 超越自己 创新 是要我们学会将 理论很好地联系实际 并不断地去开动自己的大脑 从为人类造福 的意愿出发 做自己力所能及的 别人却没想到的事 同时 更重 要的是 我在这一设计过程中 学会了坚持不懈 不轻易言弃 设 计过程 常有一些不如意 比如 我在电路板的焊接过程中 出现了 几次错误 在失望中挣脱出来 又焊接了两遍 才有了今天的成功 也许 这就是在对我们提出了挑战 勇敢过 也战胜了 胜利的钟声也就 一定会为我们而敲响 这个设计过程中 我遇到过许多次失败的考验 就比如 自己 对实际生活中的交通秩序的不了解给整个设计带来的困扰 真想要 就此罢休 然而 就在想要放弃的那一刻 我明白了 原来结果并 不那么重要 我们更应该注重的是这一整个过程 于是 我坚持了 下来 当然最终 这个设计很成功 主要体现在 这一整个系统 几乎没有参考任何书 程序由自己独立完成 与用 8255 来制作的 交通灯控制系统相比 程序简单易读 结构清楚 最重要的是成本 低 在设计一个系统 除了达到所要求的性能指标以外 成本也是 很重要的一个指标 成本的高低也决定了产品的适用性 参考文献参考文献 1 胡汉才 单片机原理与接口技术 M 北京 清华大学出版社 1995 6 2 楼然苗等 51 系列单片机设计实例 M 北京 北京航空航天 出版社 2003 3 3 何立民 单片机高级教程 M 北京 北京航空航天大学出版社 2001 4 赵晓安 MCS 51 单片机原理及应用 M 天津 天津大学出版 社 2001 3 5 肖洪兵 跟我学用单片机 M 北京 北京航空航天大学出版社 2002 8 6 夏继强 单片机实验与实践教程 M 北京 北京航空航天大学 出版社 2001 7 于凤明 单片机原理及接口技术 M 北京 中国轻工业出版社 1998 8 陈伟人 单片微型计算机原理与应用 M 北京 清华大学出版社 2006 5 9 李广第 单片机基础 M 第 1 版 北京 北京航空航天大学 出版社 1999 10 徐惠民 安德宁 单片微型计算机原理接口与应用 M 第 1 版 北京 北京邮电大学出版社 1996 11 何立民 从 Cygnal 80C51F 看 8 位单片机发展之路 M 单片 机与嵌入式系统应用 2002 年 第 5 期 P5 8 附录附录 1 程序代码程序代码 include define uchar unsigned char define uint unsigned int uchar count time shi ge sum 25 uchar table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x58 0 x5e 0 x79 0 x71 bit flag 0 bit flag1 0 sbit g1 P1 3 sbit g11 P3 5 sbit h1 P1 2 sbit h11 P3 4 sbit r1 P1 1 sbit r11 P3 2 sbit g2 P3 3 sbit g22 P1 6 sbit h2 P3 1 sbit h22 P1 5 sbit r2 P3 0 sbit r22 P1 4 void delay uint z uchar i j k k z for k 0 k for i 20 i 0 i for j 248 j 0 j void disp P2 0 xfe P0 table shi delay 5 P2 0 xfd P0 table ge delay 5 void init P1 0 xff P2 0 xff P3 0 xff TMOD 0 x01 TH0 65536 50000 256 TL0 65536 50000 256 TR0 1 EA 1 ET0 1 vo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论