微机接口秒表设计.doc_第1页
微机接口秒表设计.doc_第2页
微机接口秒表设计.doc_第3页
微机接口秒表设计.doc_第4页
微机接口秒表设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第 页 目录目录 1 1 前言前言 1 1 2 2 整体设计方案整体设计方案 2 2 2 1 设计方案 2 2 2 方案比较 3 2 3 方案选择 3 3 3 单元模块的设计单元模块的设计 4 4 3 1 各单元模块的功能介绍及电路设计 4 3 1 1 脉冲信号中断定时模块 4 3 1 28255A 与 8086 的连接 5 3 1 3 USB 电源模块 5 3 1 4 LED 驱动电路模块 6 3 2 电路参数的计算和元器件的选择 6 3 2 1 8253 可编程定时器 计数器 6 3 3 特殊器件的介绍 8 3 3 1 8255A 并行接口 8 3 3 2 8086 的引脚功能特点介绍 9 3 4 各单元模块的连接 11 3 4 1 8086 和 8253 8259A 的连接 11 4 4 软件设计软件设计 1212 4 1 软件设计原理及使用工具 12 4 2 软件设计流程图 12 5 5 系统调试系统调试 1414 5 1 调试 14 6 6 系统功能系统功能 1515 6 1 系统功能介绍 15 7 7 结论结论 1616 8 8 总结与体会总结与体会 1717 9 9 致谢致谢 1818 1010 参考文献参考文献 1919 1111 附录附录 2020 第 0 页 1 前言前言 随着科学技术的发展和现代生产力的提高 各种竞技体育都在追求更高 更快 更强 而唯有精确的时钟才能反应出竞技体育的准度与精度 数字化给人们的生产和生活带来了极大的方便 它几乎取代了传统的机械时钟 使得 其准确度更高 实用性更强 因此电子秒表使其功能更加丰富 使用更佳便利 1943 年美国为解决复杂的导弹计算而开始研制电子计算机 1946 年 2 月 世界上 第一台数字式计算机 ENIAC 在美国宾夕法尼亚大学研制成功 在其后的 60 多年里 计 算机经历了迅猛的发展 得到了广泛的普及应用 对整个社会的进步和科学的发展产 生了极其深远的影响 通常按照电子计算机采用的电子期件不同将电子计算机的发展 氛围四个阶段 习惯上称为四代 CPU 即属于第四代 按照微型计算机的 CUP 字长和功能划分 又经历了六代的演化 第 一代 4 位和低档 8 位微处理器 代表作品 4004 4040 8008 第二代中高档 8 位微处理 器 代表作品 Z80 I8085 MC6800 第三代 16 位微处理器 代表作品 8086 8088 80286 第四代 32 位微处理器 代表产品 80380 80486 第五代超级 32 位奔腾处理器 第六 代 64 位高档微处理器 本设计介绍的是应用 8086 8253 等芯片设计出电子秒表 实现秒表的基本功能 第 1 页 2 整体设计方案整体设计方案 本设计的整体思路是 利用 8254 用试验箱上的数码管模拟一个秒表 要求具有一 般秒表的功能 2 1 设计方案设计方案 方案一 软件定时 软件定时是根据所需要的时间常数来设计一个延时子程序 该程序中的指令和安 排循环次数来实现软件定时 8086 8253 8259A 8255A LED 图 2 1 方案一方框图 方案二 硬件定时 基于 8253 和 8259A 中断技术的电子秒表利用了可编程计数器 计数器为主要硬件 图 2 2 方案二方框图 第 2 页 2 22 2 方案比较方案比较 软件定时的优点是节省硬件 主要缺点是执行延时程序期间 微处理器一直被占 用 降低了微处理器的利用率 软件定时不能单独的使用 他必须在一个硬件平台上 运行 所以单纯的软件的定时硬件兼容性较差 基于 8253 和 8259A 中断技术的电子秒表利用了可编程计数器 计数器为主要硬件 在硬件电路连接完成后 有软件直接初始化定时器 8253 并启动定时器工作开始计时 当再次收到脉冲信号时 产生一个中断 自动产生一个规定的时间输出 分 秒 毫 秒 这种方法的优点是定时器不占用微处理器的时间 大大的提高微处理器的利用率 并且利用定时器产生的终端信号 在多任务的分时系统中用来作为中断信号实现程序 的切换 建立多作业环境 同时硬件开销不大 功能较强 使用灵活 而且操作十分 方便只需要按下按钮产生一个脉冲信号就可以实现计时 2 32 3 方案选择方案选择 通过比较我们得出 硬件计时方案大大优于软件计时方案 故本次设计采用方案 二硬件计时方案 第 3 页 3 3 单元模块的设计单元模块的设计 3 13 1 各单元模块的功能介绍及电路设计各单元模块的功能介绍及电路设计 秒表电子系统主要有 8086CPU 8253 8255A 8259A 等部分组成 其框图如图 3 1 所示 图 3 1 秒表方框图 3 1 13 1 1 脉冲信号中断定时模块脉冲信号中断定时模块 8253 产生定时脉冲信号 定时脉冲信号让 8259A 产生中断信号中断服务程序进行 定时服务 下面根据语接口电路图说明其作用 8253 接口如图 3 2 所示 图 3 2 8253 接口电路 第 4 页 3 1 23 1 2 8255A8255A 与与 80868086 的连接的连接 8253A 的管脚包括 D7 D0 他们分别与 CPU 的 AD0 都 AD7 相连 读写控制线 WR RD 以及与 CPU 地址线相连的片选信号 CS 端口地址控制管脚 A0 和 A1 这两个 端口地址显得组合 在这次是与 8086CPU 的 I O 口 AD9 和 AD10 相连 所以 8253A 的端 口选择就受到 CPU 的 AD9 和 AD10 的组合状态控制来提供 图 3 3 8255A 与 8086 连接电路 3 1 33 1 3 USBUSB 电源模块电源模块 在本设计中 了使电路简单 该模块主要是为系统提供电源 因为 CPU8086 等需 要供电 5V 而外围电路可以用 5V 电源 电路可以由电源变压器 T 电桥 U 电容 C 以 及芯片 7805 组成 电源是由电源变压器 T 降压后送入电桥 U 整流再经 C 滤波 然后由 CW7805 稳定后提供给电路工作 由于我们需要在通过计算机下载程序 而 USB 输出电 压也刚好是 5V 所以我们为了方便采用 USB 供电 如图所示 第 5 页 D2 LED1 R 10 1K 23 S1 23 VC C 1 2 J2 C ON2 D1 1N4007 C OM 2 3 VC GND GND J17 USB 云云云 图 3 4 USB 供电原理图 3 1 43 1 4 LEDLED 驱动电路模块驱动电路模块 8255A 芯片是电路的核心元件 利用 8255A 驱动数码管显示时 分 秒 从而能够 对秒 毫秒 分等时间单位进行精确记时 电路如图 3 5 所示 图 3 5 LED 与 8255A 连接电路图 3 23 2 电路参数的计算和元器件的选择电路参数的计算和元器件的选择 3 2 13 2 1 82538253 可编程定时器可编程定时器 计数器计数器 一 8253 定时 计数器的引脚及功能 8253 是 NMOS 工艺制成 采用单一 5V 电源 24 引脚双列直插式封装 外部引脚如下所 示 第 6 页 图 3 6 8253 元器件 1 8253 与 CPU 的接口引线 D7 D0 双向数据线 可直接与数据总线相连 用于传递各种数据信息 WR 写信号 输入 低电平有效 用于控制 CPU 对 8253 的写操作 RD 读信号 输入低电平有效 用于控制 CPU 对 8253 的读操作 A1 A0 地址线 输入信号 CS 片选信号 输入信号 低电平有效 当 CS 为 0 时 8253 被选中 允许 CPU 对其 进行读 写操作 2 8253 与外设的接口引线 CLKO CLK2 时钟输入信号 GATE0 GATE2 门控输入信号 OUT0 OUT2 计数输出端 3 定时与计数方式 二 内部结构 数据总线缓冲器 读 写逻辑电路 控制字寄存器 计数器 三 8253 方式控制字 定时 计数器 8253 的每个计数通道根据 CPU 发命令写入控制寄存器的控制字确定工作 方式和计数格式 8253 控制字的格式如下所示 表 3 1 8253 控制字 D7D6D5D4D 3 D 2 D 1 D0 SC 1 SC 0 RW 1 RW 0 M 2 M 1 M 0 BC D 第 7 页 D7 D6 计数器选择位 SC1 SC0 8253 的 3 个计数器相互独立 并且都有一个控制寄 存器 但这三个控制寄存器占用同一个端口地址 即 A1A0 11 D5 D4 读 写指示位 RW1 RW0 CPU 向某个计数器写入初值和读取它们的当前值时不 同的格式 D3 D2 D1 工作方式选择位 M2 M1 M0 8253 有 6 种工作方式 选择哪种工作方式 由 M2 M1 M0 编码确定 DO 数值计数格式 用来选择计数格式 DO O 计数器按二进制格式计数 D0 1 计数 器按 BCD 码格式计数 3 33 3 特殊器件的介绍特殊器件的介绍 3 3 13 3 1 8255A8255A 并行接口并行接口 一 8255A 的引脚及功能 8255A 是一个采用 NMOS 工艺制造的 40 个引脚的双列直插式组建 其外部引脚如 下图所示 图 3 7 8255A 元器件 功能 8255A 具有面向主机系统总线和面向外设两个方向的连接能力 即通过 8255A CPU 可直接同外设相连接 负责 CPU 和外设之间的数据传送 1 面向系统总线的信号线 D0 D7 双向数据线 CPU 通过它向 8255A 发送命令 数据 8255A 通过它向 CPU 回送 状态 数据 CS 选片信号线 该信号线低电平有效 由系统总线经 I O 地址译码器产生 A1 A0 芯片内部端口地址信号线 与系统地址总线地位相连 RD 读信号线 该信号低电平有效 CPU 通过执行 IN 指令 发读信号将数据或状态信 号从 8255A 读至 CPU 第 8 页 WR 写信号线 该信号低电平有效 CPU 通过执行 OUT 指令 发写信号 将命令或数 据写入 8255A RESET 复位信号线 该信号高电平有效 2 面向 I O 设备的信号线 PA0 PA1 端口 A 的输入 输出线 PBO PB7 端口 B 的输入 输出线 PC0 PC7 端口 C 的输入 输出线 这 24 根信号线均可用来连接 I O 设备 通过它们传送数字量信息或 开关量信息 二 内部结构 数据总线缓冲器 读 写控制逻辑 A 组和 B 组控制电路 数据端口 A B C 三 8255 的工作方式 方式 0 基本输入 输出方式 方式 1 选通输入 输出方式 方式 2 双向输入 输出方式 3 3 23 3 2 80868086 的引脚功能特点介绍的引脚功能特点介绍 Intel 8086拥有四个16位的通用寄存器 也能够当作八个8位寄存器来存取 以及 四个16位索引寄存器 包含了堆栈指标 资料寄存器通常由指令隐含地使用 针对暂 存值需要复杂的寄存器配置 它提供64K 8 位元的输出输入 或32K 16 位元 以及固 定的向量中断 大部分的指令只能够存取一个内存位址 所以其中一个操作数必须是 一个寄存器 运算结果会储存在操作数中的一个 Intel 8086有四个 内存区段 segment 寄存器 可以从索引寄存器来设定 区段 寄存器可以让 CPU 利用特殊的方式存取1 MB 内存 8086 把段地址左移 4 位然后把 它加上偏移地址 大部分的人都认为这是一个很不好的设计 因为这样的结果是会让 各分段有重叠 尽管这样对组合语言而言大部分被接受 也甚至有用 可以完全地控 制分段 使在编程中使用指针 如 C 编程语言 变得困难 它导致指针的高效率表示 变得困难 且有可能产生两个指向同一个地方的指针拥有不同的地址 更坏的是 这 种方式产生要让内存扩充到大于 1 MB 的困难 而 8086 的寻址方式改变让内存扩充 较有效率 8086处理器的时钟频率介于4 77MHz 在原先的 IBM PC 和10 MHz 之间 8086 没有包含浮点指令部分 FPU 但是可以通过外接数学辅助处理器来增强浮点计 算能力 Intel 8087 是标准版本 第 9 页 图 3 8 8086 引脚结构图 8086 微处理器结构 1 总线接口单元 BIU 总线接口部件由下列各部分组成 4 个段地址寄存器 CS 16 位的代码段寄存器 DS 16 位的数据段寄存器 ES 16 位的扩展段寄存器 SS 16 位的堆栈段寄存器 16 位的指令指针寄存器 IP 20 位的地址加法器 6 字节的指令队列缓冲器 2 执行单元 EU 执行部件由下列几个部分组成 8 个通用寄存器 即 AX BX CX DX BP SP SI DI 其中 4 个数据寄存 器 AX BX CX DX 2 个地址指针寄存器 BP SP 2 个变址寄存器 SI DI 标志寄存器 FR 算术逻辑单元 ALU 3 BIU 和 EU 的管理 BIU 和 EU 可以并行工作 提高 CPU 效率 BIU 监视着指令队列 当指令队列 中有 2 个空字节时 就自动把指令取到队列中 EU 执行指令时 从指令队列头部取指令 然后执行 如需访问存储器 则 EU 向 BIU 发出请求 由 BIU 访问存储器 在执行转移 调用 返回指令时 需改变队列中的指令 要等新指令装入队 列中后 EU 才继续执行指令 第 10页 3 43 4 各单元模块的连接各单元模块的连接 3 4 13 4 1 80868086 和和 8253 8259A8253 8259A 的连接的连接 利用了 8253 产生定时脉冲信号定时脉冲信号让 8259A 产生中断信号中断服务程序 进行定时服务 图 3 9 驱动与 8086 连接图 第 11页 4 软件设计软件设计 4 14 1 软件设计原理及使用工具软件设计原理及使用工具 计算机系统是由硬件和软件两部分组成 硬件系统是指由中央处理器 内存储器 输入 输出接口和外部设备等部分组成的物理设备 软件是为实现或完成用户的某种要 求和目的按规定的计算机能够运行的指令编写的程序 是控制计算机完成指定工作任 务的二进制代码集 这个代码集称为计算机指令或计算机语言 8086 最常用的计算机 语言是汇编语言 用程序和 8086 共同实现按键的功能 使管脚电平变化 进而触发相 应的功能 汇编语言比机器语言易于读写 调试和修改 同时具有机器语言全部优点 但在 编写复杂程序时 相对高级语言代码量较大 而且汇编语言依赖于具体的处理器体系 结构 不能通用 因此不能直接在不同处理器体系结构之间移植 汇编语言的特点 1 面向机器的低级语言 通常是为特定的计算机或系列计算机专门设计的 2 保持了机器语言的优点 具有直接和简捷的特点 3 可有效地访问 控制计算机的各种硬件设备 如磁盘 存储器 CPU I O 端口 等 4 目标代码简短 占用内存少 执行速度快 是高效的程序设计语言 5 经常与高级语言配合使用 应用十分广泛 4 24 2 软件设计流程图软件设计流程图 这是一个利用微机原理与接口技术完成秒表的设计方案 该方案主要是选择 8253A 的计数器 2 进行 100ms 的定时 其输出于 OUT2 与 8259 的 IRQ7 相连 当定时到 100ms 的时候产生一个中断信号 在中断服务程序进行时 分 秒的计数 并送入相应的存 储单元 8255 的 A 口接七段数码管的位选信号 B 口接七段数码管的段选信号 C 口上 面接一个按键 实现时钟与秒表的转换以及清零的功能 时 分 秒的数值通过对 8255 的编程可以显示在七段数码管上面 因此可以利用 8086 等器件的功能来完成设计 利用这个设计来实现一下功能 1 能显示实时时间 利用 8253 的计数器来计算 2 当按下按键时 数码管显示 1 100 的秒表计时 3 第二次按下按键 1 时 应该是实现秒表的清零 EMU8086是学习汇编必不可少的工具 它结合了一个先进的原始编辑器 组译器 第 12页 反组译器 具除错功能的软件模拟工具 虚拟 PC 还有一个循序渐进的指导工具 该 软件包含了学习汇编语言的全部内容 Emu8086集源代码编辑器 汇编 反汇编工具以 及可以运行 debug 的模拟器 虚拟机器 于一身 此外 还有循序渐进的教程 图 4 1 流程图 第 13页 5 5 系统调试系统调试 5 15 1 调试调试 Proteus 是英国 Labeenter electronics 公司研发的 EDA 工具软件 Proteus 不仅 是模拟电路 数字电路 模 数混合电路的设计与仿真平台 更是目前世界最先进 最 完整的多种型号微控制器系统的设计与仿真平台 它真正实现了在计算机上完成从原 理图设计 电路分析与仿真 单片机代码级调试与仿真 系统测试与功能验证到形成 PCB 的完整电子设计与研发过程 Proteus 产品系列也包含了革命性的 VSM 技术 可以 对基于微控制器的设计连同所有的外围电子器件一起仿真 由于我们的设计外围电路 比较简单实现的功能叶不是很复杂 所以在 Proteus 仿真时我们是将主程序直接下载 到芯片中仿真 主要是验证是否采集到温度还有温度是否显示正确 仿真可以在实物 没有出来前进行先期的验证 最后加上我们的扩展功能一起仿真调试 在仿真过程中为了先检验程序的有效性和正确性 我们先用了 Proteus 进行软件 仿真 但是因为 Proteus 软件的元件库本身不包含 8086 芯片的元件图 所以仿真的时 候我们没有使用 8086 芯片 而是单单验证程序的可行性 第 14页 6 6 系统功能系统功能 6 16 1 系统功能介绍系统功能介绍 系统实现秒表的功能 利用 8253 产生定时脉冲信号定时脉冲信号让 8259A 产生中断信号中断 服务程序进行定时服务 并利用 8255A 驱动数码管显示时 分 秒 从而能够对秒 毫秒 分等 时间单位进行精确记时 第 15页 7 7 结论结论 本次设计的是基于 8086 的秒表设计 是以 8086 为基本核心元件 针对 8253 8259A 8255A 等芯片所构成的秒表系统 系统硬件电路简单 调试方便 8086 的扩展接口较多 便于在用户需要的时候能够扩展它的功能 而且体积小 使用起来 更加方便 在设计时我们首先对我们需要设计的功能进行了初步定论 再根据我们的构想及 查询了许多资料之后 设计出了我们的原理图 根据原理图 我们进行代码设计 在 代码设计中 我们出现过几次问题 始终不能让我们的功能达到完善 最后经过我们 的努力和老师的指导 我们完成了我们的软件设计与实物制作 第 16页 8 8 总结与体会总结与体会 通过这次设计 让我们了解了电路设计与实物制作的整个过程 也让我们了解了 关于基于 8086 的原理与设计理念 使我学到了很多新的知识 如 8253A 的使用 进 一步了解了 Protel 99 软件 ISIS 软件的一些简单功能的使用 同时 也对微机接口 这门课学到的知识加以了巩固 对微型处理器有了更深的了解 使我们对 8086 的引脚 功能及如何通过编程来控制 8086 的引脚输出从而控制我们的 LED 显示等有了更清楚的 认识 本次设计也使我们对电路设计 电路检查等方面的能力有了进一步的加强 通 过解决在设计的过程中遇到了种种的问题 使我们的实践能力得到了很大程度的提高 也使我们对电子设计有了浓厚的兴趣 让我受益匪浅 我们还学会了该如何查阅资料 和利用参考书 我们在课堂上所学习的知识只是最基本的专业知识 而现在电子科技 技术是日新月异 作为信息专业的学生应该时刻关注最新的信息资料 还应该学会把 在设计过程中用到的知识有机地结合起来 形成自己的知识体系 然后再灵活地加以 运用 让自己的理论与实践能更有效的结合 总之 一次设计除了能加深我们对理论知识的理解 加强我们的动手能力外 还 能提升我们多方面的能力 拓展我们的知识面 掌握更多有用的技能 学会如何面对 问题以及解决问题 我们很珍惜这样的机会 课程设计的开展有利于我们将理论知识 运用于实践 将理论与实践紧密的结合在一起 做到理论与实践皆行 第 17页 9 9 致谢致谢 接近一个月的课程设计结束了 这次课程设计让我们学到了很多东西 课程设计 是对所学知识的综合运用 尤其是这次设计 虽然是用 8086 进行主要的控制 但是这 不仅仅使我们对 8086 的运用及编程有了更深的理解 也使我们对电路设计 电路检查 等方面的能力有了进一步的加强 在这次设计中 我们得到了王老师的悉心指导 她 的渊博知识 严格要求 严谨作风都给我们留下了很深刻的印象 将是我们受用一生 在此表示衷心的感谢 另外 在设计中 我们也得到了很多同学的帮助与支持 在此 感谢他们 谢谢 第 18页 1010 参考文献参考文献 1 微机原理与接口技术 郭兰英 赵祥模 编著 清华大学出版社 2 微机原理实验指导 张辉 杨鹏 编著 浙江大学出版社单片机原理及应用 3 接口技术实验指导 马光荣 刘宋和 编著 中国电力出版社 4 32 位微型计算机原理接口技术及应用 冯萍编 清华大学出版社 5 微型计算机原理与接口技术试验 史新福 6 微机原理与接口技术 谢维成 牛勇 编 华中科技大学出版社 7 微机接口技术实用教程 秦鹏 王积翔编 清华大学出版社 2009 8 微型计算机原理及应用 M 朱定华编 北京电子工业出版社 2003 6 9 微机接口技术实用教程 任向民编 清华大学出版社 2008 3 10 微机接口技术 王成瑞编 高叫京出版社 2009 2 11 微机接口技术及其应用 李育贤编 西安电子科技大学出版社 2007 6 12 现代微机原理与接口技术 杨全胜编 电子工业出版社 13 微机原理与接口技术 厉荣卫编 科学出版社 2006 8 第 19页 11 附录附录 原理图 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date 23 Dec 2010Sheet of File H 312007080609119云云云 云云 protel云云云 Sheet1 DDBDrawn By RD 32 AD0 16 LOC WR 29 AD1 15 QS0ALE 25 AD2 14 QS1INA 24 AD3 13 AD4 12 S0 DEN 26 AD5 11 S1DT R 27 AD6 10 S2M IO 28 AD7 9 AD8 8 RQ GT0 31 AD9 7 RQ GT1 30 AD10 6 AD11 5 AD12 4 NMI 17 AD13 3 INTR 18 AD14 2 AD15 39 MN MX 33 TEST 23 A16 S3 38 READY 22 A17 S4 37 A18 S5 36 A19 S6 35 CLK 19 RESET 21 BHE S7 34 IC1 8086 D0 11 D1 10 D2 9 D3 8 D4 7 D5 6 D6 5 D7 4 A0 27 CS 1 RD 3 WR 2 SP EN 16 INT 17 INTA 26 IR0 18 IR1 19 IR2 20 IR3 21 IR4 22 IR5 23 IR6 24 IR7 25 CAS0 12 CAS1 13 CAS2 15 IC3 8259A 9 8 6 5 36 35 34 33 32 31 30 29 28 27 18 19 20 21 22 23 24 25 14 15 16 17 18 12 11 10 4 3 2 1 40 39 38 37 PPI ADR PB DBUS PC PA IC4 8255A 9 15 18 11 14 16 21 22 23 19 20 8 7 6 5 4 3 2 1 10 13 17 PIT CLK GATE ADR DATA IC2 8253 RD WR RD WR D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 VCC 10KD0 D1 D2 D3 D4 D5 D6 D7 RD WR K1 K2 D0 D1 D2 D3 D4 D5 D6 D7 L1 L2 L3 L4 L5 L6 A C D E F G H B RD WR VCC R1 R2 K1 K2 DPY a 10 b 9 c 8 d 5 e 4 g 3 dp 7 U 1 U 6 f 2 a b c d e f g dp ICA 12 53 02 DPY a 10 b 9 c 8 d 5 e 4 g 3 dp 7 U 1 U 6 f 2 a b c d e f g dp ICB 12 53 02 DPY a 10 b 9 c 8 d 5 e 4 g 3 dp 7 U 1 U 6 f 2 a b c d e f g dp ICC 12 53 02 DPY a 10 b 9 c 8 d 5 e 4 g 3 dp 7 U 1 U 6 f 2 a b c d e f g dp ICD 12 53 02 DPY a 10 b 9 c 8 d 5 e 4 g 3 dp 7 U 1 U 6 f 2 a b c d e f g dp ICE 12 53 02 DPY a 10 b 9 c 8 d 5 e 4 g 3 dp 7 U 1 U 6 f 2 a b c d e f g dp ICF 12 53 02 A B C D E F G H L1 A B C D E F G H L2 A B D C E F G H L3 A C B D E F G H L6 L5 H G F E D C B AA B C D E F G L4 H 第 20页 程序 软件调试的程序如下 根据根据 CHECK 配置信息修改下配置信息修改下列符号值 IOY0 EQU 0e000H IOY1 EQU 0e040H MY8255 A EQU IOY0 00H 4 MY8255 B EQU IOY0 01H 4 MY8255 C EQU IOY0 02H 4 MY8255 MODE EQU IOY0 03H 4 MY8254 COUNT0 EQU IOY1 00H 4 MY8254 COUNT1 EQU IOY1 01H 4 MY8254 COUNT2 EQU IOY1 02H 4 MY8254 MODE EQU IOY1 03H 4 STACK1 SEGMENT STACK DW 256 DUP STACK1 ENDS DATA SEGMENT DTABLE DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H TIMETABLE DB 0 0 0 0 CLEARKEY DB 0FH STARTKEY DB 6 STOPKEY DB 7 STATUS DB 0 ISRUNING DB 0 WTHOUSAND DB 0 WHUNDRED DB 0 WTEN DB 0 WSEC DB 0 WMSEC DB 0 DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA 第 21页 START MOV AX DATA MOV DS AX MOV ES AX MOV DX MY8254 MODE MOV AL 36H OUT DX AL MOV DX MY8254 COUNT0 MOV AL 00H OUT DX AL MOV AL 54H OUT DX AL MOV DX MY8255 MODE MOV AL 81H OUT DX AL BEGIN CALL DIS CALL CLEAR CALL CCSCAN JZ NOKEYDOWN JMP GETKEY1 NOKEYDOWN MOV AH 1 INT 16H JZ KEYSCANEND JMP QUIT KEYSCANEND CMP ISRUNING 1 JNE BEGIN TIMESTART MOV AL 11100010B MOV DX MY8254 MODE OUT DX AL MOV DX MY8254 COUNT0 第 22页 IN AL DX CMP STATUS 1 JNE NOTSTATUS TEST AL 80H JZ CHANGEWMSEC JMP BEGIN NOTSTATUS TEST AL 80H JNZ CHANGEWMSEC JMP BEGIN CHANGEWMSEC TEST AL 80H JZ CHANGESTATUS MOV STATUS 1 JMP HASCHANGE CHANGESTATUS MOV STATUS 0 HASCHANGE INC WMSEC CMP WMSEC 0AH JNE CHANGESEC MOV WMSEC 0 INC WSEC CMP WSEC 0AH JNE CHANGESEC MOV WSEC 0 INC WTEN CMP WTEN 0AH JNE CHANGESEC MOV WTEN 0 INC WHUNDRED CMP WHUNDRED 06H JNE CHANGESEC MOV WHUNDRED 0 第 23页 CHANGESEC MOV SI 0 存储时间 MOV AL WHUNDRED 十位秒 MOV TIMETABLE SI AL INC SI MOV AL WTEN 个位秒 MOV TIMETABLE SI AL INC SI MOV AL WSEC 十分位秒 MOV TIMETABLE SI AL INC SI MOV AL WMSEC 百分位秒 MOV TIMETABLE SI AL INC SI MOV TIMETABLE SI 0 INC SI JMP BEGIN QUIT MOV AX 4C00H INT 21H GETKEY1 CALL DIS CALL DALLY CALL DALLY CALL CLEAR CALL CCSCAN JNZ GETKEY2 JMP BEGIN GETKEY2 MOV CH 0FEH MOV CL 00H COLUM MOV AL CH 第 24页 MOV DX MY8255 A OUT DX AL MOV DX MY8255 C IN AL DX L1 TEST AL 01H JNZ L2 MOV AL 00H JMP KCODE L2 TEST AL 02H JNZ L3 MOV AL 04H JMP KCODE L3 TEST AL 04H JNZ L4 MOV AL 0

温馨提示

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

评论

0/150

提交评论