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

下载本文档

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

文档简介

1、第第7章并行章并行IO接口电接口电路扩展设计路扩展设计n7.1 概述概述 n7.2 可编程并行可编程并行I/O接口芯片接口芯片8255An7.3 可编程可编程RAM/IO接口接口8155/8156n7.4 用用TTL芯片扩展简单的芯片扩展简单的I/O接口接口7.1 概述概述单片机本身集成了单片机本身集成了I/O口。口。89C51:P0P3口均可作口均可作I/O (若不若不扩展外部并行接口扩展外部并行接口)。8031:P1、P3口可作口可作I/O。若在应用中若在应用中I/O口线或片内资源不够,则需外接芯片进行扩口线或片内资源不够,则需外接芯片进行扩展。扩展。扩I/O接口的功能是:接口的功能是:1

2、.对单片机输出的数据锁存对单片机输出的数据锁存锁存数据线上瞬间出现的数据锁存数据线上瞬间出现的数据,以解决单片机与,以解决单片机与I/O设备的设备的速度协调问题。速度协调问题。2.对输入设备的三态缓冲对输入设备的三态缓冲外设传送数据时要占用总线,不传送数据时必须对总线呈高外设传送数据时要占用总线,不传送数据时必须对总线呈高阻状态。利用阻状态。利用I/O接口的三态缓冲功能,可以接口的三态缓冲功能,可以实现实现I/O设备与数设备与数据总线的隔离据总线的隔离,便于其它设备的总线挂接。,便于其它设备的总线挂接。3.时序协调时序协调不同的不同的I/O设备定时与控制逻辑是不同的,并与设备定时与控制逻辑是不

3、同的,并与CPU的时序的时序往往是不一致的,这就需要往往是不一致的,这就需要I/O接口进行接口进行时序的协调时序的协调。 可编程可编程I I0 0口可以通过程序设置引脚不同的工作方式,口可以通过程序设置引脚不同的工作方式,CPUCPU不需要其他的不需要其他的硬件,一片芯片可扩展较多的硬件,一片芯片可扩展较多的I I0 0接口,使用灵活方便,通用性强。接口,使用灵活方便,通用性强。IntelIntel公司的可编程公司的可编程I/OI/O接口芯片种类齐全,为接口芯片种类齐全,为MCS-51MCS-51单片机扩展单片机扩展I/OI/O接口提供了很接口提供了很大的方便。大的方便。 IntelIntel

4、公司提供了多种可编程的接口芯片,可直接与公司提供了多种可编程的接口芯片,可直接与MCS-51MCS-51单片单片机接口。机接口。 常用Intel 系列可编程接口芯片型号名称说明8155并行接口带256字节的RAM和14位定时/计数器8255通用并行接口 8251同步/异步通讯接口 8253定时/计数器 8279键盘/显示接口 本章介绍:并行本章介绍:并行I/O接口芯片接口芯片8255A,用,用74LS273作输出锁存,作输出锁存,用用74LS244作输入接口。作输入接口。74LS373OEGALE89C51:D0:Q0P2P0INTxINTxRDRD,WRWR22数据端口状态端口控制端口I/O

5、接口 外设外设( (对象对象) ) 控制信号状态信号数据D7Q77.27.2可编程并行可编程并行I/OI/O接口芯片接口芯片8255A8255A可编程是指可由用户编程定义接可编程是指可由用户编程定义接口的功能,如输入、输出、位控等。口的功能,如输入、输出、位控等。7.2.1 8255A的结构的结构1. 概述概述8255A是是Intel公司生产的标准外公司生产的标准外围接口电路。围接口电路。5V电源供电电源供电, 40Pin, DIP封装。它有封装。它有PA、PB、PC 3个端个端口共口共24条条I/O线,可以通过编程的方线,可以通过编程的方法来设定端口的各种法来设定端口的各种I/O功能。功能。

6、(1)与外设相连接的有:与外设相连接的有:PA7PA0:A口口I/O线线PB7PB0:B口口I/O线线PC7PC0:C口口I/O线线(2)与单片机相连接的有:与单片机相连接的有:D0D7 数据总线数据总线RESET:复位信号:复位信号,高有效。当高有效。当RESET有有效时效时, 3个端口被设为输入方式。个端口被设为输入方式。 :片选信号:片选信号,低有效。只有当低有效。只有当 有效时有效时, 才选中芯片才选中芯片,允许允许8255A与与CPU交换信息。交换信息。 :读信号:读信号,低有效。当低有效。当 有效时有效时,CPU可可以从以从8255A中读取输入数据。中读取输入数据。 :写信号:写信

7、号,低有效。当低有效。当 有效时有效时,CPU可以往可以往8255A中写入控制字或数据中写入控制字或数据CSCSRDRDWR WRA1、A0:端口选择信号。8255A内部有3个端口和1个控制寄存器,当A1A0=00时选中端口A; A1A0=01时选中端口B; A1A0=10时选中端口C; A1A0=11时选中控制寄存器。A1、A0和 、 及 组合所实现的各种功能如表7-1所示。 操作A1A0功能输入00001A口数据总线输入00101B口数据总线输入01001C口数据总线输入01101状态寄存器数据总线输出00010数据总线 A口输出00110数据总线 B口输出01010数据总线 C口输出01

8、110数据总线控制寄存器禁止1xxxx数据总线为高阻态RDWRCSCSRDWR2. 8255A的结构的结构(1) 端口A、B、C A、B、C口均可作输入或输出, 输出都是锁存的;A口输入可锁存, B、C口输入不可锁存。(2) A组和B组控制电路 A组控制电路控制端口A和端口C的上半部(PC7PC4)。 B组控制电路控制端口B和端口C的下半部(PC3PC0)。 这两组控制电路共有一个控制命令寄存器, 用来接收CPU发来的控制字,以决定两组的工作方式。(3) 总线数据缓冲器 是一个三态双向8位缓冲器, 作为 8255 与系统总线之间的接口, 用来传送数据和控制。(4)读/写控制逻辑电路其功能见前页

9、的表(P207 表7-1)7.2.2 8255A的操作说明的操作说明在使用前需进行初始化,即要编程定义各口的工作方式。1.工作方式选择 有3种工作方式: 方式0、方式1和方式2。这些工作方式可编程来指定。方式0:基本输入/输出方式,3个口都可以通过方式控制字设定为输入或输出。主要掌握此种工作方式。方式1:选通输入/输出方式方式2:带选通双向传送方式(仅A口有)(1)方式选择控制字向8255的控制寄存器写入代码(方式选择控制字)用于确定各口的工作方式及数据传送方向,其格式如图所示。如: char xdata *p p=0 x0003 ; *p=0 x91 ;则: PC3PC0为输入 B口为输出,

10、 PC7PC4为输出, A口为输入。B组组控制字的标控制字的标识位识位D0D1D2D3D4D5D611入入0出出B口:口:1入入0出出PC3PC0:B组方式组方式:0方式方式0, 1方式方式1PC7PC4: 1入入, 0出出A口口: 1入入, 0出出00方式方式001方式方式11x方式方式2A组方式组方式:A组组A1A089C515V(2) C口按位置位/复位控制字C口有位控功能,将位控制字写入控制寄存器可对口有位控功能,将位控制字写入控制寄存器可对C口的任意位进行清口的任意位进行清0、置、置1。D0D1D2D3xxx01置置10清清0000PC0001PC1 111PC7控制字的标识位控制字

11、的标识位2. 方式方式0的操作功能的操作功能方式方式0为基本输入、输出方式。为基本输入、输出方式。这种方式下:这种方式下:PA、PB口各口各8位均定义为输入或输出位均定义为输入或输出;PC口的低口的低4位及高位及高4位可独立定义为输入或输出。位可独立定义为输入或输出。定义为输出口均有锁存数据的能力定义为输出口均有锁存数据的能力;而定义为输入口无锁存能力。而定义为输入口无锁存能力。方式方式0适合于无条件传送方式,适合于无条件传送方式,CPU直接执行输入输出指令。直接执行输入输出指令。例7-1:#include main()char xA,xdata *px ; px=0 x0003; /px指向

12、8255的控制寄存器 *px=0 x91; /A口入,C口L入,B口出,C口H出 px=0 x0001; /指向8255的B口 *px=0 xaa; /B口的PB1,3,5,7为1,PB0,2,4,6为0 px=0 x0002; /指向8255的C口 *px=0; /C口的PC4,5,6,7为0 px+; /指向8255的控制寄存器 *px=0 x09; /PC4=1(对C口进行位控) px=0 x0000; /px指向8255的A口 xA=*px; /xA中为A口引脚的状态 while(1) ;使用头文件使用头文件absacc.habsacc.h 中定义的宏来访问绝对地址。用中定义的宏来访问

13、绝对地址。用 XBYTEXBYTE 宏宏来定义访问外部来定义访问外部RAMRAM的地址。的地址。 例7-2(功能同例7-1)#include #include #define PA XBYTE0 x0000 /定义PA为外部RAM地址为0 x0000的单元#define PB XBYTE0 x0001 /定义B口#define PC XBYTE0 x0002 /定义C口#define CON XBYTE0 x0003 /定义控制口Main() char xA; CON=0 x91; /A口入,C口L入,B口出,C口H出 PB=0 xaa; /B口的PB1,3,5,7为1,PB0,2,4,6为0

14、“ PC=0; /C口的PC4,5,6,7为0 CON=0 x09; /PC4=1(对C口进行位控 xA=PA; /xA中为A口引脚的状态 3. 方式方式1的操作功能的操作功能(选通的输入输出方式)(选通的输入输出方式)在这种方式下,在这种方式下,PA口、口、PB口作为数据的输入或输出口,口作为数据的输入或输出口,均带有锁存,均带有锁存,PC口自动作为口自动作为PA口与口与PB口的选通控制线。口的选通控制线。在方式在方式1下,下,A口和口和B口的输入输出口的输入输出数据要在选通信号控制下来完成,数据要在选通信号控制下来完成,PA口借用口借用PC口的一些信号线用作控制和状态线,形成口的一些信号线

15、用作控制和状态线,形成A组组;PB口也借用口也借用PC口的一些信号线用作控制和状态线,组成口的一些信号线用作控制和状态线,组成B组组。方式方式1输出的控输出的控制和状态信号:制和状态信号:方式方式1输入的控输入的控制和状态信号:制和状态信号:STB:选通输入信号线,输入:选通输入信号线,输入,外部设备提供外部设备提供IBF:输入缓冲器满信号线,输出;:输入缓冲器满信号线,输出;INTR:中断请求输出信号。:中断请求输出信号。ACK:外设收到数据后的响应信号:外设收到数据后的响应信号 ,输入输入OBF:输出缓冲器满信号,输出:输出缓冲器满信号,输出INTR:中断请求输出信号线:中断请求输出信号线

16、其中,其中,INTE为中断允许触发器。为中断允许触发器。方式方式1输入输入INTEA受受PC4位置位置1/置置0控制控制INTEB受受PC2位置位置1/置置0控制控制方式方式1输出输出INTEA受受PC6位置位置1/置置0控制控制INTEB受受PC2位置位置1/置置0控制控制如图为如图为A口方式口方式1输入的工作示意图:输入的工作示意图: P0.7P0.0 INT0 8031 EA D7D0 PA7PA0 8255A PC4 PC5 PC3 &INTE A D0D7 输入设备 1 STBA IBFA4. 工作方式工作方式2 (双向传输方式)(双向传输方式)工作方式工作方式2是是A组独有的工作方

17、式。外设既能在组独有的工作方式。外设既能在PA口的口的8条引线上发送数条引线上发送数据,又能接收数据。此方式也是借用据,又能接收数据。此方式也是借用PC口的口的PC3PC7这这5条信号线作控制条信号线作控制和状态线,和状态线,PA口的输入和输出均带有锁存。口的输入和输出均带有锁存。7.2.3 应用举例应用举例8255A与系统的连接: 数据线与系统DB(P0口)对应相接, 、 ,RESET与单片机的对应线相接,A1,A0一般接系统AB的A1,A0。片选 可线选法,也可用译码器法(I/O接口与片外RAM统一编址)。下图是用线选法。WRRDCSA1A0复位电路复位电路89C515V例例7-3(P20

18、9) 8031扩展扩展8255A,置,置A口为输入方式,口为输入方式,B口为输出方式,口为输出方式,C口口H为为输入方式,输入方式, C口口L为输出方式。试设计扩展接口电路,并给出初始化程序。为输出方式。试设计扩展接口电路,并给出初始化程序。解解 电路的连接如前图。电路的连接如前图。只要只要A15(P2.7)=0就选中就选中8255A芯片芯片。控制寄存器的地址可为:控制寄存器的地址可为:0 x7FFF (0 xxx xxxx xxxx xx11B 均可均可) A口的地址可为:口的地址可为:0 x7FFC ; B口的地址可为:口的地址可为:0 x7FFDC口的地址可为:口的地址可为:0 x7FF

19、E方式方式0,控制字应为,控制字应为0 x98。 初始化程序:初始化程序: main() char x1,xdata *px ; px=0 x7fff; /px指指8255的控制寄存器的控制寄存器 *px=0 x98; /方式控制字送控制寄存器方式控制字送控制寄存器 px=0 x7ffc; /px指指8255的的A口口 x1=*px; / x1=A口引脚数据口引脚数据 px=0 x7ffd; /px指指8255的的B口口 *px=x1; /送送B口输出口输出 例7-4:8255A作为连接打印机的接口。CS下图是通过下图是通过8255A连接打印机的接口电路连接打印机的接口电路,数据传送采用查询方

20、数据传送采用查询方式。地址译码采用式。地址译码采用线选法线选法,将将A7与与8255A的的 端相连端相连,其低其低8位口位口地址:地址:A口为口为0 x7C, B口为口为0 x7D,C口为口为0 x7E, 命令口命令口(控制寄存器控制寄存器)为为0 x7F。编制打印编制打印50个字符的程序个字符的程序,该数据存于片内该数据存于片内RAM从从20H开始的开始的50个连续单元个连续单元中。程序如下:中。程序如下:#include main() char i,n,*pr1, pdata *px1,*px2; /片外页RAM,8位寻址 px1=0 x7F; /指向8255A的命令口 *px1=0 x8

21、8; /送方式字:A口输出,C口低4位出,高4位入 *px1=0 x01; /C口置位命令字(PC0=1) pr1=0 x20; /pr1指向数据区首址(最好是定义一个数组) px1=0 x7e; /指向C口 px2=0 x7c; /指向A口 for(i=0; i50; i+, pr1+) n=*px1; /读入C口信息 n while(n0) ; /等待BUSY=0 (PC7=0) n=*pr1; /取片内RAM的数据 *px2=n; /数据输出到A口 *px1=0 x00; *px1=0 x01; /产生STB的选通(负)脉冲 while(1) ; 7.3 可编程可编程RAM/IO接口接口

22、8155/8156它含有1个256字节的RAM、1个14位定时/计数器以及3个并行I/O口,其中A口、B口均为8位,C口为6位。A口、B口既可作为基本I/O口,也可作为选通I/O口; C口除可作为基本口除可作为基本I/O口口外外,还可用作还可用作A口、口、B口的口的应答控制联络信号线。应答控制联络信号线。此外此外,8155内部还有一个内部还有一个控制寄存器组控制寄存器组,用来存放用来存放控制命令字。控制命令字。 其余略其余略 7.4 用用TTL芯片扩展简单的芯片扩展简单的I/O接口接口 采用TTL或CMOS锁存器、三态门电路作为I/O扩展芯片,也是常用方法之一。只要按照“输入三态, 输出锁存”

23、与总线相连的原则, 选择74LS系列的TTL或CMOS电路能组成简单的I/O扩展接口。 如用8位三态门74LS244组成输入口, 用8D锁存器74LS273、74LS373、74LS377等组成输出口。这些扩展芯片具有体积小、成本低、配置灵活的特点。1. 用74LS377扩展8位输出口 74LS377是带有输出允许控制端的8D锁存器,有8个输入端(1D8D), 8个输出端(1Q8Q), 1个时钟端CLK, 1个锁存允许端 。当 = 0时,CLK的上升沿将8位D输入端的数据打入锁存器,这时锁存器将保持D端输入的8位数据。在图中CLK与 相连,作为写(输出)控制端; 端与单片机的地址选择线P2.7

24、相连,作为寻址端。如此连接的输出口地址是P2.7=0(A15=0)的任何16位地址。 EEWRE74LS377的地址: 0 xxx xxxx xxxx xxxxB0 x7FFF可作为该口地址。对该口的输出操作如下:可作为该口地址。对该口的输出操作如下: char x1, xdata *ptr; ptr=0 x7FFF; /ptr ptr=0 x7FFF; /ptr指向指向74LS37774LS377输出口输出口 * *ptrptr=x1 /=x1 /向向74LS37774LS377扩展口输出数据扩展口输出数据x1 x1 2. 用用74LS373扩展一个扩展一个8位并行输入口位并行输入口74LS

25、373为带三态门的8D锁存器。按图所接,需P2.6=0与 =0才选中芯片。RDE G Di Qi1 x x 高阻高阻0 1 0/1 =Di0 0 x =原值原值功能表功能表外设产生一个选通信号XT, XT的下沿将输入数据锁存到LS373, 同时申请中断,单片机响应中断,在Into中断服务程序中读取输入数据。#include char data x1, *xp1; /全局全局 变量变量void main( ) EA=1; /允许允许CPU中断中断 EX0=1; /允许允许INT0中断中断 IT0=1; /下触发方式下触发方式 xp1=0 x30; / 指针赋值指针赋值 while(1) ; /添

26、加其他功能的代码添加其他功能的代码 /INT0的中断函数的中断函数 void pInt0() interrupt 0 int xdata *px; px=0 xbffff; /指向指向输入口输入口 x1=*px; /读取输入数据读取输入数据 *xp1=x1; / 存数据存数据 xp1+; /修改指针修改指针 3.用用74LS273和和74LS244扩展输出扩展输出/输入口输入口74LS273是是8D触发器,其功能见表。触发器,其功能见表。CLR CLK Di Qi 0 x x 0 1 0/1 =Di 1 0 x =原值原值74LS273功能表功能表D18Q188874LS273CLKCLR2Y

27、12Y42A12A42G1Y11Y41A11A41G444474LS244将将“片选地址片选地址” 和写信号和写信号 进行进行“或或”后接后接CLK端,端,用用MOVX DPTR,A指令指令就可将就可将D端的数据锁存端的数据锁存到到Q端输出。端输出。WR74LS244是三态的是三态的8缓冲器,其功能见表。缓冲器,其功能见表。将将“片选地址片选地址” 和读信号和读信号 进行进行“或或”后接后接1G、2G端,用端,用MOVX A,DPTR指令指令就可将就可将Ai端的数据送到到端的数据送到到Yi端。端。RD1G 1Ai 1Yi 0 0 0 0 1 1 1 x 高阻高阻74LS244功能表功能表char x1,x2, xdata *px; px=0 x7fff;x1=*px; /读244的输入信号到x1*px =x2; /写x2的数据到273输出89C51两芯片共用地址两芯片共用地址A15(P2.7)实验板实验板LED数码管的驱动数码管的驱动见实验指导书P54:实验板原理图二J10插针座:(实验指导书P56)ABCDEFGH86654321DS1DS2DS3DS4DS5DS614131211109段驱动:段驱动:0

温馨提示

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

评论

0/150

提交评论