1、 课程设计报告题 目 交通灯的设计 课 程 名 称 微机原理及应用 院 部 名 称 机电工程学院 专 业 电气工程及其自动化 班 级 XXXXXXXXXXX 学 生 姓 名 XXXXX 学 号 XXXXXXXXXX 课程设计地点 工科楼 C304 课程设计学时 20 指 导 教 师 XXXXXXXXX 金陵科技学院教务处制成绩摘 要运用了 8086 CPU 芯片以及 8255A 芯片、8253 芯片和数码管等辅助硬件电路,进行了数码管倒计时的设计。进行了软件设计并编写了源程序。交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以
2、有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用 8086 为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展强。本设计就是采用 8086 最小方式下在 Protues7.8SP2 软件下模拟十字路口交通灯的各种状态显示以及倒计时显示时间。 本设计系统由 8255AI/O 口扩展系统、交通灯状态显示系统、LED 数码显示系统等几大部分组成。系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。本系统采用 8086 汇编语言编写,主要编写了主程序,LED 数码管显示程序等。总体上完成了软件的编写。关键词:带倒计
3、时功能的交通灯;8255A;8086 微机系统目 录一、概述1.1 课程设计的目的31.2 课程设计的要求3二、总体设计方案及说明2.1 系统总体设计方案42.2 系统工作框图4三、系统硬件电路设计3.1 Intel 8086 微处理器的简介53.2 8255A 芯片的工作原理 73.3 多位数码管的工作原理83.4 74LS273 芯片简介 103.5 系统电路图设计 113.5.1.系统总电路图设计113.5.2.8086 最小系统原理图设计12四、系统软件部分设计4.1 系统流程图144.2 系统软件源程序154.2.3 汇编源程序及说明16五、总结5.1 系统调试185.2 心得与体会
4、20六、参考文献22一、 概述1.课程设计应达到的目的通过本课程设计,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。使学生进一步掌握微型计算机应用系统的硬、软件开发方法,输入/输出(I/O)接口技术,应用程序设计技术,并能结合专业设计简单实用的微型计算机应用系统。针对课堂重点讲授内容使学生加深对微型计算机硬件原理的理解及提高汇编语言程序设计的能力,为以后的毕业设计搭建了微机系统应用平台,提高学生的开发创新能力。2.课题训练内容设计一个基于 8086/8088 微型计算机的一个交通信号灯控制系统,要求能完成基本的交通灯控制,如红、绿、黄三种灯的定时交替点亮与熄灭;要求学生了解
5、8086/8088 微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路原理图的能力,能编写一定难度的汇编程序并调试。3.设计一个模拟交通信号灯控制系统,要求:1)系统功能:十字路口信号灯东西向南北向各 2 组,每组用红黄绿 3 只 LED 模拟交通信号灯。开始:南北红灯、东西绿灯亮,之后南北红灯、东西黄灯亮,然后南北绿灯、东西红灯亮,然后南北黄灯、东西红灯亮,返回开始。2)给出系统设计方案,画出硬件连线图,并说明工作原理;3)画出程序框图并编写程序。二、总体设计方案与说明2.1 系统总体设计方案本设计是基于 Windows 环境下的 Prot
6、eus7.8 软件,在其中进行硬件电路的的设计,汇编语言源程序的编写以及以上两部分工作完成后的软件系统的调试。本设计的处理控制系统由 Intel 8086 微处理器在最小模式下组成的单处理器系统构成,用来进行对外围硬件电路进行信息采集、数据处理和控制。2.2 系统工作框图本课程设计使用 8086CPU 控制 8255A 和 74273 锁存器分别控制 LED 数码管和 LED交通灯。第一片 8255A 被选择后,从数据总线上写入数据到输出端,把 LED 数码管的待显示的字符对应是 16 进制数,即要 7 段数码管的对应位的 LED 置高电平(选择的是共阴极数码管)就可以显示对应的段码。第二片
7、8255A 被选择后,从数据总线上写入的数据是指定哪一位数码管显示字符,低电平有效。同时 74273 锁存器也要按程序设定点亮 LED 交通灯。三、系统硬件部分设计3.1 Intel 8086 微处理器的简介Intel 8086 是 Intel 公司于 1978 年推出的 16 位微处理器。它采用 HMOS 工艺制造,片内有 2.9 万个晶体管,单一电源+5V 供电,时钟频率 4.77-10MHz,片内数据总线、寄存器和外部数据总线都为 16 位,最大可寻址的物理地址为 1M。要掌握一个 CPU 的工作性能及使用方法,首先应该了解它的编程结构。在8086CPU 的编程结构上,从功能上,分为两部
8、分,即总线接口部件(BIU)和执行部件(EU ) 。8086 的逻辑地址为 20 位,物理地址为 16 位, ,对于编程员来说,只需要考虑逻辑地址即可。8086 为 40 只引脚双列直插式封装。Intel 8086 可以工作在最大和最小两种模式下,最小模式和最大模式的确定是通过一条 MN/MN 所接的逻辑电平是“1”还是“0” 来完成。在最小方式下,微处理器被用来构成一个小规模的单处理机系统,微处理器本身必须提供全部的的控制信号给外围电路。微处理器被用来构成一个较大规模的多机系统。在最小模式下的信号如下:(1)AD15AD0(address data bus)地址/数据复用引脚(双向工作) 分
9、时复用的地址/数据线。(2)A19/S6A16/S3(Address/Status)输出,是分时复用的地址/ 状态线。用作地址线时,A19A16 与 A15A0 一起构成访问存储器的 20 位物理地址。(3)BHE/ S7 (Bus High Enabale/Status)总线高字节有效信号。三态输出,低电平有效,用来表示当前高 8 位数据线上的数据有效。(4)NMI(Non Maskable Interrupt Request)不可屏蔽中断请求信号。由外部输入,上升沿触发,不受中断允许标志的限制。(5)INTR(Interrupt Request)可屏蔽中断请求信号。由外部输入,电平触发,高
10、电平有效。(6)RD( Read)读信号。三态输出,低电平有效,表示当前 CPU 正在读存储器或 IO端口。(7) CLK(Clock)主时钟引脚(输入) 。由 8284 时钟发生器输入。8286CPU 可使用的最高时钟频率随芯片型号不同而异,8086 为 5MHz,8086-1 为 10MHz,8086-2 为8MHz。(8) RESET(reset )复位信号。由外部输入,高电平有效。(9) READY(ready)准备就绪信号。由外部输入,高电平有效,表示 CPU 访问的存储器或 IO 端口已准备好传送数据。(10) TEST 测试信号。由外部输入,低电平有效。 CPU 执行 WAIT
11、指令时,每隔 5 个时钟周期对 TEST 进行一次测试,若测试 TEST 无效,则 CPU 处于踏步等待状态,直到 TEST 有效,CPU 才继续执行下一条指令。(11) MN/MX 工作模式选择信号。由外部输入,MN/MX 为高电平时,CPU 工作在最小模式;MN/MX 为低电平时,CPU 工作在最大模式。(12) GND/VCC 电源地和电源。8086CPU 只需要单一的 +5V 电源,由 VCC 引脚输入。(13) INTA 中断响应信号。向外部输出,低电平有效。在中断响应周期,该信号表示CPU 响应外部发来的 INTR 信号,用作读中断类型码的选通信号。(14) ALE 地址锁存允许信
12、号。向外部输出,高电平有效。在最小模式系统中用作地址锁存器的片选信号。(15) DEN 数据允许信号,三态输出,低电平有效。(16) DT/R 数据发送 /接收控制信号。(17) M/IO 存储器 /IO 端口访问信号。(18) WR 写信号。三态输出,低电平有效,表示当前 CPU 正在写存储器或 IO 端口。(19) HOLD 总线请求信号。由外部输入、高电平有效。表示有其他共享总线的处理器/控制器向 CPU 请求使用总线。(20) HLDA 总线请求响应信号。向外部输出,高电平有效。CPU 一旦测试到有HOLD 请求,就在当前总线周期结束后,使 HLDA 有效,表示响应这一总线请求,并立即
13、让出总线使用权。在不要求使用总线的情况下,CPU 中指令执行部件可继续工作。HOLD 变为无效后,CPU 也将 HLDA 置成无效,并收回对总线的使用权,继续操作。3.2 8255A 芯片的工作原理8255 是 Intel 公司生产的可编程并行 I/O 接口芯片,有 3 个 8 位并行 I/O 口。具有 3 个通道 3 种工作方式的可编程并行接口芯片(40 引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255 可作为单片机与多种外设连接时的中间接口电路。8255 作为主机与外设的连接芯片,必须提供与主机相连的 3 个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口
14、 A、B、C 口。由于8255 可编程,所以必须具有逻辑控制部分,因而 8255 内部结构分为 3 个部分:与CPU 连接部分、与外设连接部分、控制部分。1)与 CPU 连接部分根据定义,8255 能并行传送 8 位数据,所以其数据线为 8 根 D0D7。由于8255 具有 3 个通道 A、B、C,所以只要两根地址线就能寻址 A、B、C 口及控制寄存器,故地址线为两根 A0A1 。此外 CPU 要对 8255 进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:(1)数据总线 DB:编号为 D0D7,用于 8255 与 CPU 传送 8 位数据。(2)地址总线 AB
15、:编号为 A0A1,用于选择 A、B、C 口与控制寄存器。(3)控制总线 CB:片选信号、复位信号 RST、写信号、读信号。当 CPU 要对8255 进行读、写操作时,必须先向 8255 发片选信号选中 8255 芯片,然后发读信号或写信号对 8255 进行读或写数据的操作。2)与外设接口 部分根据定义,8255 有 3 个通道 A、B、C 与外设连接,每个通道又有 8 根线与外设连接,所以 8255 可以用 24 根线与外设连接,若进行开关量控制,则 8255 可同时控制 24 路开关。各通道的引脚 编号如下:(1)A 口:编号为 PA0PA7 ,用于 8255 向外设输入输出 8 位并行数
16、据。(2)B 口:编号为 PB0PB7 ,用于 8255 向外设输入输出 8 位并行数据。(3)C 口:编号为 PC0PC7,用于 8255 向外设 输入输出 8 位并行数据,当8255 工作于应答 I/O 方式时, C 口用于应答信号的通信。3)控制器部分8255 将 3 个通道分为两组,即 PA0PA7 与 PC4PC7 组成 A 组,PB0PB7与 PC0PC3 组成 B 组。如图 7.5 所示,相应的控制器也分为 A 组控制器与 B 组控制器,各组控制器的作用如下:(1)A 组控制器:控制 A 口与上 C 口的输入与输出。(2)B 组控制器:控制 B 口与下 C 口的输入与输出。引脚功
17、能:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0 时,表示芯片被选中,允许 8255 与 CPU 进行通讯 ;/CS=1 时,8255 无法与 CPU 做数据传输.RD:读信号线,当这个输入引脚为低跳变沿时,即/RD 产生一个低脉冲且/CS=0 时,允许 8255 通过数据总线 向 CPU 发送数据或状态信息,即 CPU 从 8255 读取信息或数据。WR:写入信号,当这个输入引脚为低跳变沿时,即/WR 产生一个低脉冲且/CS=0时, 允许 CPU 将数据
18、或控制字写入 8255。D0D7:三态双向数据总线,8255 与 CPU 数据传送 的通道,当 CPU 执行输入输出指令时,通过它实现 8 位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255 具有 3 个相互独立的输入/输出通道端口,用+5V 单电源供电,能在以下三种方式下工作。方式 0基本输入输出方式;方式 1选通输入/出方式;方式 2双向选通输入/输出方式;PA0PA7: 端口 A 输入输出线,一个 8 位的数据输出锁存器/ 缓冲器, 一个 8 位的数据输入锁存器。 工作于三种方式中的任何一种;PB0PB7: 端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8
19、位的输入输出缓冲器。 不能工作于方式二;PC0PC7: 端口 C 输入输出线,一个 8 位的数据输出锁存器/缓冲器, 一个 8 位的数据输入缓冲器。端口 C 可以通过工作方式设定而分成 2 个 4 位的端口, 每个 4 位的端口包含一个 4 位的锁存器 ,分别与端口 A 和端口 B 配合使用,可作为控制信号输出或状态信号输入端口。不能工作于方式一或二。A1,A0:地址选择线 ,用来选择 8255 的 PA 口,PB 口 ,PC 口和控制寄存器.当 A1=0,A0=0 时,PA 口被选择 ;当 A1=0,A0=1 时,PB 口被选择 ;当 A1=1,A0=0 时,PC 口被选择;当 A1=1.A0=1 时,控制寄存器被选择.3.3 多位数码管的工作原理led 数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成 8 字形构成的,加上小数点就是 8 个。这些段分别由字母a,b,c,d,e,f,g,dp 来表示。