单片机原理第9章8255.ppt_第1页
单片机原理第9章8255.ppt_第2页
单片机原理第9章8255.ppt_第3页
单片机原理第9章8255.ppt_第4页
单片机原理第9章8255.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

第6章MCS-51扩展I/O接口的设计(3),6.3.1I/O接口扩展概述,I/O(输入/输出)接口是MCS-51与外设交换数字信息的桥梁。,I/O扩展也属于系统扩展的一部分。,真正用作I/O口线的只有P1口的8位I/O线和P3口的某些位线。,在多数应用系统中,MCS-51单片机都需要外扩I/O接口电路。,6.3.1.1I/O接口的功能,I/O接口电路应满足以下要求:,1.实现和不同外设的速度匹配,大多数的外设的速度很慢,无法和s量级的单片机速度相比。,单片机只有在确认外设已为数据传送做好准备的前提下才能进行I/O操作。,想知道外设是否准备好,需I/O接口电路与外设之间传送状态信息。,2.输出数据锁存,由于单片机工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速外设的数据接收。I/O电路应具有数据锁存器,以保证接收设备接收。,3.输入数据三态缓冲,输入设备向单片机输入数据时,但数据总线上面可能“挂”有多个数据源,为不发生冲突,只允许当前正在进行数据传送的数据源使用数据总线,其余的应处于隔离状态。,6.3.1.2I/O端口的编址,首先清楚I/O接口(Interface)和I/O端口(Port)的概念。,I/O端口:简称I/O口,指具有端口地址的寄存器或缓冲器。,I/O接口:是指单片机与外设间的I/O接口芯片。,一个I/O接口芯片可以有多个I/O端口,(1)数据口(2)命令口(3)状态口,I/O端口编址是给所有I/O接口中的寄存器编址。,I/O端口编址两种方式:独立编址与统一编址。,1独立编址方式,I/O寄存器地址空间和存储器地址空间分开编址,但需专门读写I/O的指令和控制信号。,2统一编址方式,I/O寄存器与数据存储器单元同等对待,统一编址。不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强。,MCS-51使用统一编址的方式,每一接口芯片中的一个功能寄存器(端口)的地址就相当于一个RAM单元。,6.3.1.3I/O数据的几种传送方式,为实现和不同的外设的速度匹配,I/O接口必须根据不同外设选择恰当的I/O数据传送方式。,I/O数据传送的几种传送方式是:,(1)同步传送(2)异步传送(3)中断传送。,1.同步传送方式(无条件传送),当外设速度和单片机的速度相比拟时,常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。,2.查询传送方式(条件传送,异步式传送),查询外设“准备好”后,再进行数据传送。,优点:通用性好,硬件连线和查询程序十分简单,,缺点:效率不高。,为提高效率,通常采用中断传送方式。,3.中断传送方式.,外设准备好后,发中断请求,单片机进入与外设数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。工作效率高。,6.3.1.4I/O接口电路,如何实现I/O接口的扩展。Intel公司的配套可编程I/O接口芯片的种类齐全,为扩展I/O接口提供了很大的方便。,常用的外围I/O接口芯片有:,(1)8255A:可编程的通用并行接口电路(3个8位I/O口)。,(2)8155H:可编程的IO/RAM扩展接口电路(2个8位I/O口,1个6位I/O口,256个RAM字节单元,1个14位的减法定时器/计数器)。,可与MCS-51单片机直接连接,接口逻辑十分简单,此外,74LS系列的TTL电路也可以作为MCS-51的扩展I/O口,如74LS244、74LS273等。,最后介绍利用串行口来扩展并行I/O口。,6.3.2MCS-51与可编程并行I/O芯片8255A的接口,6.3.2.18255A芯片介绍,8255A是Intel公司生产的可编程并行I/O接口芯片,具有3个8位的并行I/O口,3种工作方式,可通过编程改变其功能,因而使用灵活方便,通用性强。,1.引脚说明,40只引脚,双列直插式封装,引脚功能如下:,D7D0:三态双向数据线,与单片机数据总线连接,CS*:片选信号线,低电平有效,表示本芯片被选中,RD*:读出信号线,控制8255A中数据的读出.,WR*:写入信号线,控制向8255A数据的写入。,Vcc:+5V电源。,PA7PA0:A口输入/输出线。,PB7PB0:B口输入/输出线。,PC7PC0:C口输入/输出线。,A1、A0:地址线,用来选择8255A内部的4个端口。,2.内部结构,(1)端口A、B、C,功能和结构上有些差异,PA口:1个8位输出锁存和缓冲;1个8位的输入锁存,PB口:输出锁存和缓冲;输入缓冲,PC口:输出锁存;数据输入缓冲,PC口可在软件的控制下,分为两个4位端口,作为PA口、PB口选通方式操作时的状态控制信号。,(2)A组和B组控制电路,A组:PA口和PC口的上半部(PC7PC4);,B组:PB口和PC口的下半部(PC3PC0),可根据“命令字”对PC口按位“置1”或“清0”。,(3)数据总线缓冲器,三态双向,作为8255A与单片机数据线之间接口,传送数据、指令、控制命令及外部状态信息。,(4)读/写控制逻辑,该电路接收CPU发来的控制信号、RESET、地址信号A1、A0等。对端口进行读写。,各端口的工作状态与控制信号的关系如表1所示。,表18255A端口工作状态选择,6.3.2.2工作方式选择控制字及C口置位/复位控制字,8255A有三种工作方式:,(1)方式0:基本输入输出;,(2)方式1:选通输入输出;,(3)方式2:双向传送(仅A口有)。,1.工作方式选择控制字,三种工作方式由方式控制字来决定。控制字格式如下。,C口上半部分(PC7PC4)随A口称为A组,,C口下半部分(PC3PC0)随B口称为B组。,其中A口可工作于方式0、1、和2,而B口只能工作在方式0和1。,例如:写入工作方式控制字95H,可将8255A编程为:A口方式0输入,B口方式1输出,C口的上半部分(PC7PC4)输出,C口的下半部分(PC3PC0)输入。,2.C口按位置位/复位控制字,可对C口8位中的任一位置“1”或清“0”。用于位控。,例如:控制字07H写入控制口,置“1”PC3;08H写入控制口,清“0”PC4。,6.3.2.38255A的三种工作方式,1.方式0,基本的输入/输出方式。,外设的I/O数据可在8255A的各端口得到锁存和缓冲,MCS-51可对8255A进行数据的无条件传送,例如:从口线读入一组开关状态,向端口输出数字量,控制一组指示灯的亮、灭。不需要联络信号,,基本功能为:,(1)具有两个8位端口(A、B)和两个4位端口(C的上半部分和下半部分)。,(2)任一个端口都可以设定为输入或输出,各端口的输入、输出可构成16种组合。,(3)数据输出锁存,输入不锁存。,例假设8255A的控制字寄存器地址为FF7FH,则令A口和C口的高4位工作在方式0输出,B口和C口的低4位工作于方式0输入,初始化程序:,MOVDPTR,#0FF7FH;控制字寄存器地址送DPTRMOVA,#83H;方式控制字83H送AMOVXDPTR,A;83H送控制字寄存器,2.方式1,选通输入/输出工作方式。A口和B口通常用于I/O数据传送,C口用作A口和B口的联络线,以中断方式传送数据。,(1)方式1输入,控制联络信号如图9-5所示,STB*与IBF构成了一对应答联络信号,联络信号的功能如下图:,STB*:选通输入。是由输入外设送来的输入信号。IBF:输入缓冲器满,高电平有效。表示数据已送入8255A的输入锁存器,它由STB*信号的下降沿置位,由RD信号的上升沿使其复位。,INTR:中断请求信号,高电平有效。由8255A输出,向单片机发中断请求。,INTEA:A口中断允许信号,由PC4控制,INTEB:B口中断允许信号,由PC2控制。,A口的方式1输入工作方式见图9-6。,方式1下的输入时序,当外设输入一个数据并送到PA0-PA7口线上时,输入设备自动在选通信号线STB*上向8255A发送一个低电平信号。,8255A收到选通信号后,首先把PA0-PA7输入的数据存入A口的输入数据缓冲/锁存器;然后使输入缓冲器输出线变为高电平,以通知输入设备,8255A的A口已收到它送来的数据。,8255A检测到联络线STB*由低变为高,IBF为1和INTE为1.使输出线INTR(PC3)变为高电平,向单片机发出中断请求。,单片机响应中断后,通过中断服务程序读取外设发来的输入数据。数据取走后8255A撤销INTR中断请求,IBF变为低电平,通知外设可以送下一个数据。,(2)方式1输出,如图9-7所示。OBF*与ACK*构成了一对应答联络信号,各信号的功能如下:,OBF*:输出缓冲器满信号,8255A给外设的联络信号,外设可以将数据取走。由写信号的上升沿置0,由ACK*信号的下降沿置1.,ACK*:外设的响应信号,外设已将数据取走。,INTR:中断请求信号。表示该数据已被外设取走,请求单片机继续输出下一个数据。,INTEA:中断允许,由PC6控制。INTEB:中断允许,由PC2控制。,INTEA控制PA口是否允许中断,由PC6控制。INTEB控制PB口是否允许中断,由PC2控制。方式1输出工作示意如图9-8所示。以PB口的方式1输出为例,介绍工作过程。AT89S51可以通过“MOVXRi,A”指令把输出数据送到B口的输出数据锁存器,82C55收到后便令输出缓冲器满引脚(PC1)变低,以通知输出设备输出的数据已在PB口的PB7PB0上。输出外设收到上低电平后,先从PB7PB0上取走输出数据,然后使B变低电平,以通知82C55输出外设已收到82C55输出的数据。,32,B口的方式1输出如图9-8所示:,82C55从应答输入线B收到低电平后就对B和中断允许控制位INTEB状态进行检测,若皆为高电平,则INTRB变为高电平而向单片机请求中断。AT89S51单片机响应INTRB上中断请求后便可通过中断服务程序把下一个输出数据送到PB口的输出数据锁存器。重复上述过程,完成数据的输出。,34,3.方式2,只有A口才能设定为方式2。图9-9为方式2工作示意图。,在方式2下,PA7PA0为双向I/O总线。,当输入时,PA7PA0受STBA*和IBFA控制,其工作过程和方式1输入时相同;,当输出时,PA7PA0受OBFA*、ACKA*控制,其工作过程和方式1输出时相同。,6.3.2.4MCS-51单片机和8255A的接口,1.硬件接口电路,如图9-10是8031扩展1片8255A的电路图。74LS373是地址锁存器,P0.1、P0.0经74LS373与8255A的地址线A1、A0连接;P0.7经74LS373与片选端相连,其他地址线悬空。,2.端口地址确定,图9-10中8255A各端口寄存器的地址为:,A口:FF7CHB口:FF7DHC口:FF7EH控制寄存器:FF7FH,3.软件编程,例9-1要求8255A工作在方式0,且A口作为输入,B口、C口作为输出,程序如下:,MOVA,#90H;A口方式0输入,B口、;C口输出的控制字送AMOVDPTR,#0FF7FH;控制寄存器地址DPTRMOVXDPTR,A;方式控制字控制寄存器,MOVDPTR,#0FF7CH;A口地址DPTRMOVXA,DPTR;从A口读数据MOVDPTR,#0FF7DH;B口地址DPTR,MOVA,#DATA1;要输出的数据DATA1AMOVXDPTR,A;将DATA1送B口输出MOVDPTR,#0FF7EH;C口地址DPTR,MOVA,#DATA2;DATA2AMOVXDPTR,A;将数据DATA2送C口输出,例9-2对端口C的置位/复位。,把PC5置位,控制字为0BH,MOVR1,#7FH;控制口地址R1MOVA,#0BH;控制字AMOVXR1,A;控制字控制口,PC5=1,把PC5复位,控制字为0AH,MOVR1,#7FH;控制口地址R1MOVA,#0AH;控制字AMOVXR1,A;控制字控制口,PC5=0,9.3MCS-51单片机与8155H的接口,9.3.18155H芯片介绍,1.8155H的逻辑结构,如图9-11所示。,2.8155H的引脚功能8155H的引脚功能,(1)AD7AD0(8条)(2)I/O总线(22条),(3)控制总线(8条)RESET:复位输入线CE*和IO/M*RD*和WR*ALE:地址锁存允许TIMERIN和TIMEROUT*:,(4)电源线(2条)Vcc:+5V电源Vss:地,3.CPU对8155HI/O端口的控制,(1)8155H各端口地址分配,(2)8155H的命令字,(3)8155H的状态字,9.3.28155H的工作方式,1.存储器方式,对片内RAM单元进行读写,若IO/M*=0和CE*=0,则通过AD7AD0上的地址对RAM存储器任一单元读写。,2.I/O方式,8155H的I/O方式分为基本I/O和选通I/O两种工作方式,如表9-3所示。可对片内任一寄存器读写,端口地址由A2、A1、A0三位决定(见表9-2)。,表9-3C口在两种I/O工作方式下各位定义,(1)基本I/O方式,(2)选通I/O方式(见右图),a.选通I/O输入b.选通I/O输出,3.内部定时器/计数器及使用,14位的减1定时器/计数器,计数长度和计数方式由写入计数寄存器的控制字来确定。,计数器的两个寄存器的格式如图9-16。,T13T0:计数器长度,M2、M1:设置定时器的4种工作方式,4种工作方式及相应输出波形如图9-17。,9.3.3MCS-51与8155H接口及软件编程,1.MCS-51与8155H的硬件接口电路,2.8155H的编程举例8155H,(1)初始化程序设计,例9-3若A口定义为基本输入方式,B口定义为基本输出方式,对输入脉冲进行24分频,初始化程序如下:,START:MOVDPTR,7F04H;指针指向定时器低8位MOVA,18H;计数初值24送A,MOVXDPTR,A;计数初值低8位装入定时器,INCDPTR;指针指向定时器高8位MOVA,40H;设定时器连续方波输出MOVXDPTR,A;计数初值高6位装入定时器,MOVDPTR,7F00H;指向命令/状态口MOVA,#0C2H;设定命令控制字MOVXDPTR,A;A口输入,B口输出,开定时器,9.4用74LSTTL电路扩展并行I/O口,利用74LS273和74LS244,将P0口扩展成简单的输入、输出口的电路。,74LS273输出端接8个LED发光二极管,以显示8个按钮开关状态,某位低电平时二极管发光。,74LS244是缓冲驱动器,扩展输入口,接8个按钮开关。74LS273和74LS244的工作受8031的P2.0、RD*、WR*三条控制线控制。电路的工作原理如下:,当P2.0=0,WR*=0(RD*=)选中写74LS273,8031通过P0口输出数据到74LS273,;,当P2.0=0,RD*=0(WR*=1)时选中读74LS244,某开关按下时则对应位输入为“0”。,输出程序段:MOVA,#data;数据AMOVDPTR,#0FEFFH;I/O地址DPTRMOVXDPTR,A;WR*为低,数据经74LS273口输出,输入程序段:MOVDPTR,#0FEFFH;I/O地址DPTRMOVXA,DPTR;RD*为低,74LS244口;数据读入内部RAM,例9-6编写程序把按钮开关状态通过图9-20中的发光二极管显示出来。程序如下:,DDIS:MOVDPTR,#0FEFFH;输入口地址DPTRLP:MOVXA,DPTR;按钮开关状态读入A中,MOVXDPT

温馨提示

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

评论

0/150

提交评论