MCS51 单片机的系统扩展技术四.docx

上传人:b****7 文档编号:9192816 上传时间:2023-02-03 格式:DOCX 页数:9 大小:120.38KB
下载 相关 举报
MCS51 单片机的系统扩展技术四.docx_第1页
第1页 / 共9页
MCS51 单片机的系统扩展技术四.docx_第2页
第2页 / 共9页
MCS51 单片机的系统扩展技术四.docx_第3页
第3页 / 共9页
MCS51 单片机的系统扩展技术四.docx_第4页
第4页 / 共9页
MCS51 单片机的系统扩展技术四.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

MCS51 单片机的系统扩展技术四.docx

《MCS51 单片机的系统扩展技术四.docx》由会员分享,可在线阅读,更多相关《MCS51 单片机的系统扩展技术四.docx(9页珍藏版)》请在冰豆网上搜索。

MCS51 单片机的系统扩展技术四.docx

MCS51单片机的系统扩展技术四

MCS-51单片机的系统扩展技术(四)

4.2利用8255A可编程并行接口芯片扩展I/O口

8255A是INTEL公司生产的一种通用可编程并行I/O接口芯片。

它有3个并行端口,分别称为PA、PB、PC口,其中PC口又分为高4位口和低4位口两部份。

它们都可以通过软件编程来设置各I/O口的工作方式。

一、8255A的内部结构和引脚功能

图17是8255A的内部结构框图,图18是8255A的引脚排图,该芯片主要由以下几部份组成:

图178255的内部结构框图

(1)并行端口PA、PB、PC这三个端口都为8位,都可被编程为输入或输出两种方式,但它们在结构和功能上有差异。

PA口有一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器,可编程为输入/输出或双向寄存器;PB口有一个8位输入/输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存),可编程为输入或输出,但不能双向输入/输出;PC口有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器,可分为两个4位口使用。

它除了作为输入输出口外,还可作为PA、PB口工作于选通方式时的状态控制信号。

(2)总线接口电路该电路主要用于实现8255A与单片机芯片的信号连接。

它由两部份组成:

①数据总线缓冲器数据总线缓冲器为8位双向三态缓冲器,可以直接与MCS-51系统总线相连。

MCS-51进行I/O操作的有关数据、控制字和状态信息都是过该缓冲器进行传送。

②读/写控制逻辑这部份主要是与读写有关的控制信号,主要包括:

CS:

片选输入信号,低电平有效(8255A被选中)

RD:

读信号,输入,低电平有效(允许CPU从8255A读取数据或状态信息)

WR:

写信号,输入,低电平有效(允许CPU将控制字或数据写入8255A)

RESET:

复位信号,输入,高电平有效(8255A被复位,所有控制寄存器被清0,所有端口被置输入方式);

A1、A0:

端口选择信号,输入。

8255A的PA、PB、PC和一个控制寄存器,共有四个端口,根所A1A0输入的地址信号来进行寻址。

在利用8255A进行MCS-51的I/O扩展时,应

图188255引脚图

将A1A0和MCS-51的P0.1和P0.0相连。

读/写控制逻辑主要用于实现对8255A的硬件管理,其主要功能包括芯片选择、端口寻址及规定各端口和单片机之间的数据传送方向等,具体见表3。

表38255各端口组合功能表

(3)A、B组控制电路A、B组控制电路包括A组控制和B组控制,合在一起构成8位控制寄存器,用于存放各端口的工作方式控制字。

8255A的40个引脚中,除上述已提及的引脚外,还包括以下一些引脚:

GND:

接地;VCC:

+5V电源;

D0-D7:

双向8三态8位数据线;PA0-PA7:

A口8位双向数据线;PB0-PB7:

B口8位双向数据线;

PC0-PC7:

C口8位双向数据线。

当8255A工作于方式0时,PC0-PC7分为两组(每组

4位)并行I/O数据线。

当8255A工作于方式1或2时,PC0-PC7为PA、PB口提供联络和中断信号,这时PC口每根口线的的功能定义见表4。

表4工作方式1和工作方式2时PC口每根线的功能

二、8255A的工作方式及数据I/O操作

(1)8255A的工作方式8255A共有三种工作方式,即方式0、方式1和方式2。

①方式0(基本输入/输出方式)在这种工作方式下,PA、PB口及PC口的两个4位口中的任何一个端口都可以被编程设定为输入或输出方式,但不能既作输入又作输出。

在作为输入时,输入数据不被锁存,而作为输出时,数据被锁存。

在方式0时,不需要任何选通信号或联络信号。

方式0适用于数据的无条件传送,也可以人为指定某些位作为状态信息线,进行查询式传送。

②方式1(选通输入/输出)工作于方式1时,PA和PB口分别用于数据的输入/输出,PC口可以确定附加某些位作为PA和PB口的联络信号,以便8255A和外设之间,或者8255A与CPU之间传送状态信息以及中断请求信号。

在方式1中,PA、PB口的数据输入输出都具有锁存功能。

若PA口和PB口都工作于方式1,则PC口中有6位固定作为PA口和PB口的状态和控制信号,PC口剩下的2位可以编程为输入或输出。

若PA口、PB口中有1个工作于方式1,另一个工作于方式0,则PC口中有3位固定作为PA口或PB口的状态和控制信号,PC口剩下的5位可以编程为输入或输出。

方式1适用于查询中断方式的数据输入/输出。

方式2(双向数据传送方式)只有PA口才能选择这种方式。

此时,PA口既能输入数据又能输出数据,PC口的PC3-PC7用作PA口的输入/输出同步控控制信号。

在方式2下,PC口剩下的3位可编程为I/O线,而PB口可编程为方式0或方式1工作。

方式2适用于查询或中断方式的双向数据数据传送。

(2)数据的输入操作①用于数据输入操作的联络信号从表中可能看出PC口中用于数据输入操作的联络信号有:

STB:

选通脉冲输入、低电平有效。

外设送来的STB下降沿将端口数据线上的输入数据状态入端口锁存器;

IBF:

输出缓冲器满信号输出,高电平有效。

在此信号有效时,表示外设已将数据装入端口锁存器,但CPU尚未读取。

在CPU读取端口数据后,IBF将变为低电平,表示端口锁存器空。

INTR:

中断请求信号,高电平有效。

在IBF为高电平,STB信号由低变高时,中断请求信号有效,向MCS-51发出中断请求。

INTE:

8255A端口内部的中断允许触发器。

只有在INTE为高电平时才允许端口中断请求。

INTEA和INTEB分别由PC4、PC2的置位/复位控制。

②数据输入操作过程当外设准备好输入数据后,发出STB=0信号,输入的数据进入8255A的端口缓冲器,并使IBF=1。

如MCS-51采用查询的方式,此时CPU可以查询IBF这一状态,以决定是否可以输入数据。

如采用中断方式,当STB信号由低变高并且INTE为高时,INTR有效,向CPU发出中断请求信号(必须加反相将此信号变为低有效),MCS-51响应中断后,在执行中断服务程序时读入数据,并使INTR信号变为低电平(无效),同时也使IBF信号变低,用以通知外设再次输入数据。

(3)数据的输出操作

①用于数据输出操作的联络信号从表中可以看出8255A的PC口中用于数据输出操作的联络信号有:

ACK:

外设响应输入信号,低电平有效。

它是外设取走并且处理完8255A的数据后,向单片机发出的响应信号。

OBF:

输出,低电平有效,输出缓冲器满信号。

当CPU把输出数据写入8255A锁存器后,该信号有效,用来启动外设开始接收数据。

外设从端口取走数据后发回来的回答信号使OBF变为高电平。

INTR:

输出,高电平有效,中断请求信号。

INTE:

端口内部的中断允许触发器。

INTE为高电平时才允许端口提出中断请求。

INTEA和INTEB分别由PC6和PC2的置位/复位进行控制。

②数据输出操作过程当外设接收并处理完一组数据(如打印完毕)后,发出ACK信号使OBF变高,表示输出缓冲器已空(实际上表示缓冲器中的数据不必再保留)。

如采用查询方式,则OBF可作为状态信号供CPU查询使用;如使用中断方式,则在ACK信号变高且INTE信号有效时,使INTR有效,向单片机发出中断请求信号。

在中断服务过程中,CPU将下一下数据写到8255A的输出缓冲器,并使OBF有效,表示数据已送到。

利用这一信号启动外设开始工作,取走并处理8255A中的输入数据,再给出ACK信号。

三、8255A的控制字

8255A有两种控制字,即控制PA、PB和PC口工作方式的方式式控制字;专门用于控制PC口各位置位/复位的控制字。

这两种控制字都是写到控制寄存器中去,利用控制字的最高位来进行区别。

(1)方式控制字图5-19是8255A的工作方式控制字的格式,方式控制字用于确定各口的工作方式及数据传的方向,其特征为最高位为1。

在确定方式控制字时,应注意以下两点:

①A口有三种工作方式(方式0、方式1、方式2),而B口只有两种工作方式(方式0和方式1)。

②在方式1和方式2下,对PC口的定义(输入或输出)不影响作为联络线使用的PC口各位的功能。

例如,将PA口设置为方式0输入,PB口设置为方式1输出,PC4-PC7为输出,PC0-PC3为输入。

根据此工作要求,对照方式控制字的格式及各位的功能,可写出方式控制字为10010101B,即95H,然后,将95H写入控制寄存器即可。

(2)PC口位控制字在某些实际应用情况下,PC口被用来定义控制信号和状态信号(如对PC口内的中断允许触发器的开中断或关中断的设置)。

因此,可利用PC口所具有的位操作功能和PC口位置位/复位控制字,对PC口的每一位进行置位或复位(即将某一位置1或清0)。

图20给出了PC口位控制字的格式及其功能,PC口位控制字的特征位为0。

四、8255A与MCS-51单片机的连接

图21是8255A与MCS-51单片机连接的电路图。

从图中可以看出,8255A的总线与单片机的总线直接相连,WR和RD分别与单片机的和RD相连。

(1)8255A各端口地址的确定8255A的PA、PB、PC口和控制字寄存器的地址不仅和A1、A0有关,而且和8255A的片选有关。

只有在MCS-51选通8255A时,才能对寄存器和端口进行操作。

根据上述原则,可以确定出如图21所示8255A各端口的地址如表5所示

(2)8255A的初始化编程在利用8255A对MCS-51进行I/O扩展时,要先对8255A进行初始化。

所谓初始化,就是根据需要,将相应的控制字写入8255A的寄

图198255A工作方式控制字

图208255A复位控制字

存器中。

例如,若对8255A各口作如下设置:

PA口方式0输入,PB口方式1输出,PC口高4位输出,低4位输入,设控制寄存器地址为DFFFH。

按各口的工作要求,工作方式控制字为10010101B即95H,则初始化编程为:

MOVDPTR,#0DFFFHMOVA,#95HMOVX@DPTR,A

表5图21中端口地址的确定端口PAPBPC控制字寄存器P2××0×××××××0×××××××0×××××××0×××××P0××××××00××××××01××××××10××××××11端口地址DFFCHDFFDHDFFEHDFFFH注:

按一般习惯将所有的×取1即得到了端口地址五、8255A的简单应用对于图21的电路,将PA口设置为输出,PB口设置为输入,均工作于方式0,由此可以写出控制字为:

1000×01×,如果将×全取1,则控制字就是10001011即8BH。

VCCP2.5CSA1A0G74LS373MCS-51P0RDWRD0-D7LED7PALED0ALERDWRPBK0I/OPCGNDK7图218255A应用例如果要实现流水灯,可以这样来做:

ORG0000HJMPSTARTSTART:

MOVSP,#5FH;堆栈初始化MOVA,#8BH;方式控制字MOVDPTR,#0DFFFH;控制字端口的地址MOVX@DPTR,A;设置工作方式MOVA,#80HMOVDPTR,#0DFFCH;端口A的地址LOOP:

MOVX@DPTR,ACALLDELAY;调用延时子程序RLA;左移JMPLOOP;循环DELAY:

……;与第二章程序同,不再重复

其中CALL不是MCS-51的指令,最终会由汇编程序根据实际情况决定使用ACALL或LCALL指令。

如果上面的程序要实现按某键而灯亮,可以这样做:

ORG0000HJMPSTARTSTART:

MOVSP,#5FHMOVA,#8BHMOVDPTR,#0DFFFHMOVX@DPTR,ALOOP:

MOVDPTR,#0DFFDH;端口B的地址MOVXA,@DPTR;读B口的数据MOVDPTR,#0DFFCH;端口A的地址MOVX@DPTR,AJMPLOOP

 

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1