收藏 分享(赏)

单片机 第7章.ppt

上传人:dwy79026 文档编号:7978263 上传时间:2019-06-01 格式:PPT 页数:44 大小:242.50KB
下载 相关 举报
单片机 第7章.ppt_第1页
第1页 / 共44页
单片机 第7章.ppt_第2页
第2页 / 共44页
单片机 第7章.ppt_第3页
第3页 / 共44页
单片机 第7章.ppt_第4页
第4页 / 共44页
单片机 第7章.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、第7章 MCS-51单片机I/O口及扩展技术,7.1 I/O扩展概述 7.2 8255A的应用 7.3 8155的应用 7.4 串行口扩展I/O技术,从表面上看,MCS-51单片机共有4个8位的并行输入输出口(P0P3),但在实际应用中,这些口往往不能全部用于I/O目的。通常,只要有系统扩展,P0口被作为低8位地址线和数据线使用,P2口被作为高8位地址线使用,而P3口的第二功能更为重要,其口线多留作控制信号使用,真正能被作为I/O口使用的只有P1口。这对于大多数应用系统来说是不够的,因此需要进行I/O口扩展,以增加I/O口的数量,提高I/O口的功能。本章先介绍I/O口的基本知识,再给出几种常用

2、的I/O口的扩展方法。,7.1.1 I/O接口功能为了满足不同外设对CPU的不同要求,I/O接口电路的形式和种类是多种多样的,虽然各种具体的I/O接口的作用不尽相同,但它们都具有以下主要功能: 1实现与不同外设的速度匹配 2实现电平转换 3实现信号转换,7.1 I/O口扩展概述,7.1.2 接口与端口I/O接口(Interface)和I/O端口(Port)是有区别的,不能混为一谈。接口具有界面、相互联系等含义。它是指在计算机与外部设备之间的一种I/O芯片或部件,其功能就是为了使CPU与外设之间方便、顺利地连接并进行可靠的数据传输。其主要功能是通过电路实现的,所以又称为接口电路。I/O端口又简称

3、为I/O口。常指接口电路中用于完成某种信息传送,并可编程读写的寄存器。通常由系统给它们分配一个地址,称为端口地址,CPU通过端口地址就可以对端口中的信息进行读写操作。一个外设通常需要一个I/O接口,但一个I/O接口中可以有多个I/O端口。传送数据字的端口称为数据口,传送命令字的端口称为命令口,传送状态字的端口称为状态口。当然,不是所有的外设都需要三端口齐全的I/O接口。,7.1.3 I/O编址技术在计算机中,凡需进行读写操作的设备都存在编址问题。具体说在计算机中有两种需要编址的部件,一种是存储器,另外一种就是接口电路。存储器是对存储单元进行编址,而接口电路则是对其中的端口进行编址,以便CPU通

4、过端口地址和外设交换信息。通常I/O口有两种编址方式: 1单独编址单独编址是指I/O口地址和存储器单元地址分别编址,互为独立。 2统一编址统一编址就是把I/O口和存储器统一编址。,7.1.4 简单I/O口扩展由于MCS-51单片机的I/O口是按照“输入三态,输出锁存”的原则与总线相连的。因此,在实际应用系统中,采用TTL或CMOS器件中的三态缓冲器和锁存器(如74LS244,74LS245,74LS273,74LS373,74LS377等),可以实现简单I/O口扩展。简单输入扩展就是扩展数据缓冲器,简单输出扩展就是扩展数据锁存器。,7.2 8255A的应用,当单片机系统需要扩展较为复杂的I/O

5、口时,应选用可编程接口芯片,这类芯片功能较强,可以使用一个芯片完成多种不同的接口功能,使用灵活方便,其最大的特点在于工作方式的确定和改变是由CPU通过程序以软件的方式来控制的,因此称之为可编程接口芯片。常用的可编程接口芯片有:8255A:可编程并行接口芯片;8155:可编程并行RAM和I/O接口芯片;8251:可编程串行通信接口芯片;8253:可编程定时/计数器芯片;8279:可编程键盘/显示器接口芯片。,7.2.1 8255A的内部结构和信号引脚8255A是Intel公司生产的通用可编程并行I/O接口芯片。8255A的通用性强且使用灵活,可与MCS-51单片机系统总线直接相连,允许采用同步、

6、异步和中断方式传送I/O数据。 8255A是一个40引脚的双列直插式芯片,其引脚排列和内部结构如图7-2和图7-3所示。,图7-3 8255A内部结构,1I/O端口A、B、C (1)A口:引脚信号PA0PA7。该口有一个8位数据输入锁存器/缓冲器和一个8位数据输出锁存器/缓冲器。当A口作为输入或输出时,数据都被锁存。 (2)B口:引脚信号PB0PB7。该口有一个8位数据输入缓冲器(不锁存)和一个8位数据输出锁存器/缓冲器。当B口作输入口时不对数据锁存;作输出口时对数据锁存。 (3)C口:引脚信号PC0PC7。该口有一个8位数据输入缓冲器(不锁存)和一个8位数据输出锁存器/缓冲器。可编程为两个4

7、位输入或输出寄存器。当C口作输入口时不对数据锁存;作输出口时对数据锁存。,A组和B组控制电路8255A内部有两个工作方式控制电路,一个是A组控制电路,用来控制A口和C口的高四位PC7PC4,另一个是B组控制电路用来控制B口和C口的低4位PC3PC0。这两组控制电路具有一个控制命令寄存器,用来接收CPU送来的控制字,以决定8255A的工作模式。 数据总线缓冲器数据总线缓冲器为8位双向三态缓冲器,可直接和MCS-51的数据线相连。D7D0用来传送8255A和CPU间的数据字、控制字和状态字。,读/写控制逻辑电路这部分电路可以接收MCS-51送来的读写命令和选口地址,用于控制对8255A的读写。与读

8、写有关的控制信号有: /CS :片选信号,低电平有效; /RD:读信号,低电平有效; /WR:写信号,低电平有效; RESET:复位信号,高电平有效;该信号有效时,能使所有内部寄存器清零,所有I/O口被置成输入方式 A1、A0:端口选择信号。上述控制下信号对8255A端口选择和读写操作如表7-1(P144)所示。,7.2.2 8255A的工作方式及数据I/O操作 18255A的工作方式8255A有三种工作方式,即方式0、方式1和方式2。 (1)方式0:基本输入输出方式。在这种方式下,A,B,C三个端口都可设置成输入或输出,但不能既作输入又作输出。另外,C口还可以分为上半部分(PC7PC4)和下

9、半部分(PC3PC0)来设置传送方向,即两个4位口。方式0适用于无条件数据传送方式,但也可人为指定某些位为状态信息,实现查询方式的数据传送。 (2)方式1:选通输入输出方式(具有握手信号的I/O方式)。在这种方式下,A口和B口可由编程设定为输入或输出口,而C口的某些位则被规定为配合A口和B口的联络信号。方式1适用于查询或中断方式的数据输入/输出。,(3)方式2:双向传输方式,既可发送数据,又可接收数据,只有端口A可以选择这种方式。在这种方式下,端口C中有5位用于配合A口输入输出的联络信号。方式2适用于查询或中断方式的双向数据传送。如果把A口置于方式2下,则B口只能工作于方式0。 2数据输入操作

10、用于数据输入的联络信号有 : /STB:选通脉冲,输入信号,低电平有效。当其有效时将外设数据装入到8255A的锁存器中。 IBF:输入缓冲器满信号,输出信号,高电平有效。当其有效时,表示外设数据已装入输入缓冲器且没有被CPU取走。 INTR:中断请求信号,输出信号,高电平有效。当数据输入完毕(STB信号变高),输入缓冲器满(IBF为高电平)时有效,向CPU申请中断,请求取走数据。,3数据输出操作 表7-2中用于数据输出的联络信号有: /ACK:外设响应信号,输入信号,低电平有效。当外设取走8255A端口的数据,并处理完后发回的响应信号。 /OBF:输出缓冲器满信号,输出信号,低电平有效。当CP

11、U把输出数据写入8255A锁存器后,该信号有效,用于通知外设可以取走数据。 INTR:中断请求信号,输出信号,高电平有效。,7.2.3 8255A的控制字8255A作为可编程器件,其工作方式可由软件来选择,并且对C口的每一位都可以通过软件实现置位和复位。8255A有两种控制字,一种是工作方式选择控制字,另一种是C口置位/复位控制字。这两种控制字共用一个地址,若D7=1,则是方式控制字,D7=0,为C口复位/置位控制字。特别要注意,只有在控制字写入8255A的控制口中才起作用。 1工作方式控制字。工作方式控制字的格式如图7-4所示。,图7-4 8255A工作方式控制字格式,2C口置位/复位控制字

12、C口置位/复位控制字的格式如图7-5所示。8255A的C口输出具有位控制功能,把一个置位/复位控制字写入控制口后,就可以实现C口的某一位置1或清0。 例如:要使PC2引脚输出高电平,只要把控制字 00000101B写入控制口即可。,图7-5 8255A C口置位/复位控制字格式,7.3 8155的应用,与8255A相比,8155具有更强的功能,因为它除了能提供并行接口所需的各种电路之外,内部还包括有256B的SRAM和一个14位可编程定时器/计数器(最大时钟频率4MHZ)。8155是MCS-51单片机系统中最常用的外围接口芯片之一。 7.3.1 8155芯片结构及引脚功能 18155的结构如图

13、7-7所示,8155由以下三个部分组成:,图7-7 8155结构框图,2引脚功能8155为双列直插式40脚封装芯片,如图7-8所示。主要引脚功能介绍如下:,(1)AD7AD0:三态地址/数据总线,可以直接与MCS51单片机的P0口相接,用于分时传送地址/数据信息。做地址线用时,由输入的IO/ / M信号的状态来决定是存储器地址还是I/O口地址。做数据线用时,数据是写入还是读出8155,由系统控制信号/WR和/RD决定。 (2)RESET:复位信号,高电平有效。8155以600ns的正脉冲进行复位,复位后A、B、C口均被置成输入工作方式。 (3)ALE:地址锁存允许信号。ALE信号的下降沿将AD

14、7AD0线的地址、片选信号 CE以及IO/ /M信号锁存在8155片内锁存器中。,(4)CE:片选信号,低电平有效。 (5)IO/ /M:是I/O口和SRAM的选择信号。(6)WR:写选通信号。低电平有效时,将AD7AD0上的数据写入SRAM的某一单元(IO/M=0时),或写入某一I/O口(IO/M=1时)。 (7)/ RD:读选通信号。 (8)PA7PA0 :A口的通用I/O线,数据的输入或输出由可编程的命令寄存器内容决定。 (9)PB7PB0 :B口的通用I/O线,数据的输入或输出由可编程的命令寄存器内容决定。,(10)PC5PC0 :C口的I/O线,既具有通用的I/O口功能,又具有对端口

15、A和B起某种控制的功能,各种功能的实现均由可编程的命令寄存器内容决定。 (12)TMRIN:定时器/计数器时钟脉冲输入端。 (13) /TMROUT:定时器/计数器输出端,其输出信号的波形和定时器/计数器的工作方式有关。,7.3.2 8155的命令/状态字8155的命令寄存器和状态寄存器为独立的8位寄存器,分别存放命令字和状态字。但由于对命令寄存器只能进行写操作,而对状态寄存器只能进行读操作,因此,为了简化硬件,让命令寄存器和状态寄存器共用一个端口地址,合在一起称之为命令/状态寄存器。 (1)命令字的格式8155的命令字共有8位,用于设定8155的工作方式以及实现对中断和定时器/计数器的控制。

16、命令字只能写入,不能读出。命令字的格式如图7-9所示:,图7-9 8155的命令字格式,(2)状态字的格式8155的状态字也是8位,最高位为任意值,低6位用于指定端口的状态,另一位用于指示定时器/计数器的状态,供CPU查询。状态字只能读出,不能写入。8155的状态字格式如图7-10所示。,图7-10 8155的状态字格式,7.3.3 8155定时/计数器8155的定时/计数器是一个14位的减法计数器,可用来定时或对外部事件进行计数。计数长度和输出方式由输入给定时/计数器的计数控制字来决定。定时/计数器由两个8位的寄存器构成,其中低14位为计数长度,可表示的长度范围为2H3FFFH,余下的两个高

17、位(M2、M1)用于定义计数器输出的信号方式。其中M2、M1所定义的输出信号方式见图7-12所示。,图7-12 8155定时/计数器的输出方式,使用定时/计数器时,应注意以下两点: (1)任何时刻都可以将计数长度和输出方式装入定时/计数器,装入后必须再对命令寄存器装入启动命令。在定时/计数器计数期间,新装入的计数长度和输出方式不影响原来的操作,新的启动命令装入后,要等到原计数值减到0才起作用。 (2)8155复位后,定时/计数器的长度和方式不被预置,但停止计数。,734 8155芯片与单片机的连接8155芯片可以与MCS-51单片机直接连接而不需要附加任何电路,图7-13为8155与8051接

18、口的一种方案:电路中8051的P2.1与 8155的/CE相连,8051的P2.0与8155的IO/ /M相连,8051的P0.7P0.0与8155的AD7AD0相连时,8155的SRAM和I/O口地址分配如下: 当P2.1 =0,P2.0=0时,选中8155片内SRAM,地址为:FC00HFC FFH。 当P2.1 =0,P2.0=1时,选中I/O口,各口的地址分配为: 命令/状态口地址:FD00H A口地址:FD01H B口地址:FD02H C口地址:FD03H 定时器低8位地址:FD04H 定时器高8位地址:FD05H,图7-13 8155和8051的连接,例7-2 若8155的端口A定

19、义为基本输入方式,端口B定义为基本输出方式,端口C定义为输入方式,禁止中断,要求对8031输入脉冲进行千分频,即计数1000后,电平状态变化,并重新置数以产生连续方波,请写出相应的初始化程序 解:分析如下:此题要用到8155定时/计数器的计数功能。由于要求输出连续方波,因此计数器的最高两位M2M1=01。计数器的其它14位装入计数初值十进制数1000,十六进制数为03E8H。则:计数器高位字节为43H,计数器低位字节为E8H。,按题目要求,8155的命令字应为C2H。 相应初始化程序为:MOV DPTR,# FD04H;指向定时器寄存器低8位MOV A,# E8H ;设定时器寄存器低8位初值M

20、OVX DPTR,A ;装入初值INC DPTR ;指向定时器寄存器高8位MOV A,# 43H ;设定时器寄存器高8位初值MOVX DPTR,A ;装入初值MOV DPTR,# FD00H;指向命令寄存器MOV A,# C2H ;设命令字MOVX DPTR,A ;装入命令字,7.4 串行口扩展I/O口技术,MCS-51单片机的串行口有4种工作方式,其中,方式0主要用于I/O口扩展。当串行口工作于方式0时,RXD(P3.0)端接收、发送数据,TXD(P3.1)端发送移位脉冲,因此,可用TXD、RXD方便地控制串入并出的同步移位寄存器74LS164或CD4094,扩展并行输出接口;如果用TXD、

21、RXD控制并入串出的同步移位寄存器74LS165或CD4014,可以扩展并行输入接口。由于串行通讯的操作速度比较慢,所以这种扩展技术只适用于对速度要求不高的场合。,例7-3 图7-14是采用一片74LS164扩展8位并行输出口的电路。现在如果在并行输出端接8个发光二极管,设发光二极管为共阴极接法。请编写发光二极管自左至右以一定速度轮流显示,且不断循环的程序。 解:分析如下:74LS164是一种8位串行输入(DATA端)并行输出的同步移位寄存器,采用TTL工艺制成。CLK为移位脉冲输入端。STB为控制端,在这里与8051的P1.0相连,当STB=0时,74LS164的并行输出端关闭,但允许数据串

22、行移位输入;若STB=1,则74LS164的串行输入端关闭,但允许数据并行输出。,图 用74LS164扩展并行输出口的电路,设串行口采用中断方式发送,发光二极管的显示时间由延时程序DELAY实现,参考程序如下: 主程序: MOV SCON,# 00H;串行口初始化为方式0 MOV IE,# 90H ;允许串行中断 CLR P1.0 ;关闭并行输出 MOV A,# 80H ;起始显示码送A MOV SBUF,A ;8051串行输出SJMP $ ;等待中断,中断服务程序: SETB P1.0 ;开启并行输出,点亮发光管 ACALL DELAY ;点亮一段时间 CLR TI ;清发送中断标志 RR A ;准备点亮下一位 CLR P1.0 ;灭显示 MOV SBUF,A ;串行口输出 RETI ;中断返回,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报