1、沈 阳 工 程 学 院课 程 设 计课程设计题目:十字路口交通信号灯设计系 别 班级 学生姓名 学号 指导教师 职称 起止日期: 2011 年 11 月 21 日起至 2011 年 11 月 25 日止I沈 阳 工 程 学 院课程设计任务书课程设计题目:十字路口交通信号灯设计系 别 班级 学生姓名 学号 指导教师 职称 课程设计进行地点: 微机原理实验室(F106) 任 务 下 达 时 间: 2011 年 11 月 17 日起止日期: 2011 年 11 月 21 日起至 2011 年 11 月 25 日止教 研 室 主 任 王 健 2011 年 11 月 17 日 批 准II一、设计目的通过
2、课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。二、设计的原始资料及依据查阅可编程并行芯片 8255 或其他相关资料。用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。三、设计的主要内容及要求内容:利用微机原理试验箱,采两组红,黄,绿发光二极管来模拟 A,B 两路交差路口的信号灯控制。要求:按实际交通灯控制规程控制。四、对设计说明书撰写内容、格式、字数的要求 1.课程设计说明书(论文)是体现和总
3、结课程设计成果的载体,一般不应少于 3000字。2.学生应撰写的内容为:目录、正文、参考文献等。课程设计说明书(论文)的结构及各部分内容要求可参照沈阳工程学院毕业设计(论文)撰写规范执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。3.说明书(论文)手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按沈阳工程学院毕业设计(论文)撰写规范的要求进行打印。4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。五、 设计完成后应提交成果的种类、数量、质量等方面的要求提交课程设计说明书一份。在说明书中要有设计原理、硬件电路接线图、设计
4、的程序及必要注释等。六、时间进度安排III顺序 阶段日期 计 划 完 成 内 容 备注1 1.5 天 查阅资料及程序设计2 2.5 天 上机调试程序3 0.5 天 成绩评定4 0.5 天 书写报告七、主要参考资料(文献) 。、 微机原理与应用大连理工大学出版社、 微机原理与接口技术北京航空航天大学出版社、 微型计算机原理与汇编语言电子工业出版社、 汇编语言程序设计中央广播电视大学出版社IV沈 阳 工 程 学 院微机接口与通信课程设计评定表系(部): 班级: 学生姓名: 指 导 教 师 评 审 意 见评价内容 具 体 要 求 权重 评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案
5、和日程安排。 0.1 5 4 3 2工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.2 5 4 3 2工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。 0.2 5 4 3 2说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.5 5 4 3 2指导教师评审成绩(加权分合计乘以 12) 分 加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容 具 体 要 求 权重 评 分加权分内容 思路清晰,语言表达准确,概念清楚,论点正确;分析归纳合理;结论严谨;设
6、计有应用价值。 0.5 5 4 3 2答辩 回答问题有理论根据,基本概念清楚。主要问题回答准确,深入。 0.4 5 4 3 2时间 符合要求 0.1 5 4 3 2评阅教师评审成绩(加权分合计乘以 8) 分 加权分合计评 阅 教 师 签 名: 年 月 日课 程 设 计 总 评 成 绩 分V摘 要随着计算机科学技术的不断发展,微型计算机得到了广泛的应用,是人们利用计算机设计和开发各种应用系统的基础。同时微型计算机接口技术也是一门实践性较强的课程, 理论与实践相结合可以更好的掌握知识,这也是这次交通灯系统控制的设计目的。交通灯是交通安全的关键,已广泛应用于城乡的十字路口,它的有无作为交通安全检查的
7、重要依据,是交通秩序正常进行的有力保障。十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。本次的交通灯信号设计主要由可编程并行接口 8255A、中断控制器 8259 等芯片组成。主要使用 8255A 的 A 口和 B 口模拟十字路口交通灯的闪烁情况,即用端口和端口做为输出端口,而 C 端口设计为紧急情况控制开关。通过控制 A、B 端口的输出值来控制交通灯的状
8、态。如果 C 端口中的值为“1” ,则相当于遇到紧急事故,十字路口的信号灯全为红灯,使该路口停止通行。关键词: 微型计算机,十字路口交通灯, 8255A目 录摘 要 .V1 设计任务描述 11.1 设计题目 11.2 设计内容 11.2.1 设计目的 .11.2.2 设计内容及要求 .12 题目分析与设计原理 22.1 题目分析 22.2 程序设计流程图 .23 主要芯片介绍 33.1 可编程并行接口 8255A.33.1.1 8255A 的内部结构与引脚功能 33.1.2 8255A 的工作方式及控制字 53.2 中断控制器 8259 63.2.1 8259 的内部结构与引脚功能 .73.2
9、.2 8259 的工作方式及编程 .94 源程序及注释 .135 主要程序分析 .175.1 8255 的初始化 175.2 信号灯的控制方法 175.2.1 红绿灯的控制 175.2.2 黄灯的控制 175.3 调用程序 .18结 论 19致 谢 20参考文献 .21附录 A1.1 实际硬件接线图 .22微机接口与通信课程设计11 设计任务描述1.1 设计题目十字路口交通信号灯设计。1.2 设计内容1.2.1 设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微
10、机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。1.2.2 设计内容及要求内容:利用微机原理试验箱,采两组红,黄,绿发光二极管来模拟 A,B 两路交差路口的信号灯控制。要求:按实际交通灯控制规程控制。微机接口与通信课程设计22 题目分析与设计原理2.1 题目分析交通信号灯的模拟是用 8255A 的 A 口控制东西方向的交通灯,用 8255A 的 B 口控制南北方向的交通灯。当程序正常运行时,依次为东西方向的绿灯和南北方向的红灯亮,通过延时程序进行一段延时后,东西方向的绿灯灭后东西方向的黄灯闪三次,随后东西方向的红灯和南北方向的绿灯亮并进行延时,延时后,南北方向的黄灯闪三次,
11、之后同理进行循环。在此设计中,将 8255A 的、两个口均设为输出口,口设为输入口接受紧急状态信号。具体为:PA7、PA6 控制东西方向的红灯;PB7、PB6 控制南北方向的红灯;PA1、PA0 控制东西方向的绿灯;PB1、PB0 控制南北方向的绿灯;PA4、PA3 控制东西方向的黄灯;PB4、PB3 控制南北方向的黄灯。而各灯的亮灭情况则是通过相关控制口送入相关控制字来实现的。在延时子程序中应用 LOOP 语句的执行时间使其达到一定的循环次数进而获得一定的延时时间。当 8086/8088 的 CPU 在执行其正常程序时,有一中断程序向CPU 发出中断请求,CPU 先要关中断,把其正在执行的程
12、序压到已定义好的堆栈段当中,将中断程序 MIR7 的偏移地址和段地址取出放在源变址当中,然后在开中断,执行中断程序,强制东西方向和南北方向的红灯全亮。利用 8255A 的 C 口接单次脉冲单元的 KK2 来进行还原。中断程序执行完后关中断,让压在堆栈段中的程序出栈,CPU 继续执行出栈的程序。2.2 程序设计流程图微机接口与通信课程设计33 主要芯片介绍3.1 可编程并行接口 8255A在计算机系统中,CPU 和外部设备要进行数据传输,必须采用接口电路来实现,而接口与外设之间的数据传送方式有两种:串行传送方式和并行传送方式。在并行接口中,通常采用可编程并行接口芯片与主机连接。由于可编程因此其工
13、作方式和功能可根据需要加以改变,使用灵活、方便。Intel 8255A 就是应用最广泛的典型可编程并行接口芯片之一。3.1.1 8255A的内部结构与引脚功能1. 8255A 内部结构8255A 的内部结构图,如图 3.1 所示。微机接口与通信课程设计4图 3.1 8255A 的内部结构图 数据接口8255A 有 3 个 8 位的数据接口,即接口 A、接口 B、和接口 C。使用者可以用软件使它们分别作为输入接口或输出接口。 A 组控制和 B 组控制这两组控制电路一方面接收芯片内部总线上的控制字,一方面接收来自读/写控制逻辑电路的读/写命令,从而决定两端口的工作方式和读/写操作。 读/写控制逻辑
14、电路读/写逻辑电路负责管理 8255A 的数据传输过程。它接收来自系统地址总线和信号A1、A0 和控制总线信号 RESET、/WR、/RD,将这些信号组合后,得到 A 组控制部件和 B组控制部件的控制命令,并将命令发给两个部件,完成对数据、状态信息和控制信息的传输。 数据总线缓冲器这是个双向三态 8 位数据缓冲器,8255A 通过它与系统数据总线相连。2. 8255A 的引脚功能8255A 是一个采用 NMOS 工艺制造的 40 个引脚的双列直插式组建,其外部引脚如图 3.2所示。微机接口与通信课程设计5图 3.2 8255A 的外部引脚图8255A 具有面向主机系统总线和面向外设两个方向的连
15、接能力,即通过 8255A,CPU可直接同外设相连接,负责 CPU 和外设之间的数据传送。1 面向系统总线的信号线D0D7:双向数据线;CPU 通过它向 8255A 发送命令、数据;8255A 通过它向 CPU回送状态、数据。/CS:选片信号线,该信号线低电平有效,由系统总线经 I/O 地址译码器产生。A1、A0:芯片内部端口地址信号线,与系统地址总线地位相连。/RD:读信号线,该信号低电平有效,CPU 通过执行 IN 指令,发读信号将数据或状态信号从 8255A 读至 CPU。/WR:写信号线,该信号低电平有效,CPU 通过执行 OUT 指令,发写信号,将命令或数据写入 8255A。RESE
16、T:复位信号线,该信号高电平有效。2 面向 I/O 设备的信号线PA0PA1:端口 A 的输入/输出线。PB0PB7:端口 B 的输入 /输出线。PC0PC7:端口 C 的输入 /输出线。这 24 根信号线均可用来连接 I/O 设备,通过它们传送数字量信息或开关量信息。3.1.2 8255A的工作方式及控制字1. 8255A 的工作方式8255A 有三种工作方式,分别称为方式 0、方式 1 和方式 2.其中端口 A 可以工作在三微机接口与通信课程设计6种方式中的任一种;端口 B 只能工作在方式 0 和方式 1;端口 C 通常作为控制信号使用,配合端口 A 和端口 B 工作。 方式 0基本输入/
17、输出方式在这种方式下,任何一种端口(端口 A、端口 C 上半部,端口 B、端口 C 下半部)都可以通过方式的控制字规定作为输入口,也可以为输出口,各端口之间没有规定必然的关系。各个端口的输入或输出可以有 16 种不同的组合,如表 3.1 所示。表 3.1 方式 0 下各个端口的输入、输出组合控制字 A 组 B 组序号 D7 D6 D5 D4 D3 D2 D1 D016进制A口C口上B口C口下1 1 0 0 0 0 0 0 0 80H 出 出 出 出2 1 0 0 0 0 0 0 1 81H 出 出 出 入3 1 0 0 0 0 0 1 0 82H 出 出 入 出4 1 0 0 0 0 0 1
18、1 83H 出 出 入 入5 1 0 0 0 1 0 0 0 84H 出 入 出 出6 1 0 0 0 1 0 0 1 85H 出 入 出 入7 1 0 0 0 1 0 1 0 86H 出 入 入 出8 1 0 0 0 1 0 1 1 87H 出 入 入 入9 1 0 0 1 0 0 0 0 88H 入 出 出 出10 1 0 0 1 0 0 0 1 89H 入 出 出 入11 1 0 0 1 0 0 1 0 8AH 入 出 入 出12 1 0 0 1 0 0 1 1 8BH 入 出 入 入13 1 0 0 1 1 0 0 0 8CH 入 入 出 出14 1 0 0 1 1 0 0 1 8DH
19、 入 入 出 入15 1 0 0 1 1 0 1 0 8EH 入 入 入 出16 1 0 0 1 1 0 1 1 8FH 入 入 入 入方式 0 的输出有锁存功能,而输入不锁存。方式 0 常用于收发双方无需联络信号的同步传送场合,也可以用于查询传送方式。 方式 1选通输入/输出方式和方式 0 相比,方式 1 最重要的差别是端口 A 和端口 B 用方式 1 进行输入/输出传送时,要利用端口 C 提供的选通信号和应答信号,而这些信号与端口 C 的数位之间有着固定的对应关系。 方式 2双向输入/输出方式这样方式只适用于端口 A。在方式 2 下,外设可以在 8 位数据线上既往 CPU 发送数据又从 C
20、PU 接收数据。此外,和工作于方式 1 情况类似,端口 C 在端口 A 工作于方式 2 时微机接口与通信课程设计7自动提供相应的 5 个控制信号。2. 8255A 的控制字8255A 可以通过在控制端口中设置控制字来决定它的工作方式。8255A 的控制字有两个:方式选择控制字和端口 C 按位置位/复位控制字。方式控制字第 7 位总是 1,而端口C 按位置位/复位控制字第 7 位总是 0,所以第 7 位称为区分两个控制字的标识位。方式选择控制字及其每一位的含义如图 3.3 所示。图 3.3 8255A 方式选择控制字及含义3.2 中断控制器 82598259A 是由 Intel 公司生产的可编程
21、中断控制芯片。它用来管理外设向 CPU 提出的中断请求、实现优先级管理、提供中断向量、屏蔽中断输入等。它能直接管理 8 级中断。若采用级联方式,即主 8259A 接 8 个外设接口的引脚都与另外 8 个 8259A 相连,则不需附加外部电路,用 9 片 8259A 可管理 64 级中断。 8259A 有多种工作方式,能适应各种系统要求。3.2.1 8259的内部结构与引脚功能 8259 的内部结构8259 的内部结构如图 3.4 所示。微机接口与通信课程设计8图 3.4 8259 的内部结构 中断请求寄存器 IRR 中断服务寄存器 ISR 中断屏蔽寄存器 IMR 优先权判别器 PR 数据总线缓
22、冲器 读写控制逻辑 级联缓冲器比较器 控制逻辑部分2.8255A 的引脚功能8259 的外部引脚图如图 3.5 所示。微机接口与通信课程设计9图 3.5 8259 的外部引脚图(1)中断请求输入线 IR7 一 IR0 接收来自外设或 8259A 从片的中断请求信号,可设置为上升沿触发或高电平触发。(2)双向三态数据线 D7D0 可与系统数据总线直接相连,也可通过总线缓冲器与系统数据总线相连。构成 CPU和 8259A 之间信息传送的通道。(3)中断请求线 INT,输出信号,通常与 CPU 的可屏蔽中断输入端 INTR 相连,向 CPU送中断请求信号。(4)中断响应线 INTA接收 CPU 在中
23、断响应周期发来的中断响应信号,8259A 接到此信号后,送上中断类型码。中断类型码由编程设定。(5)片选线由 CPU 的高位地址线控制,当 CS0 时,8259A 被选中,允许 CPU 对 8259A 进行读或写操作。CS1 表示未选中该片。(6)地址线 A0用以选择 8259A 内部不同寄存器。在 8086 系统中,8259A 的 D7 一 D0 与系统数据线低 8 位相连,而 CPU 与偶地址传递低 8 位数据信息,所以 A0 应与 8086CPU 的 A1 相连。(7)读信号 RD低电平有效。当 RD0,允许 8259A 将 IRR、ISR、IMR 的内容送上数据线,供 CPU 读取。
24、(8)写信号 WR低电平有效。当 WR0,允许 CPU 将命令字写入 8259A。(9)级联线 CAS2 一 CAS0 在主从式中断管理系统中,全部 8259A 的 CAS2 一 CAS0 与对应端相连,作为主片的 8259A,其 CAS2CAS0 为输出线,在 CPU 响应中断时,用来输出级联设备编码,选中对应的从片;作为从片的 8259A,其 CAS2 一 CAS0 为输入线,接收来自主片的设备编码。(10)从片编程缓冲位能 SPEN,8259A 可以工作于单片或多片(级联) 、非缓冲或缓冲方式。38259A 的工作原理8259A 对外部中断请求的处理过程如下:(1)当 8259A 接收来
25、自引脚 IR0IR7 的某一引脚的中断请求后应位便置 1,即对这一中断请求作了锁存。微机接口与通信课程设计10(2)锁存之后,逻辑电路根据中断屏蔽寄存器 IMR 中的对应位决定是否屏蔽此中断请求:如果 IMR 中的对应位为 0,则表示允许此中断请求,让它进人中断优先级裁决器 PR作裁决;如果 IMR 中的对应位为 1则说明此中断受到屏蔽,禁止它进人中断优先级裁决器 PR。 (3)中断优先级裁决器 PR 把新进入的中断请求和当前正在处理的中断比较,从而决定哪一个优先级更高。如果新进入的中断请求具有更高的优先级那么,PR 会通过相应的逻辑电路使 8259A 的输出端 INT 为 1,从而向 CPU
26、 发出一个中断请求。(4)如果 CPU 的中断允许标志 IF 为 1、那么 CPU 执行完当前指令后, 就可以响应中断,这时,CPU(对 8086 而言)从线上往 8259A 回送第一个脉冲。第一个负脉冲到达时,8259A 完成以下 3 个任务:使 IRR 的做在功能失效。这样,在 IR7IR0 线上的中断请求信号就暂时不予接收,直到第二个负脉冲到达时,才又使 IRR 的锁存功能有效。使当前中断服务寄存器 ISR 中的相应位置 1,以便为中断优先级裁决器以后的工作提供判断依据。使 IRR 寄存器中的相应位清 0。在此同期中,8259A 并不向系统数据总线送任何内容。(5)接着 CPU 启动第二
27、个中断响应周期,输出另一个脉冲。在此周期,8259A 完成下列动作:恢复 IRR 对外部中断请求的锁存功能。将中断类型寄存器中的内容 ICW2 送到数据总线的 D7D0,CPU 读入。CPU 读取此向量,从而获得中断服务程序的入口地址(包括段地址和段内偏移量) 。中断响应周期完成后,CPU 就可以转至中断服务程序。若 259A 工作在中断自动结束方式,即 AEOI 模式在第二个脉冲结束时,使 ISR 的相应位复位;否则,直至中断服务程序结束,发出 EOI 命令,才使的相应位复位。3.2.2 8259 的工作方式及编程 8259 的工作方式中断触发方式8259A 中断请求输入端 IR0IR7 的
28、触发方式有电平触发和边沿触发两种,可由软件设定。中断屏蔽方式中断屏蔽方式是对 8259 的外部中断请求源 IR0 IR7 实现屏蔽的一种中断管理方式分为普通屏弊方式和特殊屏蔽方式。 中断优先权设置方式 对多个外设的中断请求进行优先权管理是 8259A 的主要功能。它提供了多种优先权管理方式。 中断结束方式微机接口与通信课程设计11中断结束是指当 CPU 为某个中断请求设备服务结束后,应及时清除中断服务标志位否则就意味着中断服务还在继续,致使其它中断请求恢号无法得到响应。 中断嵌套方式中断嵌套方式分为完全嵌套和特殊完全嵌套两化。连接系统总线方式缓冲方式非缓冲方式中断查询方式, 8259A 提供了
29、中断查询方式。这种方式下,外设仍然靠中断申请要求服务,但 CPU 不是通过中断申请的响应而是靠主动查询实现对外设的服务。在 CPU关中断情况下,外设的中断请求信号不被响应,但 CPU 可以通过查询方式检查请求中断的外设,获取中断请求信号,从而进人中断服务。级联方式 8259A 可以级联使用,一个主 8259A 可以带多至 8 个从 8259A,将中断源扩展到 64级。 8259 的编程8259 的初始化初始化命令字 ICW 的格式初始化编程中可供写入的命令字有四个,分别称为 ICW1,ICW2、ICW3 和 ICW4。其中,ICW1 占用一个端口地址。约定端口选择线 A0 为“0”,ICW2I
30、CW4 共用一个端口地址,约定 A0 为“1” 。 1) 初始化命令字 ICW12) 初始化命令字 ICW28086/88 模式下,仅用 ICW2 提供不同中断源的中断向量码。当中断响应时,根据中断向量表获得入口地址。微机接口与通信课程设计123) 初始化命令字 ICW3该命令字用于多片 8259 的级联。4) 初始化命令字 ICW4ICW4 只有在 ICW1 中的 IC4= 1 时才需要设置,其格式如下所示:8259 操作命令字 OCW对 8259 初始化之后,该芯片就进入工作状态,准备好接收 IR 端进入的中断请求。1)操作命令字 OCW1它用于设置对 8259 中断的屏蔽操作。该八位的操
31、作字的某一位为 1 时,它就屏蔽相对应的 IR 输入。微机接口与通信课程设计132)操作命令字 OCW2该命令字用来设置优先级是否循环、循环的方式及中断结束的方式。3)操作命令字 OCW2OCW3 有三方面的功能:控制 8259A 的中断功能、设置中断查询方式、设置读 8259A内部寄存器命令。微机接口与通信课程设计144 源程序及注释;=; 每一组交通灯从左到右依次为红、黄、绿; 用 8255A 控制东西方向交通灯; 用 8255B 控制南北方向交通灯; 用 8255C 模拟事故结束; 用 8259 的 MIR7 接 KK1 模拟紧急情况发生(红灯全亮);=SSTACK SEGMENT ST
32、ACK ;定义堆栈段DW 32 DUP(?)SSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,SS:SSTACK START: MOV AL,89H ;10001001,8255 初始化MOV DX,0646H ; 控制口地址送 DXOUT DX,AL ;输入 8255 控制字;A、B 口输出 C 口输入 工作方式 0PUSH DS ;初始化中断向量表MOV AX,0MOV DS,AXMOV SI,003CH ;中断矢量地址MOV DX,OFFSET JJSG ;取中断入口地址MOV SI,DXMOV AX, SEG JJSG ;取中断服务程序段地址MO
33、V SI, 003EHMOV SI,AXCLI ;关中断POP DSSET8259: MOV AL,13H ;8259 初始化OUT 20H,AL ;ICW1 边沿触发 单片 要 ICW4MOV AL,08HOUT 21H,AL ;ICW2 中断向量码MOV AL,01HOUT 21H,AL ;ICW4 非缓冲 非自动 8088MOV AL,7FH微机接口与通信课程设计15OUT 21H,AL ;OCW1 IR7 非屏蔽STI ;开中断WEGREEN: MOV AL,03HMOV DX,640HOUT DX,AL ;东、西方向亮绿交通灯MOV AL,0C0HMOV DX,642HOUT DX,
34、AL ;南、北方向亮红交通灯MOV BX,0FFHTT1: MOV CX,2FFFH ;通过 BX 计数来控制 TT1 循环次数MOV AL,03H ;使中断返回时保持上一状态MOV DX,640HOUT DX,AL LOOP $DEC BXJNZ TT1 ;调用延时程序MOV CX,3 ;东、西方向黄灯循环次数WEYELLOW: MOV AL,18HMOV DX,640H OUT DX,AL ;东、西方向黄灯亮MOV BX,0FHTT2: CALL DELAYDEC BXJNZ TT2 ;调用延时程序MOV AL,00HMOV DX,640HOUT DX,AL ;东、西方向黄灯灭MOV BX
35、,0FHTT3: CALL DELAY ;调用延时程序DEC BXJNZ TT3 LOOP WEYELLOW ;循环东、西黄灯亮灭过程SNGREEN: MOV AL,0C0HMOV DX,640HOUT DX,AL ;东、西方向亮红交通灯MOV AL,03HMOV DX,642H微机接口与通信课程设计16OUT DX,AL ;南、北方向亮绿交通灯 MOV BX,0FFH ;用 BX 控制 TT4 的循环次数TT4: MOV CX,2FFFHMOV AL,03H ;中断返回后保持上一状态MOV DX,642HOUT DX,AL LOOP $DEC BXJNZ TT4 MOV CX,3 ;南、北方
36、向黄灯循环次数SNYELLOW: MOV AL,18HMOV DX,642HOUT DX,AL ;南、北方向黄灯亮MOV BX,0FHTT5: CALL DELAYDEC BXJNZ TT5 ;调用延时程序MOV AL,00HMOV DX,642HOUT DX,AL ;南、北方向黄灯灭MOV BX,0FHTT6: CALL DELAY ;调用延时程序 DEC BXJNZ TT6 LOOP SNYELLOW ;循环南、北黄灯亮灭过程JMP WEGREEN ;整个交通灯过程循环DELAY: PUSH CX ;延时程序MOV CX,2FFFH ;设置 CX 循环计数值PUSH AXPOP AXLOO
37、P $ POP CXRETJJSG: PUSH DX PUSH AXMOV DX,640H ;紧急事故发生时强制东西方向红灯亮微机接口与通信课程设计17MOV AL,0C0HOUT DX,AL MOV DX,642H ;紧急事故发生时强制南北方向红灯亮MOV AL,0C0HOUT DX,AL GZD: MOV DX,644H ;C 口下地址IN AL,DX ;读 C 口下数据AND AL,01HJZ GZD ;检测故障是否消除MOV AL,20H ;OCW2 关中断OUT 20H,AL ;中断结束命令POP AXPOP DXSTI ;开中断IRET ;中断返回CODE ENDSEND STAR
38、T微机接口与通信课程设计185 主要程序分析5.1 8255的初始化MOV AL,89H MOV DX,646HOUT DX,AL将 8255 的控制字送给它的控制寄存器,控制字 89H 表示 A 端口输出,B 端口输出,C端口输入,工作方式 0。这样就实现了对 8255 三个端口的初始化。5.2 信号灯的控制方法5.2.1 红绿灯的控制MOV AL,03HMOV DX,640HOUT DX,AL MOV AL,0C0HMOV DX,642HOUT DX,AL MOV BX,0FFHMOV CX,2FFFH MOV AL,03H MOV DX,640HOUT DX,AL LOOP $DEC B
39、XJNZ TT1在上面的程序中,03H 为送入 A 口来的控制二极管发光的特定值,03H 转化为二进制数是 00000011B,由上表可知代表东西路口的绿灯,0C0H 为送入 B 口来的控制二极管发光的特定值,0C0H 转化为二进制数是 11000000B。在保持这种状态一段时间后,红绿灯将跳转,在这时绿灯熄灭等待,黄灯给出跳转信号。其他部分与此程序相同。5.2.2 黄灯的控制MOV CX,3 微机接口与通信课程设计19MOV AL,18HMOV DX,640H OUT DX,ALMOV BX,0FHCALL DELAYDEC BXJNZ TT2MOV AL,00HMOV DX,640HOUT
40、 DX,ALMOV BX,0FHCALL DELAYDEC BXJNZ TT3LOOP WEYELLOW这个程序的控制原理与红绿灯的控制原理是一样的,将 18H 既 00011000 送给端口 A,控制东西方向的黄灯亮,但根据实际情况黄的不能保持不变,必须闪烁,所以在黄灯亮一小段时间后将 00H 送入 A 口,使东西方向黄灯熄灭,这样就形成了闪烁的过程,使黄灯闪烁两次之后再跳转到下一状态。5.3 调用程序DELAY: PUSH CX MOV CX,2FFFH PUSH AXPOP AXLOOP $ POP CXRET调用子程序,起到延时的作用,使交通信号灯的变化尽量模拟实际信号灯的时间变化。微
41、机接口与通信课程设计20结 论通过这次课设使我对微处理器 8086,中断控制器 8259,并行接口芯片 8255A 的工作原理有了进一步的了解和掌握。这次课程设计,使我更加深刻的理解到了微机接口是做什么的,尤其是怎样使用这些芯片使其发挥出如交通灯这样丰富的功能的。通过使用8259 中断控制器、8255A 可编程并行接口实现了交通灯的实时管理与控制。在做这个设计时,我首先复习了以前做过的关于 8259 中断控制器、8255A 可编程的实验,进一步加深了对这些芯片的理解。通过查阅课本和试验指导书等相关资料,和在老师的指导下,我了解了 8259 中断控制器、8255A 可编程等芯片的操作方式,TDN
42、86/88 系统的连接布线、地址分配情况和使用方法。在我们小组的整个课程设计中,曲乐声老师和王德君老师对我们的帮助是最大的,为我们解决了很多问题,可以说,没有两位老师的帮助就不能成功的完成本次课程设计。曲老师每天都准时的到达实训教室,细心的指导每个小组,还为我们讲解了很多操作上的捷径,为我们讲解了一些附加的知识,这样就使我们能在以后的工作和学习中有很大的帮助。我们为遇到这样一个好老师而感到高兴!在设计完善过程中,我们也遇到了这样或那样的技术问题,但经过两位老师指导帮助和自己的不懈努力及查阅大量的资料,最终都得到了基本满意的答案。经过这次的课程设计,我重新将微机接口的知识复习了一遍,认识到它在现
43、实中的重要意义,受益颇深。在这个过程中,遇到了许多意想不到的问题,自己感觉最主要的就是在下笔之前,一定要认真思考,将要解决的问题和可能出现的问题充分考虑到,从整体上形成一个清晰的流程图,这样以后的编程工作才能变得更加有意义,否则会事倍功半的,将会在编程工作中遇到许多逻辑上的错误和考虑不周到而导致的错误。所以我想只有通过实践才能学的更好,学的更扎实。微机接口与通信课程设计21致 谢一周的课设时间结束了,首先我要感谢老师每天不辞劳苦为我们细心的讲解和指导,让我明白了自己许多不足之处,以后的时间要抓紧学习。在这次设计中,我不但学到了以前不知道的东西,而且也巩固了以前在书本上学的东西,更重要的是在这次
44、实践过程中理解了课本上的东西,我更明白了自己的知识是多么的不足。感谢老师在此次课程设计中给予我热情而耐心的指导,指出我设计的不足之处以及提供的资料。还有感谢我的同学,在我设计出现困难的时候,通过和他们一起讨论研究,解决了许多难题,交流各自的思想,学到了许多新知识。感谢这一周的时间里老师的指导和同学的帮助使我的设计够顺利地进行下来。在此忠心的感谢本次设计中给我了帮助的人!微机接口与通信课程设计22参考文献1李继灿.新编 16/32 微型计算机原理及用 .清华大学出版社.2王庆利、李珍.微型计算机原理及应用.西安电子科技大学出版社.3宋杰、汪志宏、江敏.微机原理与接口技术课程设计.机械工业出版社.4朱定华.微机原理、汇编与接口技术学习指导.清华大学出版社.5任向民.微机接口技术实用教程.清华大学出版社.6戴梅萼、史嘉权编. 微型计算机技术及应用.清华大学出版社.7艾德才. 微机接口技术实用教程.清华大学出版社.微机接口与通信课程设计23附录 A1.1 实际硬件接线图