收藏 分享(赏)

七段数码管显示秒表.doc

上传人:11xg27ws 文档编号:7805415 上传时间:2019-05-26 格式:DOC 页数:28 大小:319KB
下载 相关 举报
七段数码管显示秒表.doc_第1页
第1页 / 共28页
七段数码管显示秒表.doc_第2页
第2页 / 共28页
七段数码管显示秒表.doc_第3页
第3页 / 共28页
七段数码管显示秒表.doc_第4页
第4页 / 共28页
七段数码管显示秒表.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、沈阳工程学院课程设计 摘 要 I摘 要本文提出了一个利用微机原理与接口技术完成秒表的设计方案,该方案主要是选择8254A 的计数器 0 进行 100ms 的定时,其输出于 OUT0 与 8259 的 IRQ7 相连,当定时到100ms 的时候产生一个中断信号,在中断服务程序进行秒的计数,并送入相应的存储单元;8255 的 A 口接七段数码管的位选信号,B 口接七段数码管的段选信号,C 口上面接键盘,通过键盘控制暂停计时、继续计时。秒,毫秒的数值通过对 8255 的编程可以显示在七段数码管上面。通过对一个基于微型计算机的能实现电子时钟的设计学习,详细介绍了微型计算机原理控制的应用中的数据转换显示

2、,LED显示原理,微型计算机控制的定时中断原理。从而达到学习、了解微机原理控制的相关指令在各方面的应用。系统由8254、8255、8259等构成,能实现秒表显示的功能,能进行秒、毫秒的显示。关键词:定时器8254A,并行通信接口芯片8255,七段数码管。沈阳工程学院课程设计 目 录II目 录摘 要 I第 1 章 概 述 .11.1 设计题目 .11.2 设计目的 .11.3 设备器材 .11.4 任务分析 .1第 2 章 设计原理 .32.1 设计原理 .32.2 元器件功能特性 .32.2.1 8255 简介 32.2.2 8259 简介 52.2.3 8254 简介 62.2.4 七段 L

3、ED 数码管及其接口 .8第 3 章 系统设计 .93.1 硬件设计 .93.2 软件设计 .9第 4 章 系统实现 .114.1 概述 .114.2 程序模块 .114.2.1 主程序模块 .114.2.2 显示模块 .124.2.3 小键盘模块 .134.2.4 定时模块 .134.2.5 中断处理模块 .14第 5 章 遇到的问题及解决方法 .155.1 遇到的问题 .155.2 解决的方法 .15总 结 .17致 谢 .18参考文献 .19附 录 .20A1.1 源程序代码 20沈阳工程学院课程设计 第 1 章 概 述1第 1 章 概 述1.1 设计题目用七段 LED 数码管显示秒表1

4、.2 设计目的微型计算机原理及应用是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。通过设计实践,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,还能巩固所学的知识。具体要求如下:1、中断工作原理,定时计数原理。2、掌握 8259 芯片,8254 芯片,8255 芯片功能,结构。3、掌握 8259 芯片,8254 芯片,8255 芯片的编程。4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。1.3 设备器材(1)设计环境PC 机一台

5、、TD-ADS 软件、TD-PITE 实验箱、导线若干。(2)设计所用设备8254 定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送 IRQ7。8255 并口:用做接口芯片,和小键盘及 LED 相连。8259 中断控制器:用于产生中断。LED:四个 LED 用于显示时:秒:毫秒值。小键盘:用于控制设置。1.4 任务分析1、总体内容:设计一秒表,能在数码管上显示时间并计时,而且可通过键盘控制计时、暂停计时。2、 接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。沈阳

6、工程学院课程设计 第 1 章 概 述24、完成的实验有:8259A 中断控制器实验,8254 定时计数器实验,8255 并行接口实验。选择 8254A 的计数器 0 进行定时,其输出于 OUT0 与 8259 的 IRQ7 相连,产生一个中断信号,在中断服务程序进行秒的计数,并送入相应的存储单元;8255 的 A 口接七段数码管的位选信号,B 口接七段数码管的段选信号,C 口上面接键盘,通过键盘控制暂停计时、继续计时。秒,毫秒的数值通过对 8255 的编程可以显示在七段数码管上面。沈阳工程学院课程设计 第 2 章 设计原理3第 2 章 设计原理2.1 设计原理秒表的总体设计原理是:首先利用定时

7、芯片8254的定时作用定时计数,在给定的时间内逐渐变为0时,就会发出一个中断信号,8259中断器接到此中断信号就会调用MIR7时间显示程序,执行此程序后8255就会工作,扫描键盘,通过开关控制暂停计时、继续计时,最后把接到的二进制时间码转换成ASCII码在四个码管上显示时间。 具体做法是为了实现精确走时,显示秒、毫秒,我们先在数据段开辟一显示缓冲区,用来存储系统时间,初始化我们所要应用的芯片8254,8255,8259后,允许中断信号输入,主程序开始,为了显示秒、毫秒,并被我们识别,先调用DIS程序,实现片选的功能。为了得到良好的显示效果,本程序调用了一段精确的延时程序,使各位在时间显示上有短

8、暂的间隔,延时程序要尽量接近1秒,但又不能超过一秒。同时,由于8254定时器的分频功能,产生中断信号,8259中断器就会调用MIR7 时间显示程序,实现位选,通过LED数码管显示出来,时间刷新,再显示,有此循环,就形成了精确走时的秒表。通过扫描键盘,判断是否有键按下来控制秒表的计时、暂停计时。2.2 元器件功能特性秒表功能的实现主要由 C8086、8255、8254、8259 和七段数码管及键盘共同完成。各元器件的功能具体如下:2.2.1 8255 简介1 8255 引脚功能RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成输入方

9、式。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许 8255 与 CPU 进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许8255 通过数据总线向 CPU 发送数据或状态信息,即 CPU 从 8255 读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许 CPU 将数据或控制字写入 8255。沈阳工程学院课程设计 第 2 章 设计原理4D0D7:三态双向数据总线,8255 与 CPU 数据传送的通道,当 CPU 执行输入输出指令时,通过它实现 8 位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0PA7:端口 A 输入输出线,一个 8 位的数据输

10、出锁存器/缓冲器, 一个 8 位的数据输入锁存器。PB0PB7: 端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器。PC0PC7: 端口 C 输入输出线,一个 8 位的数据输出锁存器/缓冲器, 一个 8 位的数据输入缓冲器。端口 C 可以通过工作方式设定而分成 2 个 4 位的端口, 每个 4 位的端口包含一个 4 位的锁存器,分别与端口 A 和端口 B 配合使用,可作为控制信号输出或状态信号输入端口。外部:A0,A1 为口地址选择信号线。8255 内部有 3 个口:A 口、B 口、C 口,还有一个控制寄存器,它们由程序寻址。A1 A0 选择0 0 A 口0

11、 1 B 口1 0 C 口1 1 控制寄存器2 8255三种工作方式8255的工作方式分别为工作方式0,工作方式1和工作方式2。1:工作方式0,又称为基本工作方式。在此方式下,可分别将A 口的8条线,B 口的8条线,C口高 4位对应的4条线和C口的低四位对应的四条线定义为输入或输出。故它们的输入输出共有16种不同的组合。2:工作方式1,即选通输入输出方式。在这种方式下,A 口和B 口仍作为数据的输出口和输入口,同时还要利用C口的某些位作为控制和状态信号。3:工作方式2,又称双向输入输出方式。这种方式只有8255的口A 才有。在A 口工作于双向输入输出方式时,要利用C口的5条线才能实现。因此,B

12、口只能工作在工作方式0或工作方式1,而C 口剩下的3条线可以作为输入输出线使用或B口方式1下的控制线。沈阳工程学院课程设计 第 2 章 设计原理5功能控制0:位操作1:方式选择3 8255 的控制字7 6 5 4 3 2 1 0说明:当控制字 bit71 时,控制字的 bit6bit3 这 4 位用来控制 A 组,即 A 口的 8 位和 C 口的高 4 位,而控制字的低 3 位 bit2bit0 用来控制 B 组,包括 B 口的 8 位和 C 口的低 42.2.2 8259 简介8259是一种可编程的中断控制器。每块芯片可管理8级向量中断,同时,可通过多片级连实现多达64级的中断管理。中断控制

13、器8259有四种主要工作方式,即全嵌套、循环优先级、特定屏蔽和程序查询方式。同时,它还有一4种从属工作方式,即结束中断、读状态、中断请求触发和数据缓冲方式。1 8259的外部引线D0-D7为双向数据线,与系统总线数据线相连。WR,RD为写和读控制信号,与系统总线的读写控制 C 口抵 4 位1:输入0:输出控制 B 口 8 位1:输入0:输出方式选择0:方式 01:方式 1控制 C 口高 4 位0:输出1:输入控制 A 口 8 位0:输出1:输入方式选择00:方式 001:方式 11X:方式 2沈阳工程学院课程设计 第 2 章 设计原理6信号相连接。CS为片选信号。A0是8259内部寄存器的选择

14、信号。INT为8259的中断请求输出信号,可直接接到CPU的INTR 输入端。CAS0-CAS1为级联控制线。 IR0-IR7中断请求输入端。2 8259的工作方式1 特殊屏蔽方式在正常情况下,当一个中断请求被响应时,8259将被禁止所有同级及更低优先级中断请求这就称为一般屏蔽方式。但是,在一特殊情况下,希望也允许较低优先级的中断请求产生中断。2 中断结束中断结束分自动结束和利用命令结束3 优先级循环它有两种优先级规定:循环优先级和固定优先级。固定优先级规定8个中断源以IR0的优先级最高依次降低。循环优先级有3个结构:自动优先级循环用于中断源具有相等优先级的情况。指定优先级循环可以利用命令一次

15、性改变优先级。自动结束方式下的优先级循环,其优先权控制方式与自动优先级循环的相同。4 查询状态通过将操作命令字OCW3中的P位置1,可以查询8259的状态。2.2.3 8254 简介1 8254的引脚8254 具有 3 个独立的 16 位计数器,6 种不同的工作方式。计数寄存器用来寄存计数初值,计数工作单元为 16 位减 1 计数器,它的初值便是计数寄存器内容,计数单元对 CLK 脉冲计数,每出现一个 CLK 脉冲,计数器减 1,当减为零时,通过 OUT 输出指示信号表明计数单沈阳工程学院课程设计 第 2 章 设计原理7元已为零。当作为定时器工作时,每当计数单元为零时,计数寄存器内容会自动重新

16、装入 计数单元,而且 CLK 输入是均匀的脉冲序列,于是 OUT 输出频率是降低了的(相对于 CLK信号频率)脉冲序列。 当作为计数器工作时 ,表明只关心在 CLK 端出现(代表事件)的脉冲个数,当 CLK 端出现了规定个数的脉冲时,OUT 输出一个脉冲。本次设计主要利用 8254 产生 10ms 的方波,其与总线相连接的引线主要是:D0D7 双向数据线,用以传送数据和控制字。这里分别与 XD0XD7 相连接。CS 输入信号,低电平有效,当它有效时才能选中该定时器芯片,实现对它的读或写,这里与系统 IOY3 相连接。RD 读控制信号,低电平有效,与系统总线 IOR#相连接。WR 写控制信号,低

17、电平有效,与系统总线 IOW#相连接。A0、A1 为 8254 的内部计数器和一个控制寄存器的编码选择信号,其功能如下:A1 A0 选择0 0 计数器 00 1 计数器 11 0 计数器 21 1 控制寄存器CLK0 是计数器的时钟输入端。本次设计的时钟为 1MHZ,计数器对此时钟信号进行计数。GATE0 门控信号,即计数器的控制输入信号,用来控制计数器的工作,这里使其为高电平,直接接系统 5V。OUT 计数器输出信号,用来产生不同方式工作时的输出波形,本次设计的 1ms 方波由此输出。2 8254的功能8254 的功能用途是: (1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍

18、频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器3 8254 的工作方式沈阳工程学院课程设计 第 2 章 设计原理88254 有六种工作方式:(1)方式 0:计数结束中断(2)方式 1:可编程频率发生器 (3)方式 2:频率发生器(4)方式 3:方波频率发生器(5)方式 4:软件触发的选通信号(6) 方式 5:硬件触发的选通信号8254 有 6 种方式工作,由于只用来产生方波,所以使其工作在方式 3(方波发生器) ,在此方式下,GATA 信号为低电平时,强迫 OUT 输出高电平,当 GATA 主高电平时,OUT 输出时称方波。2.2.4 七段 LED 数码管及其接口 七段 LED 数码管

19、由七个发光段构成,每段均为 1 个 LED 二极管。通过控制不同段的点亮和熄灭,显示出 16 进制数字或字符。七段 LED 显示器有共阳极和共阴极两种结构,如图所示的七段 LED 实际上包含 8 个 LED(7 段字形加上小数点 DP)。1 位 LED 显示器有 1根位选线和 8 根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗。十六进制数及空白字符与数码管的显示段码沈阳工程学院课程设计 第 2 章 设计原理9字型 共阳级段码 共阴极段码 字型 共阳级段码 共阴极段码0 C0H 3FH 9 90H 6FH1 F9H 06H A 88H 77H2 A4H 5BH B 83H 7CH3 B

20、0H 4FH C C6H 39H4 99H 66H D A1H 5EH5 92H 6DH E 86H 79H6 82H 7DH F 84H 71H7 F8H 07H 空白 FFH 00H8 80H 7FH P 8CH 73H沈阳工程学院课程设计 第 3 章 系统设计10第 3 章 系统设计3.1 硬件设计LED 数码管芯片 8254 系统总线 芯片 8255 及键盘3.2 软件设计D0 PB0D1 PB1D2 PB2D3 PB3D4 PB4D5 PB5D6 PB6D7 PB7WR RD PA3CS PA2A0 PA1A1 PA0PC3PC2PC1PC0ABCDEFGDPX1X2X3X4Y1Y2

21、Y3Y4XD0XD1XD2XD3XD4XD5XD6XD7IOW#WOR#IOY3 IOY0XA1XA2PCLKMIR7+5VD0D1D2D3D4D5D6D7WRRDCSA0A1CLK0OUT0GATE0沈阳工程学院课程设计 第 3 章 系统设计11开始开中断扫描键盘Y是否有键按下 调用显示NY毫秒个位小于 秒个位加 110N毫秒个位清零十位加 1Y毫秒十位小于 10N毫秒十位清零秒个位加 1秒个位小 Y于 10N秒个位清零十位加 1Y秒十位小于 6N秒十位清零发中断结束命令中断返回沈阳工程学院课程设计 第 3 章 系统设计12沈阳工程学院课程设计 第 4 章 系统实现13第 4 章 系统实现4

22、.1 概述本系统设计的秒表以 8086 微处理器作为 CPU,用 8254 做定时计数器产生时钟频率,8255 做可编程并行接口显示时钟和键盘电路,8259 做中断控制器产生中断。在此系统中,8254 的功能是定时,接入 8254 的 CLK 信号为周期性时钟信号。程序由以下模块组成:系统共有 5 个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。系统框图如下:键盘读入的数显示缓冲的值秒脉冲显示模块主控模块中断模块 定时模块小键盘模块四个 LED 小键盘8255A825482594.2 程序模块4.2.1 主程序模块主控模块是系统的核心模块,对 8255A 进行初始化,

23、主程序开始,为了显示秒、毫秒,并被我们识别,先调用 DIS 程序,实现片选的功能。最终把接到的二进制时间码转换成 ASCII 码在四个码管上显示时间。沈阳工程学院课程设计 第 4 章 系统实现14MOV MSEC,0INC NUM ;毫秒个位加 1CMP NUM,BYTE PTR 10 ;毫秒个位与 10 比较JNZ WAN ;若不为 10 则显示输出MOV NUM,0 ;把 NUM 单元清零INC NUM+1 ;毫秒十位加 1CMP NUM+1,BYTE PTR 10JNZ WANMOV NUM+1,0INC NUM+2CMP NUM+2,BYTE PTR 10 JNZ WANMOV NUM

24、+2,0INC NUM+3CMP NUM+3,BYTE PTR 6JNZ WANMOV NUM+3,04.2.2 显示模块显示模块是将接到的数值送到 LED 显示的功能模块,显示缓冲区是由四个字节构成,分别保存秒的高位和低位,毫秒的高位和低位。硬件上由四个 LED 构成,软件上由扫描显示的方法实现。DIS: MOV SI,OFFSET NUMMOV CL,0F7H LP1: MOV DX,MY8255_A ;将 DX 中低四位送外设MOV AL,CLOUT DX,ALMOV DX,MY8255_BMOV AL,SI MOV AH,0 ;AX 高四位寄存器清零MOV DI,BX沈阳工程学院课程设

25、计 第 4 章 系统实现15ADD DI,AXMOV AL,DICMP CL,0FDHJNZ ADBOR AL,80HADB: OUT DX,ALCALL DLYROR CL,1TEST CL,80HJZ LP2INC SIJMP LP1LP2: RET4.2.3 小键盘模块小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和8255 互连,将小键值由 8255 送入主控模块。软件上使用行扫描法获得键值并送回主控模块。执行延时程序后再扫描键盘,若标志位 RUN=0 表示真正有键按下,从而实现秒表的计时、暂停计时。CCSCAN: MOV AL,00HMOV DX,MY8255_

26、A ;读端口 A 地址OUT DX,ALMOV DX,MY8255_C ;读端口 C 地址IN AL,DXNOT ALAND AL,0FHRET4.2.4 定时模块定时模块是为 8259 提供中断请求信号的。由一片 8254 实现,选用定时器 0,工作在方式 3,毫秒表应该 10ms 走动一次,所以输出值应为 10ms,其输出信号可作为 8259 的中断请求信号。MOV DX,CON8254 ; 初始化主片 8254沈阳工程学院课程设计 第 4 章 系统实现16MOV AL,36H OUT DX,ALMOV DX,A8254MOV AL,0E8HOUT DX,ALMOV AL,03HOUT D

27、X,AL4.2.5 中断处理模块中断模块实现动态显示的,硬件为一片 8259,由于中断请求信号为每 10ms 一次,中断程序该为时间按 10ms 增加,并显示,只要开中断,便可实现每 10ms 显示时间增加10ms,从而达到动态显示的效果。MIR7: STI ; 置中断标志位 IFPUSH DSPUSH AXMOV AX,SEG DATA ;回送 DATA 的段地址值MOV DS,AXMOV AL,MSECMOV AL,1MOV MSEC,AL MRET: MOV AL, 20H ;中断结束命令OUT 20H, ALPOP AXPOP DSIRET沈阳工程学院课程设计 第 5 章 遇到的问题及

28、解决的办法17第 5 章 遇到的问题及解决方法5.1 遇到的问题(1) 七段数码管显示时秒的个位后不显示点 (2) 键盘程序感应不灵敏(3) 中断程序没被使用5.2 解决的方法(1)原因分析:秒的个位七段数码管的 DP 位没有输入高电位解决的方法:利用循环右移的方法,判断是否到达显示秒的个位,如果到了就往 DP位送高电平。ADB: OUT DX,ALCALL DLYROR CL,1TEST CL,80HJZ LP2INC SIJMP LP1LP2: RET(2)原因分析:键盘存在抖动解决的方法:设置一个运行标志位,消除抖动,提高了按键的灵敏度,还可消除外界干扰。SDF1:CALL CCSCAN

29、 ;扫描JZ INK1 ;没有键按下跳到 INK1CALL DLY ;调用延时CALL CCSCAN ;扫描JZ INK1MOV AL,RUNNOT ALAND AL,01MOV RUN,ALMOV AL,RUNNOT ALAND AL,01沈阳工程学院课程设计 第 5 章 遇到的问题及解决的办法18MOV RUN,AL(3)当外部产生中断时,系统自动调用中断程序,但中断程序并没把主要的功能写在中断里时,可设置一个中断标志位,实现回送数据段地址的功能。MIR7: STI ; 置中断标志位 IFPUSH DSPUSH AXMOV AX,SEG DATA ;回送 DATA 的段地址值MOV DS,

30、AXMOV AL,MSECMOV AL,1MOV MSEC,AL MRET: MOV AL, 20H ;中断结束命令OUT 20H, ALPOP AXPOP DSIRET沈阳工程学院课程设计 总 结19总 结微机原理与接口技术的设计主要是要完成一个数字秒表,并且要求可以显示实时时间,当按下按键来控制秒表的计时、暂停计时。通过这次课程设计历时一个星期的微机原理课程设计,并且在这个星期的学习过程中,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。这次的微机原理课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的

31、重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,微机原理已经成为当今计算机应用中空前活跃的领域,在生活当中可以说得是无处不在。因此作为二十一世纪的大学来说掌握微机原理是十分重要的。在开始做的阶段,首先运用软件工程所学的东西,画出了系统流程图,这为我后来的系统提供了很大的帮助, “微机原理与系统设计“ 作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intelx86CPU 为主线,系统介绍微型计算机的基本知识 ,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。

32、以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。首先,我们一组三人,经过认真的商议和探讨,将主程序的整体框架编译了出来,再运用我们在微机原理课所学到的知识,对程序的主体进行运行,发现错误及时进行修改,经过一段时间,终于可以使程序能够没有错误的运行,接下来是在 PC 机上的连线,使程序能够和我们编的程序能够结合起来,在主体框架完成的情况下,依据老师的要求,将上述所做东西以报告的形式做成文档。我感觉到到对知识真正的掌握制在于应用,这次设计用到了数字电路基础的知识

33、,微机原理知识,电路基础等,当这些知识深深地结合在一起的时候,我感觉到了基础知识是如此的重要,把这些零散的知识组合在一起居然能够实现如此现代化的需求,设计出如此有价值的数字秒表。设计的完成要感谢老师的细心指导和尊尊教诲,相信这些经历对我以后的工作乃至于生活都会有着有用的指导意义。沈阳工程学院课程设计 致 谢20致 谢微机原理课程设计算是圆满结束了,经过一周的实习,我最大的收获就是理解了微机的一些简单的程序设计。在这个课程设计的过程中得到了王庆利、踪念品老师的悉心指导。两位老师在整个课程设计的过程中一直耐心的为我们进行指导,时时关注我们的进展,给我们提出很多建议,帮助我开拓解决问题思路,并耐心对

34、我们遇到的问题进行指导、讲解。虽然只有短短一周的时间,却给以终生受益无穷之道。对两位老师的感激之情是无法用言语表达的。感谢学校对我们此次课程设计的大力支持,为我们安排了充分的时间使用学校的机房。为我们安排了两位出色并且负责的老师来解答我们的疑虑。最后我要感谢我们组的其他成员,经过我们的一起讨论,共同解决问题,并且借给我很多参考资料。也给了我很大帮助。沈阳工程学院课程设计 参考文献21参考文献1、 微型计算机原理及应用王庆利 主编 西安电子科技大学出版社2、 微机原理与接口技术北京航空航天大学出版社3、 微型计算机原理与汇编语言电子工业出版社4、 微机原理与应用大连理工大学出版社5、 微型计算机

35、原理及应用李伯成 主编 西安电子科技大学出版社沈阳工程学院课程设计 附 录22附 录A1.1 源程序代码MY8255_A EQU 0600HMY8255_B EQU 0602H MY8255_C EQU 0604HMY8255_MODE EQU 0606HA8254 EQU 06C0H B8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6H ;宏定义 SSTACK SEGMENT STACK ;设置段,开辟一个内存空间DW 32 DUP(?)SSTACK ENDSDATA SEGMENT ;定义数据段RUN DB 1NUM DB 0,0,0,0MSEC

36、DB 0DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATASTART:PUSH DS ;入栈代码段MOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7 ;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV SI, AX ;填 IRQ7 的偏移矢量 确定地址MOV AX, CS ;段地址MOV SI, 003EH沈阳工程学院课程设计 附 录23MOV S

37、I, AX ;填 IRQ7 的段地址矢量CLI ;清除中断标志POP DS ;出栈;初始化 8255MOV DX,MY8255_MODEMOV AL,81H ; A 口方式 0 输出,B 口方式 0 输出,C 口高 4 位输出,低 4 位输入OUT DX,AL;初始化主片 8254MOV DX,CON8254MOV AL,36H ;计数器 0,方式 3OUT DX,ALMOV DX,A8254MOV AL,0E8HOUT DX,ALMOV AL,03HOUT DX,AL;初始化主片 8259MOV AL, 11HOUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;

38、ICW2MOV AL, 04HOUT 21H, AL ;ICW3MOV AL, 01HOUT 21H, AL ;ICW4MOV AL, 6FH ;OCW1OUT 21H, ALSTI MOV AX,DATAMOV DS,AX MOV BX,OFFSET DTABLE ;取显示码地址偏移WAN: CALL DIS沈阳工程学院课程设计 附 录24SDF1: CALL CCSCAN ;扫描JZ INK1 ;没有键按下跳到 INK1CALL DLYCALL DLY ;调用延时CALL CCSCAN ;扫描JZ INK1CALL DLYCALL DLYMOV AL,RUNNOT ALAND AL,01M

39、OV RUN,ALINK1: CALL CCSCAN ;扫描MOV AL,RUNCMP AL,0 ; 跟 RUN 一样,不改变数值,重复写JZ WANMOV AL,MSECCMP AL,1JNZ WANMOV MSEC,0INC NUM ;毫秒个位加 1CMP NUM,BYTE PTR 10 ;毫秒个位与 10 比较JNZ WAN ;若不为 10 则显示输出MOV NUM,0 ;把 NUM 单元清零INC NUM+1CMP NUM+1,BYTE PTR 10JNZ WANMOV NUM+1,0INC NUM+2CMP NUM+2,BYTE PTR 10 JNZ WANMOV NUM+2,0IN

40、C NUM+3沈阳工程学院课程设计 附 录25CMP NUM+3,BYTE PTR 6JNZ WANMOV NUM+3,0JMP WANMIR7: STI ;置中断标志位 IFPUSH DSPUSH AXMOV AX,SEG DATA ;回送 DATA 的段地址值MOV DS,AXMOV AL,MSECMOV AL,1MOV MSEC,AL MRET: MOV AL, 20H ;中断结束命令OUT 20H, ALPOP AXPOP DSIRETDIS: MOV SI,OFFSET NUMMOV CL,0F7H LP1: MOV DX,MY8255_A ;将 DX 中低四位送外设MOV AL,C

41、LOUT DX,ALMOV DX,MY8255_BMOV AL,SI MOV AH,0 ;AX 高四位寄存器清零MOV DI,BXADD DI,AXMOV AL,DICMP CL,0FDHJNZ ADBOR AL,80HADB: OUT DX,ALCALL DLY沈阳工程学院课程设计 附 录26ROR CL,1TEST CL,80HJZ LP2INC SIJMP LP1LP2: RETDLY: PUSH CXPUSH AXLP3: MOV CX,000FHT1: MOV AX,009FHT2: DEC AXJNZ T2LOOP T1POP AXPOP CXRETDONE: RET;=;键盘扫描子程序;=CCSCAN: MOV AL,00HMOV DX,MY8255_A OUT DX,ALMOV DX,MY8255_C IN AL,DXNOT ALAND AL,0FHRETCODE ENDSEND START

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报