第 9 章 可编程外围接口芯片 8255A 中国科学技术大学 何克东.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

第五章 微型计算机和外设的数据传输 5.1 为什么用接口电路? 5.2 CPU和I/O设备之间的信号; 5.3 接口部件的I/O端口;
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
实验四 利用中规模芯片设计时序电路(二).
微型计算机技术 教 学 指 导(七) 太原广播电视大学 郭建勇.
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第10章 DOS功能调用与BIOS中断调用.
第一章 绪论.
本周实验安排 实验内容:(P231)人名排序的例子。
第7章 常用数字接口电路.
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
第三节 CPU与外设间的数据传送方式 CPU与外设的工作速度不一致, 如何使两者高效、可靠地进行数据传送, 是本节讨论的问题。
第 11 章.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第六章 输入/输出接口 6.1 输入/输出接口概述 6.2 I/O指令和地址译码 6.3 PC系统总线(放到本章后面详细讲述)
汇编语言程序设计 Assembly Language Programming
第八章 数据通信.
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月05日.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
微型机系统与接口技术复习.
第9章 AT89S52单片机的 I/O扩展 1.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
第6章 基本输入输出接口技术 【本章提要】 【学习目标】
第二部分 PC 微机异步通信适配器的分析和使用 一、PC中的UART 1.INS PC16450/PC16550
第 14 章 并行通信及其接口电路.
第七章 MCS-51并行口的扩展 MCS51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS3734和74LS245)和可编程的并行口芯片(8255)。 7.1 不可编程并行口芯片的扩展 7.2 可编程并行口芯片的扩展.
微机原理及应用 主讲:郑海春.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
第七章 可编程并行接口8255A §7.1并行接口的概述 §7.2 可编程并行接口8255A § A的0方式及其应用
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第7章 微型机接口技术 可编程定时/计数器 可编程并行接口 串行接口与串行通信(概念) DMA控制器接口(不做要求) 模拟量输入/输出接口.
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
1.3 微型计算机的结构和工作原理.
第 13 章 中断系统.
CPU结构和功能.
第11章 基本I/O接口 罗文坚 中国科大 计算机学院
第5章 循环与分支程序设计 学习目标: 了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
可编程定时计数器.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
微机原理与接口技术 第6章 并行输入输出接口(8255A)
微机原理及应用 主讲:郑海春.
第7章 输入输出接口.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
Presentation transcript:

第 9 章 可编程外围接口芯片 8255A 中国科学技术大学 何克东

微机与I/O设备的接口按照数据传送方式的不同,可分为并行接口与串行接口两种。 并行接口一次传送多位数据,即在CPU与I/O设备之间传送信息的数据单位一般为“字节”或“字”,需要使用多根数据线,如打印机接口等. 在并行接口中,除了少数场合(无条件传送)之外,一般都要求在接口与外设之间设置并行数据线的同时,至少还要设置两根握手(联络)信号线,以便进行互锁异步握手方式(即查询方式)的通信。 并行接口的优点是传输速率高,但由于需要多根数据线,不适合长距离数据传输,一般用于近距离传送的场合。 并行接口电路有不可编程接口和可编程接口之分。可编程接口可由用户根据需要,编制相应的接口控制程序,选择接口的工作方式及功能。由于可编程接口具使用灵活、功能强的特点,在微机系统中应用广泛。

9.1 8255A的工作原理 Intel 8255A是一种通用的可编程并行I/O接口芯片,又称为“可编程外设接口芯片(Programmable Peripheral Interface PPI)” 具有多种功能的可编程并行接口电路芯片 最基本的接口电路:三态缓冲器和锁存器 与CPU间、与外设间的接口电路:状态寄存器和控制寄存器 还有端口的译码和控制电路、中断控制电路 分3个端口,共24个外设引脚 共三种输入输出工作方式

一、 8255A的内部结构和功能 数据 总线 缓冲器 内部控制线 内部数据线 D0~D7 A组 控制 端口A 端口C 上部 B组 端口B 下部 读写 逻辑 PC0~PC3 PB0~PB7 PC4~PC7 PA0~PA7 RD WR A0 A1 CS RESET

1. 外设数据端口 端口A:PA0~PA7 A组,支持工作方式0、1、2 常作数据端口,功能最强大 端口B:PB0~PB7 1. 外设数据端口 端口A:PA0~PA7 A组,支持工作方式0、1、2 常作数据端口,功能最强大 端口B:PB0~PB7 B组,支持工作方式0、1 常作数据端口 端口C:PC0~PC7 仅支持工作方式0 A组控制高4位PC4~PC7 B组控制低4位PC0~PC3 可作数据、状态和控制端口 分两个4位,每位可独立操作 控制最灵活,最难掌握

8255A基本操作 A1 A0 RD WR CS 操作 1 A口内容读至数据总线 B口内容读至数据总线 C口内容读至数据总线 输入 1 A口内容读至数据总线 B口内容读至数据总线 C口内容读至数据总线 输入 数据总线内容写至A口 数据总线内容写至B口 数据总线内容写至C口 数据总线内容写至控制寄存器 输出 × 端口输出为高阻 非法 禁止

二、 8255A的控制字 1.方式选择控制字 方式0:基本输入输出方式 适用于无条件传送和查询方式的接口电路 方式1:选通输入输出方式 适用于查询和中断方式的接口电路 方式2:双向选通传送方式 适用于与双向传送数据的外设

方式选择控制格式字 标志位 00= A口方式0 01= A口方式1 1X= A口方式2 1=A口输入 0=A口输出 1=B口输入 D6 D5 D4 D3 D2 D1 D0 标志位 00= A口方式0 01= A口方式1 1X= A口方式2 1=A口输入 0=A口输出 1=B口输入 0=B口输出 1=C口高4位输入 0=C口高4位输出 0= B口方式0 1= B口方式1 1=C口低4位输入 0=C口低4位输出 方式选择控制格式字

2.C口置位/复位控制字 C口置位/复位控制字的功能有两个:一是用于对外设的控制。利用这一功能,可使C口某一位输出一个开关量或一个脉冲,作为外设的启动或停止信号。二是可用于设置方式1和方式2的中断允许。此时,C口置位/复位控制字不影响对应的引脚状态,只是起到设置INTE、开关8255A中断的作用。 C口置位/复位控制字写入控制端口。

置位/复位控制字格式 ╳ D3 D2 D1 D0 标志位 000:选择PC0 1:置位 001:选择PC1 0:复位 : 任意值 ╳ D3 D2 D1 D0 标志位 000:选择PC0 001:选择PC1 : 111:选择PC7 1:置位 0:复位 任意值 置位/复位控制字格式

例:方式0下: MOV AL, 00001010B OUT 63H, AL MOV AL, 00001011B ╳ D3 D2 D1 D0 PA7 : PA0 PB7 PB0 PC7 PC5 PC0 ╳ D3 D2 D1 D0

三、 8255A的工作方式和C口状态字 1.方式0 - 简单的输入/输出方式 IN AL,60H OUT 61H, AL 1.方式0 - 简单的输入/输出方式 方式0是一种简单的输入/输出方式,也称为无条件传送方式或同步传送方式。在这种方式下,A、B、C三个端口作为相互独立的输入/输出端口使用,不需要联络信号。C口的高4位(PC7~PC4)和低4位(PC3~PC0),即可以合成一个8位端口使用,也可以作为两个相互独立的4位口使用。方式0是单向传送,一次初始化只能设置在一个方向上传送数据。方式0一般用于无条件传送的场合,也可以用做查询式传送。 IN AL,60H OUT 61H, AL

方式0输入时序 data 输入端口 D0~D7 RD CS,A1,A0

方式0输出时序 WR data 输出端口 D0~D7 CS,A1,A0

2.方式1 - 选通输入/输出方式 方式1是一种选通输入/输出方式(也称为应答方式或异步方式)。A口和B口都可以工作在这种方式。在这种方式下,A口和B口作为两个独立的8位I/O数据通道(可连接外设)。C口要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可作为方式0的输入/输出。方式1也是单向传送。

(1)方式1输入联络信号 STB——选通信号,低电平有效 由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器 IBF——输入缓冲器满信号,高电平有效 8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器 INTR——中断请求信号,高电平有效 8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据

方式1输入:A端口 PA7~PA0 PC4 STBA PC5 IBFA PC3 INTRA RD INTEA 数据选通信号 表示外设已经准备好数据 PA7~PA0 ① PC4 INTEA STBA PC5 ② IBFA 输入缓冲器满信号 表示A口已经接收数据 ④ ③ PC3 INTRA RD 中断请求信号 请求CPU接收数据 中断允许触发器

STB IBF INTR RD 输入端口 data D0~D7 方式1输入时序 STB和IBF是外设和8255A间 的一对应答联络信号, 为的是可靠地输入数据 data INTR IBF 输入端口 D0~D7 STB RD

方式1中断控制 8255A的中断由中断允许触发器INTE控制 置位允许中断,复位禁止中断 对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器 选通输入方式下 端口A的INTEA对应PC4 端口B的INTEB对应PC2 选通输出方式下 端口A的INTEA对应PC6

(2)方式1输出联络信号 OBF——输出缓冲器满信号,低有效 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 ACK——响应信号,低有效 外设的响应信号,指示8255A的端口数据已由外设接受 INTR——中断请求信号,高有效 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据 端口A的INTEA对应PC6 端口B的INTEB对应PC2

方式1输出:A端口 PA7~PA0 PC6 ACKA PC7 OBFA WR PC3 INTRA INTEA 中断允许触发器 外设响应信号 表示外设已经接收到数据 PA7~PA0 ③ PC6 INTEA ACKA PC7 OBFA ① ② 输出缓冲器满信号 表示CPU已经输出了数据 WR PC3 INTRA ④ 中断请求信号 请求CPU再次输出数据 中断允许触发器

方式1输出时序 OBF和ACK是外设和8255A间 的一对应答联络信号, 为的是可靠地输出数据 WR OBF INTR ACK 输出端口 data 输出端口 D0~D7 WR OBF ACK

3. 方式2-双向方式 方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据 只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同 方式2的数据输入过程与方式1的输入方式一样 方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据

方式2-双向 PA7~PA0 PC6 ACKA PC7 OBFA PC4 STBA RD PC5 IBFA WR PC3 INTRA INTE1 PC6 ACKA PC7 OBFA 用PC6设置INTE1(输出) 用PC4设置INTE2(输入) 输入和输出中断通过 或门输出INTRA信号 PC4 INTE2 STBA RD PC5 IBFA WR PC3 INTRA

PA0~PA7 data-in data-out D0~D7 data-out data-in 方式2双向时序 WR OBF INTR ACK STB IBF RD PA0~PA7 data-in data-out D0~D7 data-out data-in

当8255A工作在方式1或方式2时,用输入指令可读取C口的状态字,以了解8255A的状态。

4.端口C的状态字 D7 D6 D5 D4 D3 D2 D1 D0 A组 B组 方式1输入 方式1输出 方式2双向 I/O IBFA INTEA INTRA INTEB IBFB INTRB 方式1输出 OBFA OBFB 方式2双向 INTE1 INTE2 × STBA STBB ACKA ACKA ACKA STBA

8255A的编程 初始化编程:一个方式控制字 采用控制I/O地址:A1A0=11 工作过程中:通过数据端口对外设数据进行读写 数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10 IBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H

1. 写入方式控制字:示例 要求: A端口:方式1输入 C端口上半部:输出,C口下半部:输入 B端口:方式0输出 1. 写入方式控制字:示例 要求: A端口:方式1输入 C端口上半部:输出,C口下半部:输入 B端口:方式0输出 方式控制字:10110001B 初始化的程序段: mov dx,0fffeh ;假设控制端口为FFFEH mov al,0b1h ;方式控制字 out dx,al ;送到控制端口

2. 读写数据端口 初始化编程后: 8255A具有锁存输出数据的能力 当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据 2. 读写数据端口 初始化编程后: 当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据 当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备 8255A具有锁存输出数据的能力 对输出方式的端口同样可以输入 不是读取外设数据 读取的是上次CPU给外设的数据

读写数据端口示例: 利用8255A的输出锁存能力,可实现按位输出控制 对输出端口B的PB7位置位的程序段: mov dx,0fffah ;B端口假设为FFFAH in al,dx ;读出B端口原输出内容 or al,80h ;使PB7=1 out dx,al ;输出新的内容

3. 读写端口C: C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出 在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组 当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚作为联络信号使用 其余引脚仍可设定工作在方式0

对端口C的数据输出有两种办法 通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效 通过控制端口:写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器

读取的C端口数据有两种情况 未被A和B端口使用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息 被A和B端口作为联络线的引脚:将读到反映8255A状态的状态字

9.2 8255A的应用 作为通用的并行接口电路芯片,8255A具有广泛的应用 应用在IBM PC/XT微机上 应用于打印机接口电路 连接简易键盘 驱动LED数码管 ……

一、基本输入输出应用 例,某一系统中,有8个开关K7~K0,要求不断检测它们的通断状态,并随时在发光二极管LEE7~LED0上显示出来。开关断开,相应的LED点亮;开关合上,LED熄灭。选用8086 CPU,8255A和74LSl38译码器等芯片。 判断端口地址:0F0H~0F6H 确定控制字:10010000B

MOV DX,0F6H MOV AL,10010000B OUT DX,AL TEST_IT: MOV DX,0F0H IN AL,DX ;控制字寄存器 MOV AL,10010000B ;控制字 OUT DX,AL ;写入控制字 TEST_IT: MOV DX,0F0H ;指向A口 IN AL,DX ;从A口读入开关状态 MOV DX,0F2H ;指向B口 OUT DX,AL ;B口控制LED,指示开关状态 JMP TEST_IT ;循环检测

二、键盘接口 键盘接口电路 +5V C D E F 8 9 A B 4 5 6 7 1 2 3 PA0 8255A PA1 PA2 PA3 1 2 3 PB7 PB6 PB5 PB4 8255APB3 PB2 PB1 PB0 键盘接口电路

PORT_A EQU 0FF9H ;8255A口地址 端口地址 PORT_B EQU 0FFBH ;8255B口地址 PORT_CTL EQU 0FFFH ;8255控制口地址 DATA SEGMENT :数据段,键盘扫描码表 ; 0 l 2 3 4 5 6 7 TABLE DB 77H,7BH,7DH,7EH,0B7H,0BBH,0BDH,0BEH ; 8 9 A B C D E F DB 0D7H, 0DBH,0DDH,0DEH,0E7H,0EBH,0EDH,0EEH DATA ENDS STACK1 SEGMENT STACK ‘STACK’ DW 50 DUP(0) TOP_STAC LABEL WORD STACK1 ENDS CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA,SS:STACK1 START:MOV AX, STACK1 MOV SS, AX LEA SP, TOP_STACK MOV AX, DATA MOV DS, AX

;初始化8255A,方式0,A口作输出,B口和C口为输入向所有行送0 MOV DX, PORT_CTL ;指向控制口 MOV AL, 10001011B ;控制宇 OUT DX, AL ;写入控制字 MOV DX,PORT_A ; A口 MOV AL,0 OUT DX,AL ;向A口各位输出0 ;读列,查看是否所有键均松开 MOV DX,PORT_B WAIT_OPEN:IN AL,DX ;键盘状态读入B口 AND AL,0FH ;只查低4位(列值) CMP AL,0FH ;是否都为1(各键均松开)? JNE WAIT_OPEN ;否,继续查 ;各键均已松开,再查列是否有0,即是否有健压下 WAIT_PRES:IN AL,DX ;读B口 AND AL,0FH ;只查低4位 CMP AL,0FH ;是否有键压下 JE WAIT_PRES ;无,等待 MOV CX,16EAH ; 有键压下,延时20ms,消抖动 DELAY: LOOP DELAY ;延时20ms

;再查列,看键是否仍被压着 IN AL,DX AND AL,0FH CMP AL,0FH JE WAIT_PRES ;已松开,转出等待压键 ;键仍被压着,确定哪一个键被压下 MOV AL,0FEH ;先使D0=0 MOV CL,AL ;CL=1111 1110B NEXT_ROW: MOV DX,PORT_A ;A口 OUT DX,AL ;向一行输出低电平 MOV DX,PORT_B ;B口 IN AL,DX ;读入B口状态 AND AL,0FH ;只截取列值 CMP AL,0FH ;是否均为1? JNE ENCODE ;否,表示有键压下,转去编码 ROL CL,1 ;均为1,使下行输出0 MOV AL,CL JMP NEXT_ROW;查看下行

;已找到有一列为低电平,对压健的行列值编码 ENCODE: MOV BX,000FH ;建立地址指针,先指向F健对应的地址 ; 0 l 2 3 4 5 6 7 TABLE DB 77H,7BH,7DH,7EH,0B7H,0BBH,0BDH,0BEH ; 8 9 A B C D E F DB 0D7H,0DBH,0DDH,0DEH,0E7H,0EBH,0EDH,0EEH ;已找到有一列为低电平,对压健的行列值编码 ENCODE: MOV BX,000FH ;建立地址指针,先指向F健对应的地址 IN AL,DX ;从B口读入行列号 NEXT_TRY:CMP AL,TABLE[BX];读入的行列值与表中查得的相等吗? JE DONE ;相等,转出 DEC BX ;不等,指向下一个(键值较小者)地址 JNS NEXT_TRY ;若地址尚末减为负值,继续查 MOV AH,1 ;若减为负值,置出错码01一AH中 JMP EXIT DONE: MOV AL,BL ;BL中存有键的16进制代码 MOV AH,0 ;AH=0,读到有效键值 EXIT: HLT CODE ENDS END

LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中 LED数码管可以显示内存地址和数据等

顺时针分别称为a、b、c、d、e、f、g 有的产品还附带有一个小数点h 通过7个发光段的不同组合 LED数码管的工作原理 主要部分是7段发光管 顺时针分别称为a、b、c、d、e、f、g 有的产品还附带有一个小数点h 通过7个发光段的不同组合 主要显示0~9 也可以显示A~F(实现16进制数的显示) 还可以显示个别特殊字符,如-、P 等 a g b f c e d h

LED数码管的结构 共阴极 共阳极 阳极 +5V a b c d e f g h 阴极 a b c d e f g h

单个LED数码管的显示 a PA0 b 反 PA1 c 相 PA2 d 驱 PA3 e 动 PA4 f 电 PA5 g 路 PA6 h 1 2 3 4 5 6 7 8 9 A B C D E F 40H 79H 24H 30H 19H 12H 02H 78H 00H 18H 08H 03H 46H 21H 06H 0EH

PORT_A EQU 0FOH ;A口地址 COUNT EQU 05H ;要显示的数字 DATA SEGMENT ;16进制数字的七段代码表 ; 0 1 2 3 4 5 6 7 TABLE DB 40H,79H,24H,30H,19H,12H,02H,78H ; 8 9 A b C d E F DB 00H,18H,08H,03H,46H,21H,06H,0EH DATA ENDS CODE SEGMENT ;16进制数字到七段代码的转换程序 : DISPY: MOV BX,OFFSET TABLE ;七段代码表首地址 LEA AL,COUNT[BX] ;取5的位移量 XLAT ;将被转换的七段代码送AL寄存器 MOV DX,PORT_A OUT DX,AL ;将七段代码值从A口输出,点亮相应数字 CODE ENDS END