交通灯控制器的单片机设计正文.doc_第1页
交通灯控制器的单片机设计正文.doc_第2页
交通灯控制器的单片机设计正文.doc_第3页
交通灯控制器的单片机设计正文.doc_第4页
交通灯控制器的单片机设计正文.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

目录目录 引引 言言 1 1 1 1 概述概述 2 2 1 1 设计背景 2 1 2 设计意义 2 1 3 设计要求 3 1 4 设计思想 3 2 2 单片机交通控制系统总体设计单片机交通控制系统总体设计 4 4 2 1 单片机交通控制系统的通行方案设计 4 2 2 单片机交通控制系统的基本构成及原理 4 3 3 系统软件程序的设计系统软件程序的设计 6 6 3 1 单片机的概述 6 3 2 八段 LED 数码管 6 3 3 其它器件 7 4 4 系统软件程序的设计系统软件程序的设计 8 8 4 1 程序主体设计流程 8 4 1 1 定时器原理 9 4 1 2 软件延时原理 9 4 1 3 中断原理 10 4 1 4 状态灯显示及判断 10 4 1 5LED 倒计时显示 11 4 1 6 程序源代码 11 总总 结结 1717 致致 谢谢 1818 参考文献参考文献 1919 附录附录 2020 交通灯信号控制器 1 引引 言言 交通控制系统是近现代社会随着物流 出行等交通发展产生的一套独特的公共管理 系统 要保证高效安全的交通秩序 除了制定一系列的交通规则 还必须通过一定的科 技手段加以实现 1858 年 在英国伦敦主要街头安装了以燃煤气为光源的红 蓝两色的机械扳手式信 号灯 用以指挥马车通行 这是世界上最早的交通信号灯 1868 年 英国机械工程师纳 伊特在伦敦威斯敏斯特区的议会大厦前的广场上 安装了世界上最早的煤气红绿灯 它 由红绿两以旋转式方形玻璃提灯组成 红色表示 停止 绿色表示 注意 1869 年 1 月 2 日 煤气灯爆炸 使警察受伤 遂被取消 电气启动的红绿灯出现在美国 这种红绿灯由红绿黄三色圆形的投光器组成 1914 年始安装于纽约市 5 号大街的一座高塔上 红灯亮表示 停止 绿灯亮表示 通行 1918 年 又出现了带控制的红绿灯和红外线红绿灯 带控制的红绿灯 一种是把压 力探测器安在地下 车辆一接近红灯便变为绿灯 另一种是用扩音器来启动红绿灯 司 机遇红灯时按一下嗽叭 就使红灯变为绿灯 红外线红绿灯当行人踏上对压力敏感的路 面时 它就能察觉到有人要过马路 红外光束能把信号灯的红灯延长一段时间 推迟汽 车放行 以免发生交通事故 信号灯的出现 使交通得以有效管制 对于疏导交通流量 提高道路通行能力 减 少交通事故有明显效果 1968 年 联合国 道路交通和道路标志信号协定 对各种信号 灯的含义作了规定 绿灯是通行信号 面对绿灯的车辆可以直行 左转弯和右转弯 除 非另一种标志禁止某一种转向 左右转弯车辆都必须让合法地正在路口内行驶的车辆和 过人行横道的行人优先通行 红灯是禁行信号 面对红灯的车辆必须在交叉路口的停车 线后停车 黄灯是警告信号 面对黄灯的车辆不能越过停车线 但车辆已十分接近停车 线而不能安全停车时可以进入交叉路口 交通灯信号控制器 2 1 1 概述概述 1 1 设计背景 随着人口快速的增多 交通工具的爆炸性的发展 以及道路资源的有限性 交通控 制就应运而生 在人类的生活 工作环境中 交通扮演着极其重要的角色 人们的出行 都无时不刻与交通打着交道 自 18 世纪工业革命以来 工业发展带动整个交通运输的发 展 从而催生了单独的交通控制学问与管理机构 交通控制系统是近现代社会随着物流 出行等交通发展产生的一套独特的公共管理 系统 要保证高效安全的交通秩序 除了制定一系列的交通规则 还必须通过一定的技 术手段加以实现 现代人类科学技术 特别是电子科学技术的发展和成熟能比较好的解 决系统建立中硬软件方面要求的技术难题 目前 交通控制方面的研究能完全实现自动 智能化 甚至将整个区域整合成一个统一的系统范围 还能根据正常时段以及特定突发 时段的情况进行科学的自动调整 交通对于社会的工业经济和人们的生活生产中有着十分重要的意义 随着单片机和 传感技术的迅速发展 自动检测领域发生了巨大变化 交通自动监测控制方面的研究有 了明显的进展 并且必将以其优异的性能价格比 逐步取代传统的交通控制措施 1 2 设计意义 交通控制系统是近现代社会随着物流 出行等交通发展产生的一套独特的公共管理系 统 要保证高效安全的交通秩序 除了制定一系列的交通规则 还必须通过一定的技术 手段加以实现 现代电子科学技术的发展和成熟能比较好的解决系统建立中硬软件方面 要求的技术难题 目前 交通控制方面的研究能完全实现自动智能化 甚至将整个区域 整合成一个统一的系统范围 还能根据正常时段以及特定突发时段的情况进行科学的自 动调整 交通控制研究的发展 旨在解决人类交通因需求的增多而日益繁重带来的问题 局限 于道路建设的暂时不足和交通工具的快速增长 就要使更多的车辆安全高效的利用有限 的道路资源 避免因无序和抢行等无控制原因造成的不必要阻塞甚至瘫痪 另外 针对 整个交通线路车辆的多少实时调整和转移多条线路的分流也十分必要 交通网络是城市的动脉 象征着一个城市的工业文明水平 现在各大中城市交通建设 已初具规模 而部分小城市建设日益加快 交通控制的提高势在必行 研发交通控制技 术是十分有潜力的 具有优良科学的交通控制技术对资源物流和人们出行都是十分有价 值的 保证交通线路的畅通安全 才能保证出行舒畅 物流准时到位 甚至是生命通道 的延伸 本设计尝试模拟单个路口的交通控制 目前可以采用以单片机为核心来设计 也可以 交通灯信号控制器 3 采用 EDA 技术 数字集成电路等多种方案来实现 将各种方案进行比较 本课题采用以 单片机为核心的电子设计方法 充分了解控制方法以及运用相关知识加以实现 我们将 加深对交通控制控制电路的理解 为今后设计出更加精良的交通控制电路打好基础 1 3 设计要求 设 A 道为东西道 B 道为南北道 A 道放行时间 10s B 道放行时间为 15s 绿灯放行 红灯停止 放行的最后三秒绿灯闪烁 绿灯转红灯时黄灯亮 3s 同时该交通信号灯控制器附加功能 当一道一直有车另一道无车时 交通控制系统 能立即让有车的车道放行 当有紧急车辆 如 110 120 119 等急救车 要求通过时 此系统应能禁止普通车辆通行 路口的信号灯全部变红 以便让紧急车辆通过 紧急车 辆通过后 交通灯恢复先前状态 1 4 设计思想 1 分析目前交通路口的基本控制技术以及各种通行方案 并以此为基础提出自己 的交通控制的初步方案 2 确定系统交通控制的总体设计 包括 十字路口具体的通行禁行方案设计以及 系统应拥有的各项功能 在这里 本设计除了有信号灯状态控制能实现基本的交通功能 还增加了倒计时显示提示 3 进行智能传感器的硬件电路 显示电路等的设计和对各器件的选择及连接 大 体分配各个器件及模块的基本功能要求 4 进行软件系统的设计 对于本系统 本人采用单片机汇编语言编写 对单片机 内部结构和工作情况做了充足的研究 了解定时器 中断以及延时原理 总体上完成了 软件的编写 交通灯信号控制器 4 2 2 单片机交通控制系统总体设计单片机交通控制系统总体设计 2 1 单片机交通控制系统的通行方案设计 设在十字路口 分为东西向和南北向 在任一时刻只有一个方向通行 另一方向禁 行 持续一定时间 经过短暂的过渡时间 将通行禁行方向对换 其具体状态如下图所 示 东西路口红灯亮 南北路口绿灯亮 同时开始 18s 倒计时 以 7 段数码管显示时间 18s 倒计时结束后开始 6s 倒计时 南北路口的绿灯闪烁 计时到最后 3s 时 南北路口黄 灯闪烁 完成一次这样的循环需要 18s 18s 结束后 南北路口红灯亮 东西路口绿灯亮 并重新 13s 倒计时 依次循环 图 2 1 交通状态 2 2 单片机交通控制系统的基本构成及原理 单片机设计交通灯控制系统 可用单片机直接控制信号灯的状态变化 基本上可以 指挥交通的具体通行 当然 接入 LED 数码管就可以显示倒计时以提醒行使者 更具人 性化 交通灯信号控制器 5 图 2 2 系统的总体框图 交通灯信号控制器 6 3 3 系统软件程序的设计系统软件程序的设计 3 1 单片机的概述 单片微型计算机简称单片机 又称微控制器 嵌入式微控制器等 属于第四代电子计 算机 它把中央处理器 存储器 输入 输出接口电路以及定时器 计数器集成在一块芯片 上 从而具有体积小 功耗低 价格低廉 抗干扰能力强且可靠性高等特点 因此 适合 应用于工业过程控制 智能仪器仪表和测控系统的前端装置 正是由于这一原因 国际上 逐渐采用微控制器 MCU 代替单片微型计算机 SCM 这一名称 微控制器 更能反映单片机 的本质 但是由于单片机这个名称已经为国内大多数人所接受 所以仍沿用 单片机 这 一名称 单片机的主要特点有 1 具有优异的性能价格比 2 集成度高 体积小 可靠性高 3 控制功能强 4 低电压 低功耗 3 2 八段 LED 数码管 LED 显示屏作为大型显示设备的一种 具有亮度高 价格低 寿命长 维护简便等优 点 LED 数码管的结构简单 分为七段和八段两种形式 也有共阳和共阴之分 以八段共 阳管为例 它有 8 个发光二极管 比七段多一个发光二极管 用来显示 dp 即点 每个发 光二极管的阳极连在一起 如下图所示 这样 一个 LED 数码管就有 I 根位选线和 8 根段 选线 要想显示一个数值 就要分别对它们的高低电平来加以控制 为方便起见 本文主 要讨论共阳八段 LED 数码显示管 其他类形的显示管与其类似 图 3 1 LED 数码管 LED 灯的显示原理 通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显 示不同的字形 如 dp g f e d c b a 全亮显示为 8 采用共阴极连接驱动代码 代码 表如下表 3 1 所示 交通灯信号控制器 7 表 3 1 驱动代码表 显示数值 dp g f e d c b a 驱动代码 0001111113FH 10000011006H 2010110115BH 3010011114FH 40110011066H 5011011016DH 6011111017DH 70000011107H 8011111117FH 9011011116FH 相应在程序软件上 可以通过调用程序给定的秒值经过特定计算算出需要显示的个 位和十位 然后有 DPTR 调取 LEDMAP 的代码 3 3 其它器件 1 发光二极管 根据本设计的特点 红绿灯的显示不可少 红绿灯的显示采用普通的发光二极管 每个方向上设置红绿黄灯 总共 4 组 如果东西红灯亮 那南北方向就是绿灯亮 反之 亦然 所以在硬件上连接图上也是对称分布的 如下图 3 2 所示 图 3 2 信号灯的连接 交通灯信号控制器 8 4 4 系统软件程序的设计系统软件程序的设计 4 1 程序主体设计流程 计完 25s 后 南北绿灯亮 东西红灯亮 确定中断 设定定时时间和方 式 绿灯 15s 倒计时红 灯 30s 倒计时 延时后东西南北黄 灯闪烁 3s 开始 判断东西南北倒 计完 计完 18s 后 东西绿灯亮 南北红灯亮 计完 15s 后 东西红灯亮 南北绿灯亮 延时后东西南北黄 灯闪烁 3s 结束 计完 18s 后 南北红灯亮 东西绿灯亮 判断东西南北倒 计完 计完 25s 后 南北绿灯亮 东西红灯亮 计完 15s 后 南北绿灯亮 东西红灯亮 交通灯信号控制器 9 图 4 1 流程图 4 1 1 定时器原理 定时器工作的基本原理其实就是给初值 让它不断加 1 直至减完为模值 这个初值 是送到 TH 和 TL 中的 它是以加法记数的 并能从全 1 到全 0 时自动产生溢出中断请求 因此 我们可以把计数器记满为零所需的计数值 即所要求的计数值设定为 C 把计数初 值设定为 N 可得到如下计算通式 N M C 式中 M 为计数器模值 计数值并不是目的 目的是时间值 设计 1 次的时间 即定 时器计数脉冲的周期为 T0 它是单片机系统主频周期的 12 倍 设要求的时间值为 T 则 有 C T T0 计算通式变为 T M N T0 模值和计数器工作方式有关 在方式 0 时 M 为 8192 在方式 1 时 M 的值为 65536 在方式 2 和 3 为 256 就此可以算出各种方式的最大延时 如单片机的主脉冲频率为 12MHZ 经过 12 分频后 若采用方式 最大延时只有 8 129 毫秒 采用方式 最大延时 也只有 65 536 毫秒 这就是为什么扫描周期为 50ms 的原因 4 1 2 软件延时原理 MCS 51 的工作频率为 2 12MHZ 我们选用的 8051 单片机的工作频率为 6MHZ 机器周 期与主频有关 机器周期是主频的 12 倍 所以一个机器周期的时间为 12 1 6M 2us 我们可以知道具体每条指令的周期数 这样我们就可以通过指令的执行条数来确 定 1 秒的时间 具体的延时程序分析 DELAY MOV R4 08H 延时 1s 子程序 DE2 LCALL DELAY1 DJNZ R4 DE2 RET DELAY1 MOV R6 0 延时 125ms 子程序 MOV R5 0 DE1 DJNZ R5 DJNZ R6 DE1 RET MOV RN DATA 这条指令的字节数为 2 机器周期数为 1 所以此指令的执 行时间为 2ms DELAY1 为一个双重循坏 循环次数为 256 256 65536 所以延时时间 交通灯信号控制器 10 65536 2 131072us 约为 125us DELAY R4 设置的初值为 8 主延时程序循环 8 次 所以 125us 8 1 秒 由于单片机的运行速度很快其他的指令执行时间可以忽略不计 4 1 3 中断原理 本系统主要使用了外部中断 中断信号有引脚 INT0 和 INT1 输入 低电平有效 CPU 每个时钟周期都会检测 INT0 和 INT1 上的信号 8051 允许外部中断以电平方式或负边沿 方式两种中断方式输入中断请求信号 可由用户通过设置 TCON 中 IT0 和 IT1 位的状态来 实现 以 IT0 为例 IT0 0 为电平触发方式 IT0 1 为负边沿触发方式 本设计采用 电平方式 IE0 为其中断标志位 有中断信号则置位 中断服务子程序响应后 IE0 自动 清零 IE 中的 EA 为允许中断的总控制位 为 1 开启 EX0 为外部中断允许控制位 为 1 开启 在优先级的允许下 一旦有外部中断信号产生 单片机 CPU 首先保护断点 PC 值进栈 然后执行相应的中断服务子程序 执行完后 用 RETI 指令返回 此时 CPU 会从堆栈中取 保存的断点地址 送回 PC 程序再正常执行 4 1 4 状态灯显示及判断 在本设计中 实际控制的灯只有 6 个 即 东西红灯 东西绿灯 东西黄灯 南北 红灯 南北绿灯 南北黄灯 共有 4 钟状态 东西红灯亮 南北绿灯亮 00100001 21H 东西红灯亮 南北黄灯 亮 00010001 11H 东西绿灯亮 南北红灯亮 00001100 0CH 东西黄灯亮 南北红 灯亮 00001010 0AH 括号中是 P1 端口 8 个引脚值 P1 7 P1 6 P1 5 P1 4 P1 3 P1 2 P1 1 P1 0 以及对应 的十六进制码 在用于显示发光二极管时 直接由 MOV 指令将十六进制码送入 P1 口 刚才的 4 个状态是依次变换的 这就要涉及到状态的判断和衔接了 先把状态值送 到 P1 端口 再赋时间值 若相同则判断成功当前状态 再把下一状态的状态码送显 P1 即可 程序如下 MAIN MOV P1 0CH MOV R6 0DH MOV R7 0AH MAIN1 CJNE R7 00H MAIN1 MOV P1 0AH MAIN2 MOV R7 00H CJNE R6 00H MAIN2 交通灯信号控制器 11 MOV P1 21H MOV R7 0FH MOV R6 12H MAIN3 CJNE R6 00H MAIN3 MOV P1 11H MAIN4 MOV R6 00H CJNE R7 00H MAIN4 4 1 5 LED 倒计时显示 LED 计时每 1 秒都要刷新 1 次 那么计时满 1 秒时就要将存储时间的工作寄存器 R4 减 1 然后送入 LED 显示程序中显示 下面要将时间数据 R6 或 R7 的十位 个位分开送 入 P0 端口 首先将 R6 或 R7 除以 10 整数即十位放在 A 中 余数即个位放在 B 中 设置 7 段 LED 显示数据的数据表 用数据指针寄存器 DPTR 指向数据表的首地址 再加上 A 中 的偏移量 就可以指向十位数字 然后送显即可 个位显示同理 具体程序如下 MOV A R6 MOV B 10 DIV A B MOV DPTR TABLE MOVC A A DPTR MOV P0 A MOV A B MOVC A A DPTR MOV P0 A TABLE DB 3FH 06H 5BH 4FH 66H 6DH DB 7DH 07H 7FH 6FH 4 1 6 程序源代码 ORG 0000H LJMP MAIN0 ORG 0003H LJMP INTT0 ORG 0013H LJMP INTT1 交通灯信号控制器 12 ORG 0100H MAIN0 MOV 30H 08H MOV R6 00H MOV R7 00H MOV DPTR TABLE MOV TMOD 01H MOV TL0 0DCH MOV TH0 0BH SETB TR0 SETB EA SETB EX0 SETB EX1 MAIN MOV P1 0CH MOV R6 0DH MOV R7 0AH MAIN1 LCALL DELAY1 CJNE R7 00H MAIN1 MOV P1 0AH MAIN2 LCALL DELAY1 MOV R7 00H CPL P1 1 CJNE R6 00H MAIN2 MOV P1 21H MOV R7 0FH MOV R6 12H MAIN3 LCALL DELAY1 CJNE R6 00H MAIN3 MOV P1 11H MAIN4 LCALL DELAY1 交通灯信号控制器 13 MOV R6 00H CPL P1 4 CJNE R7 00H MAIN4 LJMP MAIN DELAY1 MOV A R6 MOV B 10 DIV AB MOVC A A DPTR MOV P2 7FH MOV P0 A LCALL D1MS MOV A B MOVC A A DPTR MOV P2 0BFH MOV P0 A LCALL D1MS MOV A R7 MOV B 10 DIV AB MOVC A A DPTR MOV P2 0DFH MOV P0 A LCALL D1MS MOV A B MOVC A A DPTR MOV P2 0EFH MOV P0 A LCALL D1MS JBC TF0 LOOP 交通灯信号控制器 14 LJMP DELAY1 LOOP MOV TL0 0DCH MOV TH0 0BH MOV A 30H DEC A MOV 30H A JNZ DELAY1 DEC R6 DEC R7 MOV 30H 08H RET INTT0 PUSH P1 PUSH TH1 PUSH TL1 MOV P1 09H MOV R2 40 DEY0 ACALL DELAY DJNZ R2 DEY0 POP TL1 POP TH1 POP P1 RETI INTT1 CLR EA PUSH P1 PUSH TH1 PUSH TL1 SETB EA JB P3 0 BOP MOV P1 0CH 交通灯信号控制器 15 SJMP DEL1 BOP JB P3 1 EXIT MOV P1 0DEH DEL1 MOV R5 30 NEXT ACALL DELAY DJNZ R5 NEXT EXIT CLR EA POP TL1 POP TH1 POP P1 SETB EA RETI DELAY MOV R3 0AH MOV TH1 3CH MOV TL1 0B0H SETB TR1 LP1 JBC TF1 LP2 SJMP LP1 LP2 MOV TH1 3CH MOV TL1 0B0H DJNZ R3 LP1 RET TABLE DB 3FH 06H 5BH 4FH 66H 6DH DB 7DH 07H 7FH 6FH D1MS MOV R4 10 LOOP2 MOV R3 250 LOOP3 DJNZ R3 LOOP3 DJNZ R4 LOOP2 RET 交通灯信号控制器 16 END 交通灯信号控制器 17 总总 结结 在平时的学习中 我们所学的知识大都是课本上的 在机房的练习大家也都是分散 的对各个章节的内容进行练习 因此 缺乏一种系统的设计锻炼 在课本所学结束以后 这样的课程设计十分有利于学生将知识系统的总结到一起 通过定时 中断以及查表指 令等组合成一个交通灯控制系统 使得我对系统的整个框架的设计有了一个很好的锻炼 这不仅有助于大家找到自己感兴趣的题目 更可以锻炼大家单片机知识的应用 经过这 两个星期的时间 我基本完成了老师所提出的课程设计的要求 由于我对中断不是很了 解 因此开始的时候卡了很久 后来经过在网上不断的搜索找到了合适的资料 而这期 间的搜索也让我知道了几个关于 51 单片机的论坛 里面有好些资料 都是一些小的程序 很适合初学者以及有一些基础的人学习 我感觉相对于在网上找到了这次课设的相关资 料 这些论坛才是更值得我欣喜的 因为有了这些 我便能经常和像我一样的初学者进 行探讨 彼此学习 而本次课设中 我认为对我来说最大的收获是学习到了如何通过查表指令实现 LED 灯与数码管显示器的统一 这是很重要的 我也知道单片机可以有很多的变通 其实并 不难 只需要寻找正确的方法 我知道自己在以往的学习中 对课本知识掌握的知识不 够牢固 不够全面 理解得也不够深入 不会融会贯通 只会一些表面的知识 老师给了这么一个让每个人自我锻炼 自我学习的机会 我很庆幸 知道了学习与 实践相结合的重要性 认识了自己的不足 这会让自己以后的学习中少走不少的弯路 以后我会不断的充实 完善自我 交通灯信号控制器 18 致致 谢谢 为期两周的单片机课程设计在田老师的合理安排和认真监督下 很快了就结束了 在这两周的时间里 是田老师的耐心指导帮我明确了方向 是小组同学的相互帮助给我 作了导航 让我增强了信心 鼓足干劲 开始着手设计 每天 老师都会帮助我们解答 一些我们想不明白的问题 在老师的悉心指导下 我们的程序终于做出来了 本来以为一切都快结束了 没想到在真正连接试验箱时 问题百出 让我们都失去 了信心 这时候 老师给予我们无私的帮助 教育我们要有耐心 慢慢检查 并告诉我 们 不是每个人都能一次就把程序仿真好 一个完整的程序总

温馨提示

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

评论

0/150

提交评论