




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 1 页 1 概述 1 1 设计目的 1 掌握 CPU 与各芯片管脚连接方法 提高接口扩展硬件电路的连 接能力 2 通过对交通灯信号自动系统的模拟控制 进一部提高应用 8255A 并行接口技术 8253 定时功能 8259A 中断管理控制器的综合应用能力 3 掌握基本汇编源程序编制方法 学会综合考虑各种设计方案的对 比和论证 1 2 设计要求 交通信号灯自动控制系统须满足下列要求和功能 1 首先车行道亮绿灯 45s 同时人行道亮红 45s 2 45s 后 车行道黄灯闪烁 3 次 亮 灭各 1s 此时人行道仍维持 红灯 3 6s 后 转为人行道亮绿灯 20s 车行道亮红灯 20s 4 20s 后 再转到第 1 步 如此循环往复 5 当有车闯红灯时 能实现报警信号持续 3 s 的扩展功能 1 3 设计方法及步骤 1 设计系统硬件部分 1 先进行方案论证 确定最终采取硬件定时还是软件定时 是查询 方式还是中断方式 2 在具体甄选设计过程中可能要设计的芯片 分析它们的功能特点 确定它们的工作模式 3 按照各芯片的使用特点以及本系统的设计要求逐步连接 画出系 统硬件连接图 2 设计系统的软件部分 1 先进行程序编制方式的方案论证 讨论分析 确定是采用宏程序 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 2 页 调用还是子程序调用模式 2 确定本系统设计可能涉及的源程序各个模块 明确各个模块的各 自功能 分清它们相互之间的调用关系 3 画出各个模块的程序流程图 4 依据流程图 编制出交通信号灯自动控制系统的完整汇编源程序 1 4 设计说明 1 本设计采用共阳极的发光二极管模拟对应的交通信号灯的型式 参见后面 系统硬件部分设计 中 总体设计 这一节 2 本设计关于有车闯红灯报警的扩展功能 是通过红外线接收装置 实现的 具体分析见后面 可编程芯片说明及其地址范围确定 中 8254 定时 计数器 这一节 3 在本设计的最初方案中 本来是有电子眼拍摄闯红灯车牌号的这 一很实用 很现实化的扩展功能的 但由于实现这种功能的电路芯片资料难 以搜集 芯片电路连接复杂以及芯片工作模式 工作环境 工作特点的难以 确定 最终被舍弃 只留下报警功能 4 本设计在很多方面 比如译码器的选择 定时器选型 程序调用 方式等等尽量做到不与本组其他成员雷同 程序编制力求简便清晰 硬件连 接图在保证每根具体用到的管脚线都能被表示出来的同时 力求线路连接清 晰明确 尽量不使线与线之间过于缠绕 2 方案论证 2 1 软件定时与硬件定时 本任务要求交通信号灯能实现自行定时 延时 切换等功能 即能实现 交通信号灯自动控制 一般计算机控制系统实现定时或延时有两种基本方 法 利用软件定时或使用可编程硬件芯片 即硬件定时 软件定时 即让机器执行一段程序 这个程序没有具体的执行目的 显 然利用执行每条指令 CPU 所花费的时间 可实现延时功能 这种方法容易 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 3 页 实现 仅需选用恰当指令并安排循环即可实现 定时时间调整方便 但不能 做到精确定时 另外 时间调整是以一条指令执行时间为基准 占用 CPU 资源 降低 CPU 利用率 硬件定时 即使用可编程定时 计数器硬件芯片定时 这种芯片内部有一 个可编程定时器 其定时值 定时范围可以很容易地由软件程序改变 定时 时间到时可发出某种形式的信号通知外设或 CPU 定时器的输出频率和波形 等均由程序设定 因而使用灵活 功能强 综合软 硬件定时的各种优缺点 考虑到交通信号灯精确换灯的要求 以及交通信号等需要方便 灵活地调整换灯时间等特点 我选用硬件定时来 完成任务 2 2 查询方式与中断方式 定时时间到 比如车道绿灯亮 45s 后需换成黄灯闪烁 完成这一转换工 作 有两种工作方式 查询方式和中断方式 查询方式即 CPU 在与外设传输数据 本设计为 8086 传输数据给 8255A 从而控制交通信号灯换灯 前 一直不停检查外设状态 当外设准备好时方 传输数据 本设计为 8086 不断测试 8255A 状态口 PC1 当 PC1 变为低电平 时 表明定时时间到 CPU 可传输数据 控制信号灯切换 中断方式可以不让 CPU 主动去查询外设状态 而是让外设在数据准备 好 定时时间到后 之后再通知 CPU CPU 继而开始与外设交换数据控制 外设工作 显然查询方式相比与中断方式 使 CPU 利用率大大降低 因为 CPU 要 用大量时间去执行状态查询程序 但考虑到本课程设计的主要目的是控制信 号灯切换 即 CPU 工作最终目的还是与外设传输数据 控制外设工作 即 这种状态查询是有必要的 CPU 的不间断的状态查询并非多余的 而且查询 方式可使指令执行效率提高 指令执行目的更加明确 软件编程更加简便 避免了中断方式繁琐的中断矢量表的建立 中断程序的汇编等等 因而我选 用查询方式来实现交通信号灯的自动控制 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 4 页 2 3 8253 定时 计数器与 8254 定时 计数器 8253 和 8254 都是能实现定时 延时功能的可编程定时计数器 可以轻 松地实现所需要的功能 两者的功能与工作方式 工作环境皆类似 区别仅 在于 8254 的工作频率更高 可达到 10MHZ 另外 8254 比 8253 还多出回 读功能 考虑到本组大多数人都选用 8253 为避免重复雷同 我选用 8254 定时 计数器 实际上两者并没多大区别 2 4 方案确定 综上所述 我选用的方案最终为利用可编程计数器 8254 实现硬件定时 用查询方式控制 8086 工作 用并行 I O 接口 8255A 实现 8086 与外设 本设 计采用发光二极管模拟交通信号灯 数据交换 用中断控制器 8259A 实现闯 红灯报警的扩展功能 3 硬件部分设计 3 1 总体设计 正如 A3 图纸系统硬件连接图所示 CPU 我选用 INTEL 公司的 8086 它足以满足交通信号灯自动控制系统的功能要求 存储器选用两片型号为 6116 的静态 RAM 一片作为奇片 一片作为偶片 总存储容量可达到 4KB 既可以读也可以写 足以满足要求 由于 8086CPU 有 16 根地址与数据共用 线 故有必要将地址码与数据码分开 8086 采用了分时传送的方法 即先传 送地址码 再传送数据码 故必须用锁存器将地址码锁存起来 我选用 74 系列的 74LS373 作为地址锁存器 由于外设 内存存取数据速度不匹配 故 有必要使用缓冲器来暂时记忆存储数据 我选用 74 系列的 74LS245 作为数 据缓冲器 存储器译码我采用全译码方式 用 74LS688 比较译码器可减少逻 辑组合电路 可编程芯片 8255A 8254 8259A 的片选信号译码 我采用线 译码方式 这样可以保证其端口地址只有 8 位 易于程序编写 因而 74LS138 译码器是最好的选择 至于 8255A 8254 8259A 的选用目的已在前面解释 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 5 页 过 这里不再重复 在具体设计该系统时 我选用发光二极管 LED 来模拟 红 黄 绿灯的亮和灭 由于实际生活中只需要 10 盏灯就可实现车行道 人行道的通行 如图所示 故这里我也选用 10 支二极管 其对应关系如表 所示 LED1 LED5 与 8255A PA 口相连 LED6 LED10 与 PB 口相连 PC1 口作为状态查询口 PC6 口输出可实现闯红灯报警的扩展功能 车 行 道 红 LED10 黄 LED9 绿 LED8 LED3 红 LED4 黄 LED5 绿 LED2 LED1 绿 红 绿 红 LED6 LED7 人 行 道 图 1 信号灯与 LED 对应图 人行道红灯 人行道绿灯 车行道红灯 车行道黄灯 车行道绿灯 LED1 LED6 LED2 LED7 LED3 LED8 LED4 LED9 LED5 LED10 PA0 PB0 PA1 PB1 PA2 PB2 PA3 PB3 PA4 PB4 表 1 LED 与 8255A 管脚连接对应表 3 2 CPU 选型 CPU 我选用的是 8086 其管脚分配图如图所示 部分管脚采用分时复 用方式 构成了 40 条管脚的双列直插封装 它有两种工作模式 我采用的 是最小模式 故 33 号管脚应接高电平 8086 内部结构由指令执行部件 EU 和总线接口部件 BIU 两部分构成 EU 负责执行指令 BIU 负责取指令 读出操作数和写入结果 两个单元相 互独立工作 有效地加快系统的运算速度 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 6 页 图 2 8086 管脚分配图 3 3 存储器选型 存储器我选用两片 6116 型号的静态 RAM 容量为 4KB 片选信号与 A0 相连的是偶片 主要用于低 8 位数据总线上进行字节传送 与 BHE选中的是 奇片 主要用于高 8 位数据总线上字节传送 当 A0 和 BHE都选中的时候 可进行 16 位数据总线字传送 RAM 的主要功能是存储程序 变量等 如果计算机关机 这些信息不 再存在 本电路中 A12 A19作为片选信号 均为低电平 故存储范围为 0H 0FFFH 图 3 6116 管脚分类图 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 7 页 A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0 最小地址序号 00000000000000000000 最大地址序号 00000000111111111111 表2 4KB RAM地址范围表3 3 4 可编程芯片说明及其地址范围确定 3 4 1 8254 定时 计数器及其地址范围 8254 与 8253 功能类似 但 8254 工作频率更高 可达 10MHZ 且 8254 还可进行回读 但这一功能在本设计中用不上 因而对 8254 的说明也可看 作是对 8253 的介绍 事实上两者管脚图接近完全相同 图 4 8254 管脚图 8254 芯片包含 3 个功能完全相同的计数通道 称为通道 0 通道 1 通 道 2 有 6 种工作方式 本设计要求实现的最大 45s 故必须采用两个计数 器级联方式 工作在方式 2 分频功能 另一个计数器 1 工作在方式 5 OUT1 门产生中断 实现闯红灯报警 3s 的功能 三个计数器具体连接图如 A3 图纸 硬件连接图所示 CLK0 CLK1 都通入 1 2MHZ 的脉冲 OUT0 与 CLK2 端 相连 均工作在方式 2 分频 由 OUT2 门产生低电平作为状态信号实现延时 功能 计数器 1 工作在方式 5 GATE1 门上升沿触发 如图所示 当车行道红 灯时 则开中断 当有车闯红灯时 就会阻挡安装在人行道上的红外线发射 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 8 页 和接受装置的光线 接收装置可将光信号变为电信号的一个脉冲 通入 GATE1 门 上升沿触发 在 OUT1 门输出低电平 将此电平通过非门后连 在 8259A 的 IR1 端 则可以产生中断 经过中断处理便可以控制相关芯片发 出 3s 的报警信号 当然 在车行道绿灯时 应关中断 图 5 车辆闯红灯报警系统 Y2输出 A7 A6 A5为 010 A7 A6 A5 A4 A3 A2 A1 A0 计数器 0 0 1 0 0 0 0 0 0 计数器 1 0 1 0 0 0 0 1 0 计数器 2 0 1 0 0 0 1 0 0 控制口 0 1 0 0 0 1 1 0 表 3 8254 端口地址表 8254 的端口地址可由硬件连接图确定 由图可知 8254 片选信号由 Y2 引出 并与 A0 组成逻辑电路 输出口送入 8254 的 CS端 其地址可由上表 可看出 为 40 46H 中偶地址 3 4 2 8255A 并行 I O 接口及其地址范围 8255A 是一个标准的 40 管脚芯片 它有 3 个数据端口 分别为 PA 口 PB 口 PC 口 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 9 页 图 6 8255A 管脚图 每个端口有 8 位 8255A 有 3 种工作方式 本设计选用最简单的方式 0 基本输入 输出方式 本设计用到了 PA PB 口 它们分别作为发光二极管的并行输出接口 由于发光二极管 由于二极管为共阳极 故当 PA PB 输出为 0 低电平 时 相应二极管才会亮 另外 PC1 口作为状态查询口 于 8254 OUT2 门相 连 当 PC1 输入为 0 时 表示定时时间到 可交换数据 PC6 口作为输出口 作为报警信号的端口 这些在软件编程时要格外注意 将决定各端口控制字 的选择和确定 8255A 端口地址可硬件连接图 确定 由图可知 8255A 片选信号由 Y3引出 并与 A0 组成逻辑组合电 路 作为 8255A CS信号 其地址可 由右表看出 为 60H 66H 中偶地 址 3 4 3 8259A 中断控制及其地址范围 8259A 可编程芯片中断控制器 PIC 称为优先权控制器 它可为 CPU 处理 8 级向量中断 Y3输出 A7 A6 A5为 011 A7 A6 A5 A4 A3 A2 A1 A0 PA 口 0 1 1 0 0 0 0 0 PB 口 0 1 1 0 0 0 1 0 PC 口 0 1 1 0 0 1 0 0 控制口 0 1 1 0 0 1 1 0 表 4 8255A 端口地址表 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 10 页 图 7 8258A 管脚图 本设计中 中断控制器用于扩展电路的报警功能 由硬件图可知 OUT1 门低电平经过非门送入 IR1 端 故其为高电平有效的电平触发方式 8259A 的端口地址可由硬件图 确定 由图可知 8259A 片选信号由 Y4引出 并与 A0 A2 组成逻辑电 路 作为 8259A CS信号 其地址可 由右表看出 为 80H 82H 中偶地 址 3 5 其它选用芯片说明 3 5 1 地址锁存器 74LS373 在 8086 系统中 地址线和数据线时复用的 故有必要锁存地址 74LS373 管脚及功能图如图所示 其数据送入是由时钟的约定电平来进行的 E为低 电平时 锁存器才能工作 Y4输出 A7 A6 A5为 100 A7 A6 A5 A4 A3 A2 A1 A0 0 口 1 0 0 0 0 0 0 0 1 口 1 0 0 0 0 0 1 0 表 5 8259A 端口地址表 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 11 页 D0D0 D1D1 D2D2 D3D3 D4D4 D5D5 D6D6 D7D7 DEDE LELE Q0Q0 Q1Q1 Q2Q2 Q3Q3 Q4Q4 Q5Q5 Q6Q6 Q7Q7 7 7 4 4 L L S S 3 3 7 7 3 3 图 8 74LS373 管脚图 3 5 2 数据缓冲器 74LS245 74LS245 是带三态输出的 8 位双向数据缓冲器 专用于需要双向传输的 数据总线接口 它其实也是一个三态门 G为输出使能端 G为低电平时 缓冲器才能工作 M 为传输方向控制端 事实上 在 8086 最小模式时 由 于锁存器的作用 数据缓冲器并不是必要的 A0A0 A1A1 A2A2 A3A3 A4A4 A5A5 A6A6 A7A7 E E DIRDIR B0B0 B1B1 B2B2 B3B3 B4B4 B5B5 B6B6 B7B7 7 7 4 4 L L S S 2 2 4 4 5 5 图 9 74LS245 管脚图 3 5 3 译码器 3 5 3 1 比较译码器 74LS688 在存储器扩展时 我选用 74LS688 作为译码器 其一是为了在全译码时 减少组合逻辑电路 二是为了与本组其他成员相区别 74LS688 作译码器时 E必须为低电平 且当且仅当对应的 8 个输入端 注 注 高电平 低电平 任 意 高电阻 输出 CP DQ HXXZ LHHH LHLL 输入 E 注 注 输出 MY LH A B LL B A 输入 G 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 12 页 P 与 8 个输入端 Q 相等时 QP 才会输出低电平 利用这一特性将 QP 低 电平作为存储器的片选信号 可实现其译码片选功能 图 10 74LS688 管脚图 由硬件连接图可知 在设计中 我将 8 个输入端 Q 全部接地 即低电平 保证了存储器高 8 位全部为 0 实现了存储器从最低地址 0H 0FFFH 4KB 的存储容量 3 5 3 2 74LS138 译码器 74LS138 译码器是译码电路中最常用的 在本设计中我也选用 74LS138 译码器产生 8255A 8254 8259A 三个芯片的片选信号 如果选用比较译码 器 74LS688 则需要三片 既增加了芯片数量 也增加了电路消耗 同时占用 了过多的空间 使线路连接更加复杂 更不直观 由于 74LS138 的功能及工 作模式熟知 这里不再赘述 G1 G2B Y0 Y1 Y2 Y3 Y4 Y5 Y7 Y6 G2A A B C 图 11 74LS138 管脚图 3 5 4 时钟发生器 8284A 8284A 是用于 8086 或 8088 系统的时钟发生器 驱动芯片 它为 8086 注 注 数据端 控制端 输出端 P Q P QLL P QLH P QLH XHH E QP E 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 13 页 或 8088 以及其他芯片提供所需的信号 8284A 由三部分电路组成 时钟信号发生器 复位生成电路和就绪控制 电路 下图是 8284A 的管脚图 F F C C EFIEFI CSYNCCSYNC ASYNCASYNC X1X1 X2X2 RESRES READYREADY CLKCLK PCLKPCLK OSCOSC RESETRESET RDY1RDY1 RDY2RDY2 AEN1AEN1 AEN2AEN2 8284A8284A R2 510 R2 510 CRY 14 31818CRY 14 31818 R1R1 510510 RESRES READYREADY CLKCLK PCLKPCLK RST8RST8 VCCVCC GNDGND 图 12 8284A 管脚图 3 5 5 D 触发器 D 触发器的工作原理是在 CP 端脉冲上升沿触发翻转技术 在本电路中 主要用于分频 其将 CP 端脉冲频率减半 那么为什么要减半频率呢 图 13 D 触发器 原因是 8253 的最高工作频率只有 2MHZ 因此必须将 2 4MHZ 脉冲频 率减半 8253 才能工作 因此 在我选用的 8254 定时 计数器电路中 D 触发器并不是必要的了 甚至可以完全省去不用 因为 8253 最高工作频率可达到 10MHZ 但为了避 免频率过大导致 45 最长延时时 写入的数据过大 我还是加上了 D 触发器 无非是为了简化后面的软件编程 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 14 页 3 5 6 7407 驱动器 7407TTL 集电极开路六正相高压驱动器 其管脚图如下 图 14 7407 驱动器 3 5 7 功率放大器 PWN 2401 EW 该放大器是上海迈高网络技术有限公司生产的 主要工作 2 4GHZ ISM 频段的 WLAN 设置的覆盖范围 技术指标 1 频率范围 2 4 2 48GHZ 2 发射功率 0 5W 1W 3 发射增益 16dB 4 AGC 范围 12dB 5 AGC 方式 输入反馈式 6 输入功率范围 5 20dBm 7 接收增益 16dB 8 噪声系数 3 5 0 3dB 4 系统软件部分说明 4 1 软件总体设计说明 4 1 1 宏调用与子程序调用 设计延时程序可采用两种方法 一种是子程序调用形式 另一种是宏调 用形式 宏调用形式是在汇编期间展开的 调用一次展开一次 因此它占用的存 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 15 页 储空间与调用的次数有关 调用次数越多 占用存储空间越大 宏指令的使 用简化源程序 但并不节省内存单元 子程序是在程序运行期间由主程序调用 在目标代码中只占用它自身内 存空间 因而汇编后目标代码少 节省内存空间 但子程序调用每调用一次 就要保护断点 保护现场 返回后又恢复现场 恢复断点 增加了额外时间 因此执行时间长 速度慢 宏指令则可免去这些开销 更重要的是 宏调用 时用实元取代哑元 调整灵活 程序大大缩减 可读性和可移植性大大提高 综上所述 我采用宏调用形式 宏程序专门编制待定延时程序 主程序 则顺序换灯 循环 而每个过程灯亮时间由宏程序保证 在整个程序的运行 期间若发生中断 有车闯红灯 则由中断程序完成相应功能 当然 主程 序中也必要包含中断矢量表的建立程序 因而 我所编制的程序由三部分组 成 主程序 宏调用程序和中断服务子程序 下面将一一介绍 并且画出其 流程图 4 1 2 各时间参数的计算 本设计中涉及的时间参数有 车行到绿灯时间 45s 车行到红灯时间 20s 车行到黄灯亮 灭的时间各一秒 报警器报警持续时间 3s 由于 8254 CLK端时钟频率为 1 2MHZ 计数器 0和计数器 2级联按 6000 200 方式分频 即计数器 0 写入 6000 时 在计数器 2 CLK2 中会有 200HZ 脉冲 对于 1s 需对计数器 2 写入时间参数 TIME1 200 对于 3s TIME2 600 对于 20s TIME3 4000 对于 45s TIME4 9000 都不超过 10000 故均 可按 BCD 码写入 4 2 主程序说明及其流程图 主程序主要实现两项功能 一是填写中断入口地址表 为中断服务提供 必要准备 二是实现换灯 循环 其流程图见下图 说明 说明 各 时 间 参 数的计算 200H60001 2MHZ 200 200 1 1 TIME1 s s 600 200 1 3 TIME2 s s 4000 200 1 20 TIME3 s s 9000 200 1 45 TIME4 s s 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 16 页 开始 关中断 填写中断入口地址表 设置8259A 选择中断类型号 设置8255A PA PB PC高位输 出 PC低位输入 均工作在方式0 熄灭所有灯 关中断 车道绿灯亮 人行道红灯亮 宏程序调用 参数为TIME4 CX置3 车道绿灯灭 黄灯亮 人行道红灯亮 宏程序调用 参数为TIME1 车道黄灯灭 人行道红灯亮 宏程序调用 参数为TIME1 CX减1后是否为0 开中断 车道红灯亮 人行道绿灯亮 宏程序调用 参数为TIME3 是否有键按下 结束 NN N Y Y 避免死循环 车道红灯亮20s 开中断目的是为了有车闯红灯时报警 黄灯灭1s 黄灯亮1s 车道绿灯亮45s 为中断服务作准备 黄灯闪烁3次 主程序流程框图 注 注 主程序中 有两次开 闭中 断 但两次开 闭中断的目的 不同 第 一 次 是 为了使填写中 断入品地址表 及8259A 8259A 初始化不被打 断 第 二 次 则 是为了中断服 务的报警信号 当且仅当车道 为红灯时才有 效 避免车道绿 灯 黄灯时也报 警 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 17 页 4 3 宏调用及其流程图 宏程序的功能是实现准确的定时和延时 为主程序中红 黄 绿灯的亮 灭时间 中断服务程序的报警信号持续时间服务 当然 在宏程序中应当特 别注意一些寄存器 变量 地址等保护工作 这就需要堆栈 其流程图见下 图 开始 AL BL推入堆栈 哑元TIME送入BL中 设置8254 计数器0工作在方式 2分频 BCD码写入6000 设置8254 计数器2工作在 方式2分频 低8位写00 将BL内容送入计数器2高8位 设置8254 工作在方 式5 写入5 PC数据送入AL中 判断PC1是否为0 结束 N Y 不停测试PC1 为0时表示定 时时间到 有车闯红灯 5个脉冲后即发 生中断 计数器0输入 1 2MHZ 输出200HZ 保护寄存器AL BL 宏程序流程框图 4 4 中断服务程序说明及其流程图 本设计中我编制的中断服务程序显然是为扩展功能 有车闯红灯报 警 3s 服务的 中断服务程序主要是对 8255A C 口进行操作的 使 C 口输出 高电平 经过放大器后驱动报警装置报警 当然 在编制过程中 也需要注 意一些寄存器 变量 地址的保护工作 其流程框图见下图 注 注 保 护 寄 存器 AL BL 是 必需的 因为宏 调用是在汇编 期间展开的 调 用一次就展开 一次 因而如不 保护相关寄存 器 则可能会改 变主程序 中断 服务程序的值 产生意料不到 的后果 由 宏 程 序流程图可知 宏调用确实简 化了源程序 因 采用子程序调 用方式 必然要 写 4 个延时子 程序 程序编写 繁琐 而且不直 观 可移植性也 不好 延时时间 也不易调整 宏 程序显而易见 极其灵活 改变 实参修士就可 以不同地调整 时间 这些都是 子程序调用无 法企及的 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 18 页 开始 AX BX推入堆栈 标志寄存器入堆栈 PC6置1 宏程序调用 参数为TIME2 PC6置0 标志寄存器内容出堆栈 AX BX出堆栈 中断返回 报警信号持续3s 保护现场 中断服务程序流程框图 所有三个程序的具体代码及设计编制 见附录 5 总结与体会 5 1 课程设计总结 本次课程设计 要求自制交通信号灯自动控制系统 并能编制该系统工 作的汇编源程序 我的设计采用可编制芯片 8254 硬件定时 用查询方式来 控制交通灯的亮与灭 指令执行目的明确 交通灯亮 灭延时时间精确 并 且还能实现有车闯红灯的报警功能 因而该系统使用可靠 电路连接也比较 简便 芯片花费不躲 工作性能良好 能完整地实现城市交通信号灯所需的 功能 我所编制的汇编程序采用宏调用方式 用一个宏程序可实现多种定时功 能 有效地避免子程序调用方式模块过多 程序代码繁琐的缺点 并且宏调 用方式可以非常简便地调整定时时间 仅仅改变时间参数变量值就可方便地 改变灯亮 灭时间 灵活性好这些都是子程序调用无法企及的 注 注 保 护 寄 存器 AL BL 是 必需的 因为宏 调用是在汇编 期间展开的 调 用一次就展开 一次 因而如不 保护相关寄存 器 则可能会改 变主程序 中断 服务程序的值 产生意料不到 的后果 由 宏 程 序流程图可知 宏调用确实简 化了源程序 因 采用子程序调 用方式 必然要 写 4 个延时子 程序 程序编写 繁琐 而且不直 观 可移植性也 不好 延时时间 也不易调整 宏 程序显而易见 极其灵活 改变 实参修士就可 以不同地调整 时间 这些都是 子程序调用无 法企及的 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 19 页 6 参考文献 1 张玉清 王春玲 IBM PC 微型计算机原理与接口技术 人民邮电 出版社 1997 2 彭虎 周佩玲 傅忠谦 微机原理与接口技术 第二版 电子工业 出版社 2008 3 王永山 IBM PC 汇编语言程序设计和接口技术 西安电子科技大学 出版社 1989 附录 附录 1 参考源程序 TITLE DELAY LOCAL YUWENNIAN MACRAO L PUSH PUSH MOV MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOU OUT MOV ASM TIME AL BL BL AL 46H AL 40H AL 40H AL 46H AL 44H AL 44H AL TIME 001101001B AL 00 AL 60 AL 10110101B AL 00 AL BL AL 01011011B 程序名 延迟宏定义 局部说明 送延迟参数 计数器 0 方式 2 BCD 码写入 计数器 0 写入 6000 计数器 2 方式 2 BCD 码写入 时间参数写入计数器 2 计数器 1 方式 5 BCD 码写入 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 20 页 L DATA DATA STACK STACK CODE START OUT MOV OUT IN TEST JNZ POP POP ENDM SEGMENT TIME1 TIME2 TIME3 TIME4 ENDS SEGMENT DB ENDS SEGMENT MOV MOV MOV MOV CLI CLD MOV MOV MOV MOV STOSW 46H AL 42H 42H AL L BL AL EQU EQU EQU EQU PARA 100 AX DS AX SS AX ES DI AX 2 6 40 90 STACK DUP AL 5 AL AL 00000010B STACK DATA AX STACK AX O AX 4 51H OFFSET INTPROC 计数器 1写入5 5个脉冲后发生中断 测试 PC1 为 1 时再测试 直至为 0 宏定义结束 黄灯闪烁时间 报警持续时间 车道红灯时间 车道绿灯时间 关中断 建立中断入口地址表 注 注 参 考 文 献 不多 因为大部 分相关书籍资 料庞杂 参差不 齐 网上一些芯 片功能介绍对 自己帮助很多 注 注 该 程 序 是 严格按照流程 图格式写的 且 整个程序基本 保持完整 先写 宏调用程序 再 写主程序 最后 写中断服务子 程序 我已经检 查过好多遍 大 致上没有比较 大的错误 只可 惜没能去实验 室调试 再者自 己能力有限 很 多细节照顾不 及 因此难免会 有不少纰漏和 疏忽 个人认为 最后面的中断 服务程序可能 有错误 因为关 于中断这一章 本人到现在还 有能完全弄懂 弄通 弄透 希 望老师理解 武武汉理工大学 机械系统计算机接口技术汉理工大学 机械系统计算机接口技术 课程设计说明书 课程设计说明书 共 23 页 第 21 页 MYC YWN MOV STOSW MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT STI MOV OUT OUT MOV OUT CLI MOV OUT OUT DELAY MOV MOV OUT OUT DELAY MOV OUT OUT AX AL 80H AL 82H AL 82H AL 82H AL 66H AL 60H 62H AL 64H AL 60H 62H TIME4 CX AL 60H 62H TIME1 AL 60H 62H SEG INTPROC 00011011B AL 50H AL 00000011B AL 11111101B AL 10000001B AL 0FFH AL AL OFH AL 00001110B AL AL 3 00010110B AL AL 000111001B AL AL 置 8259A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司节假日安全培训课件
- 建筑施工防火安全技术措施
- 综合部主任竞聘报告
- 企业安全管理工作计划三篇
- 《记承天诗夜游》课件
- 静脉溶栓术后护理措施
- 事诸父如事父课件
- 研究生学习进展与心得汇报
- 公司级安全培训签到表课件
- 公司级安全培训意义课件
- 2025至2030年中国中试基地行业市场全景调查及发展趋向研判报告
- 承兑汇票转让协议书
- 大学生劳动就业法律问题解读(华东理工大学)智慧树知到见面课、章节测试、期末考试答案
- 二年级上册数学《观察物体》教学设计
- 心肾综合征诊疗实践指南解读
- 申请银行承兑汇票申请书
- 第15课 探寻新航路 课件(18张)
- 陆上油气长输管道建设项目主要安全设施、定量风险评价法、个人风险基准、安全预评价报告
- 餐饮5S管理培训课程
- 视神经炎的临床应用
- 债权转让承诺书样本文件范例(2024年版)
评论
0/150
提交评论