当前位置:首页 >> 电力/水利 >>

8255A的工作方式


第6章 接口芯片与接口技术

第6章 接口芯片与接口技术
6.1 可编程并行I/O接口8255A
6.2 可编程RAM/IO/CTC接口8155

6.3 键盘显示器接口8279
6.4 LED数码显示器接口 6.5 键盘接口 6.6 A/D转换器接口 6.7 D/A转换器接口

第6章

接口芯片与接口技术

6.1 可编程并行I/O接口8255A
8255A可编程并行输入/输出接口芯片是Intel公司 生产的标准外围接口电路。它采用NMOS工艺制造,用 单一+5V电源供电,具有40条引脚,采用双列直插式封装。 它有A、B、C3个端口共24条I/O线,可以通过编程的 方法来设定端口的各种I/O功能。由于它功能强,又能方 便地与各种微机系统相接,而且在连接外部设备时,通常 不需要再附加外部电路,所以得到了广泛的应用。

第6章 接口芯片与接口技术

6.1.1 8255A的内部结构与引脚 1. 8255A的内部结构 8255A的内部结构如图6―1所示,由以下几部分组成。 1)数据端口A、B、C8255A有3个8位数据端口,即 端口A、端口B和端口C。编程人员可以通过软件将它

们分别作为输入端口或输出端口,不过这3个端口在不
同的工作方式下有不同的功能及特点,如表6―1所示。

第6章 接口芯片与接口技术

图6―1 8255A的内部结构图

第6章 接口芯片与接口技术

2) A组和B组控制电路 这是两组根据CPU的命令字控制8255A工作方式的 电路。它们的控制寄存器先接受CPU送出的命令字,然 后根据命令字分别决定两组的工作方式,也可根据CPU 的命令字对端口C的每1位实现按位“复位”或“置

位”。
A组控制电路控制端口A和端口C的上半部(PC7~PC4)。 B组控制电路控制端口B和端口C的下半部(PC3~PC0)。

第6章 接口芯片与接口技术

表6―1 8255A端口功能表

第6章 接口芯片与接口技术

2. 8255A的芯片引脚
8255A是一种有40个引脚的双列直插式标准芯片, 其引脚排列如图6―2所示。除电源(+5V)和地址以外, 其它信号可以分为两组: (1)与外设相连接的有: PA7~PA0:A口数据线 PB7~PB0:B口数据线 PC7~PC0:C口数据线

第6章 接口芯片与接口技术

图6―2 8255A的芯片引脚图

第6章 接口芯片与接口技术

(2)与CPU相连接的有:
D7~D0:8255A的数据线,和系统数据总线相连。 RESET:复位信号,高电平有效。当RESET有效时,所 有内部寄存器都被清除,同时,3个数据端口被自动设为 输入方式。
CS

:片选信号,低电平有效。只有当
:读信号,低电平有效。当

CS

有效时,芯

片才被选中,允许8255A与CPU交换信息。
RD RD

有效时,CPU可以

从8255A中读取输入数据。http://www.lccdgg.cn

第6章 接口芯片与接口技术
WR

:写信号,低电平有效。当 W R 有效时,CPU可以

往8255A中写入控制字或数据。 A1、A0:端口选择信号。8255A内部有3个数据端 口和1个控制端口,当A1A0=00时选中端口A;A1A0=01时 选中端口B;A1A0=10时选中端口C;A1A0=11时选中控 制口。 、 W R 及 C S 组合所实现的各种功能 如表6-2所示。http://www.lccdgg.cn A1、A0和
RD

第6章 接口芯片与接口技术

表6―2 8255A端口选择表

第6章 接口芯片与接口技术

6.1.2 8255A的工作方式
8255A有3种工作方式,即方式0、方式1和方式2,这 些工作方式可用软件编程来指定。3种工作方式的传送 示意图如图6―3所示。

第6章 接口芯片与接口技术

图6―3 8255A的3种工作方式? (a)方式0; (b)方式1; (c)方式2

第6章 接口芯片与接口技术

1.方式0(基本输入/输出方式)
这种工作方式不需要任何选通信号,A口、B口及C 口的高4位和低4位都可以设定为输入或输出。作为输 出口时,输出的数据均被锁存;作为输入口时,A口的数据 能锁存,B口与C口的数据不能锁存。

第6章 接口芯片与接口技术

2.方式1(选通输入/输出方式) 在这种工作方式下,A口可由编程设定为输入口或 输出口,C口的3位用来作为输入/输出操作的控制和同步 信号;B口同样可由编程设定为输入口或输出口,C口的 另3位用来作为输入/输出操作的控制和同步信号。在

方式1下A口和B口的输入数据或输出数据都能被锁存。
1)方式1下A口、B口均为输入 在方式1下,A口和B口均工作在输入状态时,需利用 C口的6条线作为控制和状态信号线,其定义如图6―4(a) 所示。

第6章 接口芯片与接口技术

图6―4 方式1下的信号定义?

(a)A口、B口均为输入时;(b)A口、B口均为输出时

第6章 接口芯片与接口技术

C口所提供的用于输入的联络信号有:

STB

(Strobe):选通脉冲信号(输入),低电平有效。

当外设送来S T B 信号时,输入的数据被装入8255A的输入 锁存器中。 ②IBF(InputBufferFull):输入缓冲器满信号(输出), 高电平有效。此信号有效时,表示已有一个有效的外设 数据锁存于8255A的口锁存器中,尚未被CPU取走,暂不 能向接口输入数据,它是一个状态信号。

第6章 接口芯片与接口技术

③INTR(InterruptRequest):中断请求信号(输出),高
电平有效。当IBF为高、 T B 信号由低变高(后沿)时,该信 S 号有效,向CPU发出中断请求。

方式1 数据输入过程如下:
当外设的数据准备好后,发出
STB

信号,输入的数据

被装入锁存器中,然后IBF信号有效(变为高电平)。 数据输入操作的时序关系如图6―5所示。

第6章 接口芯片与接口技术

图6―5 方式1下的输入时序

第6章 接口芯片与接口技术

2) 方式1下A口、B口均为输出
与输入时一样,要利用C口的6根信号线,其定义如图 6―4(b)所示。用于输出的联络信号有: (1) A C K (Acknowledge):外设响应信号(输入),低电 平有效。

(2) O B F (OutputBuffeFull):输出缓冲器满信号(输
出),低电平有效。 (3)INTR:中断请求信号(输出),高电平有效。

第6章 接口芯片与接口技术

方式1下数据输出过程如下:
当外设接收并处理完1组数据后,发回A C K 响应信 号。 数据输出操作的时序关系如图6―6所示。 应当指出,当8255A的A口与B口同时为方式1的输入

或输出时,需使用C口的6条线,C口剩下的2条线还可以
用程序来指定数据的传送方向是输入还是输出,而且也 可以对它们实现置位或复位操作。当一个口工作在方

式1时,则C口剩下的5条线也可按照上述情况工作。

第6章 接口芯片与接口技术

图6―6 方式1下的输出时序

第6章 接口芯片与接口技术

3. 方式2
8255A只有A口具有这种双向输入输出工作方式, 实际上是在方式1下A口输入输出的结合。在这种方式 下,A口为8位双向传输口,C口的PC7~PC3用来作为输入/ 输出的同步控制信号。在这种情况下,B口和PC2~PC0 只能编程为方式0或方式1工作,而C口剩下的3条线可作 为输入或输出线使用或用作B口方式1之下的控制线。

第6章 接口芯片与接口技术

图6―7 方式2下的信号定义

第6章 接口芯片与接口技术

在方式2时,其输入输出的操作时序如图6―8所示。
1) 输入操作 当外设向8255A送数据时,选通信号STBA[TX-]也同 时送到,选通信号将数据锁存到8255A的输入锁存器中, 从而使输入缓冲器满信号IBFA成为高电平(有效),告诉

外设,A口已收到数据。选通信号结束时,使中断请求信
号为高,向CPU请求中断。 2)输出操作

CPU响应中断,当用输出指令向8255A的A端口中写
入一个数据时,会发出写脉冲信号 W R 。

第6章 接口芯片与接口技术

图6―8 方式2下的时序图

第6章 接口芯片与接口技术

6.1.3 8255A的控制字及初始化
1.8255A的控制字 8255A为可编程接口芯片,以控制字形式对其工作 方式和C口各位的状态进行设置。它有两种控制字:工 作方式控制字和C口置位/复位控制字。

1) 工作方式控制字
工作方式控制字用于确定各口的工作方式及数据 传送方向,其格式如图6―9所示。

第6章 接口芯片与接口技术

对工作方式控制字作如下说明:
(1) A口有3种工作方式,而B口只有2种工作方式。 (2)A组包括A口与C口的高4位,B组包括B口与C口 的低4位。 (3)在方式1或方式2下,对C口的定义(输入或输出)不

影响作为联络线使用的C口各位的功能。
(4)最高位(D7位)为标志位,D7=1为方式控制字。

第6章 接口芯片与接口技术

2) C口置位/复位控制字
利用C口置位/复位控制字可以很方便地使C口8位 中的任一位清0或置1,该控制字的格式如图6―9(b)所示。 D7位为该控制字的标志位,D7=0为C口置位/复位控制字。 在使用中,该控制字每次只能对C口中的一位进行置

位或复位。应注意的是,作为联络线使用的C口各位是
不能采用置位/复位操作来使其置位或复位的。其数值 应视现场的具体情况而定。http://www.lccdgg.cn

第6章 接口芯片与接口技术

2. 8255A的初始化编程
8255A初始化的内容就是向控制寄存器写入工作方 式控制字或C口置位/复位控制字。这两个控制字可按 同一地址写入且不受先后顺序限制。由于两个控制字 因标志位的状态不同,因此8255A能加以区分。

第6章 接口芯片与接口技术

图6―9 8255A控制字格式

(a)工作方式控制字; (b)C口置位/复位控制字

第6章 接口芯片与接口技术

例如对8255A各口作如下设置:A口方式0输入,B口 方式0输出,C口高位部分为输出、低位部分为输入。设 控制寄存器的地址为03FFH,则其工作方式控制字可设 置为:
D0=1:C口低半部输入; D1=0:B口输出;

D2=0:B口方式0;
D3=0:C口高半部输出; D4=1:A口输入; D6D5=00:A口方式0; D7=1:工作方式字标志。

第6章 接口芯片与接口技术

因此工作方式控制字为10010001B即91H。
初始化程序段为: MOV MOV MOVX DPTR,#03FFH A,#91H @DPTR,A

若要使端口C的D3位置位的控制字为
00000111B(即07H),而使D3位复位的控制字为 00000110B(即06H)。

第6章 接口芯片与接口技术

6.1.4 8255A与系统的连接
由于8255A是Intel公司专为其主机配套设计制造的 标准化外围接口芯片,因此它与MCS-51单片机的连接是 比较简单方便的。 一般来说,MCS-51单片机扩展的I/O接口均与片外 RAM统一编址。由于单片机系统片外RAM的实际容量 一般均不太大,远远达不到64KB的范围,因此I/O接口芯 片大多采用部分译码的方法,而用得比较多的则是直接

利用地址线的线选法。这种方法虽然要浪费大量的地
址号,但译码电路比较简单。图6―10就是一种较常用的 连接实例。

第6章 接口芯片与接口技术

图6―10 8255A与8031的连接

第6章 接口芯片与接口技术

图6―10中,P0口为地址/数据复用口。数据通过P0
口直接传送,地址的低8位是需通过锁存器74LS373得到 的,而地址的高8位则由P2口传送。 现采用线选法,利用高8位地址线的P2.7作为线选信 号,直接与8255A的片选端 C S 相连,而A1、A0则与地 址的最末2位相连。由图6―10所示接法,可得到8255A 各个端口的地址,如表6―3所示。

第6章 接口芯片与接口技术

表6―3 8255A各端口的地址?

第6章 接口芯片与接口技术

6.1.5 8255A应用举例
8255A在微机和单片机控制系统中得到了广泛应用, 现举两例加以说明。 例1:要求通过8255A的PC5端向外输出1个正脉冲 信号,已知8255A的C口和控制口的地址分别为0002H和 0003H。 解:若要从PC5端输出1个正脉冲信号,可通过对 PC5位的置位和复位控制来实现。由于每送1个控制字,

只能对1位作1次置位或复位操作,故产生1个正脉冲要对
PC5位先送置位控制字,经过一定的延时后(延时时间视 脉宽而定),再送复位控制字即能实现。程序编制如下:

第6章 接口芯片与接口技术

MOV MOV MOV

DPTR,#0003H A,#OBH X @DPTR,A

;指向8255A的控制口 ;对PC5置1

LCALL DELAY DEC MOV A

;延时(调用延时子程序) ;对PC5置0

X @DPTR,Ahttp://www.lccdgg.cn

第6章 接口芯片与接口技术

例2:8255A作为连接打印机的接口。
图6―11是通过8255A连接打印机的接口电路,数据 传送采用查询方式。8255A的地址译码采用线选法,将 P0.7直接与8255A的C S 端相连(通过地址锁存器),其口地 址A口为7CH,B口为7DH,C口为7EH,命令口为7FH。

第6章 接口芯片与接口技术

图6―11 8255A连接打印机的接口电路

第6章 接口芯片与接口技术

现要求编制打印50个字符的程序,该数据存于片内
RAM从20H开始的50个连续单元中。 程序如下: MOV MOV R0,#7FH A,#88H X @R0,A R1,#20H R2,#32H R0,#7EH ;指向8255A的命令口 ;取方式字:A口输出,C口低出高 ;送入方式字 ;R1指向数据区首址 ;送数据块长度 ;指向C口


MOV MOV MOV LP:MOV

第6章 接口芯片与接口技术

LOOP1:MOVX
JB MOV

A,@R0
A.7,LOOP1 R0,#7CH

;读入C口信息
;若BUSY=1,继续查询 ;指向A口

MOV
MOV INC

A,@R1
X @R0,A R1

;取RAM数据
;数据输出到A口 ;数据指针加1

MOV
MOV MOV

R0,#7FH
A,#00H X @R0,A

;指向命令口
;C口置位/复位命令字(PC0=0) ;产生STB[TX-]的下降沿

MOV
MOV DJNZ

A,#01H
X @R0,A R2,LP

;改变C口置位/复位命令字(PC0=1)
;产生STB[TX-]的上升沿 ;未完,则反复

第6章 接口芯片与接口技术

6.2 可编程RAM/IO/CTC接口8155
6.2.1 8155的结构与引脚
1. 8155的内部结构 8155的内部结构如图6―12(b)所示。它含有1个256字 节的RAM、1个14位定时/计数器以及3个并行I/O口,其中 A口、B口均为8位,C口为6位。A口、B口既可作为基本

I/O口,也可作为选通I/O口;C口除可作为基本I/O口外,还
可用作A口、B口的应答控制联络信号线。此外,8155内部 还有一个控制寄存器组,用来存放控制命令字。

第6章 接口芯片与接口技术

图6―12 8155引脚排列及结构框图
(a)引脚排列; (b)内部结构框图

第6章 接口芯片与接口技术

图6―12 8155引脚排列及结构框图

(a)引脚排列;

(b)内部结构框图

第6章 接口芯片与接口技术

2.8 155的引脚
8155为40引脚双列直插式封装芯片,其引脚排列如 图6―12(a)所示。现将其各引脚的功能简介如下:

AD0~AD7:地址/数据复用线。 它与8031单片机
的P0口直接相连。8155和CPU之间的地址、数据、命令 及状态信号都通过这组信号线传送。
C E :片选信号,输入,低电平有效。
IO / M

:RAM和I/O口选择线。当

IO / M

=1时,选中I/O

口;当

IO / M

=0时,选中RAM。

第6章 接口芯片与接口技术

ALE:地址锁存信号。
R D :读选通信号,输入,低电平有效。

E R :写选通信号,输入,低电平有效。

TIMERIN:定时器输入。它是8155片内定时器的脉 冲信号输入端。
TIMEROUT:定时器输出。通过它可以输出矩形波 或脉冲波。 PA0~PA7:A口通用的输入/输出线。由编程来决定是 输入还是输出。 PB0~PB7:B口通用的输入/输出线。由编程来决定 是输入还是输出。http://www.lccdgg.cn

PC0~PC5:C口的输入/输出或控制信号线。

第6章 接口芯片与接口技术

6.2.2 8155的RAM和I/O口的编址
与其它接口芯片一样,8155芯片中的RAM和I/O口均 占用单片机系统片外RAM的地址,其中高8位地址由
CE

和IO/[AKM-]信号决定。当 C E

=0,且IO/ M =0时,

低8位的00H~FFH为RAM的有效地址;当 C E =0,且

IO/ M =1时,由低8位地址中的末3位(A2A1A0)来决定
各个口的地址,如表6―4所示。

第6章 接口芯片与接口技术

表6―4 8155端口地址表

第6章 接口芯片与接口技术

对于多数单片机应用系统来说,由于片外RAM区的
容量较大(最大为64KB),因此通常采用线选法对接口芯 片进行编址。对8155来说,常用高8位地址中的两位来选


IO/

CE
M

和IO/

M

。例如将P2.7接至

CE

,将P2.0接至

,那么8155的RMA和I/O口的编址为:

第6章 接口芯片与接口技术

RAM:P2.7=0,P2.0=0,其地址范围为:
01111110 00000000B~01111110 11111111B, 即:7E00H~7EFFH。 I/O口:P2.7=0,P2.0=1,口地址范围为: 01111111 00000000B~01111111 00000101B,即

7F00H~7F05H。

第6章 接口芯片与接口技术

具体分配如下:
命令口:7F00H A口:7F01H B口:7F02H C口:7F03H

定时器低8位:7F04H
定时器高8位:7F05H

第6章 接口芯片与接口技术

6.2.3 8155I/O口的工作方式
8155有3个I/O口,即A口、B口和C口,其中C口只有6 位。A口和B口均可工作于基本I/O方式或选通I/O方式。 C口既可作为I/O口线,工作于基本I/O方式,也可作为A 口、B口选通工作时的状态联络控制信号线。 1.基本I/O

基本I/O为无条件传送,这是最简单的I/O操作,不需 要任何联络信号,随时可以进行。
2.选通I/O 选通I/O为条件传送,传送的方式可用查询方式,也可 用中断方式。

第6章 接口芯片与接口技术

(1)BF:I/O缓冲器满空标志,输出,高电平有效。
(2) S T B :选通信号,输入,低电平有效。 (3)INTR:中断请求信号,输出,高电平有效。 以上这些信号线对A口与B口均适用,分别称之为 ABF、 S T B 、AINTR与BBF、 B S T B 、BINTR。它们都 是由C口提供的,如表6―5所示。

第6章 接口芯片与接口技术

表6―5 8155的PC口线联络信号定义

第6章 接口芯片与接口技术

6.2.4 8155的命令/状态字
8155有1个命令/状态寄存器,实际上这是两个不同的 寄存器,分别存放命令字和状态字。由于对命令寄存器只 能进行写操作,而对状态寄存器只能进行读操作,因此把 它们编为同一个地址,合在一起称之为命令/状态寄存器。 1.命令字 命令字共8位,用于定义I/O端口及定时器的工作方式。 对命令寄存器只能写入不能读出(读出的将是状态寄存

器的内容)。
命令字的格式如图6―13所示。

第6章 接口芯片与接口技术

图6―13 8155的命令字格式

第6章 接口芯片与接口技术

对C口工作方式的说明:
D3D2=00(ALT1):A口、B口为基本I/O,C口为输入。 D3D2=01(ALT2):A口、B口为基本I/O,C口为输出。 D3D2=10(ALT3):A口选通I/O,B口基本I/O,C口低3 位为联络信号,高3位输出(参阅表6―5)。

D3D2=11(ALT4):A口、B口均为选通I/O,C口低3
位作为A口联络信号,高3位作为B口联络信号(参阅表 6―5)。

第6章 接口芯片与接口技术

关于定时器运行控制位(TM2、TM1)补充说明如下:
当TM2、TM1=11时,其操作为:当计数器未计数时, 装入计数长度和方式后立即开始计数;当计数器正在计 数时,待计数器溢出后以新装入的计数长度和方式进行 计数。 2.状态字 8155的状态寄存器与命令寄存器共用1个地址,当使 用读操作时,读入的便是状态寄存器中的内容。其格式

如图6―14所示。

第6章 接口芯片与接口技术

图6―14 8155的状态字格式

第6章 接口芯片与接口技术

6.2.5 8155的定时/计数器
8155的定时/计数器是1个14位的减法计数器,由两 个8位寄存器构成,其格式如下:
D7 T7 T6 T5 T4 T3 T2 T1 D0 T0

M2

M1

T13

T12

T11

T10

T9

T8

第6章 接口芯片与接口技术

其中低14位组成计数器,剩下的两个高位(M2M1) 用于定义计数器输出的信号形式,如图6―15所示。
8155的定时/计数器与MCS-51单片机芯片内部的定 时/计数器在功能上是相同的,都有定时和计数两种功能。 但是在使用上却有很多不同之处。具体表现在: (1)8155的定时/计数器为减法计数,而MCS-51单片机 内部的定时/计数器却是加法计数。 (2)MCS-51单片机内部的定时/计数器有多种工作方 式,而8155的定时/计数器却只有一种固定的工作方式, 即14位计数,通过软件方法进行计数值的加载。

第6章 接口芯片与接口技术

(3)MCS-51单片机内部的定时/计数器有两种计数脉
冲:当定时工作时,由芯片内部按机器周期提供固定频率 的计数脉冲;当计数工作时,从芯片外部引入计数脉冲。 (4)MCS-51单片机内部的定时/计数器,在计数溢出时 自动置位TCON寄存器中的计数溢出标志位TF,供用户以 查询或中断方式使用;而8155的定时/计数器,在计数溢出 时却是通过TIMEROUT引脚向外部发出1个脉冲信号。

第6章 接口芯片与接口技术

图6―15 定时/计数器输出方式

第6章 接口芯片与接口技术

另外,8155的定时器在计数过程中,计数器的值并不
直接表示外部输入的脉冲。若作为外部事件计数,那么 由计数器的现行计数值求输入脉冲数的方法为: (1) 停止计数器计数。 (2) 分别读出计数器的两个字节内容。

(3) 取其低14位数作为现行计数值。
(4) 算出现行计数值与初始计数值之差即可。

第6章 接口芯片与接口技术

6.2.6 8155和MCS-51单片机的接口电路
8155可以和MCS-51单片机直接相连,而不需外加 逻辑电路。图6―16所示为8155和MSC-51相连的一种 基本连接方法。 按图6―16所示接法,8155的RAM和各端口地址如下: RAM的地址:0000H~00FFH

命令口:0200H
A口:0201H B口:0202H C口:0203H 定时器低位:0204H

定时器高位:0205H

第6章 接口芯片与接口技术

图6―16 8155与MCS-51的连接方法

第6章 接口芯片与接口技术

6.2.7 8155的初始化编程及应用举例
8155初始化编程的主要内容为写入8155的命令字和 定时/计数器的初值以及输出方式。现举例说明如下。 例1:采用如图6―16所示的接口电路,设A口与C口 为输入口,B口为输出口,均为基本I/O。定时器为连续方 波工作方式,对输入脉冲进行24分频。试编写8155的初 始化程序。

第6章 接口芯片与接口技术

解:命令字可选取为 PA=0:A口输入 PB=1:B口输出 PC2、PC1=00:A口、B口基本I/O,C口输入 IEA=0,IEB=0:A口、B口均禁止中断 TM2、TM1=11:立即启动计数器 所以命令字为11000010B=C2H。

第6章 接口芯片与接口技术

计数初值的选取方法为:由于计数值为24,所以
定时器的低8位为18H,高6位为000000B。 定时器的输出方式要求为连续方波,选M2M1=01, 那么定时器的高8位为01000000B=40H。 RAM及端口地址与前面的相同。

第6章 接口芯片与接口技术

初始化程序:
MOV MOV MOVX INC DPTR,#0204H A,#18H @DPTR,A DPTR ;指向定时器的低8位 ;取定时器低8位的值 ;写入定时器低8位 ;指向定时器高8位

MOV
MOVX MOV MOV MOVX

A,#40H
@DPTR,A DPTR,#0200H A,#C2H @DPTR,A

;取定时器高8位的值
;写入定时器高8位 ;指向命令口 ;取8155的命令字 ;写入命令字

第6章 接口芯片与接口技术

例2:仍采用图6―16所示的接口电路,从8155的A口
输入数据并进行判断:若不为0,则将该数据存入8155的 RAM中(从起始单元开始存放,数据的总数不超过256个),

同时从B口输出,并将PC0置“1”;若为0,则停止输入输
出,同时将PC0清“0”。试编写能完成上述任务的初始 化及应用程序。 解:初始化及应用程序如下: MOV DPTR,#0200H ;指向命令口

MOV
MOV

A,#00000110B
X @DPTR,A

;取命令字
;写入命令字

第6章 接口芯片与接口技术

MOV
MOV

R0,#00H
R1,#00H

;指向8155的RAM区首址
;数据总数为256个

LOOP1:MOV DPTR,#0201H ;指向A口 MOV JZ X A,@DPTR LOOP3 ;从A口输入数据 ;为0则转

MOV
INC INC MOV INC

X @R0,A
R0 DPTR X @DPTR,A DPTR

;不为0,则存入RAM中
;指向下一单元 ;指向B口 ;从B口输出 ;指向C口

第6章 接口芯片与接口技术

MOV
SETB MOV DJNZ LOOP2:SJMP

X A,@DPTR
ACC,0 X @DPTR,A R1,LOOP1 $

;取C口数据
;使PC0置1 ;回送 ;未完则反复 ;暂停

LOOP3:MOV
MOVX SJMP

DPTR,#0203H
@DPTR,A LOOP2

;指向C口
;回送

第6章 接口芯片与接口技术

6.3 键盘显示器接口8279
6.3.1 8279的组成及引脚 8279芯片有40条引脚,由单一+5V电源供电。它主 要由以下几部分组成:

(1) I/O控制和数据缓冲器;
(2) 控制和定时寄存器及定时控制部分; (3) 扫描计数器; (4)回送缓冲器与键盘去抖动控制电路; (5)FIFO(先进先出)寄存器和状态电路;

(6)显示器地址寄存器及显示RAM。

第6章 接口芯片与接口技术

8279的引脚如图6―17所示,下面对引脚名称作 简要说明。
DB0~DB7:双向数据总线。

A0:命令状态或数据选择线。A0=1,表示从 DB0~DB7线上传送的是命令或状态字;A0=0表示为 数据。
RD

、W R :读、写信号线。

IRQ:中断请求线。 SL0~SL3:扫描线。可进行译码扫描(4选1),也可 进行编码扫描(16选1),但要使用4-16译码器。若用38译码器的话,则扫描线为8选1。http://www.lccdgg.cn

第6章 接口芯片与接口技术

图6―17 8279引脚图

第6章 接口芯片与接口技术

RL0~RL7:回送线。内部有上拉电阻,从此线上得
到键盘的回扫信号。 OUTA0~OUTA3、OUTB0~OUTB3:显示器刷新寄 存器输出,与扫描线同步。

第6章 接口芯片与接口技术

6.3.2 8279的接口电路与应用举例
图6―18给出了用8279芯片管理24个键的键盘和6 个LED数码显示器的实际应用接口电路,以及它与 8031单片机的接口方法。 作 为 一 个 外 设 接 口 芯 片 , 8 2 7 9 的 片C S 信 号 选 由8031的P25、P26、P27这3条地址线经地址译码器译 码后得到的(P27、P26、P25=011)。其片内寻址线A0与 8031系统的地址线A0相连,此时8279数据口的地址号

为6000H,命令/状态口的地址号为6001H。

第6章 接口芯片与接口技术

图6―18 8279应用实例

第6章 接口芯片与接口技术

该接口电路的工作过程简述如下:
每当按下一个键,8279会自动识别键号,产生相 应的键编码自动送入先进先出寄存器FIFO中,同时产 生中断请求信号IRQ,向CPU请求中断。当CPU响应中 断,执行中断服务程序,并从FIFO中读取编码数据之 后,则IRQ信号将自动撤消。

第6章 接口芯片与接口技术

6.4 LED数码显示器接口
6.4.1 LED数码显示器的结构与显示段码 1. LED数码显示器的结构 LED数码显示器是1种由LED发光二极管组合显示 字符的显示器件。它使用了8个LED发光二极管,其中7 个用于显示字符,1个用于显示小数点,故通常称之为7段

(也有称作8段)发光二极管数码显示器。其内部结构如
图6―19所示。

第6章 接口芯片与接口技术

图6―19 7段LED数码显示器

第6章 接口芯片与接口技术

LED数码显示器有两种连接方法:
(1)共阳极接法。 把发光二极管的阳极连在一起构成公共阳极,使用 时公共阳极接+5V,每个发光二极管的阴极通过电阻与 输入端相连。 (2)共阴极接法。 把发光二极管的阴极连在一起构成公共阴极,使用 时公共阴极接地。每个发光二极管的阳极通过电阻与

输入端相连。

第6章 接口芯片与接口技术

2. LED数码显示器的显示段码
为了显示字符,要为LED显示器提供显示段码(或称 字形代码),组成一个“8”字形字符的7段,再加上1个 小数点位,共计8段,因此提供给LED显示器的显示段码 为1个字节。各段码位的对应关系如下:

段码位 显示段

D7 dp

D6 g

D5 f

D4 e

D3 d

D2 c

D1 b

D0 a

第6章 接口芯片与接口技术

表6―6 十六进制数及空白字符与P的显示段码

第6章 接口芯片与接口技术

6.4.2 LED数码显示器的接口方法与接口电路
1.LED数码显示器的接口方法 单片机与LED数码显示器有以硬件为主和以软件为 主的两种接口方法。 1)以硬件为主的接口方法

这种接口方法的电路如图6―20所示。

第6章 接口芯片与接口技术

图6―20 以硬件为主的LED显示器接口电路

第6章 接口芯片与接口技术

2)以软件为主的接口方法
这种接口方法的电路如图6―21所示,它是以软件 查表代替硬件译码,不但省去了译码器,而且还能显示更 多的字符。但是驱动器是必不可少的,因为仅靠接口提 供不了较大的电流供LED显示器使用。

第6章 接口芯片与接口技术

图6―21 以软件为主的LED显示器接口电路

第6章 接口芯片与接口技术

2. LED数码显示器的接口电路
实际使用的LED数码显示器位数较多,为了简化线 路、降低成本,大多采用以软件为主的接口方法。对于 多位LED数码显示器,通常采用动态扫描显示方法,即逐 个地循环地点亮各位显示器。这样虽然在任一时刻只 有1位显示器被点亮,但是由于人眼具有视觉残留效应, 看起来与全部显示器持续点亮的效果基本一样(在亮度 上要有差别)。http://www.lccdgg.cn

第6章 接口芯片与接口技术

图6―22 8155作6位LED显示器接口的电路

第6章 接口芯片与接口技术

6.4.3 LED数码显示器的显示方法
对于多位数码显示器来说,为了简化线路、降低成本, 往往采用以软件为主的接口方法,即不使用专门的硬件译 码器,而采用软件程序进行译码。如前所述,由于各位数码 管的显示段码是互相并联的,因此在同一时刻只能显示同 一种字符。对于这种接口电路来说,其显示方法有静态显 示和动态显示两种。 1.静态显示 所谓静态显示,就是在同一时刻只显示1种字符,或者说 被显示的字符在同一时刻是稳定不变的。其显示方法比 较简单,只要将显示段码送至段码口,并把位控字送至位控 口即可。所用指令为:

第6章 接口芯片与接口技术

MOV MOV MOV MOV MOV MOV

DPTR,#SEGPORT A,#SEG X @DPTR,A DPTR,#BITPORT A,#BIT X @DPTR,A

;指向段码口 ;取显示段码 ;输出段码 ;指向位控口 ;取位控字 ;输出位控字

第6章 接口芯片与接口技术

2.动态显示
如果要在同一时刻显示不同的字符,从电路上看,这 是办不到的。因此只能利用人眼对视觉的残留效应,采 用动态扫描显示的方法,逐个地循环点亮各位数码管,每 位显示1ms左右,使人看起来就好象在同时显示不同的 字符一样。 在进行动态扫描显示时,往往事先并不知道应显示 什么内容,这样也就无从选择被显示字符的显示段码。

为此,一般采用查表的方法,由待显示的字符通过查表得
到其对应的显示段码。

第6章 接口芯片与接口技术

下面介绍一种动态扫描显示子程序:
DIR: MOV MOV MOV MOV R0,#7AH R3,#01H A,#00H R1,#BITPORT ;指向显示缓冲区首址 ;从右边第1位开始显示 ;取全不亮位控字 ;指向位控口

MOV
LD1: MOV MOV MOV MOV

X @R1,A
A,@R0 DPTR,#DSEG C A,@A+DPTR R1,#SEGPORT

;瞬时关显示
;取出显示数据 ;指向显示段码表首址 ;查显示段码表 ;指向段码口

第6章 接口芯片与接口技术

MOV
MOV MOV MOV LCALL

X @R1,A
R1,#BITPORT A,R3 X @R1,A DELY

;输出显示段码
;指向位控口 ;取位控字 ;输出位控字 ;延时1ms

INC
JB RL MOV SJMP

R0
A.5,LD2 A R3,A LD1

;指向下一个缓冲单元
;已到最高位则转返回 ;不到,向显示器高位移位 ;保存位控字 ;循环

第6章 接口芯片与接口技术

LD2: RET
DSEG:DBC0H,F9H,A4H,B0H,99H,92H,82H ;显示段码表 DB F8H,80H,90H,88H,83H,C6H,A1H DB 86H,84H,FFH

第6章 接口芯片与接口技术

程序说明:
(1)本例接口电路是以软件为主的接口电路,显示数 据有6位,每位数码管对应1位有效显示数据。 (2)由程序可知,由于数码显示器的低位(最右边的位) 显示的是显示缓冲区中的低地址单元中的数,因此数 在显示缓冲区中存放的次序为低地址单元存低位,高地 址单元存高位。 (3)在动态扫描显示过程中,每位数码管的显示时间

约1ms,这由调用延时1ms子程序DELY来实现。

第6章 接口芯片与接口技术

(4)本程序是利用查表方法来得到显示段码的,这是
一种既简便又快速的方法。由于MCS-51单片机具有查 表指令(MOVC指令),因此用来编制查表程序是非常方 便的。 (5)由于在显示段码表中,将“空白”字符排在字母 “F”的后边,因此在使用查表指令时,若要查“空白” 字符的显示段码,那么在累加器A中应放入数据“10H”。 (6)在实际的单片机应用系统中,一般将显示程序作

为1个子程序供监控程序调用。

第6章 接口芯片与接口技术

6.4.4 LED数码显示器应用举例
1.静态显示举例 例1:在数码显示器的最左边1位上显示1个“P”字。 数码显示器的接口电路如图6―22所示,设8155的端口地 址为7F00H~7F05H,数码管为共阳极。试编写相应的显 示程序。 解:本例要显示的字符已知,且在同一时刻只显 示1种字符,故可采用静态显示的方法。由图6―22可

知,当采用共阳极数码管时,应按共阳极规律控制。
在程序的开始,应对8155进行初始化编程,设A、B口 均为输出。

第6章 接口芯片与接口技术

程序如下:
MOV MOV A,#03H DPTR,#7F00H ;8155命令字(A、B口均为输出) ;指向命令口

MOV
MOV INC

X @DPTR,A
A,#8CH DPTR

;输出命令字
;取“P”字符的显示段码 ;指向A口

MOV
INC INC

X @DPTR,A
DPTR DPTR

;输出显示段码

;指向C口

MOV
MOV SJMP

A,#20H
X @DPTR,A $

;取位控字(最左边一位上显示)
;输出位控字 ;暂停

第6章 接口芯片与接口技术

例2:开始时在数码显示器的最右边一位上显示1
个“0”字,以后每隔0.5秒将“0”字左移1位,直到最左 边一位后则停止显示。接口电路与端口地址同上,设有

20ms延时子程序D20MS可供调用。试编写相应的程序。
解:本例仍可采用静态显示的方法。 程序如下: MOV MOV A,#03H ;8155命令字(A、B口均为输出) ;指向命令口

DPTR,#7F00H

MOV
MOV

X @DPTR,A
A,#C0H

;输出命令字
;取“0”字的显示段码

第6章 接口芯片与接口技术

INC
MOV INC

DPTR
X @DPTR,A DPTR

;指向A口
;输出显示段码

INC
MOV LOOP1:MOV MOV LOOP2:LCALL

DPTR
A,#01H R0,#19H D20MS X @DPTR,A

;指向C口
;取位控字(最右边一位上显示) ;输出位控字 ;延时0.5秒

DJNZ
JB RL A

R0,LOOP2
A.5,LOOP3 ;若已到最左边一位,则转 ;未到,则将位控字左移1位

第6章 接口芯片与接口技术

SJMP
LOOP3:MOV MOV SJMP

LOOP1
A,#00H X @DPTR,A $

;继续
;停止显示

;暂停

2.动态显示举例

例3:编一动态显示程序,使数码显示器同时显示
“ABCDEF”6个字符。设显示缓冲区的首地址为7AH, 可调用动态扫描显示子程序DIR(参见643小节)。

第6章 接口芯片与接口技术

解: MOV
MOV MOV LOOP:MOV INC

A,#0FH
R0,#7AH R1,#06H @R0,A R0

;取最右边1位字符
;指向显缓区首址(最低位) ;共送入6个字符 ;将字符送入显缓区 ;指向下一显示单元

DEC
DJNZ MM: LCALL SJMP

A
R1,LOOP DIR MM

;取下一个显示字符
;6个数未送完,则重复 ;扫描显示一遍 ;重复扫描

第6章 接口芯片与接口技术

例4:在一串单字节无符号数中找出最大值,并在数
码显示器的最右边两位上显示。设数据串的长度为20, 存放在片内RAM从30H单元开始的一段区域中。

解:根据题意,LED数码显示器必须采用动态扫描显
示的方法。 本例要显示的是两位数,而数码显示器有6位。在不 显示数字的位上数码管应该不亮,而动态扫描显示子程 序每次对6位数码管全扫描一遍。

第6章 接口芯片与接口技术

程序按如下思路编写:
(1)先求出最大值。 (2)将最大值拆字节后存入显示缓冲区,应注意数的 存放次序。根据题意,低位数应存入显示缓冲区的低地 址单元。 (3)将“空白”字符的查表值10H送入不显示位所对 应的显示缓冲区中。 (4)反复调用动态扫描显示子程序。

第6章 接口芯片与接口技术

程序如下:
MOV MOV MOV M1: INC R0,#30H R1,#13H A,@R0 R0 ;R0指向数据区首地址 ;比较次数送R1 ;取第1个数 ;指向下一个数

MOV
CJNE M2: DJNZ SJMP M3: JNC

70H,@R0
A,70H,M3 R1,M1 M4 M2

;下一个数送入70H单元中
;若前后两个数不相等则转 ;若相等,则判比较完否? ;若已完,则转至显示处理 ;前一个数大,转至判结束否?

第6章 接口芯片与接口技术

MOV
SJMP M4: MOV ANL MOV

A,70H
M2 R2,A A,#0FH 7AH,A

;前一个数小,将大数换入A中
;转至判结束处 ;暂存最大值 ;保留低位数 ;将低位数存入显示缓冲区中

MOV
ANL SWAP MOV

A,R2
A,#F0H

;恢复最大值
;保留高位数 ;将高位换入低位中

7BH,A

;存入高位数

第6章 接口芯片与接口技术

MOV
MOV MOV MOV MOV

A,#10H

;取“空白”字符查表值

7CH,A ;放入显示缓冲区不显示位的单元中 7DH,A 7EH,A 7FH,A ;高4位不显示

MM:LCALL
SJMP

DIR
MM

;扫描显示一遍
;重复扫描,显示最大值

第6章 接口芯片与接口技术

6.5 键盘接口
键盘实际上是由排列成矩阵形式的一系列按键开
关组成的,它是单片机系统中最常用的人机联系的一 种输入设备。用户通过键盘可以向CPU输入数据、地

址和命令。
键盘按其结构形式可分为编码式键盘和非编码式键 盘两大类。 编码式键盘是由其内部硬件逻辑电路自动产生被按 键的编码。这种键盘使用方便,但价格较贵。

第6章 接口芯片与接口技术

单片机系统中普遍使用非编码式键盘。这类键盘应
主要解决以下几个问题: (1)键的识别; (2)如何消除键的抖动; (3)键的保护。

在以上几个问题中,最主要的是键的识别。

第6章 接口芯片与接口技术

6.5.1 非编码式键盘的结构与工作原理
1.非编码式键盘的结构 非编码式键盘一般采用行列式结构并按矩阵形式排 列,如图6―23所示。 图6―23示出4×4行列式键盘的基本结构示意图。

4×4表示有4根行线和4根列线,在每根行线和列线的交
叉点上均分布1个单触点按键,共有16个按键。

第6章 接口芯片与接口技术

2.非编码式键盘的工作原理
非编码式键盘识别闭合键通常有两种方法:一种称 为行扫描法,另一种称为线反转法。 1)行扫描法 所谓行扫描法,就是通过行线发出低电平信号,如果

该行线所连接的键没有按下的话,则列线所连接的输出
端口得到的是全“1”信号;如果有键按下的话,则得到 的是非全“1”信号。

第6章 接口芯片与接口技术

图6―23 非编码式键盘行扫描法的工作原理? (a)无键按下;(b)有键按下;(c)扫描第0行;?

(d)扫描第1行;(e)扫描第2行;(f)扫描第3行

第6章 接口芯片与接口技术

图6―23 非编码式键盘行扫描法的工作原理? (a)无键按下;(b)有键按下;(c)扫描第0行;?

(d)扫描第1行;(e)扫描第2行;(f)扫描第3行

第6章 接口芯片与接口技术

图6―23 非编码式键盘行扫描法的工作原理? (a)无键按下;(b)有键按下;(c)扫描第0行;?

(d)扫描第1行;(e)扫描第2行;(f)扫描第3行

第6章 接口芯片与接口技术

具体过程如下:
首先,为了提高效率,一般先快速检查整个键盘中是 否有键按下;然后,再确定按下的是哪一个键。 其次,再用逐行扫描的方法来确定闭合键的具体位 置。方法是:先扫描第0行,即输出1110(第0行为“0”, 其余3行为“1”),然后读入列信号,判断是否为全“1”。

第6章 接口芯片与接口技术

2) 线反转法
线反转法也是识别闭合键的一种常用方法。该方 法比行扫描法速度要快,但在硬件电路上要求行线与列

线均需有上拉电阻,故比行扫描法稍复杂些。
3.如何消除键的抖动 由于按键为机械开关结构,因此机械触点的弹性及 电压突跳等原因,往往在触点闭合或断开的瞬间会出现 电压抖动,如图6―24所示。 http://www.lccdgg.cn

第6章 接口芯片与接口技术

图6―24 键闭合和断开时的电压抖动

第6章 接口芯片与接口技术

4.键的保护
键的保护问题指的是当有双键或多键同时按下时会 出现什么问题以及如何加以解决。 以图6―23所示为例,若在同一行上有两个键同时按 下,从硬件上来说,不会出现什么问题;从软件上来说,由 于这时读入的列代码中出现了两个0,由此代码与行值组 合成的键特征值就超出了原设定键的范围,因此也就查 不出有效的键值来。一旦出现这样情况,一般作为废键

处理。

第6章 接口芯片与接口技术

6.5.2 键盘接口电路
对于8031型单片机来说,如果P1口不作其它用途的 话, 则 可 与 4 × 4 的键 盘相连接 , 如 图6 ―25 所 示,其 中 P1.0~P1.3作为输出口,P1.4~P1.7作为输入口。 对于8751或8051型单片机来说,如果不再外扩程序 存储器的话,则可以利用P0~P2口中的任意两个口构成 多达8×8的键盘,其中1个作为输出口,1个作为输入口, 既可以采用行扫描法,也可以采用线反转法。

第6章 接口芯片与接口技术

图6―25 8031与4×4键盘的接口电路(行扫描法)

第6章 接口芯片与接口技术

如果单片机本身的口线已被占用的话,则可以通过
外扩I/O接口芯片来构成键盘接口电路,较常用的是 8155、8255A等接口芯片。图6―26是采用8155接口芯

片构成8×4键盘的接口电路,其中A口为输出,作为行
线;C口为输入,作为列线(只用了PC0~PC3四根口线)。

第6章 接口芯片与接口技术

图6―26 采用8155的键盘接口电路

第6章 接口芯片与接口技术

6.5.3 键盘扫描程序
现以图6―26所示接口电路为例,说明键盘扫描程序 的编制方法。 1.采用行扫描法 采用行扫描法识别闭合键的程序流程图见图6―27。

第6章 接口芯片与接口技术

图6―27 键分析程序流程图

第6章 接口芯片与接口技术

首先调用全扫描子程序,检查有无闭合键。若无键 闭合,则对数码显示器扫描显示1遍;若有键闭合,则先消 抖。这里采用调用两次数码显示器扫描循环显示子程 序的方法,每次6ms共12ms。然后再次检查有无键闭合, 若无键闭合,则返回主程序;若有键闭合,则进行逐行扫 描,以判别闭合键的具体位置。 本例介绍的是第1种方法,采用的计算公式为
键值=行号×4+列号 (6―1) 对于8×4的键盘来说,其具体键值由式(6―1)可计算 出,见表6―7。

第6章 接口芯片与接口技术

表6―7 8×4键盘键值计算法

第6章 接口芯片与接口技术

计算出闭合键的键值后,再判断键释放否?若键未
释放,则等待;若键已释放,则再延时消抖,然后判断是 命令键还是数字键。若是命令键,则转入命令键处理程 序,完成命令键的功能;若是数字键,则转入数字键处理 程序,进行数字的存储和显示等。

第6章 接口芯片与接口技术

键盘扫描程序:
KEY1: LCALL JNZ LJMP LK1: LCALL KS1 LK1 LK8 DIR ;检查有闭合键否? ;A非0,有键闭合则转 ;无键闭合转返回 ;有键闭合,则延时12ms

LCALL
LCALL JNZ LJMP LK2: MOV

DIR
KS1 LK2 LK8 R3,#00H

;消抖
;再次检查有键闭合否? ;有键闭合则转 ;无键闭合转返回 ;行号初值送R3

第6章 接口芯片与接口技术

MOV
LK3: MOV MOV

R2,#FEH
DPTR,#0101H A,R2

;行扫描初值送R2
;指向8155口A ;行扫描值送A

MOV
INC INC MOV ANL

X @DPTR,A
DPTR DPTR X A,@DPTR A,#0FH

;扫描1行
;指向8155口C ;读入列值 ;保留低4位

MOV
CJNE MOV

R4,A
A,#0FH,LK4 A,R2

;暂存列值
;列值非全“1”则转 ;行扫描值送A

第6章 接口芯片与接口技术

JNB
RL MOV

A.7,LK8
A R2,A

;已扫到最后1行则转
;未扫完,则移至下1行 ;行值存入R2中

INC
SJMP LK4: MOV ADD MOV

R3
LK3 A,R3 A,R3 R5,A

;行号加1
;转至扫描下1行 ;行号送入A ;行号×2 ;暂存

ADD
MOV MOV

A,R5
R5,A A,R4

;行号×4
;存入R5中 ;列值送入A

第6章 接口芯片与接口技术

LK5:

RRC
JNC INC

A
LK6 R5

;右移1位
;该位为0则转 ;列号加1

SJMP
LK6: PUSH LK7: LCALL LCALL JNZ

LK5
R5 DIR KS1 LK7

;列号未判完继续
;保护键值 ;扫描1遍显示器 ;发全扫描信号 ;键未释放则等待

LCALL
LCALL POP

DIR
DIR A

;键已释放
;延时12ms,消抖 ;键值存入A中

第6章 接口芯片与接口技术

KND: RET
LK8: MOV RET KS1: MOV MOV A,#FFH

;返主
;无闭合键标志FFH存入A中 ;返主 DPTR,#0101H A,#00H ;有无闭合键判断子程序 ;取全扫描信号

MOV
INC INC MOV ANL

X @DPTR,A
DPTR DPTR X A,@DPTR A,#0FH

;发全扫描信号

;指向8155口C ;读入列值 ;保留低4位

第6章 接口芯片与接口技术

ORL
CPL RET

A,#F0H
A ;返主

;高4位取“1”
;取反,无键按下则全0

DIR数码显示器扫描显示子程序可参阅LED数码 显示器接口一节。

2.采用线反转法
本例程序采用线反转法来识别闭合键。为简单起见, 采用4×4的键盘,其接口电路如图6―28所示。

第6章 接口芯片与接口技术

图6―28 8031与4×4键盘接口电路(线反转法)

第6章 接口芯片与接口技术

与上例不同的是,本例先求出闭合键的特征值,然后
采用查表的方法求出键值,因此预先要建立1个键值表。 如果采用一般的查表方法,由于键的特征值不是依次排 列的数值,因此键值表的长度将会很长。例如对于4×4 的键盘来说,有效键值只有16个,键的特征值也是16个。 但这16个特征值却不是依次排列的,而是从77H到EEH 共占用了半页左右的范围(即占用了100多个地址单元)。 如果键的数目增加的话,那么占用的范围还要增加。实 际上这是对有效地址单元的一种浪费。

第6章 接口芯片与接口技术

程序中有一点需要说明的是,8031的P1口是准双向
口,在输入之前先要输出高电平。由于本例采用4×4的 键盘,P1口的低4位作为输出,高4位作为输入。在先输出 低4位全扫描信号的同时,将高4位输出全“1”信号,所 以就不需要再专门输出高4位的全“1”信号了。 与上例程序一样,本例程序也应作为子程序,执行一 遍后,若(A)=FFH,则无闭合键;若(A)≠FFH,则有闭合键,A 中存放的即为该闭合键的键值。

第6章 接口芯片与接口技术

线反转法程序如下:
KEYZ: LCALL JNZ LJMP MK1: LCALL KS2 MK1 MK7 DIR ;检查有闭合键否? ;A非0,有键闭合则转 ;无键闭合转返回 ;有键闭合,则延时12ms

LCALL
LCALL JNZ LJMP MK2:MOV

DIR
KS2 MK2 MK7 P1,#F0H

;消抖
;再次检查有键闭合吗? ;若有键闭合则转 ;若无键闭合则转返回 ;发行线全扫描信号,列线全

“1”

第6章 接口芯片与接口技术

MOV
ANL CJNE LJMP

A,P1
A,#F0H A,#F0H,MK3 MK7

;读入列状态
;保留高4位 ;有键按下则转 ;无闭合键转返回

MK3:MOV R2,A ;保存列值

ORL
MOV MOV ANL

A,#0FH
P1,A A,P1 A,#0FH

;列线信号保留,行线全“1”
;从列线输出 ;读入P1口状态 ;保留行线值

ADD A,R2 ;将行线值和列线值合并得到键特征值

第6章 接口芯片与接口技术

MOV
MOV MOV MOV MK4:CLR A MOV MOV MOV

R2,A
R3,#00H DPTR,#TRBE R4,#10H C A,@A+DPTR 70H,A A,R2

;暂存于R2中
;R3存键值(先送初始值0) ;指向键值表首址 ;查找次数送R4 ;表中值送入A ;暂存于70H单元中 ;键特征值送入A

CJNE
MK5:LCALL LCALL

A,70H,MK6
DIR KS2

;未查到则转
;扫描1遍显示器 ;还有键闭合否?

第6章 接口芯片与接口技术

JNZ
LCALL LCALL MOV RET

MK5
DIR DIR A,R3

;若键未释放,则等待
;若键已释放,则延时12ms ;消抖 ;将键值存入A中 ;返主

MK6: INC
INC DJNE MK7: MOV RET

R3
DPTR R4,MK4 A,#FFH

;键值加1
;表地址加1 ;未查到,反复查找 ;无闭合键标志存入A中 ;返主

第6章 接口芯片与接口技术

KS2: MOV
MOV ANL CPL RET

P1,#F0H
A,P1 A,#F0H A

;闭合键判断子程序
;发全扫描信号,读入列线值 ;保留列线值 ;取反,无键按下为全0 ;返主

TRBE: DB 7EH,BEH,DEH,EEH,7DH,BDH,DDH,EDH
DB 7BH,BBH,DBH,EBH,77H,B7H,D7H,E7H

第6章 接口芯片与接口技术

6.6 A/D转换器接口
6.6.1 A/D转换器概述 A/D转换器用以实现模拟量向数字量的转换。按转换原 理可分为4种:计数式、双积分式、逐次逼近式及并行式

A/D转换器。
目前最常用的是双积分式和逐次逼近式。双积分式 A/D转换器的主要优点为转换精度高、抗干扰性能好、价

格便宜;缺点为转换速度较慢。因此这种转换器主要用于速
度要求不高的场合。常用的产品有 ICL7106/ICL7107/ICL7126系列、MC1443以及ICL7135等。

第6章 接口芯片与接口技术

另一种常用的A/D转换器是逐次逼近式。逐次逼近式
A/D转换器是一种速度较快、精度较高的转换器,其转换时 间大约在几微秒到几百微秒之间。常用的这类芯片有:

(1)ADC0801~ADC0805型8位MOS型A/D转换器;
(2)ADC0808/0809型8位MOS型A/D转换器; (3)ADC0816/0817型8位MOS型A/D转换器。 量化间隔和量化误差是A/D转换器的主要技术指标之 一。量化间隔可由下式求得:
? ?
满量程输入电压

2 ?1
n

?

满量程电压

2

n

(6―2)

第6章 接口芯片与接口技术

其中n为A/D转换器的位数。
量化误差有两种表示方法:一种是绝对量化误差; 另一种是相对量化误差。可分别由下式求得: 绝对量化误差

? ?
相对量化误差

量化间隔

?

? 2

(6―3)

2

? ?
2

1
n ?1

(6―4)

第6章 接口芯片与接口技术

例如,当满量程电压为5V,采用10位A/D转换器
的量化间隔、绝对量化误差、相对量化误差分别为: 量化间隔:
? ? 1 2 ? 2
10

? 4 .8 8 m V

绝对量化误差:
? ?
? 4 .8 8 m V 2 ? 2044m V

相对量化误差:
? ? 1 2
11

? 0 .0 0 0 4 9 ? 0 .0 4 9 %

第6章 接口芯片与接口技术

6.6.2 典型A/D转换器芯片ADC0809简介
ADC0809是典型的8位8通道逐次逼近式A/D转换器, 采用CMOS工艺制造。 1.ADC0809的内部逻辑结构 ADC0809的内部逻辑结构如图6―29所示。

第6章 接口芯片与接口技术

图6―29 ADC0809的内部逻辑结构图

第6章 接口芯片与接口技术 表6―8 ADC0809通道选择表?

第6章 接口芯片与接口技术

图6―30 ADC0809的引脚图

第6章 接口芯片与接口技术

2.ADC0809的引脚
ADC0809芯片为28引脚双列直插式封装,其引脚排 列见图6―30。 (1)IN7~IN0:模拟量输入通道。 (2)ADDA、ADDB、ADDC:模拟通道地址线。

(3)ALE:地址锁存信号。
(4)START:转换启动信号。 (5)D7~D0:数据输出线。 (6)OE:输出允许信号。 (7)CLK:时钟信号。

第6章 接口芯片与接口技术

(8) EOC:转换结束状态信号。
(9)VCC:+5V电源。 (10)Vref:参考电压。

第6章 接口芯片与接口技术

6.6.3 MCS-51单片机与ADC0809的接口
ADC0809与MCS-51单片机的一种常用连接方法如 图6―31所示。 电路连接主要涉及两个问题,一个是8路模拟信号的 通道选择,另一个是A/D转换完成后转换数据的传送。 1. 8路模拟通道选择 ADDA、ADDB、ADDC分别接系统地址锁存器提 供的末3位地址,只要把3位地址写入0809中的地址锁存

器,就实现了模拟通道选择。

第6章 接口芯片与接口技术

图6―31 ADC0809与8031的连接图

第6章 接口芯片与接口技术

启动A/D转换只需使用1条MOVX指令。在此之前,
要将P2.0清0并将末3位与所选择的通道号相对应的口 地址送入数据指针DPTR中。例如要选择IN0通道时,可 采用如下两条指令,即可启动A/D转换: MOV MOV DPTR,#FE00H X @DPTR,A ;送入0809的口地址 ;启动A/D转换(IN0)

注意:此处的A与A/D转换无关,可为任意值。

第6章 接口芯片与接口技术

图6―32 ADC0809信号的时间配合

第6章 接口芯片与接口技术

2.转换数据的传送
A/D转换后得到的数据为数字量,这些数据应传送给 单片机进行处理。数据传送的关键问题是如何确认A/D 转换的完成,因为只有确认数据转换完成后,才能进行 传送。通常可采用下述3种方式。 1)定时传送方式 对于一种A/D转换器来说,转换时间作为一项技术 指标是已知的和固定的。 2)查询方式 A/D转换芯片有表示转换结束的状态信号,例如 ADC0809的EOC端。

第6章 接口芯片与接口技术

3)中断方式
如果把表示转换结束的状态信号(EOC)作为中断请 求信号,那么,便可以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确认转换结束,便 可通过指令进行数据传送。所用的指令为MOVX读指 令,仍以图6―31所示为例,则有 MOV MOVX DPTR,#FE00H A,@DPTR

第6章 接口芯片与接口技术

例如与D0~D2相连。这时启动A/D转换的指令与上
述类似,只不过A的内容不能为任意数,而必须和所选输 入通道号IN0~IN7相一致。例如当ADDA、ADDB、 ADDC分别与D0、D1、D2相连时,启动IN7的A/D转换 指令如下: MOV MOV MOV DPTR,#FE00H A,#07H ;送入0809的口地址

;D2D1D0=111,选择IN7通道

X @DPRT,A ;启动A/D转换

第6章 接口芯片与接口技术

6.6.4 A/D转换应用举例
设有一个8路模拟量输入的巡迥检测系统,使用中断 方式采样数据,并依次存放在外部RAM的A0H~A7H单 元中。采集完一遍以后即停止采集。其数据采样的初 始化程序和中断服务程序如下: 初始化程序:http://www.lccdgg.cn MOV MOV R0,#A0H R2,#08H ;设立数据存储区指针 ;8路计数值

SETB
SETB

IT1
EA

;边沿触发方式
;CPU开中断

第6章 接口芯片与接口技术

SETB
MOV LOOP:MOV HERE:SJMP 中断服务程序:

EX1

;允许外部中断1中断

DPTR,#FEF0H ;送入口地址并指向IN0 X @DPTR,A HERE ;启动A/D转换 ;等待中断

MOV
MOV INC

X A,@DPTR
X @R0,A DPTR

;采样数据
;存数 ;指向下一个模拟通道

第6章 接口芯片与接口技术

INC
DJNZ CLR CLR RE

R0
R2,INT1 EA EX1 TI

;指向数据存储区下一个单元
;8路未转换完,则继续 ;已转换完,则关中断 ;禁止外部中断1中断 ;从中断返回

INT1:MOV
RE

X @DPTR,A
TI

;再次启动A/D转换
;从中断返回

第6章 接口芯片与接口技术

6.7 D/A转换器接口
6.7.1 D/A转换器接口的技术性能指标 D/A转换器的输入为数字量,经转换后输出为模拟量。 有关D/A转换器的技术性能指标很多,例如绝对精度、 相对精度、线性度、输出电压范围、温度系数、输入 数字代码种类(二进制或BCD码)等等。对这些技术性能

指标,这里不作全面详细说明,仅对几个与接口有关的
技术性能指标作一介绍。

第6章 接口芯片与接口技术

(1)分辨率。
分辨率是D/A转换器对输入量变化敏感程度的描述, 与输入数字量的位数有关。如果数字量的位数为n,则 D/A转换器的分辨率为2-n。这就意味着D/A转换器能对 满刻度的2-n输入量作出反应。 (2)建立时间。 建立时间是描述D/A转换速度快慢的一个参数,指 从输入数字量变化到输出达到终值误差±1/2LSB(最低

有效位)时所需的时间,通常以建立时间来表明转换速度。

第6章 接口芯片与接口技术

(3)接口形式。
D/A转换器与单片机的接口方便与否,主要决定于 转换器本身是否带数据锁存器。 6.7.2 典型D/A转换器芯片DAC0832简介 DAC0832为一个8位D/A转换器,单电源供电,在

+5~+15V范围内均可正常工作。基准电压的范围为
±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。 DAC0832的内部结构框图如图6―33所示。

第6章 接口芯片与接口技术

图6―33 DAC0832内部结构框图

第6章 接口芯片与接口技术

图6―34 0832运算放大器接法

第6章 接口芯片与接口技术

图6―35 DAC0832引脚图

第6章 接口芯片与接口技术

各引脚的功能如下:
(1)D7~D0:转换数据输入端。 (2) C S :片选信号,输入,低电平有效。 (3)ILE:数据锁存允许信号,输入,高电平有效。 (4) W R 1 :写信号1,输入,低电平有效。

(5) W R 2 :写信号2,输入,低电平有效。
(6) X F E R :数据传送控制信号,输入,低电平有效。 (7)IOUT1:电流输出1,当DAC寄存器中各位为全“1”时,电 流最大;为全“0”时,电流为0。

第6章 接口芯片与接口技术

(8)IOUT2:电流输出2,电路中保证IOUT1+IOUT2=常数。 (9)Rfb:反馈电阻端,片内集成的电阻为15kΩ。 (10)Vref:参考电压,可正可负,范围为-10~+10V。 (11)DGND:数字量地。 (12)AGND:模拟量地。

第6章 接口芯片与接口技术

6.7.3 MCS-51单片机与DAC0832的接口
MCS-51单片机与DAC0832的接口有3种连接方式, 即直通方式、单缓冲方式及双缓冲方式。直通方式不 能直接与系统的数据总线相连,需另加锁存器,故较少应 用。下面介绍单缓冲与双缓冲两种连接方式。 1.单缓冲方式 所谓单缓冲方式就是使DAC0832的两个输入寄存器 中有一个处于直通方式,而另一个处于受控的锁存方式,

当然也可使两个寄存器同时选通及锁存。

第6章 接口芯片与接口技术

2.双缓冲方式
所谓双缓冲方式,就是把DAC0832的两个锁存器都 接成受控锁存方式。 由于两个锁存器分别占据两个地址,因此在程序中 需要使用两条传送指令,才能完成一个数字量的模拟转

换。假设输入寄存器地址为FEFFH,DAC寄存器地址为
FDFFH,则完成一次D/A转换的程序段应为:

第6章 接口芯片与接口技术

MOV
MOV MOV MOV MOV

A,#DATA
DPTR,#FEFFH X @DPTR,A DPTR,#FDFFH X @DPTR,A

;转换数据送入A
;指向输入寄存器 ;转换数据送输入寄存器 ;指向DAC寄存器 ;数据进入DAC寄存器并进行

D/A转换

第6章 接口芯片与接口技术

图6―36 DAC0832的3种单缓冲连接方式? (a)DAC寄存器直通方式;(b)输入寄存器直通方式;

(c)两个寄存器同时选通及锁存方式

第6章 接口芯片与接口技术

图6―36 DAC0832的3种单缓冲连接方式? (a)DAC寄存器直通方式;(b)输入寄存器直通方式;

(c)两个寄存器同时选通及锁存方式

第6章 接口芯片与接口技术

图6―36 DAC0832的3种单缓冲连接方式? (a)DAC寄存器直通方式;(b)输入寄存器直通方式;

(c)两个寄存器同时选通及锁存方式

第6章 接口芯片与接口技术

图6―37 DAC0832的双缓冲连接方式图

第6章 接口芯片与接口技术

6.7.4 D/A转换应用举例
D/A转换器是计算机控制系统中常用的接口器件, 它可以直接控制被控对象,例如控制伺服电动机或其它 执行机构。它也可以很方便地产生各种输出波形,如矩 形波、三角波、阶梯波、锯齿波、梯形波、正弦波及 余弦波等。

第6章 接口芯片与接口技术

图6―38 DAC0832的双极性输出接口

第6章 接口芯片与接口技术

在图6―38中,运算放大器A2的作用是把运算放大
器A1的单极性输出变为双极性输出。例如,当Vref=+5V 时,A1的电压输出范围为0~-5V。当VOUT1=0V 时,VOUT2=-5V;当VOUT1=-2.5V时,VOUT2=0V;当VOUT1=-5V 时,VOUT2=+5V。VOUT2的输出范围为-5V~+5V。VOUT2与 参考电压Vref的关系为:
VOUT 2 ?
数字码 ? 1 2 8

128

? V ref

(6―2)

第6章 接口芯片与接口技术

几点说明:
(1)以上程序产生的是矩形波,其低电平的宽度由延 时子程序DMS1所延时的时间来决定,高电平的宽度则 由子程序DMS2所延时的时间来决定。 (2)改变延时子程序DMS1和DMS2的延时时间,就 可改变矩形波上下沿的宽度。若DMS1=DMS2(两者延 时一样),则输出的是方波。 (3)改变上限值或下限值便可改变矩形波的幅值:

单 极 性 输 出 时 为0 ~ - 5 V 或 0 ~ + 5 V ; 双 极 性 输 出 时 为5~+5V。

第6章 接口芯片与接口技术

2.产生锯齿波
利用DAC0832产生锯齿波的参考程序如下: MOV MOV MM:MOV A,#00H ;取下限值

DPTR,#FEFFH ;指向0832口地址 X @DPTR,A ;输出

INC
NOP NOP NOP SJMP

A

;转换值增量
;延时

MM

;反复

第6章 接口芯片与接口技术

几点说明:
(1)程序每循环1次,A加1,可见锯齿波的上升沿是由 256个小阶梯构成的。 (2)可通过循环程序段的机器周期数,计算出锯齿波 的周期,并可根据需要通过延时的办法来改变波形周期。

(3)通过A加1,可得到正向的锯齿波;如要得到负向
的锯齿波,只要将A加1改为A减1指令即可实现。 (4)程序中A的变化范围为0~255,所得到的锯齿波为 满幅度。

第6章 接口芯片与接口技术

3.产生三角波
利用DAC0832产生三角波的参考程序如下: MOV MOV SS1:MOV A,#00H DPTR,#FEFFH X @DPTR,A ;取下限值 ;指向0832口地址 ;输出

NOP
NOP NOP

;延时

第6章 接口芯片与接口技术

SS2: INC
JNZ SS3: DEC MOV NOP

A
SS1 A

;转换值增量
;未到峰值,则继续 ;已到峰值,则取后沿

X @DPTR,A ;输出 ;延时

NOP
NOP JNZ SJMP SS3 SS2 ;未到谷值,则继续 ;已到谷值,则反复

第6章 接口芯片与接口技术

几点说明:
(1)本程序所产生的三角波谷值为0,峰值为+5V(或5V)。若改变下限值和上限值,那么三角波的谷值和峰 值也随之改变。 (2)改变延时时间可改变三角波的斜率。

(3)若在谷值和峰值处延时较长时间的话,则输出梯
形波,延时时间的长短取决于梯形波上下边的宽度。


相关文章:
8255A的工作方式概述
8255A 的工作方式概述 8255A 有三种工作方式:方式 0、方式 1 和方式 2。 1. 方式 0 方式 0 为基本的输入/输出方式, 传送数据时不需要联络信号。 口、 口...
8255传输方式与工作方式
8255A 传输方式与工作方式一、8255A 芯片介绍 8255A 是 Intel 公司生产的可编程并行 I/O 接口芯片,它具 有 3 个八位的并行 I/O 口,三种工作方式,可通过...
8255A的工作方式及其初始化编程
8255A的工作方式及其初始化编程_IT/计算机_专业资料。专升本 微机原理 8255A 的工作方式及其初始化编程 8255A 有三种工作方式:基本输入/输出方式、单向选通输入/...
8255工作方式
而灯的亮与灭以及闪烁是用 8255 的 A 口和 B 口控制的,工作方式 0,A 口和 B 口均为输出。 1、 芯片初始化,写 8255 的方式字 MOV DX,MY8255_MODE...
8255练习题及答案
答案:D3、D2 和 D1 2、8255A 端口 C 按位置位复位控制字中的___位决定对端口 C 的某一位置位或复位。 答案:D0 3、8255A 端口 A 工作方式 2 时,使...
8255芯片工作方式2用途
6.5 8255A 方式2的特点 8255 方式 2 也叫双向传输方式。该方式只适用于端口...当 A 端口作于方式 2 时,端口 C 中有固定的 5 根线配合 A 口工作, ...
可编程并行接口芯片8255A有哪几种工作方式
可编程并行接口芯片8255A有哪几种工作方式_计算机硬件及网络_IT/计算机_专业资料。可编程并行接口芯片 8255A 有哪几种工作方式?每种工作方式有何特点? 【解答】 ...
8255A工作方式2时序图分析
输入数据有效 tPH 输出数据有效 9 8255A 工作方式 2 时序图 时序分析过程简图 输入过程: 外设 A 端口送来数据 通选信号将数据 锁存入 8255AA 端口输入锁存 ...
8255A的工作方式及其初始化编程
8255A的工作方式及其初始化编程_计算机硬件及网络_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档8255A的工作方式及其初始化编程_计算机硬件及网络_IT/...
8255A方式0-例子
8255A 作为一个 3×4 矩阵键盘与 CPU 的接口电路 二、程序查询方式 打印机 《发光二极管与按键》如图,设 PA 端口工作方式 0,输入;PB 端口工作方式 0, ...
更多相关标签:
8255a | 8253的工作方式 | 8255a的工作方式控制 | 8255a的作用 | 8255a工作方式 | 8255a工作方式控制字 | 8255工作方式 | 8255工作方式0 |