IO接口扩展电路设计_第1页
IO接口扩展电路设计_第2页
IO接口扩展电路设计_第3页
IO接口扩展电路设计_第4页
IO接口扩展电路设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.I/O接口扩展电路设计

8051系列单片机如果系统不做任何扩展,P0~P3接口可做I/O接口使用。只要稍微扩展系统,P0、P2接口则被用为地址线。P0接口还兼做数据线,P3接口常被专用线占用,只有Pl接口可做I/O接口。一个实际系统,只有8位I/O接口往往是不够用的,所以I/O接口也需要扩展。本节重点介绍I/O接口扩展方法及应用实例。

I/O接口扩展方式主要有两种:总线扩展法和串行口扩展法。总线扩展又可分为简单I/O接口扩展和可编程I/O接口扩展。

扩展I/O接口常用芯片有TTL、CMOS锁存器、三态门芯片,如74系列的373、244、

273、367等,这些常用来扩展简单I/O接口。可编程芯片常用8255、8155等,利用程序对芯片进展设置,软硬件结合实现对I/O接口的扩展。简单I/O接口扩展

在单片机应用系统中,利用TTL芯片、S锁存器、三态门等接口芯片把P0接口

扩展,常选用74LS273、74LS373、74LS244等芯片。这些芯片价格低,构造简单,使扩展灵活方便。

如图6-7所示是一个利用74LS273和74LS244,将8位P0接口扩展成简单的输入、输出口的电路。74LS273是8D锁存器扩展输出口,输出端接8个LED发光二极管,以显示开关状态,*位低电平时二极管发光。74LS244是缓冲驱动器,扩展输入口,它的8个输入端分别接8个按钮开关。74LS273与74LS244的工作受P2.0、RD、WR三条控制线控制。

其工作原理如下。

当P2.0=0,WR=0(RD=1)选中74LS273芯片,CPU通过P0接口输出数据锁存到74LS273,74LS273的输出端低电平位对应的LED发光二极管点亮;当P2.0=0,RD=0(WR=1)时选中74LS244,此时假设无键按下,输入全为高电平,当*键按下时则对应位输入为"0〞,74LS244的输入端不全为"1〞,其输入状态通过P0接口数据线被CPU读入机内。

总之,在图6-7中只要保证P2.0端低电平就有可能使扩展输入口或输出口工作。至于哪一个口工作受WR和RD控制线控制,二者不会同时为"0〞,故在图6-7中,两个扩展芯片可共用一个地址。

扩展口地址确定原则,只要保证P2.0为"0〞。其他地址位或"0〞或"1〞即可。如地址用FEFFH(无效位全为"1〞),用0000H(无效位全为"0〞)。输出程序段:

MOV

A,

#data

;数据→A

MOV

DPTR,#0FEFFH

;I/O地址→DPTR

MOV*

DPTR,A

;WR为低电平,数据74LS273口输出

输入程序段:

MOV

DPTR,#OFEFFH

;I/O地址→DPTR

MOV*

A,DPTR

;RD为低电平,74LS244接口数据读入内部RAM

例要求编程把按键状态通过图6-7中的发光二极管显示出来。

程序

LP:

MOV

DPTR,#0FEFFH

;输入口地址→DPTR

MOV

A,DPTR

;键状态送A

MOV*

DPTR,A

;A数据送显示输出口

SJMP

LP

;〔输入、输出公用一个地址〕反复连续执行8255可编程并行I/O接口扩展与电路设计8255是一个单片机系统常用的可编程芯片,利用指令设置各口的工作方式。为了对8255合理设置,灵活应用,有必要了解他的内部构造及工作原理。

1.8255内部构造及引脚功能

8255是一个有40引脚双列支插型可编程芯片,内部及引脚如图6-8所示。

由图6-8可见,8255内部有3个并行的8位I/O接口,分别称为A口、B口、C口。扩展一片8255则可扩展24位并行端口。引脚功能介绍如下:

(1)接口线

A、B、C3个I/O接口的引线端分别为:

PA0~PA7、PB0~PB7、PC0~PC7共24条端线。3个口皆为锁存/缓冲存放器,A口、B口有锁存功能,C口无锁存功能。A、B、C3口的工作方式由程序设置。

A口可设置为输入或输出或双向方式工作。

B口只能设置为输入或输出,不能双向方式工作。

C口可设置为输入或输出口。它的特点是可分成高、低两个4位使用。上半部PC4~PC7与A口组成一组叫A组;下半部PC0~PC3与B口组成一组为B组,便于控制。

(2)数据线

8255是8位芯片,有8位数据线D0~D7。数据线接于8051的P0接口,用以实现8255与CPU之间的数据传送。

(3)控制线

控制线控制8255的读、写、复位及片选等。

RD:读入控制线,低电平有效,当其为低电平时CPU对8255进展读操作,此时8255相应口为输入口。

WR:输出控制线,低电平有效,当WR为低电平时,CPU输出数据或命令到8255端口,此时8255相应口为输出口。

RESET:复位端,高电平有效,8255内部存放器全清0,24条I/O口线为高阻状态。

CS:片选线,当CS为低电平时,CPU选中此8255芯片。

(4)地址线

8255共占用4个口地址,为A、B、C口及控制口地址。这4个地址之间的选择由A0、A1两端口线控制。A0、A1通常接于单片机的地址线最低两位P0.O、P0.1,二者组合决定了4个端口地址,口地址选择方式如下:

A1A0=00,选择A口;

A1A0=01,选择B口;

A1A0=10,选择C口;

A1A0=11,选择控制口。

除这两位外,其他位状态还与硬件接线有关,各口具体地址,结合实际电路才能确定。

2.方式选择及方式控制字

(1)8255工作方式

8255有3种工作方式:方式0、方式1,方式2。方式0时,A、B、C三口都可作根本的输入或输出口;方式1时,A、B口可作选通输入或输出,C口局部作专用联络线;方式2时,A口为双向口,C口局部为专用联络线,B口无此方式。8255的C口专用功能如表6-3所列。

(2)方式选择

8255的方式选择由方式控制字决定。方式控制字是8255内部方式控制存放器的状态字,它由指令写入

控制存放器中A、B、C口控制位为"1〞,对应口为输入方式,假设为"0〞则为输出方式。例如,控制字状态为10010101B,表示A组为方式0(D6D5=00),A口为输入方式(D4=1),C口上半部为输出方式(D3=0);B组方式1(D2=1)中,B口为输出(D1=0),C口下半部为输入方式(D0=1)。D7=0只能对C口位操作,位操作内容由控制存放器相应位状态决定。

例如,假设控制字为01H,即控制存放器格式为00000001B,表示C口位操作(D7=0),将PC0位置"1〞(D3D2D1=000,DO=l置"1〞),同理假设控制字为0EH则把C口最高位PC7

置"0〞即复位。8255扩展电路及地址设置

如图6-9所示是8051单片机扩展一片8255的电路图。图中,74LS373是地址锁存器。8255的地址线AI、A0经74LS373接于P0.1、P0.0;片选端CS经74LS373与P0.7接通,其他地址线悬空;8255的控制线RD、WR直接接于8051的RD和WR端;数据线DB接于P0口。

1.8255地址口确定

图6-9中8255只有3根线接于地址线。片选CS、地址选择端A1、A0。分别接于P0.7,P0.1、P0.0其他地址线全悬空。显然只要保证P0.7为低电平时,选中该8255,假设P0.1、P0.0再为"00〞选中8255的A口,同理P0.1、P0.0为"01〞、"10〞、"11〞分别选中B口、C口及控制口。假设地址口用16位表示,其他无用端全设为"1〞,则8255的A、B、C及控制口地址分别可为FF7CH、FF7DH、FF7EH、FF7FH,无用位为"0〞则4个地址为0000H、0001H、0002H、0003H,只要保证CS、A1、A0的状态,无用位设为"0〞或"1〞无关。掌握了确定地址的方法,使用者可灵活选择地址。

2.8255初始化

使用8255芯片时,首先要对它初始化。所谓初始化,也就是对8255的3个端口的工作方式预先设置。设置控制字经控制口写入。

例如图6-9电路,欲设置8255的A、B、C口全为输出状态,控制字为80H。程序:

MOV

DPTR,#0003H

;8255控制口地址→DPTR

MOV

A,#80H

;控制字送A

MOV*

DPTR,A

;控制字写入控制存放器

利用这几条指令对8255初始化后,A、B、C3个口才能作为输出口使用。当然改变控制字,则可改变3个端口的工作方式。8155可编程I/O接口扩展设计8155可编程接口芯片与8255的使用方法类似,只是二者在构造与功能上有所不同。

1.8155构造及引脚

8155内部也有3个I/O接口A、B、C口,与8255的主要区别是C口只有6位,I/O接口共22位,比8255多一个14位可编程定时/计数器,还多256B的静态RAM。8155共40引脚,双列直插式封装,如图6-10所示。

(1)I/O接口线

PA0~PA7,PB0~PB7,PC0~PC5分别为A、B、C3个I/O接口引线端。

A、B、C口多用于与外设之间的数据传送;C口还可以作为A、B口的控制线。

(2)地址数据线

8155的低8位地址线和数据线共用AD0~AD7,故称为地址数据线。当ALE=1时,输入的是地址信息,否则是数据信息。当与8051单片机连接时,ALE下降沿到,将P0接口输出的低8位地址信息及CE、IO/M状态都锁存到8155内部存放器。因此8155的AD0~AD7直接与P0接口相联,低8位地址不需要外接锁存器,这点与8255不同。

(3)控制线

ALE:地址锁存线。ALE=1表示给8155输入的是地址信息,当ALE下降沿时,把地址锁存到8155中。

IO/M:RAM与I/O接口的选择线。IO/M=0选中8155内部RAM区,IO/M=1选择3个I/O接口、定时/计数器和命令存放器。

CE:片选线,RD:读控制线,WR:写控制线。

TIMERIN:定时/计数器外部脉冲输入端。

TIMEROUT:定时/计数器输出端。

2.8155功能及操作

8155具有3种功能,下面介绍具体操作。

(1)作I/O接口使用

IO/M=1时8155作I/O接口使用。各口的工作方式通过内部控制存放器设置。

8155工作于I/O口时,各方式具体功能如表6-4所列。

表6-4

8155I/O接口工作方式及功能

PC2PC1

方式

0

0

方式1

A、B口定义为根本输入/输出口;C口为输入口

1

1

方式2

A、B口定义为根本输入/输出口;C口为输入口

0

1

方式3

A口为选通输出,B口根本输入/输出

PC3~PC5输出,PC0~PC2作A口选通控制

PC0;AINTR,PC1,ABF,PC2,ASTB

1

0

方式4

A口、B口都作为选通输入/输出方式

PC0~PC2控制A口,同方式3

PC3~PC5控制B口,PC3;BINTR,PC4:BBF

PC5:BSTB

2〕状态存放器格式

8155有一个状态存放器,它锁存I/O接口和定时器当前状态供单片机查询。

状态存放器和控制存放器共用一个地址,所不同的是状态存放器只能读出不能写入而控制存放器只能写入不能读出。

标志存放器皆为高电平有效。

(2)作扩展RAM

8155作为单片机扩展RAM256B,操作很简单,只要使IO/M控制端为低电平即可。通常IO/M端、CE端与P2接口两位相连,二者皆为低电平决定了RAM的高8位地址,P0接口与AD0~AD7相接决定RAM的低8位地址。注意与其他数据存储器统一编址。

(3)作定时器使用

当IO/M=1时,8155也可作定时器使用。8155内的可编程定时/计数器实际是一个14位的减法计数器。它共有两个8位存放器组成,低8位和高6位存放计数初值,最高2位控制定时器的工作方式。

M2M1决定的定时方式及波形,8155的定时计数器为计数方式时。由引脚TIMERIN(3)从外部输入计数脉冲;为定时方式时,则接单片机系统时钟。无论定时或计数方式都从TIMEROUT端输出脉冲或方波。

注意:如果写入定时器的计数初值为奇数,方波输出将不对称。例如计数初值为9,单方波方式输出方波在5个脉冲周期为高电平,4个脉冲周期内为低电平。

8155任何时候都可以置定时初值和工作方式,只要重新启动即可。计数初值为2~3FFFH之间,终值为2。

8155计数方式一般作信号发生器使用,输入连续脉冲后,由编程控制输出不同波形。

3.8155的I/O接口及RAM地址分配

8155和其他芯片一样统一按16位地址。它的地址范围分两种情况。

当RAM方式,IO/M=0、CE=0(二者接P2口),其RAM中数据地址范围可为0000H-00FFH(无关位取为0)。RAM应与系统中其他数据存储器统一编址。

表6-5I/O接口及定时器地址编码

AD2AD1AD0

选中I/O接口或定时存放器

低8位地址编码

0

0

0

控制〔命令〕/状态存放器

00H

0

0

1

PA口

01H

0

1

0

PB口

02H

0

1

1

PC口

03H

1

0

0

定时器低8位

04H

1

0

1

定时器高8位

05H

当IO/M=1、CE=0时工作在I/O接口或定时器方式,这种情况8155共需要占6个地址,6个地址由地址低8位中最低3位AD2、ADl、ADO编码决定,编码格式如表6-5所列。

4.8051单片机与8155接口电路举例

如图6-11所示是8051单片机与8155芯片接口电路之一。结合硬件电路着重说明8155地址口确实定及初始化程序。

(1)8051与8155连接特点及地址分配

MCS-51系列单片机可以直接和8155连接,低8位地址可不加锁存器。ADO~AD7直接接于P0口,8155的ALE直接与8051ALE相接,这点优于8255。

图中8155的IO/M接8051的P2.0端,CE接P2.1端。

IO/M=0,CE=0工作在RAM方式,其地址范围为0000H~00FFH(无用位设为0)。

IO/M=1,CE=08155工作在I/O接口或定时方式,其地址确定方法:高位保证P2.1=0,P2.0=1其他无用位设为0,这样高位地址为01H,再考虑低位AD2、AD1、AD0三位编码可确定8155的以下6个地址:

控制/状态字地址

0100H

A口地址

0101H

B口地址

0102H

C口地址

0103H

定时器低8位地址

0104H

定时器高8位地址

0105H

(2)8155初始化

用指令把8155设置成各种工作方式:

1〕设置I/O口工作方式

例1

设A口为根本输出,B口为根本输入,C口输出。

分析:根据题目要求,控制存放器状态为00001101B〔0DH〕,编程把控制字送入即可。程序为:

MOV

DPTR,#0100H

;控制存放器→DPTR

MOV

A,#0DH

;控制字A

MOV*

DPTR,A

;控制字送控制存放器

无论控制字为何值,都必须通过上述方式,把控制字送入控制存放器,才能正确设置8155中I/O口工作方式。

2〕设置RAM方式。

例2

编程使CPU往8155RAM30H单元送立即数88H。

程序为:

MOV

DPTR,#0030H

;RAM数据单元地址→DPTR

MOV

A,#88H

;立即数送入A

MOV*

DPTR,A

;立即数送入0030H中

使用RAM时必在IO/M=0条件下。

3〕设置为定时方式。

例3设8155的定时/计数器为方波发生器,输出方波频率为输入时钟频率的24分频。初始化程序如下:

MOV

DPTR,#0104H

;定时器低8位地址→DFTR

MOV

A,#18H

;18H-24D分频系数→A

MOV*

DPTR,A

;定时初值送入定时器低8位

INC

DPTR

;0105H是定时高8位地址

MOV

A,#40H

;定时器方式1

MOV*

DPTR,A

;A→定时器高位地址

MOV

DPTR,#0100H

;控制口地址→DPTR

MOV

A,#0C2H

;启动计数器,B口输出,A、C口输入

MOV*

DPTR,A

与8155芯片类似芯片如8156,除选片端CE高电平有效外,其他功能及引脚与8155完全一样。8755内部有2KBEPROM和两个I/O接口,详细参数可查阅有关资料。串行口扩展I/O接口

单片机控制系统中,串行口常用来扩展I/O接口,使用移位存放器作为锁存或输入信号的接口,可以方便地扩展并行输入、输出口。这种方法不占用片外RAM地址,简单易行,便于操作,适用于速度较慢、实时性要求不高的场合。

1.串行口扩展并行输入口

74LS165芯片是8位并行输入和串行移位输出存放器。原则上利用n片74LS165与8051的3根端口线相连,可扩展8n根并行输入口线。

图6-12所示利用2片74LSl65与串行口配合,扩展16根并行输入线的电路。由图可见,8051仅用了3根线,分别为串行口输入线R*D(P3.0)、串行口输出线T*D(P3.1)和1根控制线P1.0引出。

74LSl65是一个8位存放器,其S/L端是串行移位控制端接于P1.0端;CK是移位时钟输入端,接于P3.1(T*D)端;QH是串行移位输出端接于P3.0(R*D)端。串行口置为方式0。两个165芯片是串联方式,首尾相接,低位QH接于高位SER端,高位QH端接8051的R*D端。假设16位并行输入数据已送到两个74LSl65的输入端,当Pl.0=0时。16位数据被同时接收,置入对应的74LSl65的存放器中。当P1.0=1时,移位存放器开场串

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论