《微机设计报告-led数码管倒计时系统文档.pdf》由会员分享,可在线阅读,更多相关《微机设计报告-led数码管倒计时系统文档.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计报告 微机原理与接口技术 LED 数码管倒计时系统LED数码管倒计时系统 摘要:本次设计用了 8086 CPU 芯片以及 8255A 芯片、8253芯片和数码管等辅助硬件电 路,进行了数码管倒计时的设计。进行了软件设计并编写了源程序。数码管倒计时在人 们的日常生活中运用广泛。本系统采用 8086 为中心器件来设计数码管倒计时系统,系 统实用性强、操作简单、扩展强。本设计就是采用 8086 最小方式下在 Protues7.8 软件下 模拟倒计时显示时间。本设计系统由 8255AI/O 口扩展系统、LED 数码显示系统等几大部 分组成,本系统采用 8086 汇编语言编写,主要编写了主程序,
2、LED数码管显示程序等。总体上完成了软件的编写。关键词:8086 微机系统;倒计时;LED 显示系统 1 概述 1.1 课程设计应达到的目的 通过本课程设计,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。使学生进一步掌握微型计算机应用系统的硬、软件开发方法,输入/输出(I/O)接口技术,应用程序 设计技术,并能结合专业设计简单实用的微型计算机应用系统。针对课堂重点讲授内容使学生加 深对微型计算机硬件原理的理解及提高汇编语言程序设计的能力,为以后的毕业设计搭建了微机 系统应用平台,提高学生的开发创新能力。1.2 课题训练内容 设计一个基于 8086 微型计算机的一个 LED
3、数码管倒计时系统,要求能完成基本的倒计时功 能;要求学生了解 80868 微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路原理图的能力,能编写一定难度的汇编程序并调试。1.3 设计一个模拟交通信号灯控制系统,要求:1)系统功能:闭合倒计时开关后,LED 数码管能自动开始倒计时,能在数码管每隔 1 秒钟,计时器减 1,并具有随时能够暂停的功能,重新闭合开关后能继续倒计时,直到倒计时结束,数 码管显示为 0 为止。2)给出系统设计方案,画出硬件连线图,并说明工作原理;3)画出程序框图并编写程序。2 总体设计方案与说明 2.1 系统总体设计方案
4、本设计是基于 Windows 环境下的 Proteus7.8 软件,在其中进行硬件电路的的设计,汇编语言 源程序的编写以及以上两部分工作完成后的软件系统的调试。本设计的处理控制系统由 Intel 8086 微处理器在最小模式下组成的单处理器系统构成,用来 进行对外围硬件电路进行信息采集、数据处理和控制。2.2 系统结构框图如图 2-2 结构图 2-2 结构图 3 系统硬件部分设计 3.1 Intel 8086 微处理器的简介 Intel 8086 是Intel公司于 1978年推出的 16位微处理器。它采用 HMOS 工艺制造,片内有 2.9 万个晶体管,单一电源+5V 供电,时钟频率 4.7
5、7-10MHz,片内数据总线、寄存器和外部数据 总线都为 16 位,最大可寻址的物理地址为 1M。要掌握一个 CPU 的工作性能及使用方法,首先应该了解它的编程结构。在 8086CPU 的编程 结构上,从功能上,分为两部分,即总线接口部件(BIU)和执行部件(EU)。8086 的逻辑地址 为 20 位,物理地址为 16 位,对于编程员来说,只需要考虑逻辑地址即可。8086 为 40 只引脚双 列直插式封装。Intel 8086 可以工作在最大和最小两种模式下,最小模式和最大模式的确定是通过一条 MN/MN 所接的逻辑电平是“1”还是“0”来完成。在最小方式下,微处理器被用来构成一个小规模的单处
6、理机系统,微处理器本身必须提供全 部的的控制信号给外围电路。微处理器被用来构成一个较大规模的多机系统。在最小模式下的信 号如下:(1)AD15AD0(address data bus)地址/数据复用引脚(双向工作)分时复用的地址/数据线。(2)A19/S6A16/S3(Address/Status)输出,是分时复用的地址/状态线。用作地址线时,A19A16 与 A15A0 一起构成访问存储器的 20 位物理地址。(3)BHE/S7(Bus High Enabale/Status)总线高字节有效信号。三态输出,低电平有效,用来 表示当前高 8 位数据线上的数据有效。(4)NMI(Non Mask
7、able Interrupt Request)不可屏蔽中断请求信号。由外部输入,上升沿触发,不受中断允许标志的限制。(5)INTR(Interrupt Request)可屏蔽中断请求信号。由外部输入,电平触发,高电平有效。(6)RD(Read)读信号。三态输出,低电平有效,表示当前 CPU正在读存储器或 IO 端口。(7)CLK(Clock)主时钟引脚(输入)。由 8284时钟发生器输入。8286CPU 可使用的最高时 钟频率随芯片型号不同而异,8086 为 5MHz,8086-1 为 10MHz,8086-2 为 8MHz。(8)RESET(reset)复位信号。由外部输入,高电平有效。(9
8、)READY(ready)准备就绪信号。由外部输入,高电平有效,表示 CPU 访问的存储器或 IO 端口已准备好传送数据。(10)TEST 测试信号。由外部输入,低电平有效。CPU 执行 WAIT 指令时,每隔 5 个时钟周 期对 TEST 进行一次测试,若测试 TEST 无效,则 CPU 处于踏步等待状态,直到 TEST 有效,CPU 才继续执行下一条指令。(11)MN/MX 工作模式选择信号。由外部输入,MN/MX 为高电平时,CPU 工作在最小模式;MN/MX 为低电平时,CPU 工作在最大模式。(12)GND/VCC 电源地和电源。8086CPU 只需要单一的+5V 电源,由 VCC
9、引脚输入。(13)INTA 中断响应信号。向外部输出,低电平有效。在中断响应周期,该信号表示 CPU 响 应外部发来的 INTR 信号,用作读中断类型码的选通信号。(14)ALE 地址锁存允许信号。向外部输出,高电平有效。在最小模式系统中用作地址锁存器 的片选信号。(15)DEN 数据允许信号,三态输出,低电平有效。(16)DT/R 数据发送/接收控制信号。(17)M/IO 存储器/IO 端口访问信号。(18)WR 写信号。三态输出,低电平有效,表示当前 CPU正在写存储器或 IO 端口。(19)HOLD 总线请求信号。由外部输入、高电平有效。表示有其他共享总线的处理器/控制 器向 CPU请求
10、使用总线。(20)HLDA 总线请求响应信号。向外部输出,高电平有效。CPU 一旦测试到有 HOLD 请求,就在当前总线周期结束后,使 HLDA 有效,表示响应这一总线请求,并立即让出总线使用权。在 不要求使用总线的情况下,CPU 中指令执行部件可继续工作。HOLD 变为无效后,CPU 也将 HLDA 置成无效,并收回对总线的使用权,继续操作。3.2 8255A 芯片的工作原理 8255 是 Intel 公司生产的可编程并行 I/O 接口芯片,有 3 个 8 位并行 I/O 口。具有 3 个通道 3 种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。825
11、5 可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的 3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口 A、B、C口。由于 8255可编程,所以必须具有逻辑 控制部分,因而 8255内部结构分为 3个部分:与 CPU 连接部分、与外设连接部分、控制部分。1)与 CPU 连接部分 根据定义,8255 能并行传送 8 位数据,所以其数据线为 8 根 D0 D7。由于 8255 具有 3 个 通道 A、B、C,所以只要两根地址线就能寻址 A、B、C 口及控制寄存器,故地址线为两根 A0 A1。此外 CPU要对 8255进行读、
12、写与片选操作,所以控制线为片选、复位、读、写信号。各信 号的引脚编号如下:(1)数据总线 DB:编号为 D0D7,用于 8255与CPU传送 8位数据。(2)地址总线 AB:编号为 A0 A1,用于选择 A、B、C 口与控制寄存器。(3)控制总线 CB:片选信号、复位信号 RST、写信号、读信号。当 CPU 要对 8255 进行读、写操作时,必须先向 8255 发片选信号选中 8255 芯片,然后发读信号或写信号对 8255 进行读或 写数据的操作。2)与外设接口部分 根据定义,8255有 3 个通道 A、B、C与外设连接,每个通道又有 8 根线与外设连接,所以 8255 可以用 24 根线与
13、外设连接,若进行开关量控制,则 8255 可同时控制 24 路开关。各通道的 引脚编号如下:1)A 口:编号为 PA0PA7,用于 8255 向外设输入输出 8 位并行数据。(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组控制器
14、,各组控制器的作用如 下:(1)A 组控制器:控制 A 口与上 C 口的输入与输出。(2)B 组控制器:控制 B 口与下 C 口的输入与输出。引脚功能:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清 除,所有 I/O 口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0 时,表示芯片被选中,允许 8255 与 CPU 进行通讯;/CS=1 时,8255 无法与 CPU 做数据传输.RD:读信号线,当这个输入引脚为低跳变沿时,即/RD 产生一个低脉冲且/CS=0 时,允许 8255 通过数据总线向 CPU 发送数据或状态信息,即
15、 CPU 从 8255 读取信息或数据。WR:写入信号,当这个输入引脚为低跳变沿时,即/WR 产生一个低脉冲且/CS=0 时,允许 CPU 将数据或控制字写入 8255。D0D7:三态双向数据总线,8255与 CPU数据传送的通道,当 CPU执行输入输出指令时,通过它实现 8 位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255 具有 3 个相互独立的输入/输出通道端口,用+5V 单电源供电,能在以下三种方式下工 作。方式 0基本输入输出方式;方式 1选通输入/出方式;方式 2双向 选通输入/输出方式;PA0PA7:端口 A 输入输出线,一个 8位的数据输出锁存器/缓冲器,一个 8
16、位的数据输入锁 存器。工作于三种方式中的任何一种;PB0PB7:端口 B 输入输出线,一个 8位的 I/O 锁存器,一个 8 位的输入输出缓冲器。不能 工作于方式二;PC0PC7:端口 C 输入输出线,一个 8位的数据输出锁存器/缓冲器,一个 8位的数据输入缓 冲器。端口 C可以通过工作方式设定而分成 2个4位的端口,每个 4位的端口包含一个 4位的锁 存器,分别与端口 A 和端口 B 配合使用,可作为控制信号输出或状态信号输入端口。不能工作 于方式一或二。A1,A0:地址选择线,用来选择 8255 的 PA 口,PB 口,PC 口和控制寄存器。当 A1=0,A0=0 时,PA 口被选择;当
17、A1=0,A0=1 时,PB 口被选择;当 A1=1,A0=0 时,PC 口被选择;当 A1=1,A0=1 时,控制寄存器被选择。3.3 多位数码管的工作原理 led 数码管由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只 需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成 8 字形构成的,加上小数 点就是 8 个。这些段分别由字母 a,b,c,d,e,f,g,dp 来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是 a 亮 b 亮 g 亮 e 亮 d 亮 f 不亮 c 不亮 dp 不亮。L
18、ED 数码管有一般 亮和超亮等不同之分,也有 0.5 寸、1 寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光 二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的 管压降为 1.8V 左右,电流不超过 30mA。发光二极管的阳极连接到一起连接到电源正极的称为共 阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用 LED 数码管 显示的数字和字符是 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数 字,因此根据 LED 数码管的驱动方式的不
19、同,可以分为静态式和动态式两类。静态显示 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 端口 进行驱动,或者使用如 BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显 示亮度高,缺点是占用 I/O 端口多,如驱动 5 个数码管静态显示则需要 5 8=40 根 I/O 端口来驱 动,要知道一个 89S51 单片机可用的 I/O 端口才 32 个,实际应用时必须增加译码驱动器进行驱 动,增加了硬件电路的复杂性。动态显示 LED 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有 数码管的 8 个显示笔划 的同名端连在一
20、起,另外为每个数码管的公共极 COM 增 加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的 COM 端,就使各个数码管轮流 受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为 1 2ms,由于人的 视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速 度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是 一样的,能够节省大量的 I/
21、O 端口,而且功耗更低。3.4 74LS273 芯片简介 74LS273 是 8 位数据锁存器。主要用于数码管、按键等等的控制,其真值表如下:表 1 74LS273 真值表 DN LE OE ON H H L H L H L L L L Q0 H Z 芯片管脚图如下:图 1 74LS273 引脚图 U2 的功能是实现 AD0.7 的锁存,由于 8086 CPU 的总线是地址/数据复用总线,因此需要在 传送地址信号的时候,将数据信号锁存起来,即将数据信号锁存在 74273 触发器中,待地址传送 完毕后再按需要将数据信号输出。3.5 系统电路图设计 系统总电路图如下图所示:图 2 系统总电路图 8
22、086 最小系统原理图如下所示:图 3 8086 最小系统原理图 8086最小系统由 Intel 8086微处理器、74273 TTL 带公共时钟复位八 D触发器、以及 74154 TTL 4 线 16 线译码器等组成。8086 有 20 位地址线,其中高 4 位 A19-A16 与状态线 S6-S3 分时复用,低 16 位 AD15-AD0 与数据线分时复用。在总线周期的 T1 时将地址送出后,就必须用锁存器将它们锁存起来,以便 在 T2 及以后搞死位地址线改为状态输出,低 16 位地址线该做数据线使用。另外,表明八位数据 线是否起作用的数据总线允许信号是与状态线 S7 分时复用的,故也需要
23、锁存。21 条线需采用 3 片 8 位地址锁存器,这里采用 74273。与外围硬件电路的连接的 I/O 部分由 4 线-16 线译码器 74154 组成,用来分配 I/O 硬件地址。4 系统软件部分设计 4.1 定义 8255 的工作方式 MOV DX,KZ_8255 MOV AL,10001011B OUT DX,AL 4.2 定义 8253 的工作方式以及时间分频 MOV DX,KZ_8253 MOV AL,00110111B OUT DX,AL MOV DX,DSQ0_8253 MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL 4.3 中断服务程序 DE
24、C MIAO CMP MIAO,-01D JZ TINGZHI JZHONGDUAN:JMP DISPLAY 5 系统仿真过程与结果 5.1 系统调试 将编写好的汇编语言源程序在 Tangdu 软件中进行汇编、连接生成可执行文件,并将其载入 到 8086 芯片进行仿真。倒计时数码管显示 8 如图 5-1 倒计时 8 倒计时数码管显示 4 如图 5-2 倒计时 4 图 5-2 倒计时 4 倒计时结束,数码管显示 0,如 图 5-3 倒计时 0图 5-1 倒计时 8 图 5-3 倒计时 0 通过以上的调试过程和仿真调试结果可知,所设计的电路和所编写的程序满足实验要求。6 结论 本次课程设计是要设计
25、一个 LED 数码管倒计时系统,主要功能如上已有细述。在本次对 LED 数码管倒计时系统的设计过程中以此来加深对微机接口技术的理解,提高了自己的动手能力。首 先着手对硬件电路的设计,本次课程设计主要采用了 8255A 接口电路。由于对各个芯片不熟悉,通过课本了解到了它们的引脚及功能、工作方式、内部结构和控制字。然后就是对程序的设计,想要设计出一个实用的控制系统需要了解程序流程,先画出了流程图,然后对代码进行编写,在 编写过程中遇到了很多问题,对芯片的不了解也导致编程的很多的问题。最后经过一段时间的研 究,查阅了很多资料并和同学讨论后终于一一解决。经过为期一个星期的课程设计,我获益颇多。将微机接
26、口技术中的理论与实践相结合起来,对芯片的功能也有了进一步认识理解。最后希望通过以后的学习,不断提升自身各方面的能力,如对专业知识的掌握程度,动手实践能力等。经过此次的课程设计,我们学会了合作。我们要形 成自己的设计思想,以便在今后的专业课形成自己的风格。同时在多多锻炼自己的动手能力,以 便在以后的工作能独立完成一些设计项目。附件:源程序及其说明 AK_8255 EQU 11100000B 定片选 CS0 KZ_8255 EQU 11100110B KZ_8253 EQU 11110110B 器 0 初值 DSQ0_8253 EQU 11110000B DSEG SEGMENT;自定义数据段 P
27、IANYI DW 0000H JIZHI DW 0000H MIAO DB 09D TABLEDU DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG;定义各段分别用哪个寄存器寻址 START:MOV AX,DSEG;初始化 MOV DS,AX CLI;关中断 ;设置 1时间 MOV DX,KZ_8255;8255 写控制字 MOV AL,10001011B OUT DX,AL;8255,A 口为方式 0 输出,B、C 口暂时不使用 为输入 MOV DX,KZ_8253
28、 MOV AL,00110111B;定时器 0,16 位读写,方式 3,十进制 OUT DX,AL MOV DX,DSQ0_8253;分频 1000 倍 MOV AL,00H OUT DX,AL MOV AL,10H;定义 A 口和控制字端口,高四位决;定义定时器 8253 控制字端口,定时 OUT DX,AL MOV PIANYI,OFFSET ZHONGDUAN MOV JIZHI,SEG ZHONGDUAN MOV AX,00H MOV ES,AX MOV BX,08H 02 MOV AX,PIANYI MOV ES:BX,AX MOV AX,JIZHI MOV ES:BX+2,AX;初
29、始化中断服务函数;中断号 02H*4 送到 BX,NMI 非可屏蔽中断号;中断服务偏移值给 AX;装入偏移地址;装入段基址 MOV DX,AK_8255 LEA BX,TABLEDU;数码管显示初始化 至 BX 寄存器中,然后将待查字节与其在表格中距表首地址位移量送;应将 TABLE 先送 AL,执行 XLAT 将使 待查内容送到累加器 DISPLAY:MOV AL,MIAO 一个字节内容送到 AL 累加器中 XLAT OUT DX,AL;把待查表格的 MOV CX,30D 以直接延时 W10MS:LOOP W10MS;经过测试,此处调用函数,无法正常显示,所;数码管每次赋值的延时 JMP DISPLAY;程序在此进行死循环 TINGZHI:MOV MIAO,00D JMP JZHONGDUAN;返回中断函数 ZHONGDUAN PROC 堆栈进行现场保护和还原现场,会出现无法正常使用的问题 DEC MIAO CMP MIAO,-01D JZ TINGZHI JZHONGDUAN:JMP DISPLAY;中断返回,经过测试使用 IRET 会出现无法返 回的问题,用跳转指令 JMP 代替,可正常使用,虽然不规范 ZHONGDUAN ENDP CSEG ENDS END START;中断服务函数,经过测试,内部使用