首页 百科知识 一并得控制字的基本原理与连接方式

一并得控制字的基本原理与连接方式

时间:2022-10-27 百科知识 版权反馈
【摘要】:【例3-1】采用TTL电路扩展I/O口.电路图设计如图3-1所示,采用74LS244作为扩展输入、74LS273作为扩展输出.其中,74LS244为8位的缓冲驱动器(三态输出),其使能端为低电平有效.当G1和G2二者之一为高电平时,输出为三态.74LS273为8D触发器,清除端为低电平有效.当=0时,输出全为0且与其它输入端无关;CP端是时钟信号,当CP由低电平向高电平跳变时,D端输入数据将传送至

一、并行I/O口扩展

(一)采用TTL电路扩展

TTL电路扩展I/O口是一种简单的I/O口扩展方法,其具有电路简单、成本低、配置灵活的特点.

【例3-1】采用TTL电路扩展I/O口.电路图设计如图3-1所示,采用74LS244作为扩展输入、74LS273作为扩展输出.

img46

图3-1 简单I/O口扩展电路

其中,74LS244为8位的缓冲驱动器(三态输出),其使能端为低电平有效.当G1和G2二者之一为高电平时,输出为三态.74LS273为8D触发器,清除端为低电平有效.当img47=0时,输出全为0且与其它输入端无关;CP端是时钟信号,当CP由低电平向高电平跳变时,D端输入数据将传送至Q输出端.

P0口作为双向8位数据线,既能够从74LS244读入数据,又能够向74LS273输出数据.输入控制信号由P2.0和img48相“或”后形成.当二者都为0时,74LS244的控制端有效,此时将选通74LS244,外部的信息输入到P0数据总线上.当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0.

输出控制信号由P2.0和img49相“或”后形成.当二者都为0时,74LS273由于控制端有效而被选通,P0上的数据锁存到74LS273的输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光.

(二)采用8255芯片扩展I/O接口

1.基本原理.

8255与单片机有多种连接方式,下面以8255与AT89S51的连接为例来说明如何使用8255来扩展单片机的I/O口.

img50

图3-2 8255与AT89S51的连接图

图3-2为8255与AT89S51的连接图,由图中我们可以看出它们是以三总线方式连接的,下面根据三总线结构对扩展原理图进行逐一介绍.

(1)数据总线DB引脚.8255的数据总线DB有8根:D0~D7.AT89S51使用P0口作为数据总线,所以其与8255数据线连接为:AT89S51的P0.0~P0.7与8255的D0~D7相连接.

(2)地址总线AB引脚.8255的地址线AB有两根:A0~A1.A0、A1通过74HC373锁存器与AT89S51的P0.0、P0.1连接.A1A0可取00~11四种情况,分别对A、B、C口与控制寄存器进行选择,选择方法如下:

①A1A0=00:选择A口.

②A1A0=01:选择B口.

③A1A0=l0:选择C口.

④A1A0=11:选择控制寄存器.

(3)控制总线CB.片选信号:将P2.5~P2.7送入138译码器,由译码端Y7产生片选信号.若Y7有效此时将选中8255,即P2.7P2.6P2.5=111,并可推知各口地址如下:

A口:111x~x00=E000H(当x~x=0~0时).

B口:111x~x01=E001H(当x~x=0~0时).

C口:111x~x10=E002H(当x~x=0~0时).

控制口:111x~x11=E003H(当x~x=0~0时).

其中,x~x表示取值可任意,所以各口地址并不唯一.

注意:此处要说明的是单片机与8255的连接方法是多种多样的,8255各口地址也随连接方式的变化而改变.读者在使用其他单片机系统的时候,只需将8255各I/O口做相应替换即可.

(4)3个通道引脚.

①A口的8个引脚PA0~PA7与外设连接,用于8位数据的输入与输出.

②B口的8个引脚PB0~PB7与外设连接,用于8位数据的输入与输出.

③C口的8个引脚PC0~PC7与外设连接,用于8位数据的输入与输出或作为通信线.

2.8255的工作方式.

8255有三种工作方式,这些工作方式可由工作方式控制字来确定.如表3-1所示.

表3-1 8255工作方式

img51

3.初始化.

8255A有两个控制字,即方式控制字和C口置位/清零控制字,这两个控制字共用一个地址,通过最高位来选择使用哪个控制字.

(1)工作方式选择字.8255工作方式选择字共8位,如图3-3所示,最高位为D7标志位,D7=1时表示控制寄存器中存放的是工作方式选择字,D7=0时表示控制寄存器中存放的是C口置位/清零控制字.D3~D6用于A组的控制,D0~D2用于B组的控制,因此8255初始化即根据工作要求确定工作方式选择字,并将其写入8255控制寄存器.

img52

图3-3 8255工作方式控制字

【例3-2】设8255的口地址为80H~83H,将A口设定为方式0输入,B口为方式0输出,C口为方式0输出,写出控制字.

分析:根据上面控制字格式,对应位填写1或0可得控制字为10010000,即90H,且控制字只能写入控制口,按口地址的规定A1A0为11时选择控制口,可得控制口的地址为80~83H中的83H.

C语言程序如下:

img53

(2)C口置位/清零控制字.8255的C口可进行位操作,即可对8255的C口的每一位进行清零,该操作通过设置C口置位/清零控制字实现的,各位含义如图3-4所示.由于8255的工作方式选择字与C口置位/清零共用一个控制寄存器,使用D7作为标志位,D7=0时表示为C口置位/清零控制字.各位含义如图3-4所示.

img54

图3-4 C口置位/清零控制字

【例3-3】图3-5是一个用AT89S51扩展8255的电路图,8255的PA口接输出设备(八个发光二极管)、PB口接输入设备(八个开关)PC口不用,均采用方式0,将8255B口读入的开关数据送至A口输出,要求开关闭合时对应的LED指示灯亮,编写程序段.

分析:由图可知,P2.7=0时选中该8255,A1A0(P2.1P2.0)为00、01时分别对应PA口和PB口、为11时对应控制口.其余地址写1,A口、B口、控制口地址分别为7CFFH、7DFFH、7FFFH.设定PA口方式0输出,B口方式0输入,控制字10000010B=82H,使用C语言编程如下:

img55

图3-5 8255和单片机的连接电路

img56

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈