已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程设计报告 题题 目目 十字路口交通灯控制系统设计 课课 程程 名名 称称 单片机原理及应用课程设计 院院 部部 名名 称称 信息技术学院 专专 业业 电子信息工程 班班 级级 学学 生生 姓姓 名名 X X X 学学 号号 XXXXXXXXXX 指指 导导 教教 师师 目录目录 成绩 1 一 设计题目 2 二 设计目的 2 三 设计任务 2 四 设计思路 3 4 1 设计思路 3 4 2 系统总体框图 3 4 3 资源分配 3 五 硬件原理图和连接图 9 六 程序流程图 13 七 设计心得 14 八 参考文献 15 九 附录 15 设计题目设计题目 2 十字路口交通灯控制系统设计 设计目的设计目的 系统功能要求 本设计能模拟基本的交通控制系统 用红绿黄灯表示禁行 通行和等待的信号发生 还能进行倒计时显示 通行时间调整和紧急处理等功 能 此十字路口交通灯控制系统 分东西道和南北道 设南北道为 A 道 东西 道为 B 道 规定 首先 东西路口红灯亮 南北路口绿灯亮 同时开始 30s 倒 计时 以 7 段数码管显示时间 25s 倒计时结束后开始 5s 倒计时 南北路口的 绿灯闪烁 计时到最后 2s 时 南北路口黄灯亮 完成 1 次这样的循环需要 30s 30s 结束后 南北路口红灯亮 东西路口绿灯亮 并重新 30s 倒计时 依 次循环 若有紧急车辆要求通过时 此系统应能禁止普通车辆 而让紧急车辆 通过 1 倒计时显示 倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间 在 停止 和 通过 两者间作出合适的选择 驾驶员和行人普遍都愿意选择有倒计时显示 的信号控制方式 并且认为有倒计时显示的路口更安全 倒计时显示是用来减 少驾驶员在信号灯色改变的关键时刻做出复杂判断的 1 种方法 它可以提醒驾 驶员灯色发生改变的时间 帮助驾驶员在 停止 和 通过 两者间作出合适 的选择 2 时间的设置 本设计中可通过键盘对时间进行手动设置 增加了人为的可控性 避免 自动故障和意外发生 并再紧急状态下 可设置所有灯变为红灯 键盘是单 片机系统中最常用的人机接口 一般情况下有独立式和行列式两种 前者软 件编写简单 但在按键数量较多时特别浪费 I 0 口资源 一般用于按键数量 少的系统 后者适用于按键数量较多的场合 但是在单片机 I 0 口资源相 对较少而需要较多按键时 此方法仍不能满足设计要求 本系统要求的按键 控制不多 且 I 0 口足够 可直接采用独立式 3 紧急处理 交通路口出现紧急状况在所难免 如特大事件发生 救护车等急行车通过 等 我们都必须尽量允许其畅通无阻 毕竟在这种情况下是分秒必争的 时时 刻刻关系着公共财产安全 个人生死攸关等 由此在交通控制中增设禁停按键 就可达到想此目的 设计任务设计任务 本系统需要采用 MSC 51 系列单片机 AT89C51 作为中心器件来设计交通灯控 制器 实现以下功能 初始南北方向绿灯亮 东西方向红灯亮 东西方向通车 延时 28s 南北路口绿灯熄灭 绿灯闪烁 3 秒后黄灯亮 2 秒 黄灯熄灭后 东西路口绿灯亮同时南北路口红灯亮 南北方向开始通车 延时 28s 东西方向绿灯灭 绿灯闪烁 3 秒后黄灯亮 2 秒 然后又切换成东 西方向通车 如此重复 当发生交通意外 中断产生 时 全部亮红灯 进行交通事故的处理 当事故 3 处理完毕 再次按中断键 重新按上述方式工作 当南北路口的流量大时 可以增加南北路口亮绿灯的时间 当东西路口的流 量大时 可以增加东西路口亮绿灯的时间 结束后调回正常状态 设计思路设计思路 原理组成框图 资源分配 4 1 设计思路 1 分析目前交通路口的基本控制技术以及各种通行方案 并以此为基础提出 自己的交通控制的初步方案 2 确定系统交通控制的总体设计 包括 十字路口具体的通行禁行方案设计 以及系统应拥有的各项功能 在这里 本设计除了有信号灯状态控制能实现基 本的交通功能 还增加了倒计时显示提示 基于实际情况 又增加了紧急状况 处理和通行时间可调这两项特特殊功能 3 进行显示电路 灯状态电路 按键电路的设计和对各器件的选择及连接 大体分配各个器件及模块的基本功能要求 4 进行软件系统的设计 对于本系统 本人采用单片机汇编语言编写 对单 片机内部结构和工作情况做了充足的研究 了解定时器 中断以及延时原理 总体上完成了软件的编写 4 2 系统的总体框图 单片机 最小系统 外围接口电路 LED 数码管显示 红黄绿信号灯 按键 控制电路 图 1 系统的总体框图 据此 本设计系统以单片机为控制核心 连接成最小系统 由按键设置模 块产生输入 信号灯状态模块 LED 倒计时模块模块接受输出 系统的总体框 图如上所示 单片机上电后 系统进入正常工作状态 执行交通灯状态显示控制 同时 将时间数据倒计时输入到 LED 数码管上实时显示 在此过程中随时调用急停按 键和时间调节中断 4 3 资源分配 红色八段 LED 数码管 显示的是红灯的倒计时 和蓝色八段 LED 数码管 显 示的是绿灯和黄灯的倒计时 4 图 2 a LED 简介 LED 显示屏作为大型显示设备的一种 具有亮度高 价格低 寿命长 维护 简便等优点 LED 数码管的结构简单 分为七段和八段两种形式 也有共阳和 共阴之分 以八段共阳管为例 它有 8 个发光二极管 比七段多一个发光二极管 用来显示 dP 即点 每个发光二极管的阳极连在一起 如图 3 6 所示 这样 一个 LED 数码管就有 I 根位选线和 8 根段选线 要想显示一个数值 就要分别 对它们的高低电平来加以控制 为方便起见 本文主要讨论共阳八段 LED 数码 显示管 其他类形的显示管与其类似 b LED 灯的显示原理 通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字 形 如 dp g f e d c b a 全亮显示为 采用共阳极连接驱动代码 代码表 如下表 5 所示 表 5 驱动代码表 显示数值 dp g f e d c b a 驱动代码 0C0H 1F9H 2A4H 3B0H 499H 592H 682H 7F8H 880H 990H 相应在程序软件上 可以通过调用程序给定的秒值经过特定计算算出需要 显示的个位和十位 然后有 DPTR 调取 LEDMAP 的代码 LED8 段数码管的设置为每个方位上的一对 2 为显示器 四个方位上总共用 8 个 LED 接在单片机的 IO 口上 虽然路口不一样 但是显示的时间在数字上是 一样的 所以两边连接的 IO 口是对称的 如图 3 7 所示 其中 A B 分别是 P0 P1 的网络标号 5 图 3 LED 连接图 南北方向发光二极管 从左到右依次为红黄绿 图 4 东西方向发光二极管 从上到下依次为红黄绿 图 5 根据本设计的特点 红绿灯的显示不可少 红绿灯的显示采用普通的发光 二极管 每条道上设置红绿黄灯 总共 2 组 如果东西红灯亮 那南北方向就 是绿灯亮 反之亦然 所以在硬件上连接图上也是对称分布的 如上图所示 AT89C51 芯片 6 图 6 a AT89C51 是一种带 4K 字节闪存可编程可擦除只读存储器 FPEROM Flash Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS 8 位 微处理器 俗称单片机 AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存 储器的单片机 单片机的可擦除只读存储器可以反复擦除 1000 次 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出 管脚相兼容 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89C51 是一种高效微控制器 AT89C2051 是它的一种精简版本 AT89C 单片 机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 b AT89C51 单片机的主要特性 与 MCS 51 兼容 4K 字节可编程闪烁存储器 寿命 1000 写 擦循环 数据保留时间 10 年 全静态工作 0Hz 24Hz 三级程序存储器锁定 128 8 位内部 RAM 32 可编程 I O 线 两个 16 位定时器 计数器 5 个中断源 两个 外部中断源和 3 个内部中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 时钟电路 时钟电路的作用是产生单片机工作所需要的时钟脉冲序列 中断系统 中断系统的作用主要是对外部或内部的终端请求进行管理与处理 AT89S51 共有 5 个中断源 其中又 2 个外部中断源和 3 个内部中断源 图 7 AT89C51 系列单片机的内部结构示意图 c 主要引脚功能 VCC 电源电压 GND 接地 7 P0 口 P0 口是一组 8 位双向 I 0 口 P0 口即可作地址 数据总线使用 又可以作为通用的 I O 口使用 当 CPU 访问片外存储器时 P0 口分时先作低 8 位地址总线 后作双向数据总线 此时 P0 口就不能再作 I O 口使用了 在访 问期间激活要使用上拉电阻 P1 口 Pl 是一个带内部上拉电阻的 8 准位双向 I O 口 P1 作为通用的 I O 口使用 P2 口 P2 是一个带有内部上拉电阻的 8 位准双向 I O 口 P2 即可作 为通用的 I O 口使用 也可以作为片外存储器的高 8 位地址总线 与 P0 口配合 组成 16 位片外存储器单元地址 P3 口 P3 口是一组带有内部上拉电阻的 8 位准双向 I 0 口 P3 口除 了作为通用的 I O 口使用之外 每个引脚还具有第二功能 具体分配如表 2 表 2 具有第二功能的 P3 口引脚 端口引脚第二功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INT0 外中断 0 P3 3 INT1 外中断 1 P3 4 T0 定时 计数器 0 外部输入 P3 5 T1 定时 计数器 1 外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上高 电平将使单片机复位 WDT 溢出将使该引脚输出高电平 设置 SFR AUXR 的 DISRT0 位 地址 8EH 可打开或关闭该功能 DISRT0 位缺省为 RESET 输出 高电平打开状态 ALE Error 当访问外部程序存储器或数据存储器时 ALE 地址锁 存允许 输出脉冲用于锁存地址的低 8 位字节 即使不访问外部存储器 ALE 仍以时钟振荡频率的 1 6 输出固定的正脉冲信号 因此它可对外输出时钟或 用于定时目的 要注意的是 每当访问外部数据存储器时将跳过一个 ALE 脉冲 对 F1ash 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如有必要 可通过对特殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置位 可禁止 ALE 操作 该位置位后 只有一条 M0VX 和 M0VC 指令 ALE 才会被激活 此外 该引脚会被微弱拉高 单片机执行外部程序时 应设置 ALE 无效 Error 程序储存允许 Error 输出是外部程序存储器的读选通信号 当 AT89S51 由外部程序存储器取指令 或数据 时 每个机器周期两次Error 有效 即输出两个脉冲 当访问外部数据存储器 没有两次有效的Error 信号 Error VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址 8 为 0000H FFFFH EA 端必须保持低电平 接地 需注意的是 如果加密位 LB1 被编程 复位时内部会锁存 EA 端状态 如 EA 端为高电平 接 VCC 端 CPU 则执行内部程序存储器中的指令 F1ash 存储器编程时 该引脚加上 12V 的编程电压 Vcc XTAL1 振荡器反相放大器及内部时钟发生器的输入端 d MCS 51 的中断源 8051 有 5 个中断源 它们是两个外中断 INT0 P3 2 和 INT1 P3 3 两个片内定时 计数器溢出中断 TF0 和 TF1 一个是片内串行口中断 TI 或 RI 这几个中断源由 TCON 和 SCON 两个特殊功能寄存器进行控制 其中 5 个中断 源的程序入口地址如表 4 所示 表 3 中断源程序入口 中断源的服务程序入口地址 中断源入口地址 外中断 0 0003H 定时 计数器 0 000BH 外中断 1 0013H 定时 计数器 0 001BH 串行口中断 0023H e 交通灯中的中断处理流程 现场保护和现场恢复 有特殊车辆要通过时就要进行中断 在中断之前 先将交通灯中断前情况 保护好 当中断执行后再恢复现场 包括信号灯和时间显示电路 中断打开和中断关闭 为了使特殊车辆通行按一下打开中断开关就可以打开中断 关闭中断开关 就关闭中断 中断服务程序 有中断产生 就必然有其具体的需执行的任务 中断服务程序就是执行中 断处理的具体内容 即如果南北方向有特殊车辆要求通过 南北方向转换为绿 灯 东西方向为红灯 如果东西方向有特殊车辆要求通过 东西方向转换为绿 灯 南北方向为红灯 中断返回 执行完中断服务程序后 必然要返回 即回交通灯信号回到中断前状态 显示时间也和中断前一样 上拉电阻 RX8 9 图 8 上拉电阻 1 当 TTL 电路驱动 COMS 电路时 如果 TTL 电路输出的高电平低于 COMS 电路的最低 高电平 一般为 3 5V 这时就需要在 TTL 的输出端接上拉电阻 以提高输出高电平的值 2 OC 门电路必须加上拉电阻 才能使用 3 为加大输出引脚的驱动能力 有的单片机管脚上也常使用上拉电阻 4 在 COMS 芯片上 为了防止静电造成损坏 不用的管脚不能悬空 一般接上拉电阻产 生降低输入阻抗 提供泄荷通路 5 芯片的管脚加上拉电阻来提高输出电平 从而提高芯片输入信号的噪声容限增强抗干扰 能力 6 提高总线的抗电磁干扰能力 管脚悬空就比较容易接受外界的电磁干扰 7 长线传输中电阻不匹配容易引起反射波干扰 加上下拉电阻是电阻匹配 有效的抑制反 射波干扰 上拉电阻阻值的选择原则包括 1 从节约功耗及芯片的灌电流能力考虑应当足够大 电阻大 电流小 2 从确保足够的驱动电流考虑应当足够小 电阻小 电流大 3 对于高速电路 过大的上拉电阻可能边沿变平缓 综合考虑以上三点 通常在 1k 到 10k 之间选取 紧急通道控制开关 南北方向 R7 对应 k1 东西方向 R8 对应 k2 图 9 复位电路 10 图 10 硬件原理图和连接图硬件原理图和连接图 总仿真电路图 图 11 南北方向绿灯东西方向红灯 11 图 12 南北方向绿灯闪烁 红色数码管显示屏到五秒蓝色数码管显示屏到三秒开始闪烁 每秒 闪烁 4 次 东西方向红灯亮 图 13 南北方向黄灯东西方向红灯 12 图 14 南北方向红灯东西方向绿灯 图 15 南北方向红灯亮 东西方向绿灯闪烁 红色数码管显示屏到五秒蓝色数码管显示屏到三 秒开始闪烁 每秒闪烁 4 次 13 图 16 南北方向红灯东西方向黄灯 图 17 点击复位键后计数复位 14 图 18 程序流程图程序流程图 开始 系统初始化 东西亮红灯 南北亮绿灯 调显示子程序 动态显示 东西 南北方向换 向 南北绿灯闪烁 南北亮黄灯 灯 中断处理子程序 处理 返回 图 2 系统总流程图 15 设计心得设计心得 经过六十个课时的努力 终于完成了自己的单片机课程设计 虽说忙碌了 点 但我觉得这样的生活充实且有成就感 当然 也获益匪浅 通过这次交通灯的课程设计 让我提高了用专业知识 专业技能分析和解 决现实问题的能力 使我在单片机的基本原理 单片机应用学习过程中 以及 在常用编程设计思路技巧的掌握方面都能向前迈了一大步 课程设计让我把以 前学习到的知识得到巩固和进一步的提高认识 并且对已有知识有了更深层次 的理解和认识 可以说在整个软件设计过程中 我不仅学会了延时的两种方法 即软件延时和硬件延时 还掌握数码管的两种显示方式 即动态显示与静态显 示 及其如何选择 当然 通过几次反复调试过程 使得我对汇编指令有了更 深刻的理解 为日后成为一名合格的应用型人才打下良好的基础 在整个课程设计过程我还掌握了一下几点 1 掌握了电子系统设计的流程 熟悉了各种硬件电路以及软件编程方法 2 理解了最单片机的各部分组成及特性 3 熟练使用了各种计算机辅助设计工具完成设计 充分掌握了这些工具的 使用 4 学会了利用 Keil uVision3 对汇编语言进行编译过程 更进一步加深了对 PROTEUS 软件的学习 通过本次的课程设计 充分意识到自己所学的东西还是非常有限的 不过 通过设计 还是学到了一些书本上没有学到的东西 为自己以后的学习起了很 大的帮助 就我个人而言 很深刻地体会到一点 那就是我们在设计过程中一 定要有一个整体的清晰的思路 知道自己的设计的对象的基本功能和核心器件 的适用及其作用 只要把握住这些主要方面 一些小问题都将围绕着这些主要 问题而逐步得到解决 同时我也懂得 在整个设计过程中 生活中也一样 一 定要意志坚定 克服自己的畏难情绪 这样才能将事情做好 才能干出一番成就 最后 对在这个课程设计过程中帮助我的所有同学和各位指导老师再次表示衷心的感 谢 参考文献参考文献 1 李朝青 单片机原理及接口技术 第 3 版 北京 北京航空航天大学出版 社 2005 2 何立民 单片机高级教程 北京 北京航空航天大学出版社 1999 3 钱逸秋 单片机原理及应用 北京 电子工业出版社 2002 4 周润景 基于 proteus 的电路及单片机系统设计与仿真 北京 北京航空航 天大学出版社 2006 5 5 潘永雄 电子线路 CAD 实用教程 西安 西安电子科技大学出版社 2006 5 6 周润景 Proteus 在 MCS 51 define DELAY 5000 时钟时间 uS define DISPLAY P0 sbit NSEMERGENCY P3 0 sbit EWEMERGENCY P3 1 static unsigned int count 0 sbit nsRed P1 0 sbit nsYellow P1 1 sbit nsGreen P1 2 sbit ewRed P1 4 sbit ewYellow P1 5 sbit ewGreen P1 6 unsigned int time 30 unsigned int state 0 unsigned int flag 0 void delay unsigned int del 延时 del mS int i for del 0 del for i 99 i 0 i void timeDisplay Red unsigned char High Low Low time 10 High time 10 DISPLAY DisplayCode Low P2 0 xf2 delay 1 P2 0 xf0 DISPLAY DisplayCode High P2 0 xf1 delay 1 P2 0 xf0 void timeDisplay Blue unsigned int time0 unsigned char High Low if time 2 time0 time 2 else time0 time 17 Low time0 10 High time0 10 DISPLAY DisplayCode Low P2 0 xf8 delay 1 P2 0 xf0 DISPLAY DisplayCode High P2 0 xf4 delay 1 P2 0 xf0 void lightDisplay if state 0 ewRed 1 nsGreen 1 else if state 2 ewRed 1 nsYellow 1 else if state 3 nsRed 1 ewGreen 1 else if state 5 nsRed 1 ewYellow 1 void stateChange Glint if state 1 if count 100 ewRed 1 else ewRed 1 18 nsGreen 1 else if state 4 if count 100 else state P1 0 x00 lightDisplay else if time 2 if state 5 state 0 else state P1 0 x00 lightDisplay else if time 30 if state 5 state 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园食品安全管理总结5篇
- 银行柜员工作计划范文5篇
- 计算机组装实习报告(15篇)
- 宣传部工作总结模板
- 线性规划问题例题
- 隐匿型阴茎护理查房
- 2022教师年度工作总结怎么写
- 小学生暑假安全演讲稿
- 教学科研总结大全【3篇】
- 毕业生的心得体会
- Minitab培训教程课件
- 技术需求信息表
- 乐山大佛介绍课件
- 血透室运用PDCA循环降低血透病人长期深静脉留置导管的感染率品管圈成果汇报
- 云南省昆明一中2024年高二上数学期末质量检测试题含解析
- 网络安全攻防演练防守方方案
- 教育政策与法规全套完整教学课件
- 关注心灵快乐成长心理健康教育主题班会
- 数胎动那些事儿胎动与胎儿安全孕妇学校课件PPT
- 冲刺高考主题班会
- 小型谷物烘干机设计
评论
0/150
提交评论