




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课题 课题 交通信号灯控制系统设计交通信号灯控制系统设计 学院 学院 机电与车辆工程学院机电与车辆工程学院 专业 专业 车辆工程车辆工程 班级 班级 车辆工程车辆工程 2014 2014 车辆工程卓越班车辆工程卓越班 姓名 姓名 杨操杨操 学号 学号 20141310010372014131001037 指导老师 指导老师 卢毓俊卢毓俊 20172017 年年 6 6 月月 1313 2 任务书 课题 交通信号灯控制系统设计 一 设计任务 在双干线路口上 交通信号灯的变化是定时的 假定 1 放行线 绿灯亮放行 25s 黄灯警告 5s 然后红灯亮禁止通行 2 2 禁止线 红灯亮禁止 30s 然后绿灯亮放行 使两条路线交替地成为放行线和禁止线 就可以实现定时交通控制 二 基本要求 1 设计系统的硬件和软件设计 2 撰写课程设计报告 3 课程设计报告由封面 设计任务书 目录 摘要 正文 参考文献 附 录等部分组成 4 封面可自行设计 应包含课程设计名称及设计题目 专业 班级 姓名 指导老师 设计日期等内容 5 正文是设计报告的核心部分 应包含以下内容 1 概述所做课题的意 义 本人所做的工作及系统的主要功能 2 硬件电路设计及描述 3 软件设 计流程图及描述 4 源程序代码 要有注释 5 体会和建议等 13 交通信号灯控制系统设计 摘摘要要 一个完整的交通灯相当于一个简单的单片机系统 该系统有交通 灯设置电路 单片机 显示电路等构成 信号灯控制的实现是通过电 路与汇编程序的结合来完成 其中信号灯的模拟采用了发光二极管 发光二极管有熄灭 点亮和闪烁三种信号 其中闪烁信号的产生运用 了定时程序来实现 而时间倒数方面引进了 LED 数字显示 克服了人 们在等待时的心急的心情 减少了红灯未灭 闯红灯的现象 电路部 分原理图是通过用 protues 软件绘制设计 汇编程序的设计与调试都 在 KEIL 上完成 最后使用 protues 软件上的虚拟元件来代替所有的 电路元件完成整个系统的调试和仿真 这样就大大保证了焊制硬件实 物能正常运行 本系统功能设计完善 采用 AT89C51 单片机为核心 具有实用 方便 灵活的特点 随着电子技术的广泛应用 车辆日益增多将成为 一种发展趋势 所以要有一套安全可靠的交通指示灯 关键字关键字 AT89C51 LED 显示 交通灯 牛思交通信号灯控制系统设计 4 4 目录目录 目录 4 第一章 概述 5 1 1设计的意义 5 1 2 设计思路 6 图 1 6 1 3 设计满足的基本功能 7 第二章方案选择 7 2 1 系统方案的确定 7 第三章 硬件电路设计 8 3 1 显示电路设计 8 3 3 复位部分电路设计 10 3 4硬件电路设计框图 11 第四章 程序设计 12 4 1 流程图 12 第五章 调试及结果分析 13 5 1 程序编写与调试 13 5 2仿真结果与分析 14 第六章 小结 15 参考文献 16 附录 1 电路图 17 附录 2 17 程序清单 17 附录 3 原件清单 32 附录 4 操作说明 33 微机原理及运用 课程设计 5 5 第一章第一章 概述概述 1 11 1设计的意义设计的意义 交通的发达 标志着城市的发达 相对交通的管理则显得越来越重要 交通 灯是城市交通中的重要指挥系统 它与人们日常生活密切相关 随着人们生活水 平的提高 对交通管制也提出了更高的要求 因此提供一个可靠 安全 便捷的 多功能交通灯控制系统有着现实的必要性 对于复杂的城市交通系统 为了确保安全 保证正常的交通秩序 十字路口 的信号控制必需按照一定的规律变化 以便于车辆行人能顺利地通过十字路口 单片机自问世以来 性能不断提高和完善 其资源又能满足很多场合的应用 加之单片机具有集成度高 功能强 速度快 体积小 功耗低 使用方便 性能 可靠 价格低廉 其易于产品化 抗干扰能力强 可在各种恶劣环境下可靠的工 作等特点 考虑到单片机具有物美价廉 功能强 使用方便灵活 可靠性高等特 点 拟采用 MCS 51 系列的单片机来实现十字路口交通信号灯的控制 另外 单片机课程设计是车辆工程本科学生的必修课程 通过交通灯模拟系 统的设计可以进一步认识单片机在控制系统中的重要性 在完成理论学习和必要 的实验后 学生掌握了单片机的基本原理和各种基本功能的应用 但对单片机的 1硬件实际应用设计和单片机完整的用户程序设计还不清楚 实际动手能力不够 因此对该课程进行一次课程设计是有必要的 交通灯模拟系统的课程设计既让学生巩固了课本学到的理论 还让学生学习 了单片机硬件电路设计和用户程序设计的整个过程 同时学习了查阅资料 参考 资料的方法 单片机的课程设计主要是通过学生独立设计方案并自己动手用计算 机电路设计软件 编写和调试用户程序 来加深对单片机的认识 充分发挥学生 的个体创新能力 交通信号灯控制系统设计 6 6 1 21 2 设计思路设计思路 假定以 P1 口线接 6 支发光二极管 即交通信号灯 因为电路中有反相器的关 系 所以口线输出高电平则 信号灯 熄灭 口线输出低电平则 信号灯 亮 为了实现上述控制要求 P1 口共输出 4 种控制码 如下表所示 P1 7 P1 6P1 5P1 4P1 3P1 2P1 1P1 0 控制 码 状态说明 空空 B 线 绿灯 B 线 黄灯 B 线 红灯 A 线 绿灯 A 线 黄灯 A 线 红灯 111100110F3H A 线放行 B 线禁 止 111101010F5H A 线警告 B 线禁 止 11011110DEH A 线禁止 B 线放 行 11101110EEH A 线禁止 B 线警 告 表 1 A 线放行 B 线禁止 A 线警告 B 线禁止 A 线禁止 B 线放行 A 线禁止 B 线警告 如下图所示 状态循环进行 F3HF5H EEHDEH 图图 1 状态转换图状态转换图 微机原理及运用 课程设计 7 7 1 31 3 设计满足的基本功能设计满足的基本功能 在双干线路口上 交通信号灯的变化是定时的 假定 1 放行线 绿灯亮放行 25s 黄灯警告 5s 然后红灯亮禁止通行 2 禁止线 红灯亮禁止 30s 然后绿灯亮放行 3 显示红绿灯时间使两条路线交替地成为放行线和禁止线 就可以实现定 时交通控制 第二章第二章方案选择方案选择 2 12 1 系统方案的确定系统方案的确定 交通灯在安全行车过程中起着十分重要的作用 现在交通灯一般设在十字 路口 在醒目位置用红 绿 黄三种颜色的指示灯 加上一个倒计时的显示计 时器来控制行车 对于一般情况下的安全行车 车辆分流发挥着作用 但根据 实际行车过程中出现的情况 如何全面有效地利用交通灯指示交通情况 我们 尝试用单片机来控制交通灯 在软 硬件方面采取一些改进措施 使交通灯在 控制中灵活而有效 硬件系统是指构成单片机系统的实体和装置 通常由运算器 控制器 存 储器 输入接口电路和输入设备 输出接口电路和输出设备等组成 单片机实质 上是一个硬件的芯片 在实际应用中 通常很难直接和被控对象进行电气连接 必须外加各种扩展接口电路 外部设备 被控对象等硬件和软件 才能构成一个 单片机应用系统 在该交通灯系统的设计中采用 AT89C52 单片机 数码管 LED 交通信号灯控制系统设计 8 8 第三章第三章 硬件电路设计硬件电路设计 3 13 1 显示电路设计显示电路设计 LED 显示器有两中工作方式 静态显示方式和动态显示方式 静态显示的特 点是每个数码管必须接一个 8 位锁存器用来锁存待显示的字型码 送入一次字型 码显示自行一直保持 直到送入新字型码为止 这种方法的优点是占用 CPU 时 间少 显示便于监测和控制 缺点是硬件电路比较复杂 成本较高 各数码管 在显示过程中持续得到显示信号 与各数码管接口的 I O 口是专用的 动态显示 的特点是将所有位数码管的段选线并联在一起 由位选线控制是哪一位数码管 有效 这样一来 就没有必要每一位数码管配一个锁存器 从而大大地简化了硬 件电路 选亮数码管采用动态扫描显示 所谓动态扫描显示即轮流向各位数码管 送出字形码和相应的位选 利用发光管的余辉和人眼视觉暂留作用 使人的感 觉好像各位数码管同时都在显示 动态显示的亮度比静态显示要差一些 所以 在选择限流电阻时应略小于静态显示电路中的 各数码管在显示过程中轮流得到 显示信号 与各数码管接口的 I O 口是共用的 该设计采用如下所示的数码管 分别显示南北和东西灯的剩余时间 分别接单片机管脚的 P1 口和 P3 口 具体的共阴数码管下见图 微机原理及运用 课程设计 9 9 图图 2 数码管数码管 3 23 2 时钟部分电路设计时钟部分电路设计 时钟电路用于产生 MCS 51单片机工作时所必须的时钟控制信号 其内部电 路在时钟信号控制下 严格地按时序执行指令进行工作 在执行指令时 CPU 首先要到程序存储器中取出需要执行的指令操作码 然后译码 并由时序电路产 生一系列控制信号去完成指令所规定操作 本设计采用12MHz 晶振和两个30Pf 瓷片电容 他们构成一个稳定的自激振 荡器 该电容的大小影响振荡器频率的高低 振荡器的稳定性和起振的快速性 交通信号灯控制系统设计 10 10 为单片机提供标准时钟 其中两个瓷片电容起微调作用 如图所示 图图 3 自磁感应器自磁感应器 3 33 3 复位部分电路设计复位部分电路设计 复位引脚 RST 通过一个斯密特触发器与复位电路相连 斯密特触发器用来 抑制噪声 在每个机器周期的 S5P2 斯密特触发器的输出电平由复位电路采样 一次 然后才能得到内部复位操作所需要的信号 复位电路通常采用上电自动复位和按钮复位两种方式 该设计采用加电直接 复位 复位电容采用10uF 电阻10000欧 为了节省元件 没有采用上电加按键 模式 加电瞬间 RES 管脚为高电平 通过电阻回路放电 使电压逐渐降为零 从而实现了复位功能 其连接图如下图所示 微机原理及运用 课程设计 11 11 图图 4 复位电路复位电路 3 43 4硬件电路设计框图硬件电路设计框图 主控部主控部 分分 秒脉冲发生秒脉冲发生 器器 交通灯交通灯 倒计时控制倒计时控制 部分部分 数码管显示数码管显示 反馈反馈 控制控制 图5 设计框图 交通信号灯控制系统设计 12 12 第四章 程序设计 4 14 1 流程图 流程图 如下给出了基本交通灯主程序流程图 四种状态的子程序流程图 T0 中断 子程序流程图 通过流程图能够更加清晰有条理的对整个程序进行观察了解 同 时流程图也是程序设计的指导 开始T0 初始化设置重载定时初值 启动定时器 T0 IS 定时是否到 调用 A 线放行 B 线禁止 的子程序 A 线显示减 1 调用 A 线警告 B 线禁止 的子程序 调用 A 线禁止 B 线放行 的子程序B 线显示减 1 调用 A 线禁止 B 线警告 的子程序返回 图6 微机原理及运用 课程设计 13 13 状态子程序 点亮相关红绿黄灯 调用 A 线显示子程 调用 B 线显示子程 判断显示是否结束 返回 图7 第五章第五章 调试及结果分析调试及结果分析 5 15 1 程序编写与调试程序编写与调试 使用 keil 软件工具时 项目开发流程和其它软件开发项目的流程极其相似 用它来完成一个工程的步骤简要描述如下 1 创建一个项目 从器件库选择目标器件 配置工具设置 2 用汇编语言创建源程序 3 用项目管理器生成应用 4 修改源程序中的错误 5 测试 生成 HEX 文件 连接应用 按照上述步骤进行程序编制 设置好相应配置后进行调试 交通信号灯控制系统设计 14 14 5 25 2仿真结果与分析仿真结果与分析 程序编译完毕生成 hex 文件 导入到电路图结果如下 图8 电路图 正确实现了显示屏30s 倒计时显示 竖直方向为 A 线 水平方向为 B 线 初始时 A 线放行绿灯亮 B 线禁止红灯亮 25s 后 A 线警告黄灯亮 B 线仍禁止 5s 后 A 线禁止红灯亮 B 线放行绿灯亮 再过5s 后 A 线仍禁止 B 线警告黄灯亮 然后循环此工作过程 微机原理及运用 课程设计 15 15 第六章第六章 小结小结 两周的时间匆匆而过 经过两周的努力工作 终于完成了自己的单片机课程 设计 虽说忙碌了点 有时还因为处理程序更改设计而熬夜 但看到自己的劳动 成果时 所产生的喜悦 把一切疲劳都赶走 那种成就感 是无法言语的 这几 天 感觉很充实 当然 也获益匪浅 在实验初期 由于不知所买的开发板的具 体布局和元件组成 只能按自己的设想进行初步的功能设计 和流程设计 我还 清晰的记得当拿到开发板时的兴奋 不过 兴奋劲一下就没了仿真就是不亮 当 天晚上 我就熬夜把程序改了过来 进行到中期时 当把程序写入模拟单片机 51 后 运行时发现结果并非设想的那么好 而且几乎是彻底的失败 不过 这 并没有打击我的积极劲 反而促使我更加专注于程序设计 然而 现实永远是那 么残酷 当满怀信心的把自认为接近完美的程序导入后 各种问题不断出现 而 令人最无法忍受的是 自己及同学都无法查处逻辑上存在的问题 上周五检查成 果时 因为程序本身原因 错误颇多 当天 检查完后 看到就去请教了他 学长把我带到他的实验室 教会了我如何用 Kell 软件一条指令一条指令的执行 程序和如何采用断点更方便的查看程序的走向以及如何看个端口的输出 各存储 单元的值 晚上 用学长教会的方法 不断模拟 终于找到了问题的根源 忽 视了 SP 的值的变法 由于我把本该使用转移指令的命令用成了子程序调用 导 致 SP 所存值不断增加 从而当进入中断而想再出来时 由于 PC 值错误 无法回 到中断前的程序 发现这个问题后 我立马改正 终于使主程序正常运行了 不 过 键盘输入程序问题犹在 经过模拟键盘程序 发现设计把输入值存入单片机 内部存储器 RAM58H 单元的操作并没有进行 仔细检查发现 R1 存的地址并不 是期望的 58H 认真分析后终于明白是自己忘了 R1 值经过上一子程序操作后已 经改变 因此 我改变了存储调用途径 使 R1 值一直保持期望值 经过又一个 通宵 终于完成了主程序的编写 比如当我调试程序时 由于 Kell 软件本身的 缺陷 经常导致我的程序编译时出现警告 导致无法顺利编译 让我误以为是自 己程序有问题 后来 我把开发板自带程序以及已经成功运行了的同学的程序写 入 发现还是有警告 从而确认是软件问题 所以我就改用同学的电脑完成了调 交通信号灯控制系统设计 16 16 试工作 还有一个问题是 模拟软件 导致 P3 3 端口信号经常自动有效而导致 程序运行时自动进入紧急情况中断 改用开发板后 情况明显改善 在这些过程 中 我学会了克制 冷静 在此 感谢所有在设计过程中给予我以帮助的同学和 老师 感谢娄艳阳同学在我电脑程序无法使用时 给我在软件上的支持 感谢徐 效文老师在专业知识上的教诲指导 授人鱼不如授之以渔 因此 特别感谢学长 对我在调试纠错上的指导 谢谢你们 参考文献参考文献 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 微机原理及运用 课程设计 17 17 附录附录 1 电路图电路图 附录附录 2 程序清单 ORG 0000H AJMP MAIN ORG 0003H LJMP AQW1 跳到设定时间中断服务程序 ORG 000BH 交通信号灯控制系统设计 18 18 LJMP AQW2 跳到跳到特种车辆自动服务程序 ORG 0013H LJMP AQW3 跳到南北有车东西无车中断服务程序 ORG 001BH LJMP AQW4 跳到东西有车南北无车中断服务程序 数字显示代码 ORG 0100H TAB DB 3FH 6H 5BH 4FH 66H 6DH 7DH 7H 7FH 6FH 主程序 ORG 0300H MAIN MOV 25H 25 南北通行时间初始值 存到25H 单元 MOV 26H 25 东西通行时间初始值 存到26H 单元 MOV SP 40H 堆栈选址 CLR P3 0 MOV TMOD 66H T0 T1都计数方式 工作模式2 启动方式 TRi 确定 MOV TL0 255 计数器0初值 低8位 MOV TH0 0 计数器0初值高8位 MOV TL1 255 计数器1初值 低8位 MOV TH1 0 计数器1初值高8位 SETB IT0 外部中断一边沿触发 SETB IT1 外部中断二边沿触发 MOV IE 8FH 开中断 SETB TR0 T0开始计数 微机原理及运用 课程设计 19 19 SETB TR1 T1 开始计数 南北绿灯东西红灯 NBLD CLR P3 0 MOV R1 25H 南北通行时间30秒 25h 30 NBLD 即东西绿灯 NBLD1 MOV P2 1EH 点亮南北绿灯东西红灯 MOV 20H R1 为南北方向显示时间做准备 MOV A R1 ADD A 5 MOV 21H A 为东西方向显示时间做准备 LCALL DISP1 显示通行所剩时间 其中有0 5秒延时 LCALL DISP1 再次显示以便数码管不闪 且再延时0 4秒以便 凑够一秒 DJNZ R1 NBLD1 判断30秒是否已完 若未完则从新显示 延时 南北黄灯闪东西红 灯 ShanHD MOV R2 5 黄灯闪亮5秒 HD MOV P2 1DH 点亮黄灯 MOV 22H R2 为显示时间做准备 LCALL DISP2 黄灯闪亮剩时显示 其中延时0 5秒 MOV P2 1FH 熄灭黄灯 LCALL DISP2 显时 且再延时0 5秒以便凑够1秒 DJNZ R2 HD 判断5秒是否已完 若未完则从新闪灭 延时和 显示 南北红灯东西绿 灯 交通信号灯控制系统设计 20 20 DXLD CLR P3 0 MOV R3 26H 东西通行20秒 26H 20 DXLD 即东西绿灯 DXLD1 MOV P2 33H 点亮南北红灯东西绿灯 MOV 24H R3 为东西方向显示时间做准备 MOV A R3 ADD A 5 MOV 23H A 为南北方向显示时间做准备 LCALL DISP3 时间显示 其中有0 5秒延时 LCALL DISP3 凑够1秒时间 DJNZ R3 DXLD1 判断20秒是否已完 南北红灯东西黄灯闪 ShanHD1 MOV R2 5 转入黄灯闪亮5秒 HD1 MOV 22H R2 为显示做准备 MOV P2 2BH 点亮南北红灯东西黄灯 LCALL DISP2 显示时间 并延时0 5秒 MOV P2 3BH 点亮南北红灯关闭东西黄灯 LCALL DISP2 显时 且再延时0 5秒以便凑够1秒 DJNZ R2 HD1 判断5秒是否到 若未到继续闪灭东西黄灯 AJMPNBLD 特种车辆通过 Tezhong MOV P2 1BH 点亮东西南北红灯 SETB P3 0 MOV R4 15 特殊车辆通过时间15秒 QHD MOV 27H R4 为显示做准备 微机原理及运用 课程设计 21 21 LCALL DISP4 显示时间 DJNZ R4 QHD 判断15秒是否到 若不到继续显示时间 CLR p3 0 AJMP NBLD 主程序到此完 延时程 序 DELAY ACALL DELAY1 10ms 延时 ACALL DELAY1 RET DELAY1 MOV R6 50 5ms 延时 5ms 50 50 2us DE6 MOV R0 50 DE7 DJNZ R0 DE7 DJNZ R6 DE6 RET 南北通行的时间显示子程序 其中有0 5秒延时 DISP1 MOV P0 0 熄灭数码管 MOV R7 25 以下调用四次5毫秒延时程序 故25 4 5毫秒 0 5秒 RP1 MOV A 20H 南北方向要显示的时间移到寄存器 A MOV DPTR TAB 要显示的数字代码表首地址 MOV B 10 DIV AB 要显示的时间与10相除 求出十位和个位 MOVC A A DPTR 找到十位的显示代码 交通信号灯控制系统设计 22 22 MOV P1 00001110B 选择南北数码管十位片 MOV P0 A 送出十位显示代码 LCALL DELAY1 延时5ms 以点亮数码管 MOV A B 把个位数移到寄存器 A MOVC A A DPTR 找到个位数显示代码 MOV P1 00001101B 选择南北数码管个位片 MOV P0 A 送出个位数显示代码 LCALL DELAY1 延时5ms 以点亮数码管 MOV A 21H 东西方向要显示的时间移到寄存器 A MOV DPTR TAB 要显示的数字代码表首地址 MOV B 10 DIV AB 要显示的时间与10相除 求出十位和个位 MOVC A A DPTR 找到十位的显示代码 MOV P1 00001011B 选择东西数码管的十位片 MOV P0 A 送出十位显示代码 LCALL DELAY1 延时5ms 以点亮数码管 MOV A B 把个位数移到寄存器 A MOVC A A DPTR 找到个位的显示代码 MOV P1 00000111B 选择东西数码管的个位片 MOV P0 A 送出个位显示码 LCALL DELAY1 DJNZ R7 RP1 是否已循环25次 25次才够0 5秒 RET 黄灯的时间显示子程序 微机原理及运用 课程设计 23 23 DISP2 MOV P0 0 熄灭数码管 MOV R7 25 以下调用两次0 01秒延时程序 故25 0 02 0 5 秒 RP2 MOV A 22H 要显示的时间移到寄存器 A MOV DPTR TAB 要显示的数字代码表首地址 MOV B 10 DIV AB 要显示的时间与10相除 求出十位和个位 MOVC A A DPTR 找到十位的显示代码 MOV P1 00001010B 选择南北数码管十位片和东西数码管十位片 MOV P0 A 送出十位显示代码 LCALL DELAY 延时10ms 以点亮数码管 MOV P1 00000101B 选择南北数码管个位片和东西数码管个位片 MOV A B 把个位数移到寄存器 A MOVC A A DPTR 找到个位数显示代码 MOV P0 A 送出个位数显示代码 LCALL DELAY 延时10ms 一点亮数码管 DJNZ R7 RP2 RET 东西通行的时间显示子程序 DISP3 MOV P0 0 熄灭数码管 MOV R7 25 以下调用两次0 01秒延时程序 故10 0 05 0 5 秒 RP3 MOV A 23H 要南北方向显示的时间移到寄存器 A MOV DPTR TAB 要显示的数字代码表首地址 交通信号灯控制系统设计 24 24 MOV B 10 DIV AB 要显示的时间与10相除 求出十位和个位 MOVC A A DPTR 找到十位的显示代码 MOV P1 00001110B 选择南北数码管十位片 MOV P0 A 送出十位显示代码 LCALL DELAY1 延时5ms 以点亮数码管 MOV A B 把个位数移到寄存器 A MOVC A A DPTR 找到个位数显示代码 MOV P1 00001101B 选择南北道数码管个位片 MOV P0 A 送出个位数显示代码 LCALL DELAY1 延时5ms 一点亮数码管 MOV A 24H 要东西方向显示的时间移到寄存器 A MOV B 10 DIV AB 要显示的时间与10相除 求出十位和个位 MOVC A A DPTR 找到十位的显示代码 MOV P1 00001011B MOV P0 A 送出十位显示代码 LCALL DELAY1 延时5ms 以点亮数码管 MOV A B MOVC A A DPTR MOV P1 00000111B 选择东西数码管个位片 MOV P0 A 送出个位显示代码 LCALL DELAY1 DJNZ R7 RP3 微机原理及运用 课程设计 25 25 RET 特殊车辆通过的时间显示子程序 DISP4 MOV P0 0 熄灭数码管 MOV R7 50 以下调用两次0 01秒延时程序 故40 2 0 01 1 秒 RP4 MOV A 27H 要显示的时间移到寄存器 A MOV DPTR TAB 要显示的数字代码表首地址 MOV B 10 DIV AB 要显示的时间与10相除 求出十位和个位 MOVC A A DPTR 找到十位的显示代码 MOV P1 00001010B 选择南北 东西数码管十位片 MOV P0 A 送出十位显示代码 LCALL DELAY 延时10ms 以点亮数码管 MOV A B 把个位数移到寄存器 A MOVC A A DPTR 找到个位数显示代码 MOV P1 00000101B 选择南北 东西数码管的个位片 MOV P0 A 送出个位数显示代码 LCALL DELAY 延时10ms 一点亮数码管 DJNZ R7 RP4 RET 设定时间子程序 根据哪个方向亮绿灯设定那个方向的通行时间 没有绿灯亮不能设定时间 中 断 直接退出 交通信号灯控制系统设计 26 26 AQW1 MOV IE 0 关闭中断允许 MOV A P2 读取交通灯状态 JNB Acc 3 DXSJ P2 3 DXSJ DXSJ 东西绿灯亮 P2 3 0 则设定东西通行时间 JNB Acc 0 NBSJ P2 0 NBSJ NBSJ 南北绿灯亮 P2 0 0 则设定南北通行时间 POP 28H POP 28H MOV DPTR NBLD 如果不能调整时间 没有绿灯亮 则退出后从状 态1开始 相当于复位 PUSH DPL PUSH DPH EXIT MOV IE 8FH 恢复开中断 RETI 南北通行时间设定 NBSJ POP 28H POP 28H MOV DPTR NBLD 此处设时为南北通行时间 PUSH DPL 把断点换成南北绿灯 NBLD 入口 PUSH DPH XSSM1 MOV A 25H 读取南北通行时间 MOV 20H A 为南北方向显示时间做准备 ADD A 5 微机原理及运用 课程设计 27 27 MOV 21H A 为东西方向显示时间做准备 LCALL DISP1 显示时间 LCALL DELAY1 MOV A P3 JNB P3 2 EXIT 判断有否按下设时确定按钮 若有则退出 若无 接着判断加时和减时信号 JNB P3 3 JX 判断有否加时信号 p3 3所接按钮是否按下 若 有跳转处理 无则扫描减时信号 JNB P3 5 JX1 判断有否减时信号 AJMP XSSM1 从循环显示时间和扫描按键情况 JX MOV A 25H 读出之前设定的时间值 存储在25H 单元 ADD A 1 在之前值基础上加1处理 MOV 25H A 回存到25H 单元 MOV 20H A 为南北显示时间做准备 ADD A 5 MOV 21H A 为东西方向显示时间做准备 LCALL DISP1 显示处理后的时间值 AJMP XSSM1 从循环显示时间和扫描按键情况 JX1 MOV A 25H 读出之前设定的时间值 存储在25H 单元 SUBB A 1 在之前值基础上减1处理 MOV 25H A 回存到25H 单元 MOV 20H A 为南北方向显示时间做准备 ADD A 5 MOV 21H A 为东西方向显示时间做准备 交通信号灯控制系统设计 28 28 LCALL DISP1 显示处理后的时间值 AJMP XSSM1 从循环显示时间和扫描按键情况 东西通行时间设定 DXSJ POP 28H POP 28H MOV DPTR DXLD 此处设时为东西通行时间 故若此步处理后返 回则应让东西通行故 PUSH DPL 把断点换成东西绿灯 DXLD 入口 PUSH DPH XSSM2 MOV A 26H 读取东西通行时间值 MOV 24H A 为东西方向显示时间做准备 ADD A 5 MOV 23H A 为南北方向显示时间做准备 LCALL DISP3 显示时间 MOV A P3 JNB P3 2 EXIT1 判断有否按下设时确定按钮 若有则退出 若 无接着判断加时和减时信号 JNB P3 3 JX2 判断有否加时信号 p3 3所接按钮是否按下 若 有跳转处理 无则扫描减时信号 JNB P3 5 JX3 判断有否减时信号 AJMP XSSM2 从循环显示时间和扫描按键情况 EXIT1 LJMP EXIT 因为如果上游指令 JNB P3 2 EXIT1 为直接 JNB p3 2 EXIT 则跳出范围 JX2 MOV A 26H 读出之前设定的时间值 存储在26H 单元 ADD A 1 在之前值基础上加1处理 微机原理及运用 课程设计 29 29 MOV 26H A 回存到26H 单元 MOV 24H A 为东西方向显时间示做准备 ADD A 5 MOV 23H A 为南北方向显示时间做准备 LCALL DISP3 显示处理后的时间值 AJMP XSSM2 从循环显示时间和扫描按键情况 JX3 MOV A 26H 读出之前设定的时间值 存储在26H 单元 SUBB A 1 在之前值基础上减1处理 MOV 26H A 回存到26H 单元 MOV 24H A 为东西方向显示时间做准备 ADD A 5 MOV 23H A 为南北方向显示时间做准备 LCALL DISP3 显示处理后的时间值 AJMP XSSM2 从循环显示时间和扫描按键情况 特殊车辆通过 中断服务程序 AQW2 POP 28H 弹出断点低位地址 POP 28H 弹出断点高位地址 MOV DPTR Tezhong PUSH DPL PUSH DPH 把断点换成特种车辆通过的程序段首地址 即 Tezhon
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化妆品知识培训学习课件
- 亮点6年级下册数学试卷
- 期末赢家九下数学试卷
- 审计岗位面试题目及答案
- 南京试卷数学试卷
- 桥梁气候因素分析与应对方案
- 机房监理基础知识培训课件
- 高职机械类专业基础课思政元素设计与实施
- 眉山中学入学考数学试卷
- 2025年小学老师笔试题目及答案
- 人教版初中英语试讲稿逐字稿66篇
- 手术器械保养与维护
- 《灌区数字孪生平台与-四预-功能建设》
- DB45T 2656-2023 仫佬族民居规范
- 沪教牛津版九上英语期末复习-专题02 Units 1~8 语法精讲
- 住宅物业安全隐患巡查制度
- 劳保用品验收标准
- 2024年北师大版八年级上册全册数学单元测试题含答案
- 军工PCB市场潜力
- 智能机器人售后服务流程预案
- 医院“安康杯”竞赛活动实施方案2
评论
0/150
提交评论