输入输出接口扩展_第1页
输入输出接口扩展_第2页
输入输出接口扩展_第3页
输入输出接口扩展_第4页
输入输出接口扩展_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

MCS-51系列单片机内部有4个双向的8位并行I/O端口:P0、P1、P2和P3口。在实际的应用系统中,P0、P2、P3口往往用来代替系统总线使用,数据口仅剩下P1口了。另外,单片机内部I/O口的功能也过于简单,只有数据锁存和缓冲功能,而没有状态寄存和命令寄存功能,难以满足复杂的I/O操作的要求。鉴于单片机的I/O资源比较有限,在实际应用中不得不使用扩展的方法,以增加I/O口的数量,强化I/O的功能。常用的I/O扩展有以下两种形式:简单I/O接口芯片的扩展可编程I/O接口电路的扩展4.3输入/输出接口扩展问题的提出什么样的芯片是简单芯片?复杂芯片又是什么样的?简单芯片:是指那些虽具有数据缓冲或锁存功能,但自身仅有数据的输入或输出及选通端或时钟端,却没有地址线和读写控制线,如采用TTL或CMOS数字集成电路构成的三态门、寄存器、三态缓冲寄存器等中小规模的集成电路芯片。可编程逻辑器件:那些不仅具有数据的输入或输出、具有选通端或时钟端,而且还具有地址线和读写控制线的芯片,他们一般具有片内的状态字寄存器、命令字寄存器,允许通过软件编程来改变它的接口功能或状态。如:intel8255、8155、8279etc.简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片(74LS244、74LS245、74LS273、74LS373、74LS377等),通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。简单的I/O口扩展主要包括:缓冲器扩展输入口(三态门:74LS244、74LS245等)输入接口的主要功能:解决数据输入的缓冲问题,如74ls244(具有三态缓冲功能,这样才可以和数据总线相连)。锁存器扩展输出口(锁存器:74LS273、74LS373、74LS377等)输出接口的主要功能:进行数据的保持(数据锁存)。4.3.1简单I/O接口芯片的扩展利用74LS244进行输入口的扩展74LS244引脚封装图MCS-51与74LS244的接口电路图缓冲器扩展输入口

74LS244是一种8位的三态缓冲器。当它的控制端1G(2G)为低电平时,输出等于输入;当它的控制端1G(2G)为高电平时,输出呈高阻态。在上图的电路中,P2.7与RD相或后作为244的使能信号,单片机的P0口与74LS244的8位输出端相连,所以74LS244的地址为:7FFFH(P2.7=0即A15=0,A14..A0为任意,这里取1,得到7fffh,当然,0000h~7fffh中任一地址均可)。当单片机从74LS244读取数据时应该为:

MOVDPTR,#7FFFH;将74LS244的口地址送入DPTR

MOVXA,@DPTR;74LS244的端口读取数据到ACC;执行时,RD有效,p2.7=0,选通了74ls244。注意:MOVXA,@DPTR;读操作,产生RD低电平信号利用74LS273进行输出口的扩展74LS273引脚封装图MCS-51与74LS273的接口电路图锁存器扩展输出口74LS273是一种8D触发器器。当它的控制端信号有效且触发端信号有效时,输入D1-D8端的数据被锁存到8D触发器中并形成输出Q1-Q8。在上图的电路中,P2.7与WR相或后作为74LS273的锁存信号(clk下降沿有效),单片机的P0口与74LS273的8位输出端相连,所以74LS273的地址为:7FFFH。(仅使P2.7=0,地址可以是0000h~7fffh中的任一个。)(仅当p2.7=0且WR=0时,clk才为0,数据被打入。)所以,当单片机从74LS244输出数据是应该为:MOVDPTR,#7FFFH;将74LS244的口地址送入DPTR

MOVX@DPTR,A;从ACC向74LS244的端口写数据;P2.7=0&WR=0,数据被打入到2732锁存器注意:MOVX@DPTR,A;写操作,产生WR低电平信号Intel8155是一个具有RAM、I/O和计数器的通用可编程接口芯片。其具有的资源为256B的静态RAM;两个可编程的8位并行I/O口PA和PB;一个可编程的6位并行I/O口PC;一个可编程14位减计数器TC;8位地址锁存器。

示意图一、可编程芯片8155的扩展是指芯片功能可由指令来确定,即需要对其编程。8155的引脚封装图8155的内部接口图CBA256字节静态RAM14位定时计数器TIMERINTIMEROUTVCC(+5V)VSS(GND)PA0~PA7IO/MCEALERDWRRESETAD0~AD7PB0~PB7PC0~PC78155各引脚的功能为:地址/数据线AD0~AD7(8条):是低8位地址线和数据线的共用输入总线,常和MCS-51单片机的P0口相连,用于分时传送地址和数据;PA0~PA7、PB0~PB7:为A、B口线,用于和外设之间传递数据;PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线;CS:片选线,低电平有效。1.8155的内部结构RESET:复位线,通常与单片机的复位端相连。ALE:地址锁存线,高电平有效。IO/M:RAM或I/O口的选择线。当为0时,选中8155的256BRAM;当为1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。RD和WR:读/写线,控制8155的读、写操作。TMRIN(TI):定时/计数器的脉冲输入端。TMROUT(TO):定时/计数器的输出信号端。VCC:电源端。GND:接地端。8155当IO/M为0时,单片机对8155的RAM进行操作,共256B,低八位的地址为:00H—0FFH。8155当IO/M为1时,单片机对8155的I/O口进行操作。低八位地址I/O口xxxxx000B命令/状态口xxxxx001BPA口xxxxx010BPB口xxxxx011BPC口xxxxx100B定时器/计数器低字节寄存器xxxxx101B定时器/计数器高字节寄存器8155内部寄存器地址分配表2.8155的RAM和I/O口地址编码芯片8155的I/O口和定时器/计数器的工作方式可以通过对8155的命令寄存器写入控制字来实现。

8155的命令寄存器和状态寄存器使用同一个地址。

8155的命令字

命令字主要规定了8155的I/O口和定时器的工作方式。

8255的状态字

状态字的内容包含8155的I/O口的工作状态标志。3.8155的命令字和状态字PA口PB口PC口MCS-51单片机与8155的接口TM1TM2IEBIEAPC2PC1PAPAPBA口方式B口方式B口A口计数器方式00:空操作01:停止计数10:计满后停止11:开始计数0:输入1:输出0:禁止中断1:允许中断00110110

方式1:A、B口基本I/O;C口输入方式2:A、B口基本I/O;C口输出方式3:A口选通I/O;B口基本I/O方式4:A、B口选通I/O8155的命令字格式A口中断请求标志:0:无;1:有A口缓冲器:0:空;1:满A口中断允许:0:禁止;1:允许B口中断请求标志:0:无;1:有B口缓冲器:0:空;1:满B口中断允许:0:禁止;1:允许定时器中断标志:1:有定时器溢出中断0:读状态字后或硬件复位后INTEBTIMERBFBINTRBINTEAINTRABFA--8155的状态字格式基本I/O方式:联络线由程序指定,对计数器输入输出不起控制作用,没有中断能力,输出联络线由软件程序来控制。选通I/O方式:由PC口的低三位作联络线使用,其余位作I/O线;输入联络线可以起选通数据锁存作用;中断时有中断请求信号产生;各个联络线为:INTRA:中断请求输出标志。BFA:PA口缓冲器/空输出信号。STBA:数据选通输入信号。8155的I/O的工作方式8155片内的定时器/计数器是一个14位的减计数器。计数器分为高6位和低8位寄存器,它的计数初值有程序预置。它的格式为:M2M1T13T12T11T10T9T8T7T6T5T4T3T2T1T0高字节寄存器(M2和M1是工作方式码)低字节寄存器(T0—T13为计数器的初值)4.8155的定时器/计数器M2M1方式波形00011011单次方波连续方波单个脉冲连续脉冲8155定时器/计数器四种操作方式和输出波形

1)8155RAM的使用

例题:假定在MCS-51单片机的内部RAM中,从30H开始存放一组数据,字节数为50,要求将该组数据存入8155RAM中,起始地址为7E00H。

程序为:

………………..

RAMWR:MOVR0,#30HMOVDPTR,#7E00H

MOVR2,#50

RAMW:MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTRDJNZR2,RAMW

…思考:如果要把8155RAM中,从地址为7E00H开始的50个数据存入单片机的30H开始的数据存储单元中,应该如何处理?5.8155的应用2)8155的I/O口的使用例题:假定8155的PA口接8个乒乓开关,8155的PB口接8个指示灯,要求PB显示PA口的开关状态。命令/状态寄存器地址为7E00H,PA地址为7E01H,PB地址为7E02H。8155的命令字为:02H(PA和PB为基本I/O方式)。程序为:

ORG0000H

MOVDPTR,#7E00H

MOVA,#02H

MOV@DPTR,A

LOOP:MOVDPTR,#7F01H

MOVXA,@DPTR

INCDPTR

MOVX@DPTR,A

SJMPLOOP

END写命令字,送入命令/状态寄存器8155的A口数据送入ACCACC数据写入8155的B口循环执行8255是一个通用可编程接口电路。其具有的资源为:三个可编程的8位并行I/O口PA、PB和PC口;PC口可以按位进行操作。8255A的引脚封装图数据总线PA口PB口PC口控制总线二、可编程芯片8255的扩展8255的内部接口图A组端口AA组端口C上半部(4)下半部(4)B组端口CB组端口B(8)(8)A组控制控制B组数据总线缓冲读/写控制逻辑I/OI/OI/OI/ORDWRA0A1RESETCSD7~D0PA7~PA0PC7~PC4PC3~PC0PB7~PB08255各引脚的功能为:地址/数据线D0~D7:是低8位地址线和数据线的共用输入总线,常和MCS-51单片机的P0口相连,用于分时传送地址和数据;PA0~PA7、PB0~PB7:为A、B口线,用于和外设之间传递数据;PC0~PC7为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线;CS:片选线,低电平有效。RESET:复位线,通常与单片机的复位端相连。A0和A1:I/O口的选择线,通过它可以选择PA口、PB口、PC口和控制寄存器。RD和WR:读/写线,控制8255的读、写操作。VCC:电源端。GND:接地端。1.8255的内部结构高阻态011xX非法态01011高阻态1XXXX从命令口输入00111从PC口输出00101从PB口输出00110从PA口输出00100从PC口输入01001从PB口输入01010从PA口输入01000操作CSWRRDA0A12.8255A的端口选择和基本操作8255有两个控制字:方式控制字

方式控制字用于设定单片机的PA口、PB口和PC口的工作方式。

置位/复位控制字

置位/复位控制字用于对8255A的PC口按位进行操作。3.8255A的控制字B组C口低4位B口方式选择0:输出1:输入0:输出1:输入0:模式01:模式1A组C口高4位A口方式选择0:输出0:输出1:输入1:输入01:模式100:模式01*:模式21:方式标志D7D6D5D4D3D2D1D0方式控制字0:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC70:位操作D7×××D3D2D1D0置位/复位控制字8255A有3种工作方式工作方式0

基本的输入/输出方式工作方式1

选通工作方式工作方式2

双向传送方式,只有PA口工作于此方式。4.8255A的工作方式开关量输入显示输出5.8255A和MCS-51单片机的接口例1:在上图所示的8255与单片机的连接电路中,8255A的PC口(7FFEH)作为开关量的输入;8255A的PA口(7FFCH)作为信号的输出;要求8个数码管显示PC口输入的外部信号状态。8255A的工作方式字设定:由题意可知8255的工作方式字应该为:89H6.8255A应用举例:8255初始化从8255的PC口读入数据从8255的PA口输出数据选中8255的PC口选中8255的PA口流程图:ORG0000HMOVDPTR,#7FFFHMOVA,#89HMOVX@DPTR,ALOOP:MOVDPTR,#7FFEHMOVXA,@DPTRMOVDPTR,#7FFCHMOVX@DPTR,A

SJMPLOOPEND写命令字,送入命令/状态寄存器8255的C口数据送入ACCACC数据写入8255的A口循环执行程序清

温馨提示

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

评论

0/150

提交评论