8255部分3.
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//定义绝对地址访问
要求:按下列电路的连接确定8255A的控制字,并编写初始化 及要求数码管显示数字“7”的程序。8255A的PA口地址为 3B00H,控制字地址为3B03H。
7.4 MCS-51单片机与键盘接口
7.4.1 键盘的工作原理
VCC
P1.1
GN D
P1.1
断开
闭合
断开
(a)
(b)
键盘的处理主要涉及三个方面:
第7章 单片机常用接口
7.3 输入输出口扩展 7.4 单片机与键盘接口、LED显示器接口 7.5 8155芯片介绍
什么是输入输出?
—— 单片机系统通过外部设备与外界 交换信息的过程。
输入/输出设备、 即I/O设备
单片机I/O扩展基础知识
一. I/O接口电路的功能
单片机与I/O设备的关系:
单片机
I/O接口
8051
+ WR P2.0 RD +
K0 K1 KK7 8个开关,扩展的输出口接了 L0~L7 8个发光二极管,如果要实现K0~K7开关的状态通过 L0~L7发光二极管显示,则相应的汇编程序为: LOOP:MOV DPTR,#0FEFFH MOVX A,@DPTR MOVX @DPTR,A SJMP LOOP 如果用C语言编程,相应程序段为: #include <absacc.h> //定义绝对地址访问 #define uchar unsigned char …… uchar i; i=XBYTE[0xfeff]; XBYTE[0xfeff]= i; ……
部设备能正常、平稳地工作。
二 关于接口电路的更多说明
1. 接口与接口电路
通过接口能使两个被连接的器件协同工作。单片机接
口,则是研究单片机与外部设备之间的连接问题。单 片机与外部设备之间接口界面的硬件电路称为接口电 路,或称为I/O接口电路。 单片机
I/O接口
CPU
I/O 设备
2. 口或端口
为了实现I/O接口电路的界面功能,在接口电路中应包 含一些寄存器,通常把接口电路中这些已编址并能进
其中包括: ① 数据总线缓冲器。 与I/O操作有关的数据、控制字和状态信息都是通过该缓 冲器进行传送的。 ② 读/写控制逻辑。相关的控制信号有: /CS: /RD: 片选信号(低电平有效)。 读信号(低电平有效)。
/WR:
写信号(低电平有效)。
A0、A1: 低位地址信号,用于端口选择。 RESET: 复位信号(高电平有效)。
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 88 48 28 18 84 44 24 14 82 42 22 12 81 41 21 11 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 F B 7 3 E D C A 9 8 6 5 4 2 1 0
8255A方式2
3 8255的控制字
8255是可编程接口芯片,主要编程内容是两条控制命令, 即工作方式命令和C口位置位/复位命令。
1.)工作方式命令
用于设定各数据口的工作方式及数据传送方向。 命令的最高位(D7)是标志位,其状态固定为1。
对工作方式命令有如下两点说明:
– A口有3种工作方式,而B口只有两种工作方式;
(a)
(b)
7.4.2 独立式键盘与单片机的接口
键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。 独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每 根I/O口线上的按键都不会影响其它的I/O口线。
VCC VCC
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 8051 INT 0 与 GN D
1. 口电路(8255共有3个8位口)
其中A口和B口是单纯的数据口, 而C口则既可以作数据口使用,又可以作控制口使用, 主要用于实现A口和B口的控制功能。在使用中常把C口 分为两部分,即C口高位部分和C口低位部分。
把A口和C口高位部分合在一起称为A组; 把B口和C口低位部分合在一起称为B组。
2. 总线接口电路(用于实现8255和单片机芯片的信号连接)
– 在方式1和方式2下,对C口的定义(输入或输出)不 影响作为联络信号使用的C口各位的功能。
8255工作方式命令格式
2.) C口位置位/复位命令 在方式1和方式2下,C口用于定义控制信号和状态信号,因 此,C口的每一位都可以进行置位或复位。
3. )初始化编程
8255初始化的内容就是向控制字寄存器写入命令。 例:若对8255各口作如下设置:
2. 输出数据锁存 由于CPU与外设速度的不一致,需要有接口电路把输出数据 先锁存起来,待输出设备为接收数据做好准备后,再传送数 据。这就是接口电路的数据锁存功能。
3. 数据总线隔离 线上可能连接着多个数据源(输入设备)和多个数据负载(输出 设备)。一对源和负载的数据传送正在进行时,所有其他不 参与的设备在电性能上必须与总线隔开。 为了实现总线隔离,需要有接口电路提供具有三态缓冲功能 的三态缓冲电路。
控制寄存器 写控制命令 --数据总线缓冲器 输出端呈高阻抗
3. 逻辑控制电路
2 8255工作方式
1. 方式0(无条件I/O方式) 2. 方式1(选通I/O方式) 3. 方式2(双向选通I/O方式)
1)方式0(无条件I/O方式) 特点:方式0适用于无条件数据传送。 数据传送可随时进行。 应用:两个8位口(A口和B口)和两个4位口(C口高位部 分和C口低位部分)都可以分别或同时设置为方
7.3.2 可编程并行接口芯片8255
1 8255结构与功能
8255的全称是“可编程并行输入/输出接口芯片”,具有 通 用性强且使用灵活等优点,可用于实现80C51系列单片机
的并行I/O口扩展。
8255是一个40引脚的双列直插式集成电路芯片
按功能可把8255的内部结构分为3个逻辑电路部分,分别 为: 口电路、总线接口电路和控制逻辑电路。如下图。
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 8051 GN D
(a)
(b)
下面是针对图7.4(b)图查询方式的汇编语言形式的键盘程序。总共 有8个键位,KEY0~KEY7为8个键的功能程序。 START:MOV A,#0FFH; MOV P1,A ;置P1口为输入状态 MOV A,P1 ;键状态输入 CPL A JZ START ;没有键按下,则转开始 JB ACC.0,K0 ;检测0号键是否按下,按下转 JB ACC.1,K1 ;检测1号键是否按下,按下转 JB ACC.2,K2 ;检测2号键是否按下,按下转 JB ACC.3,K3 ;检测3号键是否按下,按下转 JB ACC.4,K4 ;检测4号键是否按下,按下转 JB ACC.5,K5 ;检测5号键是否按下,按下转 JB ACC.6,K6 ;检测6号键是否按下,按下转 JB ACC.7,K7 ;检测7号键是否按下,按下转 JMP START ;无键按下返回,再顺次检测
/ACKA
IBFA /STBA INTRA INTRA /ACKB /OBFB INTRB
/ACKA
INTRA
8255A方式1(输入)
8255A方式1(输出)
3)方式2(双向数据传送方式) 特点:方式2是在方式1的基础上加上双向传送功 能,只有A口才能选择这种工作方式。
方式2适用于查询或中断方式的双向数据传送。在 这种方式下需使用C口的5位口线作控制线。
8255端口选择及读/写控制表
/CS 0 0 0 0 0 0 0 1 A1 0 0 1 0 0 1 1 × A0 0 1 0 0 1 0 1 × /RD 0 0 0 1 1 1 1 × /WR 1 1 1 0 0 0 0 × 选择端口 A口 B口 C口 A口 B口 C口 端口操作 读端口A 读端口B 读端口C 写端口A 写端口B 写端口C
CPU
I/O 设备
1. 速度协调
面对各种设备的速度差异,单片机无法按固定的时序以同 步方式进行I/O操作,只能以异步方式进行,也就是只有 在确认设备已为数据传送做好准备的前提下才能进行I/O 操作。为此需要接口电路产生状态信号或中断请求信号, 表明设备是否做好准备。即通过接口电路来进行单片机与 外部设备之间的速度协调。
MOV A, #07H
; 将PC3 置 1
MOVX @R0, A; 置PC3=1 MOV A, #0AH MOVX @R0, A ; 将PC5 置 0 ; 置PC5=0
4.8255A与MCS-51单片机的接口 1.硬件接口 8255A与MCS-51单片机的连接包含数据线、地址线、控制线的连接.
图中,8255A的数据线与8051单片机的数据总线相连, 读、写信号线对应相连, 地址线A0、A1与单片机的地址总线的A0和A1相连, 片选信号CS与8051的P2.0相连。 则8255A的A口、B口、C口和控制口的地址分别是:FEFCH,
FEFDH,FEFEH,FEFFH。
+5V Vcc WR RD P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 8051 WR RD CS Vcc
+5V
D7 D6 D5 D4 D3 D2 D1 DO G OE
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
PA7-PA0
A1 PB7-PB0 A0 D7 D6 D5 PC7-PC0 D4 D3 D2 D1 D0
ALE EA GND
GND
2.软件编程 如果设定8255A的A口为方式0输入,B口为方式0输出,则初始化 程序为: 汇编程序段: MOV A,#90H MOV DPTR,#0FEFFH MOVX @DPTR,A C语言程序段: #include <reg51.h> #include <absacc.h> …… XBYTE[0xfeff]=0x90; ……
用于以查询或中断方式进行控制。
应用:在方式1下,A口和B口是数据口,C口是控制口, 用于传送和保 存数据口所需要的联络信号都有具 体的定义。
C口联络信号定义
C口位线 PC7 PC6
PC5 PC4 PC3 PC2 PC1 PC0 IBFA /STBA INTRA /STBB IBFB INTRB 方式1 输入 输出 /OBFA 方式2 输入 输出 /OBFA
7.3 输入/输出口扩展
Q0 D0 D1 74LS Q1 D2 373 Q2 Q3 D3 Q4 D4 Q5 D5 Q6 D6 D7 Q7 G OE Q0 D0 Q1 74LS D1 Q2 244 D2 Q3 D3 Q4 D4 Q5 D5 Q6 D6 Q7 D7 1G 2G L0 L1 L2 L3 L4 L5 L6 L7 +5V
1.按键的识别 2.抖动的消除 消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。
+5V
闭合 断开 +5V 输出
软件消抖是利用延时来跳过抖动过程
3.键位的编码 通常有两种方法编码。 (1)用连接键盘的I/O线的二进制组合进行编码。如(a)图 (2)顺序排列编码。如(b)图,处理方法如下:编码值=行首编 码值X+列号Y。
A口方式0输入,B口方式1输出,
C口高位部分为输出低位部分为输入。 设控制寄存器地址为0003H。 按各口的设置要求,工作方式命令字为10010101,即95H 则初始化程序段应为:
MOV DPTR, #0003H
MOV A, #95H MOVX @DPTR, A
设 8255A 的 A 、 B 、 C 口和控制寄存器地址依次为 00H 、 01H、 02H 和 03H。 如果用户需要将C口的PC3 置 1, PC5置 0, 可编程如下: MOV R0, #03H ; 8255A
三态缓冲电路
4. 数据转换
外部设备种类繁多,不同设备之间的性能差异很大,信号 形式也多种多样。单片机只能使用数字信号,如果外部设 备所提供或需要的不是电压形式的数字信号,就需要有接 口电路进行转换,其中包括模/数转换和数/模转换等。 5. 增强驱动能力 通过接口电路为输出数据提供足够的驱动功率,以保证外
行读或写操作的寄存器称为端口或简称口(Port)。
P2 ALE P0 G D7 : : D0 OE Q7 : : Q0
I/O接口
状态信号 状态端口
74LS373
数据 数据端口
I/O设备
80C51
INTX RD,WR 2 2
控制信号 控制端口
7.3.1 简单I/O口扩展
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
式0。
+5V
K0 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 L0 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 L7 +5V
系统总线 8051 8255A
K7
2) 方式1(选通输入/输出方式)
特点:方式1是选通输入/输出方式。8255的“选通”是通过 信号的 “问” 与“答”,以联络方式(或称握手 方式) 实现的。所以这种数据传送方式是有条件的,适