第6章 IO口扩展_第1页
第6章 IO口扩展_第2页
第6章 IO口扩展_第3页
第6章 IO口扩展_第4页
第6章 IO口扩展_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、1第第6章章 MCS-51扩展扩展I/O接口的设计接口的设计6.1 I/O接口扩展概述接口扩展概述6.2 MCS-51与可编程并行与可编程并行I/O芯片芯片8255A的接口设计的接口设计6.3 MCS-51与可编程与可编程RAM/IO芯片芯片8155H的接口的接口6.4 用用74LS TTL电路扩展并行电路扩展并行I/O口口6.5 用用MCS-51的串行口扩展并行口的串行口扩展并行口2I/O (输入输入/输出输出)接口是接口是MCS-51与外设交换数字信息的桥梁。与外设交换数字信息的桥梁。真正用作真正用作I/O口线的只有口线的只有P1口的口的8位位I/O线和线和P3口的某些位线。口的某些位线。

2、在多数应用系统中,在多数应用系统中,MCS-51单片机都需要外扩单片机都需要外扩I/O接口电路。接口电路。6.1 I/O接口扩展概述接口扩展概述3I/O接口电路应满足以下要求:接口电路应满足以下要求:1. 实现和不同外设的速度匹配实现和不同外设的速度匹配大多数外设的速度很慢,无法和大多数外设的速度很慢,无法和s量级的单片机速度相比。量级的单片机速度相比。单片机只有在确认外设已为数据传送做好准备的前提下才单片机只有在确认外设已为数据传送做好准备的前提下才能进行能进行I/O操作。操作。想知道外设是否准备好,需想知道外设是否准备好,需I/O接口电路与外设之间传送状接口电路与外设之间传送状态信息。态信

3、息。6.1.1 I/O接口的功能接口的功能42. 输出数据锁存输出数据锁存由于由于单片机工作速度快单片机工作速度快,数据在数据总线上保留的时间十,数据在数据总线上保留的时间十分短暂,无法满足分短暂,无法满足慢速外设的数据接收慢速外设的数据接收。I/O电路应具有电路应具有数据锁存器,以保证接收设备接收。数据锁存器,以保证接收设备接收。3. 输入数据三态缓冲输入数据三态缓冲输入设备向单片机输入数据时,但数据总线上面可能输入设备向单片机输入数据时,但数据总线上面可能“挂挂”有多个数据源,为不发生冲突,只允许当前时刻有多个数据源,为不发生冲突,只允许当前时刻正在进行数据传送的数据源使用数据总线,其余的

4、数据正在进行数据传送的数据源使用数据总线,其余的数据源应处于隔离状态。源应处于隔离状态。6.1.1 I/O接口的功能接口的功能5首先清楚首先清楚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接口中的寄存

5、器编址。接口中的寄存器编址。6.1.2 I/O端口的编址端口的编址I/O端口编址两种方式:端口编址两种方式:独立编址独立编址与与统一编址统一编址。61. 独立编址方式独立编址方式I/O寄存器地址空间和存储器地址空间寄存器地址空间和存储器地址空间分开编址分开编址,但需一,但需一套专门的读写套专门的读写I/O的指令和控制信号。的指令和控制信号。2. 统一编址方式统一编址方式I/O寄存器与数据存储器单元同等对待寄存器与数据存储器单元同等对待,统一编址。不需要,统一编址。不需要专门的专门的I/O指令,直接使用访问数据存储器的指令进行指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强。

6、操作,简单、方便且功能强。6.1.2 I/O端口的编址端口的编址MCS-51使用统一编址的方式使用统一编址的方式每一接口芯片中的一个功能寄存器每一接口芯片中的一个功能寄存器(端口端口)的地址就相当于一的地址就相当于一个个RAM单元。单元。7如何实现如何实现I/O接口的扩展。接口的扩展。Intel公司的配套可编程公司的配套可编程I/O接口芯接口芯片的种类齐全,为扩展片的种类齐全,为扩展I/O接口提供了很大的方便。接口提供了很大的方便。6.1.3 I/O接口电路接口电路常用的外围常用的外围I/O接口芯片有:接口芯片有:(1) 8255A:可编程的通用并行接口电路可编程的通用并行接口电路(3个个8位

7、位I/O口口)。(2) 8155H:可编程的可编程的IO/RAM扩展接口电路扩展接口电路(2个个8位位I/O口口,1个个6位位I/O口口, 256个个RAM字节单元,字节单元,1个个14位的减法定位的减法定时器时器/计数器计数器)。此外,此外,74LS系列的系列的TTL电路电路也可以作为也可以作为MCS-51的扩展的扩展I/O口,如口,如74LS244、 74LS273等。等。利用利用串行口串行口来扩展并行来扩展并行I/O口。口。8第第6章章 MCS-51扩展扩展I/O接口的设计接口的设计6.1 I/O接口扩展概述接口扩展概述6.2 MCS-51与可编程并行与可编程并行I/O芯片芯片8255A

8、的接口设计的接口设计6.3 MCS-51与可编程与可编程RAM/IO芯片芯片8155H的接口的接口6.4 用用74LS TTL电路扩展并行电路扩展并行I/O口口6.5 用用MCS-51的串行口扩展并行口的串行口扩展并行口96.2.1 8255A芯片介绍芯片介绍8255A是是Intel公司生产的可编程并行公司生产的可编程并行I/O接口芯片,接口芯片,具有具有3个个8位的并行位的并行I/O口,口,有有3种工作方式,种工作方式,可通过编程改变其功能,可通过编程改变其功能,因而使用灵活方便,通用性强。因而使用灵活方便,通用性强。1. 引脚说明引脚说明40只引脚,双列直插式封装,引脚功能如下:只引脚,双

9、列直插式封装,引脚功能如下:6.2 MCS-51与可编程并行与可编程并行I/O芯片芯片8255A的接口的接口106.2.1 8255A芯片介绍芯片介绍D7D0:三态双向数据线,三态双向数据线,与单片机数据总线连接。与单片机数据总线连接。PA7PA0: A口输入口输入/输出线。输出线。PB7PB0: B口输入口输入/输出线。输出线。PC7PC0: C口输入口输入/输出线。输出线。A1、A0:地址线,用来选择地址线,用来选择8255A内部的内部的4个端口。个端口。Vcc: +5V电源。电源。CS*:片选信号线,低电平有效片选信号线,低电平有效.RD*:读出信号线,控制读出信号线,控制8255A中数

10、据的读出。中数据的读出。WR*:写入信号线,控制写入信号线,控制向向8255A数据的写入。数据的写入。112. 内部结构内部结构6.2.1 8255A芯片介绍芯片介绍12(1)端口端口A、B、C功能和结构上有些差异功能和结构上有些差异PA口:口:1个个8位数据输出锁存器和缓冲器;位数据输出锁存器和缓冲器; 1个个8位数据输位数据输入锁存器。入锁存器。PB口:口: 1个个8位数据输出锁存器和缓冲器;位数据输出锁存器和缓冲器; 1个个8位数据输位数据输入缓冲器。入缓冲器。PC口:口: 1个个8位数据输出锁存器;位数据输出锁存器; 1个个8位数据输入缓冲器。位数据输入缓冲器。PC口可在软件的控制下,

11、口可在软件的控制下,分为两个分为两个4位端口位端口,作为,作为PA口、口、PB口选通方式操作时的状态控制信号。口选通方式操作时的状态控制信号。6.2.1 8255A芯片介绍芯片介绍13(2) A组和组和B组控制电路组控制电路A组:组:PA口和口和PC口的上半部口的上半部(PC7PC4);B组:组:PB口和口和PC口的下半部口的下半部(PC3PC0)。可根据可根据“命令字命令字”对对PC口按位口按位“置置1”或或“清清0”。(3) 数据总线缓冲器线数据总线缓冲器线三态双向,作为三态双向,作为8255A与单片机数据线之间接口,传送数与单片机数据线之间接口,传送数据、指令、控制命令及外部状态信息。据

12、、指令、控制命令及外部状态信息。(4) 读读/写控制逻辑电路线写控制逻辑电路线该电路接收该电路接收CPU发来的控制信号、发来的控制信号、RESET、地址信号、地址信号A1、A0等。对端口进行读写。等。对端口进行读写。6.2.1 8255A芯片介绍芯片介绍14A1A0RD*WR*CS*工作状态工作状态00010读端口读端口A:A口数据口数据数据总线数据总线读端口读端口B:B口数据口数据数据总线数据总线 读端口读端口C:C口数据口数据数据总线数据总线010101001000100写端口写端口A:总线数据:总线数据A口口写端口写端口B:总线数据:总线数据B口口写端口写端口C:总线数据:总线数据C口口

13、写控制字:总线数据写控制字:总线数据控制字寄存器控制字寄存器0110010100111001数据总线为三态数据总线为三态11010非法状态(不能读控制字寄存器)非法状态(不能读控制字寄存器)110数据总线为三态数据总线为三态各端口的工作状态与控制信号的关系各端口的工作状态与控制信号的关系如表如表9-1所示。所示。6.2.1 8255A芯片介绍芯片介绍158255A有三种工作方式:有三种工作方式: (1) 方式方式0:基本输入输出;:基本输入输出;(2) 方式方式1:选通输入输出;选通输入输出;(3) 方式方式2:双向传送双向传送(仅仅A口有口有)。1. 工作方式选择控制字工作方式选择控制字三种

14、工作方式由方式控制字来决定。三种工作方式由方式控制字来决定。控制字格式如下。控制字格式如下。6.2.2 工作方式选择控制字及工作方式选择控制字及C口置位口置位/复位控制字复位控制字8255A控制字有控制字有2个:个:工作方式选择控制字工作方式选择控制字C口置位口置位/复位控制字复位控制字166.2.2 工作方式选择控制字及工作方式选择控制字及C口置位口置位/复位控制字复位控制字D7 = 1 工作方式选择控工作方式选择控制字制字A组组B组组工作方式选择控制字工作方式选择控制字17C口上半部分口上半部分(PC7PC4)随随A口称为口称为A组组;C口下半部分口下半部分(PC3PC0)随随B口称为口称

15、为B组组。其中其中A口可工作于方式口可工作于方式0、1、和、和2,而,而B口只能工作在方式口只能工作在方式0和和1。例如:例如:写入工作方式控制字写入工作方式控制字95H可将可将8255A编程为编程为:控制字状态为:控制字状态为10010101B,A口方式口方式0输入,输入,B口方式口方式1输出,输出,C口的上半部分口的上半部分(PC7 PC4)输出,输出,C口的下半部分口的下半部分(PC3PC0)输入。输入。6.2.2 工作方式选择控制字及工作方式选择控制字及C口置位口置位/复位控制字复位控制字182. C口按位置位口按位置位/复位控制字复位控制字可对可对C口口8位中的任一位置位中的任一位置

16、“1”或清或清“0”。用于位控。用于位控。6.2.2 工作方式选择控制字及工作方式选择控制字及C口置位口置位/复位控制字复位控制字例如:例如:控制字控制字07H写入控制写入控制口,置口,置“1”PC3;08H写入写入控制口,控制口,PC4清清0。D7 = 0 C口置位口置位/复位复位控控制字制字191. 方式方式0基本的输入基本的输入/输出方式。输出方式。MCS-51可对可对8255A进行数据的进行数据的无条件传送无条件传送。例如例如: 从口线读入一组开关状态,向端口输出数字量,控制从口线读入一组开关状态,向端口输出数字量,控制一组指示灯的亮、灭。不需要联络信号一组指示灯的亮、灭。不需要联络信

17、号.6.2.3 8255A的三种工作方式的三种工作方式基本功能为:基本功能为:(1) 具有两个具有两个8位端口位端口(A、B)和两个和两个4位端口位端口(C的上半部分的上半部分和下半部分和下半部分)。(2) 任一个端口都可以设定为输入或输出,各端口的输入、任一个端口都可以设定为输入或输出,各端口的输入、输出可构成输出可构成16种组合。种组合。(3) 数据输出锁存,输入不锁存。数据输出锁存,输入不锁存。例例 假设假设8255A8255A的的PAPA接一组接一组8 8只状态指示灯,只状态指示灯,PB PB 接一组接一组8 8个开关,现需个开关,现需将开关闭合的状态通过指示灯显示出来,编写相应程序。

18、将开关闭合的状态通过指示灯显示出来,编写相应程序。 通过分析可知通过分析可知: 8255A: 8255A的的PAPA、PB PB 均为基本输入输出方式,即均为基本输入输出方式,即A A口口方式方式0 0输出,输出,B B口方式口方式0 0输入,输入,C C口未用(方式字可以取口未用(方式字可以取0 0,输出)。,输出)。 则则8255A8255A的方式字为的方式字为82H82H,初始化及输入输出如下。,初始化及输入输出如下。 DSP8255: MOV DPTRDSP8255: MOV DPTR,#0003H ;#0003H ;数据指针指向数据指针指向8255A8255A控制口控制口 MOV A

19、MOV A,#82H ;#82H ;控制字送累加器控制字送累加器A A MOVX DPTR MOVX DPTR,A ;A ;控制字送控制字送8255A8255A控制口控制口 MOV DPTRMOV DPTR,#0001H ;#0001H ;数据指针指向数据指针指向8255A8255A的的B B口口 MOVX AMOVX A,DPTR ;DPTR ;将将B B口开关状态读入累加器口开关状态读入累加器A A MOV DPTR MOV DPTR,#0000H ;#0000H ;数据指针指向数据指针指向8255A8255A的的A A口口 MOVX DPTRMOVX DPTR,A ;A ;开关状态送开关

20、状态送A A口指示灯显示口指示灯显示 SJMP DSP8255 ;SJMP DSP8255 ;返回返回212. 方式方式1选通输入选通输入/输出工作方式。输出工作方式。A口和口和B口通常用于口通常用于I/O数据传送,数据传送,C口用作口用作A口和口和B口的联络线,以中断方式传送数据。口的联络线,以中断方式传送数据。(1)方式)方式1的基本功能的基本功能 用作一个或两个选通端口。用作一个或两个选通端口。 每一个端口包含有:每一个端口包含有:8位数据端口;三条控制线位数据端口;三条控制线(是固是固定指定的,不能用程序改变定指定的,不能用程序改变);提供中断逻辑。;提供中断逻辑。 任何一个端口都可以

21、作为输入或输出。任何一个端口都可以作为输入或输出。 若只有一个端口工作于方式若只有一个端口工作于方式1,余下的,余下的13位,可以工作位,可以工作在方式在方式0(由控制字决定由控制字决定)。 若两个端口都工作于方式若两个端口都工作于方式1,端口,端口C还留下两位,这两还留下两位,这两位可以由程序指定作为输入或输出,也具有置位复位功能。位可以由程序指定作为输入或输出,也具有置位复位功能。6.2.3 8255A的三种工作方式的三种工作方式22(2) 方式1输入B口工作于方式口工作于方式1时,如图时,如图X11XXXX1端口端口B输入输入端口端口B方式方式1B组方式控制字组方式控制字端口端口B方式方

22、式1PB70PC2PC1STBBIBFBINTRB8PC0INTEBRD图图 方式方式1输入组态输入组态D0D1D2D3D4D5D61控制字控制字标志标志方式选择方式选择00=方式方式001=方式方式11X=方式方式2端口端口A1=输输入入0=输输出出端口端口C(上半部)(上半部)1=输入输入0=输出输出方式选择方式选择0=方式方式01=方式方式1端口端口B1=输入输入0=输出输出端口端口C(下半部)(下半部)1=输入输入0=输出输出A组组B组组“方式方式”选择控制字选择控制字23XXXI/O1101端口端口A输入输入端口端口A方式方式1A组方式控制字组方式控制字PC671=输入输入0=输出输

23、出I/OPC672端口端口A方式方式1PA70PC4PC5STBAIBFAINTRA8PC3INTEARD图图 方式方式1输入组态输入组态D0D1D2D3D4D5D61控制字控制字标志标志方式选择方式选择00=方式方式001=方式方式11X=方式方式2端口端口A1=输输入入0=输输出出端口端口C(上半部)(上半部)1=输入输入0=输出输出方式选择方式选择0=方式方式01=方式方式1端口端口B1=输入输入0=输出输出端口端口C(下半部)(下半部)1=输入输入0=输出输出A组组B组组24其中各个控制信号的意义为: INTR(Interrupt Request):中断请求信号,高电平有效。这是:中断

24、请求信号,高电平有效。这是8255A的一个输出信号,可用于作为向的一个输出信号,可用于作为向CPU的中断请求信号,以要求的中断请求信号,以要求CPU服务。当服务。当STB、IBF为高电平,同时为高电平,同时INTE(中断允许中断允许)被置为被置为1时,时,INTR变为高电平,而变为高电平,而由由RD 信号的下降沿清除。信号的下降沿清除。 STB(Strobe):选通输入,低电平有效。这是由外设供给的输入控制信:选通输入,低电平有效。这是由外设供给的输入控制信号,当其有效时,把外设来的数据送入锁存器。号,当其有效时,把外设来的数据送入锁存器。 IBF(Input Buffer Full):输入缓

25、冲器满,高电平有效。这是一个:输入缓冲器满,高电平有效。这是一个8255A输出的状态信号。当其有效时,表示数据已输入至输入锁存器,它由输出的状态信号。当其有效时,表示数据已输入至输入锁存器,它由STB信信号置位,而号置位,而STB信号的上升沿使其复位。信号的上升沿使其复位。 INTE A:A口中断允许,由口中断允许,由PC4的置位复位控制;的置位复位控制; INTE B:B口中断允许,由口中断允许,由PC2的置位复位控制。的置位复位控制。25A口的方式口的方式1输入输入工作方式见图。工作方式见图。6.2.3 8255A的三种工作方式的三种工作方式 26(3)方式1输出 方式1输出时,其逻辑组态

26、如图 所示。图图 方式方式1输出组态输出组态X01XXXX1端口端口B输出输出端口端口B方式方式1B组方式组方式1输出控制字输出控制字端口端口B方式方式1输出输出PB70PC2PC1ACKBOBFBINTRB8PC0INTEBWR27图图 方式方式1输出组态输出组态XXXI/O0101端口端口A输出输出端口端口A方式方式1A组方式组方式1控制字控制字PC451=输入输入0=输出输出I/OPC452端口端口A方式方式1输出输出PA70PC7PC6OBFAACKAINTRA8PC3INTEAWR28主要的控制信号如下: OBF(Output Buffer Full):输出缓冲器满信号,低电平有效,

27、这:输出缓冲器满信号,低电平有效,这是是8255A输出给外输出给外 设的一个控制信号。当其有效时,表示设的一个控制信号。当其有效时,表示CPU已经把数据已经把数据输出给指定的端口,可以把数据输出。它由输出命令的输出给指定的端口,可以把数据输出。它由输出命令的WR上升沿置成低上升沿置成低电平,由电平,由ACK的有效信号使其恢复为高电平。的有效信号使其恢复为高电平。 ACK(Achowledge):低电平有效。这是一个外设的响应信号,指示:低电平有效。这是一个外设的响应信号,指示CPU输出给输出给8255A的数据已经由外设取走,可以发送下一组数据。的数据已经由外设取走,可以发送下一组数据。 出数据

28、。当出数据。当ACK为为“1”(高电平高电平),OBF为为“1”(高电平高电平)和和INTE为为“1”(高高电平电平)时,使其置位时,使其置位(高电平高电平),而,而WR信号的上升沿使其复位信号的上升沿使其复位(低电平低电平)。 INTR:中断请求信号,高电平有效。当输出装置已经接收了:中断请求信号,高电平有效。当输出装置已经接收了CPU输出的数据后,输出的数据后, 它用来作为向它用来作为向CPU提出新的中断请求,要求提出新的中断请求,要求CPU继续输继续输INTEA:由:由PC6的置位复位控制。的置位复位控制。INTEB:由:由PC2的置位复位控制。的置位复位控制。29B口的方式口的方式1输

29、出如图所示:输出如图所示:6.2.3 8255A的三种工作方式的三种工作方式 MOVX Ri, A 303方式2 这种工作方式为双向传送方式。 (1)主要功能 方式2只用于端口A,端口B无此种工作方式。 A口的8位为双向总线端口, C口中的5位为控制端口。 输入和输出是锁存的。 5位控制端口是用作端口A的控制和状态信息。 方式2的逻辑组态如图所示 6.2.3 8255A的三种工作方式的三种工作方式311/01/01/0XXX11B组方式组方式0=方式方式01=方式方式1端口端口A方式方式2PC201=输入输入0=输出输出端口端口B1=输入输入0=输出输出I/OPC203PA70PC7PC6OB

30、FAACKAINTRA8PC3INTE1WRRDPC4PC5STBAIBFAINTE2+32各个信号的意义为: INTR(中断请求中断请求):高电平有效。在输入和输出方式时,都:高电平有效。在输入和输出方式时,都可用来作为向可用来作为向CPU的中断请求信号。的中断请求信号。 OBF(输出缓冲器满输出缓冲器满):低电平有效。它是对外设的一种选:低电平有效。它是对外设的一种选通信号,表示通信号,表示CPU已把数据输出至端口已把数据输出至端口A。用于通知外设可以。用于通知外设可以取数。取数。 ACK(响应信号响应信号):低电平有效。它启动端口:低电平有效。它启动端口A的三态输出的三态输出缓冲器,送出

31、数据;否则,输出缓冲器处在高阻状态。缓冲器,送出数据;否则,输出缓冲器处在高阻状态。 33 INTE1 (与输出缓冲器相关的中断屏蔽触发器与输出缓冲器相关的中断屏蔽触发器):由:由PC6的置位复位控制。的置位复位控制。 STB(选通输入选通输入):低电平有效。这是外设供给:低电平有效。这是外设供给8255A的的选通信号,它把输人数据选通至选通信号,它把输人数据选通至8255A的输入锁存器。的输入锁存器。 IBF(输入缓冲器满输入缓冲器满)。:高电平有效。它是一个状态信息,。:高电平有效。它是一个状态信息,指示数据已进入输入锁存器。指示数据已进入输入锁存器。 INTE2(与输人缓冲器相关的中断屏

32、蔽触发器与输人缓冲器相关的中断屏蔽触发器):由:由PC4的的置位复位控制。置位复位控制。 各个信号的意义为:34(2)方式控制字 当端口A工作在方式2时,端口B可以工作在方式0 或方式1,可以作为输入,也可以作为输出。此时端口C 的各位功能如图所示。D0D1D2D3D4D5D6D7端口端口C 各位各位A组状态组状态INTRAINTE2IBFAINTE1OBFAB组状态组状态I/OI/OI/O方式方式0输入输出输入输出INTRBIBFBINTEB方式方式1输入输入INTRBOBFBINTEB方式方式1输出输出图图 方式方式2时端口时端口C 的几种组态的几种组态35 若要求若要求8255A工作于如

33、下的工作方式:端工作于如下的工作方式:端A工作于方式工作于方式2,端口,端口B工作于方式工作于方式1输入。输入。 方式控制字:方式控制字:1100 0110B=C6H 在在8255A方式控制字已经输出后,再读端口方式控制字已经输出后,再读端口C ,则可得,则可得到如下的到如下的方式方式2状态字状态字:若要允许方式若要允许方式2 中断,则可用端口中断,则可用端口C 的置位复位控制字:的置位复位控制字:允许输出中断,置允许输出中断,置PC6,则控制字为,则控制字为0000 110 l B。允许输入中断,置允许输入中断,置PC4,控制字为,控制字为0000 100 l B。INTRBIBFBINTE

34、BINTRAINTE2IBFAINTE1OBFAA组组B组组361. 硬件接口电路硬件接口电路如如图图是是8031扩展扩展1片片8255A的电路图。的电路图。74LS373是地址锁存器,是地址锁存器,P0.1、P0.0经经74LS373与与8255A的地址线的地址线A1、A0连接;连接; P0.7经经74LS373与与片选端片选端相连,相连,其他地址线悬空。其他地址线悬空。6.2.4 MCS-51单片机和单片机和8255A的接口的接口37 图中图中8255A的的PA口地址为口地址为7CH,PB口地址为口地址为7DH,PC口口地址为地址为7EH,控制字寄存器地址为,控制字寄存器地址为7FH。这里

35、。这里8031单片机对单片机对8255A采用了线性选址法。采用了线性选址法。无用位全设为无用位全设为1:P0.7P0. 6P0. 5P0. 4P0. 3P0. 2P0. 1P0. 0口地址CSA1A0011111007CH PA011111017DH PB011111107EH PC011111117FH 控制口2. 端口地址确定端口地址确定38无用位全设为无用位全设为0 0:P0.7P0. 6P0. 5P0. 4P0. 3P0. 2P0. 1P0. 0口地址CSA1A00000000000H PA0000000101H PB0000001002H PC0000001103H 控制口39若地址

36、口用若地址口用16位表示位表示图图中中8255A各端口寄存器的地址为:各端口寄存器的地址为:无用位全设为无用位全设为1:A口:口:FF7CHB口:口:FF7DHC口:口:FF7EH控制寄存器:控制寄存器:FF7FH无用位全设为无用位全设为0 0:A口:口:0000HB口:口:0001HC口:口:0002H控制寄存器:控制寄存器:0003H或或403. 软件编程软件编程例例 要求要求8255A工作在方式工作在方式0,且,且A口作为输入,口作为输入,B口、口、C口口作为输出,程序如下:作为输出,程序如下:MOV A, #90H ;A口方式口方式0输入,输入,B口、口、C口输出的方式口输出的方式控制

37、字送控制字送A A MOV DPTR, #0FF7FH ;控制寄存器地址;控制寄存器地址DPTRMOVX DPTR, A;方式控制字;方式控制字控制寄存器控制寄存器MOV DPTR, #0FF7CH;A口地址口地址DPTRMOVX A, DPTR;从;从A口读数据口读数据MOV DPTR, #0FF7DH;B口地址口地址DPTRMOV A, #DATA1;要输出的数据;要输出的数据DATA1AMOVX DPTR, A;将;将DATA1送送B口输出口输出MOV DPTR, #0FF7EH;C口地址口地址DPTRMOV A, #DATA2 ;DATA2AMOVX DPTR, A ;将数据;将数据D

38、ATA2送送C口输出口输出6.2.4 MCS-51单片机和单片机和8255A的接口的接口41例例 对端口对端口C的置位的置位/复位。复位。把把PC5置位,控制字为置位,控制字为0BH MOV R1, #7FH ;控制口地址;控制口地址R1 MOV A, #0BH;控制字;控制字AMOVX R1, A;控制字;控制字控制口,控制口,PC5=1把把PC5复位,控制字为复位,控制字为0AHMOV R1, #7FH;控制口地址;控制口地址R1 MOV A, #0AH;控制字;控制字AMOVX R1, A;控制字;控制字控制口,控制口,PC5=06.2.4 MCS-51单片机和单片机和8255A的接口的

39、接口42第第6章章 MCS-51扩展扩展I/O接口的设计接口的设计6.1 I/O接口扩展概述接口扩展概述6.2 MCS-51与可编程并行与可编程并行I/O芯片芯片8255A的接口设计的接口设计6.3 MCS-51与可编程与可编程RAM/IO芯片芯片8155H的接口的接口6.4 用用74LS TTL电路扩展并行电路扩展并行I/O口口6.5 用用MCS-51的串行口扩展并行口的串行口扩展并行口436.3 MCS-51单片机与单片机与8155H的接口的接口6.3 .1 8155H芯片介绍芯片介绍1. 8155H的逻辑结构的逻辑结构 如图所示。如图所示。442. 8155H的引脚功能的引脚功能(1)A

40、D7AD0(8条条) 地址地址/数据线数据线(2) I/O总线总线(22条条) PA、PB、PC口口 数据传送方向由数据传送方向由8155H命令字命令字决定决定(3) 控制总线控制总线(8条条) RESET:复位输入线复位输入线 CE*: 片选输入线片选输入线 IO/M*: I/O端口端口/RAM选通线选通线 RD*和和WR*:读读/写命令输入线写命令输入线 ALE:地址锁存允许地址锁存允许 TIMERIN和和IMEROUT*:计数器输入计数器输入/输出线输出线(4) 电源线电源线(2条条) Vcc:+5V电源电源 Vss:地地6.3.1 8155H芯片介绍芯片介绍453. CPU对对8155

41、H I/O端口的控制端口的控制(1) 8155H各端口地址分配各端口地址分配 8155H内部有内部有7个寄存器,个寄存器,u命令寄存器命令寄存器u状态寄存器状态寄存器uA口寄存器口寄存器uB口寄存器口寄存器uC口寄存器口寄存器u计数器低计数器低8位寄存器位寄存器u计数器高计数器高8位寄存器位寄存器6.3 .1 8155H芯片介绍芯片介绍8155HA、B、C3个端口的数据传送是由个端口的数据传送是由命令字和状态字命令字和状态字控制的。控制的。需要需要3位地址位地址A2A0上上的不同组合加以区分的不同组合加以区分46CE*IO/M*A7A6A5A4A3A2A1A0所选的端口所选的端口01000命令

42、命令/状态寄存器状态寄存器01001A口口01010B口口01011C口口01100计数器低计数器低8位位01101计数器高计数器高6位位00RAM单元单元6.3 .1 8155H芯片介绍芯片介绍命令寄存器和状态寄存器地址相同,如何加以区分?命令寄存器和状态寄存器地址相同,如何加以区分?命令寄存器只能写入,不能读出;命令寄存器只能写入,不能读出;状态寄存器只能读出,不能写入状态寄存器只能读出,不能写入 ;47(2) 8155H的命令字的命令字48(3) 8155H的状态字的状态字6.3 .1 8155H芯片介绍芯片介绍491. 存储器方式存储器方式对片内对片内RAM单元进行读写,若单元进行读写

43、,若IO/M*=0和和CE*=0,则通过,则通过AD7AD0上的地址对上的地址对RAM存储器任一单元读写。存储器任一单元读写。2. I/O方式方式8155H的的I/O方式分为方式分为基本基本I/O和和选通选通I/O两种工作方式。两种工作方式。可对片内任一寄存器读写,端口地址由可对片内任一寄存器读写,端口地址由A2、A1、A0三位三位决定。决定。6.3.2 8155H的工作方式的工作方式8155H有有2种工作方式:种工作方式:(1) 基本基本I/O方式方式A、B、C三口用作输入三口用作输入/输出,由输出,由命令字命令字决定。决定。如:命令字为如:命令字为02H,则,则8155H的的A口、口、C口

44、设为输入方式,口设为输入方式, B口设为输口设为输出方式。出方式。50C口口通用通用I/O方式方式选通选通I/O方式方式ALT1ALT2ALT3ALT4PC0输入输入输出输出AINTR(A口中断口中断)AINTR(A口中断口中断)PC1输入输入输出输出ABF(A口缓冲器满口缓冲器满) ABF(A口缓冲器满口缓冲器满)PC2输入输入输出输出ASTB* (A口选通口选通)ASTB* (A口选通口选通)PC3输入输入输出输出输出输出BINTR(B口中断口中断)PC4输入输入输出输出输出输出BBF(B口缓冲器满口缓冲器满)PC5输入输入输出输出输出输出BSTB* (B口选通口选通)表表 C口在两种口在

45、两种I/O工作方式下各位定义工作方式下各位定义 6.3.2 8155H的工作方式的工作方式(2) 选通选通I/O方式方式由由命令字命令字D3、D2位设定位设定A、B口都可独立工作于此方式,口都可独立工作于此方式,此时此时A、B口用作数据口,口用作数据口, C口用作口用作A、B口的联络控制口的联络控制。51(1) 基本基本I/O方式方式(2) 选通选通I/O方式方式 (见右图见右图) a. 选通选通I/O输入输入b. 选通选通I/O输出输出523. 内部定时器内部定时器/计数器及使用计数器及使用14位的位的减减1定时器定时器/计数器计数器,计数长度和计数方式由写入计,计数长度和计数方式由写入计数

46、寄存器的控制字来确定。数寄存器的控制字来确定。计数器的两个寄存器的格式如图。计数器的两个寄存器的格式如图。T13T0:计数器长度计数器长度M2、M1:设置定时器的设置定时器的4种输出方式种输出方式6.3.2 8155H的工作方式的工作方式534种工作方式及相应输出波形种工作方式及相应输出波形如图。如图。6.3.2 8155H的工作方式的工作方式n如果选择定时器的输出为方波形式,则从启动定时器开始,如果选择定时器的输出为方波形式,则从启动定时器开始, 前一半计数输出为高电平,后一半计数输出为低电平前一半计数输出为高电平,后一半计数输出为低电平。n若写入初值为奇数,则输出方波不对称。若写入初值为奇

47、数,则输出方波不对称。n计数初值计数初值从从2开始开始,即,即8155H的计数范围的计数范围3FFFH0002H.546.3.3 MCS-51与与8155H接口及软件编程接口及软件编程1. MCS-51与与8155H的的硬件接口电路硬件接口电路地址编码地址编码(无用位设为无用位设为0):RAM单元地址单元地址 (保证保证P2.7=0,P2.0=0):0000H00FFHI/O地址地址(保证保证P2.7=0,P2.0=1) 命令命令/状态口状态口 0100H PA口口 0101HI/O地址:地址:PB口口 0102H PC口口 0103H 定时器低定时器低8位位 0104H 定时器高定时器高8位

48、位 0105H552. 8155H的编程举例的编程举例初始化程序设计初始化程序设计例例 若若A口定义为基本输入方式,口定义为基本输入方式,B口定义为基本输出方口定义为基本输出方式,对输入脉冲进行式,对输入脉冲进行24分频,初始化程序如下:分频,初始化程序如下:START: MOV DPTR, 0104H ;指针指向定时器低;指针指向定时器低8位位 MOV A, 18H ;计数初值;计数初值24送送A, MOVX DPTR, A ;计数初值低计数初值低8位装入定时器位装入定时器 INC DPTR ;指针指向定时器高;指针指向定时器高8位位 MOV A, 40H ;设定时器连续方波输出;设定时器连

49、续方波输出 MOVX DPTR,A ;计数初值高计数初值高6位装入定时器位装入定时器 MOV DPTR, 0100H ;指向命令;指向命令/状态口状态口 MOV A, #0C2H ;设定命令控制字;设定命令控制字 MOVX DPTR, A ;A口输入,口输入,B口输出口输出,开定时器开定时器6.3.3 MCS-51与与8155H接口及软件编程接口及软件编程12周期周期12周期周期566.3.3 MCS-51与与8155H接口及软件编程接口及软件编程例例 读读8155的的F1H单元。单元。MOV DPTR, 00F1H ;指针指向;指针指向8155的的F1H单元单元MOVX A, DPTR ;F

50、1H单元内容送单元内容送A例例 将立即数将立即数41H写入写入8155 RAM的的20H单元。单元。MOV A, #41HMOV DPTR, 0020H ;指针指向;指针指向8155的的20H单元单元MOVX DPTR, A ;立即数;立即数41H送送8155的的20H单元单元57第第6章章 MCS-51扩展扩展I/O接口的设计接口的设计6.1 I/O接口扩展概述接口扩展概述6.2 MCS-51与可编程并行与可编程并行I/O芯片芯片8255A的接口设计的接口设计6.3 MCS-51与可编程与可编程RAM/IO芯片芯片8155H的接口的接口6.4 用用74LS TTL电路扩展并行电路扩展并行I/

51、O口口6.5 用用MCS-51的串行口扩展并行口的串行口扩展并行口58利用利用74LS273和和74LS244,将,将P0口扩展成简单的输入、输出口口扩展成简单的输入、输出口的电路。的电路。74LS2738D锁存器,锁存器,输出端接输出端接8个个LED发光二极管,以发光二极管,以显示显示8个按钮开关状态,某位低电平时二极管发光。个按钮开关状态,某位低电平时二极管发光。74LS244是缓冲驱动器,扩展输入口,接是缓冲驱动器,扩展输入口,接8个按钮开关。个按钮开关。74LS273和和74LS244的工作受的工作受8031的的P2.0、RD*、WR*三条控三条控制线控制。制线控制。电路的工作原理如下

52、电路的工作原理如下:当当P2.0=0,WR*=0(RD*=)时选中写时选中写74LS273, 8031通过通过P0口输出数据到口输出数据到74LS273,;,;当当P2.0=0,RD*=0(WR*=1)时选中读时选中读74LS244, 某开关按下时则某开关按下时则对应位输入为对应位输入为“0”。6.4 用用74LS TTL电路扩展并行电路扩展并行I/O口口只要保证只要保证P2.0=0, 其他位为其他位为0或为或为1均可。所以均可。所以, 地址为地址为FEFFH(无效位全为(无效位全为1)或)或0000H (无效位全为(无效位全为0 0) 。5960输出程序段:输出程序段:MOV A, #data ;数

温馨提示

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

评论

0/150

提交评论