MCS-51 I/O口扩展原理及应用详解

I/O口扩展的概述

I/O(输入/输出)接口是MCS-51与外设交换数字信息的桥梁。

I/O扩展也属于系统扩展的一部分。

真正用作I/O口线的只有P1口的8位I/O线和P3口的某些位线。

I/O接口电路具有以下功能:

  1. 实现和不同外设的速度匹配

大多数的外设的速度很慢,无法和us量级的单片机速度相比。

单片机只有在确认外设已为数据传送做好准备的前提下才能进行I/O操作。

想知道外设是否准备好,需I/O接口电路与外设之间传送状态信息。

  1. 输出数据锁存

由于单片机工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速外设的数据接收。I/O电路应具有数据锁存器,以保证接收设备接收。

  1. 输入数据三态缓冲

单片机具有多个输入设备时,使得数据总线上面可能挂有多个数据源,为不发生冲突,只允许当前正在进行数据传送的数据源使用数据总线,其余的应处于隔离状态。

I/O端口的编址

首先清楚I/O接口(interface)和I/O端口(port)的概念。

I/O端口:简称I/O口,指具有端口地址的寄存器或缓冲器。

I/O接口:是指单片机与外设间的I/O接口芯片。一个I/O接口芯片可以有多个I/O端口,

(1)数据口(2)命令口(3)状态口

I/O端口编址是给所有I/O接口中的寄存器编址。

I/O端口编址两种方式:独立编址与统一编址

  1. 独立编址方式

I/O寄存器地址空间和存储器地址空间分开编址,但需专门读写I/O的指令和控制信号。

  1. 统一编址方式(MCS51采用这种方式)

I/O寄存器与数据存储器单元同等对待,统一编址。不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强。

每一接口芯片中的一个功能寄存器(端口)的地址就相当于一个RAM单元。

I/O数据的几种传送方式

为实现和不同的外设的速度匹配,I/O接口必须根据不同的外设选择恰当的I/O数据传送方式。

I/O数据传送的几种传送方式是:

(1)同步传送(2)异步传送(3)中断传送

(1)同步传送(无条件传送)

当外设速度和单片机的速度相比拟时,常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。

(2)查询传送方式(条件传送,异步式传送)

查询外设“准备好”后,再进行数据传送。

优点:通用性号,硬件连续和查询程序十分简单

缺点:效率不高

(3)中断传送

外设准备好后,发中断请求,单片机进入与外设数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。工作效率高

I/O口概述小结

原因:MCS51单片机本身提供的口线不多(P1、P3)

方法:MCS51单片机将外扩I/O和外部数据存储器统一编址,用户可以把一部分外部数据存储器的空间(64k)作为I/O地址,通过MOVX指令完成对外扩口的输入输出。

实现:采用专门的外围接口芯片8155、8255等,采用一般的TTL芯片74LS377,74LS373等。

可编程I/O芯片8255A的扩展

引脚及结构介绍

-3个8位并行口PA、PB、PC,PC可分为高4位与低4位

-D0~D7数据端口

-A, B两组控制电路

-双向三态数据接口

-控制总线接口

-复位控制RESET,高电平有效

8255A的端口

A1和A0控制PA端口,结合RD端口表示读端口A的信息,用于读取PA0~PA7的信息到D0~D7.此时写端口WR为1.

表示读状态时,A1和A0是00时表示PA端口,A1和A0是01时表示PB端口,A1和A0是10时表示PC端口。

当A1和A0是11时,表示的是写控制寄存器。

825A的三种工作方式

-方式0——–基本输入输出

-方式1——–选通输入输出

-方式2——–双向传送(仅PA口)

8255A的工作方式由控制字选择

工作方式选择控制字(D7=1)

C口按位置位/复位控制字(D7=0)

8255A的工作方式0(基本I/O方式)

-两个8位端口(PA口和PB口)和两个4位端口(PC 的高4位和低4位)

-任一个端口都可以输入输出

-输出锁存而输入不锁存

-数据无条件传送,不需要状态端口

8255A的工作方式1(选通I/O方式)

-可用作1或2个选通的输入或输出口

-每个端口包括8位数据口和3条固定的控制线

-可选择1个端口工作于方式1,余下的工作在方式0

-可选择2个端口都工作于方式1

1.工作于方式1下的端口

选通输入/输出工作方式。A口和B口通常用于I/O数据传送,C口用作A口和B口的联络线,以中断或查询的方式传送数据。

(1)方式1输入

STB*与IBF构成了一对应答联络信号,联络信号的功能如下图:

STB*:选通输入,是由输入外设送来的输入信号。

IBF:输入缓冲器满,高电平有效。表示数据已送入8255A的输入锁存器,它由STB*信号的下降沿置位,由信号的上升沿使其复位。

INTR:中断请求信号,高电平有效。由8255A输出,向单片机发中断请求。

INTE A:A口中断允许,由PC4的置位/复位控制,

INTE B:B口中断允许,由PC2的置位/复位控制。

(2)方式1输出

OBF*与ACK*构成了一对应答联络信号,各信号的功能如下:

OBF*:输出缓冲器满信号,8255A给外设的联络信号,外设可以将数据取走。

ACK*:外设的响应信号,外设已将数据取走。

INTR*:中断请求信号。表示该数据已被外设取走,请求单片机继续输出下一个数据。

INTE A:中断允许,由PC6的置位/复位控制,

INTE B:中断允许,由PC2的置位/复位控制。

2.B口的方式1输出

  1. 方式2

只有A口才能设定为方式2.

在方式2下,PA7~PA0位双向I/O总线。

当输入时,PA7~PA0受STBA*和IBFA控制,其工作过程和方式1输入时相同;

当输出时,PA7~PA0受OBFA*、ACKA*控制,其工作过程和方式1输出时相同。

方式2工作示意图

8255A接口应用举例1

8255A与8031接口电路

  1. 硬件接口电路

8031扩展1片8255A的电路图。74LS373是地址锁存器,P0.1、P0.0经74L373与8255A的地址线A1、A0连接;P0.7经74LS373与片选端相连,其他地址线悬空。

  1. 端口地址确定

8255A各端口寄存器的地址为:

A口: FF7CH

B口: FF7DH

C口: FF7EH

控制寄存器: FF7FH

可编程I/O芯片8155H的扩展

8155H芯片结构

-256字节RAM

-可编程8位并口PA、PB,6位并口PC

-一个14位减法定时器/计数器

-地址/数据总线(复用)

AD0~AD7

-控制总线

CE:片选信号线

IO/M:RAM存储器和I/O口选择线

RD:读选通信号线

WR:写选通信号

ALE:地址锁存允许端

RESET:芯片复位信号

-I/O线

PA0~PA7; PB0~PB7; PC0~PC5

TIMER IN : 定时器/计数器脉冲输入端

TIMER OUT:定时器/计数器输出,信号形式取决于工作方式

-电源

Vcc:+5V;Vss:地

IO/M=0时,对8155H的256个RAM寻址,RAM地址的低8位为00H~FFH

IO/M=1时,对8155H的I/O寻址。注意命令口、状态口使用同一地址,写入的是命令口,读出的是状态口。

可编程RAM/IO芯片8155H命令字

命令字功能:设置A, B, C口工作方式 设置是否允许中断 控制定时器/计数器的运行

反映芯片运行状态

-I/O口工作状态

-定时器/计数器计数是否结束

815中14位减法定时器/计数器格式

定时器/计数器的4种工作方式

8155的使用

8155作为输入输出口的使用,同8255;

对于8155内的RAM操作,等同于片外RAM,要明确地址,使用MOVX指令存取。

8155定时器的使用(最常用的是作为连续方波发生器)

-作为连续方波发生器使用时,在计数初值N为偶数时,N/2时间为高电平,N/2时间为低电平;当计数初值N为奇数时,(N+1)/2时间为高电平,(N-1)/2时间为低电平。

-最高计数脉冲的频率4MHZ。

采用74系列芯片进行简单的并口扩展电路

74LS377

功能说明:74LS377是8D锁存器。20个管脚,8个输入(D0~D7)、8个输出(Q0~Q7)、一个片选E、一个锁存端(CLK)上升沿有效,另外,还有电源、地。

74LS273作为输出口

功能说明:74LS273是8D锁存器,20个管脚,8个输入(D0~D7)、8个输出(Q0~Q7),一个清零端(CLR),一个锁存端(CLK),上升沿有效,另外还有电源、地。

74LS244作为输入口

功能说明:74LS244是8个三态线驱动器,20个管脚,2个4输入端(1A1~1A4)、(2A1~2A4);2个4输出端(1Y1~1Y4)(2Y1~2Y4),两个控制端1G,2G(低电平有效,否则三态输出),另外,还有电源、地。

74LS165芯片引脚

P0~P7:并行数据输入口

SER:串行数据输入口,可进行多片165的级联

Q7:串行数据输出口

CLK1,CLK2:串行数据移位脉冲,只使用一个端口CLK1即可,令CLK2接0.

PL:并行数据输入有效信号,低电平时并行数据输入口的数据进入内部寄存器,变为高电平后才允许移位输出。

计数器芯片8253的扩展及应用

8253芯片介绍

芯片结构:三个16位减计数器,最高外频2.6MHz

芯片引脚功能介绍:

–D0~D7:8位数据线

–A0, A1:地址线

–CS:片选线

–WR:写信号线

–RD:读信号线

–OUT:计数器输出

–CLK:计数器输入

–GATE:门控位,控制计数器计数

计数器8253

物联沃分享整理
物联沃-IOTWORD物联网 » MCS-51 I/O口扩展原理及应用详解

发表评论