《华东交通大学单片机张毅刚第9章》由会员分享,可在线阅读,更多相关《华东交通大学单片机张毅刚第9章(59页珍藏版)》请在金锄头文库上搜索。
1、第第9 9章章 89C51 89C51扩展扩展I/OI/O接口的设计接口的设计9.1 I/O9.1 I/O接口扩展概述接口扩展概述I/O (I/O (输入输入/ /输出输出) )接口是接口是89C5189C51与外设与外设交换数字信息交换数字信息的的桥梁桥梁。I/OI/O扩展扩展也属于系统扩展的一部分也属于系统扩展的一部分。89C5189C51真正用作真正用作I/OI/O口线的口线的只有只有P1P1口的口的8 8位位I/OI/O线和线和P3P3口的某些口的某些 位线位线。在多数应用系统中,在多数应用系统中,89C5189C51单片机都需要外扩单片机都需要外扩I/OI/O接口电路。接口电路。Ev
2、aluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9.1.1 I/O9.1.1 I/O接口的功能接口的功能I/OI/O接口电路应满足以下要求:接口电路应满足以下要求:1.1.实现和不同外设的速度匹配实现和不同外设的速度匹配大多数的外设的速度很慢,无法和大多数的外设的速度很慢,无法和s s量级的单片机速度相比量级的单片机速度相比。单片机只有在单片机只有在确认确认外设已为数据传送做好准备的前提下才能进外设已为数据传送做好准备的
3、前提下才能进 行行I/OI/O操作。操作。想知道外设是否准备好想知道外设是否准备好,需需I/OI/O接口电路与外设之间传送接口电路与外设之间传送状态信状态信 息息。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2. 2. 输出数据锁存输出数据锁存由于由于单片机工作速度快,单片机工作速度快,数据在数据总线上保留的时间十分短数据在数据总线上保留的时间十分短 暂,暂,无法满足慢速外设的数据接收无法满足慢速外设的数据接收。
4、I/OI/O电路应具有数据输电路应具有数据输 出锁存器,以保证接收设备接收。出锁存器,以保证接收设备接收。3. 3. 输入数据三态缓冲输入数据三态缓冲输入设备向单片机输入数据时,但输入设备向单片机输入数据时,但数据总线上面可能数据总线上面可能“挂挂”有有多多 个数据源个数据源,为不发生冲突,为不发生冲突,只允许当前正在进行数据传送的只允许当前正在进行数据传送的 数据源使用数据总线,其余的应处于隔离状态。数据源使用数据总线,其余的应处于隔离状态。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.
5、0.0.Copyright 2004-2011 Aspose Pty Ltd.9.1.2 I/O9.1.2 I/O端口的编址端口的编址首先搞清楚首先搞清楚I/OI/O接口接口(InterfaceInterface)和)和I/OI/O端口端口(PortPort)的概念。)的概念。I/OI/O端口:端口:简称简称I/OI/O口口,指具有端口地址的寄存器或缓冲器。,指具有端口地址的寄存器或缓冲器。I/OI/O接口:接口:是指单片机与外设间的是指单片机与外设间的I/OI/O接口芯片。接口芯片。一个一个I/OI/O接口芯片可以有多个接口芯片可以有多个I/OI/O端口,分为:端口,分为: (1 1)数据口
6、数据口(2 2)命令口命令口(3 3)状态口状态口I/OI/O端口编址端口编址是给所有是给所有I/OI/O接口中的寄存器接口中的寄存器编址编址。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.I/OI/O端口编址两种方式端口编址两种方式:独立编址独立编址与与统一编址统一编址。1 1独立编址独立编址I/OI/O寄存器地址空间和存储器地址空间寄存器地址空间和存储器地址空间分开编址分开编址,但需专门,但需专门读写读写I/O
7、I/O的指令和控制信号。的指令和控制信号。2 2统一编址统一编址I/OI/O寄存器与数据存储器单元同等对待寄存器与数据存储器单元同等对待,统一编址。,统一编址。 不需要专门的不需要专门的I/OI/O指令,直接使用访问数据存储器的指令指令,直接使用访问数据存储器的指令进行进行I/OI/O操作,简单、方便且功能强。操作,简单、方便且功能强。89C5189C51使用使用统一编址统一编址的方式的方式 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Asp
8、ose Pty Ltd.每一接口芯片中的每一接口芯片中的一个功能寄存器(端口)的地址一个功能寄存器(端口)的地址, ,就相当于就相当于一个一个RAMRAM单元单元。9.1.3 I/O9.1.3 I/O数据的几种传送方式数据的几种传送方式为实现和不同的外设的为实现和不同的外设的速度匹配速度匹配,I/OI/O接口必须根据不同外设接口必须根据不同外设 选择恰当的选择恰当的I/OI/O数据传送方式。数据传送方式。I/OI/O数据传送的几种传送方式是:数据传送的几种传送方式是: (1 1)同步传送()同步传送(2 2)查询传送()查询传送(3 3)中断传送。)中断传送。Evaluation only.C
9、reated with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.1.1.同步传送方式同步传送方式当外设速度和单片机的速度相比拟时,常采用同步传送方当外设速度和单片机的速度相比拟时,常采用同步传送方 式,式,最典型的同步传送最典型的同步传送就是单片机和外部数据存储器之就是单片机和外部数据存储器之 间的数据传送。间的数据传送。2.2.查询传送方式查询传送方式查询外设查询外设“准备好准备好”后,再进行数据传送。后,再进行数据传送。 优点:优点:通用性好,硬件连线和查询程序
10、十分简单,通用性好,硬件连线和查询程序十分简单, 缺点:缺点:效率不高。效率不高。为提高效率,通常采用中断传送方式。为提高效率,通常采用中断传送方式。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.3.中断传送方式中断传送方式外设准备好后,发中断请求,单片机进入与外设数据传送的外设准备好后,发中断请求,单片机进入与外设数据传送的 中断服务程序,进行数据的传送。中断服务程序,进行数据的传送。中断服务完成后又返回主程
11、序继续执行。中断服务完成后又返回主程序继续执行。工作效率高。工作效率高。如何实现如何实现I/OI/O接口的扩展。接口的扩展。IntelIntel公司公司的的配套可编程配套可编程I/OI/O接口接口 芯片芯片的种类齐全,为扩展的种类齐全,为扩展I/OI/O接口提供了很大的方便。接口提供了很大的方便。9.1.4 I/O9.1.4 I/O接口电路接口电路常用的外围常用的外围I/OI/O接口芯片有:接口芯片有: (1 1)82C5582C55:可编程的通用并行接口电路(:可编程的通用并行接口电路(3 3个个8 8位位I/OI/O口)口)Evaluation only.Created with Aspo
12、se.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2 2)81C5581C55:可编程的:可编程的IO/RAMIO/RAM扩展接口电路(扩展接口电路(2 2个个8 8位位I/OI/O 口口,1,1个个6 6位位I/OI/O口口, , 256256个个RAMRAM字节单元,字节单元,1 1个个1414位的减法位的减法 定时器定时器/ /计数器计数器)。)。可与可与89C5189C51单片机单片机直接连接直接连接,接口逻辑十分简单。,接口逻辑十分简单。9.2 MCS-519.2 MCS
13、-51与可编程并行与可编程并行I/OI/O芯片芯片82C5582C55的接口的接口9.2.1 82C559.2.1 82C55芯片介绍芯片介绍82C5582C55是是IntelIntel公司生产的公司生产的可编程可编程并行并行I/OI/O接口芯片,具有接口芯片,具有3 3个个 8 8位位的的并行并行I/OI/O口口,3 3种工作方式种工作方式,可通过编程改变其功,可通过编程改变其功 能,因而能,因而使用灵活方便,通用性强使用灵活方便,通用性强。1.1.引脚说明引脚说明 40 40只引脚,双列直插式封装,见只引脚,双列直插式封装,见图图9-19-1。Evaluation only.Created
14、 with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图图9-1Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.引脚功能:引脚功能:D7D7D0D0:三态双向数据线,与单片机数据总线连接三态双向数据线,与单片机数据总线连接CS*CS*:片选信号线,低电平有效,表示本芯片被选中片选信号线,低电
15、平有效,表示本芯片被选中RD*RD*:读出信号线,控制读出信号线,控制8255A8255A中数据的读出高中数据的读出高WR*WR*:写入信号线,控制向写入信号线,控制向8255A8255A数据的写入。数据的写入。VccVcc:+5V+5V电源电源PA7PA7PA0PA0:A A口输入口输入/ /输出线。输出线。PB7PB7PB0PB0:B B口输入口输入/ /输出线输出线PC7PC7PC0PC0:C C口输入口输入/ /输出线输出线A1A1、A0A0:地址线,用来选择地址线,用来选择82C5582C55内部的内部的4 4个端口。个端口。RESETRESET:复位引脚,高电平有效复位引脚,高电平
16、有效 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2.2.内部结构内部结构图图9-2Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(1 1)端口)端口PAPA、PBPB、PCPC功能和结构上有些差异功能和结构上有些差异 PA PA口口
17、:输出锁存和缓冲;输入锁存:输出锁存和缓冲;输入锁存 PB PB口口:输出锁存和缓冲;输入缓冲:输出锁存和缓冲;输入缓冲 PC PC口口:输出锁存;数据输入缓冲:输出锁存;数据输入缓冲PCPC口可在软件的控制下,口可在软件的控制下,分为两个分为两个4 4位端口位端口,作为,作为PAPA口、口、PBPB口口 选通方式操作时的状态控制信号。选通方式操作时的状态控制信号。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2
18、)A(2)A组和组和B B组控制电路组控制电路A A组:组:PAPA口和口和PCPC口的上半部(口的上半部(PC7PC7PC4PC4););B B组:组:PBPB口和口和PCPC口的下半部(口的下半部(PC3PC3PC0PC0), ,可根据可根据“命令字命令字”对对 PC PC口口按位按位“置置1”1”或或“清清0”0”。(3)(3)数据总线缓冲器数据总线缓冲器 三态双向,作为三态双向,作为8255A8255A与单片机数据线之间接口,传送数据、与单片机数据线之间接口,传送数据、指令、控制命令及外部状态信息。指令、控制命令及外部状态信息。(4)(4)读读/ /写控制逻辑电路线写控制逻辑电路线 该
19、电路接收该电路接收CPUCPU发来的控制信号发来的控制信号,RESET,RESET,地址信号地址信号A1A1、A0A0等。等。对端口进行读写。对端口进行读写。各端口的工作状态与控制信号的关系各端口的工作状态与控制信号的关系如如表表9-19-1所示。所示。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.表表9-1 82C559-1 82C55端口工作状态选择端口工作状态选择A1A1A0A0RDRD* *WRWR* *C
20、SCS* *工作状态工作状态0 00 00 01 10 0读端口读端口A A:A A口数据口数据数据总线数据总线读端口读端口B B:B B口数据口数据数据总线数据总线 读端口读端口C C:C C口数据口数据数据总线数据总线0 01 10 01 10 01 10 00 01 10 00 00 01 10 00 0写端口写端口A A:总线数据总线数据A A口口写端口写端口B B:总线数据总线数据B B口口写端口写端口C C:总线数据总线数据C C口口写控制字:写控制字:总线数据总线数据控制字寄控制字寄 存器存器0 01 11 10 00 01 10 01 10 00 01 11 11 10 00
21、01 1数据总线为三态数据总线为三态1 11 10 01 10 0非法状态非法状态1 11 10 0数据总线为三态数据总线为三态Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9.2.2 9.2.2 工作方式选择控制字及工作方式选择控制字及C C口置位口置位/ /复位控制字复位控制字82558255有三种工作方式:有三种工作方式: (1) (1) 方式方式0 0:基本输入输出;基本输入输出;(2) (2) 方式方式1
22、 1:选通输入输出;选通输入输出;(3) (3) 方式方式2 2:双向传送(仅双向传送(仅A A口有)。口有)。1.1.工作方式选择控制字工作方式选择控制字三种工作方式由方式控制字来决定。三种工作方式由方式控制字来决定。控制字格式如下。控制字格式如下。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图图9-3Evaluation only.Created with Aspose.Slides for .NET 3.5
23、 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.C C口上半部分(口上半部分(PC7PC7PC4PC4)随)随A A口称为口称为A A组组,C C口下半部分(口下半部分(PC3PC3PC0PC0)随)随B B口称为口称为B B组组。 其中其中A A口口可工作于方式可工作于方式0 0、1 1、和、和2 2,而,而B B口口只能工作在方式只能工作在方式0 0和和方式方式1 1。例例9-1 写入工作方式控制字写入工作方式控制字95H95H可将可将8255A8255A编程为:编程为:A A口口方式方式0 0输入输入,B B口口方式方
24、式1 1输出输出,C C口的上半口的上半 部分部分(PC7PC7 PC4 PC4)输出,)输出,C C口的下半部分口的下半部分(PC3PC3PC0PC0)输入。)输入。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2. C2. C口按位置位口按位置位/ /复位控制字复位控制字可对可对C C口口8 8位中的任一位置位中的任一位置“1”“1”或清或清“0”“0”。用于。用于位控位控。图图9-4Evaluation on
25、ly.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例9-2 控制字控制字07H07H写入控制口,置写入控制口,置“1” PC3“1” PC3; 控制字控制字08H08H写入控制口,清写入控制口,清“0” PC4“0” PC4。9.2.3 82C559.2.3 82C55的三种工作方式的三种工作方式1.1.方式方式0 0基本的输入基本的输入/ /输出方式。输出方式。外设的外设的I/OI/O数据可在数据可在82C5582C55的各端口得到锁存和缓
26、冲的各端口得到锁存和缓冲89C5189C51可对可对82C5582C55进行数据的进行数据的无条件传送无条件传送 例如例如: :从口线从口线读入一组开关状态读入一组开关状态,向端口输出数字量,向端口输出数字量,控制控制一组指示灯的亮、灭。一组指示灯的亮、灭。不需要联络信号不需要联络信号,Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.基本功能为:基本功能为:(1 1)具有两个)具有两个8 8位端口(位端口(A A、B
27、 B)和两个)和两个4 4位端口(位端口(C C的上半部的上半部分和下半部分)。分和下半部分)。(2 2)任一个端口都可以设定为输入或输出,各端口的输入、)任一个端口都可以设定为输入或输出,各端口的输入、输出可构成输出可构成1616种组合。种组合。(3 3)数据输出锁存,输入不锁存。)数据输出锁存,输入不锁存。例例9-39-3 假设假设82C5582C55的的控制字寄存器地址控制字寄存器地址为为FF7FHFF7FH,则令,则令A A口和口和 C C口的高口的高4 4位工作在方式位工作在方式0 0输出,输出, B B口和口和C C口的低口的低4 4位工位工 作于方式作于方式0 0输入输入,初始化
28、程序:初始化程序:MOV DPTRMOV DPTR,#0FF7FH #0FF7FH ;控制字寄存器地址送;控制字寄存器地址送DPTR DPTR MOV AMOV A,#83H #83H ;方式控制字;方式控制字83H83H送送A AMOVX DPTRMOVX DPTR,A A ;83H83H送控制字寄存器送控制字寄存器Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2. 2. 方式方式1 1 选通输入选通输入/ /输
29、出工作方式。输出工作方式。A A口和口和B B口通常用于口通常用于I/OI/O数据传送,数据传送,C C口用作口用作A A口和口和B B口的联络线,以中断方式传送数据。口的联络线,以中断方式传送数据。 (1) (1) 方式方式1 1输入输入 控制联络信号如控制联络信号如图图9-59-5所示,所示,STBSTB* *与与IBFIBF构成了一对应答联构成了一对应答联络信号络信号,联络信号的功能如下:联络信号的功能如下:Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 20
30、04-2011 Aspose Pty Ltd.图图9-5Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.STBSTB* *:选通输入,是由输入外设送来的输入信号。选通输入,是由输入外设送来的输入信号。IBFIBF:输入缓冲器满,高电平有效。表示数据已送入输入缓冲器满,高电平有效。表示数据已送入8255A8255A的的 输入锁存器,它由输入锁存器,它由STBSTB* *信号的下降沿置位,由信号的上信号的下降沿置位,由信
31、号的上 升沿使其复位升沿使其复位INTRINTR:中断请求信号,高电平有效。由中断请求信号,高电平有效。由8255A8255A输出,向单片机输出,向单片机 发中断请求。发中断请求。INTE AINTE A:A A口中断允许,由口中断允许,由PC4PC4控制,控制, INTE BINTE B:B B口中断允许,由口中断允许,由PC2PC2控制。控制。A A口的方式口的方式1 1输入输入工作方式见工作方式见图图9-69-6。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright
32、 2004-2011 Aspose Pty Ltd.图图9-6Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2 2)方式)方式1 1输出输出 如如图图9-79-7所示。所示。OBFOBF* *与与ACKACK* *构成了一对应答联络信号构成了一对应答联络信号,各信各信号的功能如下:号的功能如下:OBFOBF* *:输出缓冲器满信号,输出缓冲器满信号,82C5582C55给外设的联络信号,外设可给外设的联络信号,外
33、设可 以将数据取走。以将数据取走。ACKACK* *:外设的响应信号,外设已将数据取走。外设的响应信号,外设已将数据取走。INTRINTR* *:中断请求信号。表示该数据已被外设取走,中断请求信号。表示该数据已被外设取走, 请求单片机继续输出下一个数据。请求单片机继续输出下一个数据。INTE AINTE A:中断允许,由:中断允许,由PC6PC6控制。控制。INTE BINTE B:中断允许,由:中断允许,由PC2PC2控制。控制。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Cop
34、yright 2004-2011 Aspose Pty Ltd.图图9-7Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.B B口的口的方式方式1 1输出输出如如图图9-89-8所示:所示:图图9-8Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty
35、Ltd.3.3.方式方式2 2只有只有A A口口才能设定为方式才能设定为方式2 2。图图9-99-9为方式为方式2 2工作示意图。在方式工作示意图。在方式 2 2下,下,PA7PA7PA0PA0为双向为双向I/OI/O总线。总线。 当当输入输入时,时,PA7PA7PA0PA0受受STBASTBA* *和和IBFAIBFA控制,其工作过程和方控制,其工作过程和方式式1 1输入时相同;输入时相同; 当当输出输出时,时,PA7PA7PA0PA0受受OBFAOBFA* *、ACKAACKA* *控制,其工作过程和方控制,其工作过程和方式式1 1输出时相同。输出时相同。Evaluation only.C
36、reated with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图图9-9Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9.2.4 89C519.2.4 89C51单片机和单片机和82C5582C55的接口的接口1.1.硬件接口电路硬件接口电路 如如图图9-109-10是是8031803
37、1扩展扩展1 1片片8255A8255A的电路图。的电路图。74LS37374LS373是地是地址锁存器,址锁存器,P0.1P0.1、P0.0P0.0经经74LS37374LS373与与8255A8255A的地址线的地址线A1A1、A0A0连接;连接; P0.7P0.7经经74LS37374LS373与片选端相连,其他地址线悬空。与片选端相连,其他地址线悬空。2.2.确定确定82C5582C55端口地址端口地址图图9-109-10中中82C5582C55各端口寄存器的地址为:各端口寄存器的地址为:A A口:口: FF7CH FF7CHB B口:口: FF7DH FF7DHC C口:口: FF7
38、EH FF7EH控制寄存器:控制寄存器: FF7FH FF7FHEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图图9-10Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 3.3.软件编程软件编程例例9-49-4 要求要求82C5582C
39、55工作在方式工作在方式0 0,且,且A A口作为输入,口作为输入,B B口、口、 C C口作为输出,口作为输出,程序如下:程序如下:MOV MOV A,#90H A,#90H ;A A口方式口方式0 0输入,输入,B B口、口、 ;C C口输出的控制字送口输出的控制字送A AMOVMOVDPTR,#0FF7FH DPTR,#0FF7FH ;控制寄存器地址;控制寄存器地址DPTRDPTRMOVX DPTR,AMOVX DPTR,A ;方式控制字;方式控制字控制寄存器控制寄存器MOVMOVDPTR,#0FF7CH DPTR,#0FF7CH ;A A口地址口地址DPTRDPTRMOVX A,DPT
40、RMOVX A,DPTR ;从;从A A口读数据口读数据MOV DPTR,#0FF7DH MOV DPTR,#0FF7DH ;B B口地址口地址DPTRDPTRMOV MOV A,#DATA1A,#DATA1 ;要输出的数据;要输出的数据DATA1ADATA1AMOVX DPTR,A MOVX DPTR,A ;将;将DATA1DATA1送送B B口输出口输出MOV DPTR,#0FF7EH MOV DPTR,#0FF7EH ;C C口地址口地址DPTRDPTREvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profi
41、le 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.MOV A,#DATA2MOV A,#DATA2 ;DATA2ADATA2AMOVX DPTR,AMOVX DPTR,A ;将数据;将数据DATA2DATA2送送C C口输出口输出例例9-59-5 对端口对端口C C的置位的置位/ /复位。复位。把把PC5PC5置位,控制字为置位,控制字为0BH 0BH MOV R1,#7FH MOV R1,#7FH ;控制口地址;控制口地址R1R1 MOVMOV A,#0BH A,#0BH ;控制字;控制字AAMOVX R1,A MOVX R1,A ;控制字;控制字控
42、制口,控制口,PC5=1PC5=1把把PC5PC5复位,控制字为复位,控制字为0AH0AHMOV R1,#7FH MOV R1,#7FH ;控制口地址;控制口地址R1R1 MOV A,#0AH MOV A,#0AH ;控制字;控制字AAMOVX R1,A MOVX R1,A ;控制字;控制字控制口,控制口,PC5=0PC5=09.3 89C519.3 89C51与可编程与可编程RAM/IORAM/IO芯片芯片81C5581C55的接口的接口 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.
43、0.Copyright 2004-2011 Aspose Pty Ltd.9.3.1 81C559.3.1 81C55芯片介绍芯片介绍1.1.8155H8155H的逻辑结构的逻辑结构如如图图9-119-11所示。所示。图图9-11Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2.8155H2.8155H的引脚功能的引脚功能8155H8155H的引脚功能的引脚功能(1 1)AD7AD7AD0AD0(8 8条)条)(2
44、 2)I/OI/O总线总线(2222条)条)(3 3)控制总线()控制总线(8 8条)条) RESETRESET:复位输入线复位输入线 CECE* *和和IO/MIO/M* * RD RD* *和和WRWR* * ALE ALE:地址锁存允许地址锁存允许 TIMERIN TIMERIN和和TIMEROUTTIMEROUT* *:(4 4)电源线()电源线(2 2条)条) Vcc Vcc:+5V+5V电源电源 Vss Vss:地地图图9-12Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0
45、.Copyright 2004-2011 Aspose Pty Ltd.CECE* *IO/MIO/M* *A7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A0所选的端口所选的端口0 01 10 00 00 0命令命令/ /状态寄存器状态寄存器0 01 10 00 01 1A A口口0 01 10 01 10 0B B口口0 01 10 01 11 1C C口口0 01 11 10 00 0计数器低计数器低8 8位位0 01 11 10 01 1计数器高计数器高6 6位位0 00 0RAMRAM单元单元3.CPU3.CPU对对81C55 I/O81C55 I/O端口的控制端口的控制
46、(1)(1)81C5581C55各端口地址分配,见表各端口地址分配,见表9-29-2表表9-29-2Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2 2)81C5581C55的命令字的命令字图图9-13Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose P
47、ty Ltd.(3 3)81C5581C55的状态字的状态字图图9-14Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9.3.2 81C559.3.2 81C55的工作方式的工作方式1.1.存储器方式存储器方式 对片内对片内RAMRAM单元进行读写,若单元进行读写,若IO/MIO/M* *=0=0和和CECE* *=0=0,则通过,则通过AD7AD7AD0AD0上的地址对上的地址对RAMRAM存储器任一单元读写。存
48、储器任一单元读写。2.I/O2.I/O方式方式 8155H 8155H的的I/OI/O方式分为方式分为基本基本I/OI/O和和选通选通I/OI/O两种工作方式,如两种工作方式,如表表9-39-3所示。可对片内任一寄存器读写,端口地址由所示。可对片内任一寄存器读写,端口地址由A2A2、A1A1、A0A0三位决定(见表三位决定(见表9-29-2)。)。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.C C口口通用通用I/
49、OI/O方式方式选通选通I/OI/O方式方式ALT1ALT1ALT2ALT2ALT3ALT3ALT4ALT4PC0PC0输入输入输出输出AINTRAINTR(A A口口中断)中断)AINTRAINTR(A A口中断)口中断)PC1PC1输入输入输出输出ABFABF(A A口缓口缓冲器满)冲器满)ABFABF(A A口缓冲器满)口缓冲器满)PC2PC2输入输入输出输出ASTB* ASTB* (A A口选通)口选通)ASTBASTB* * (A A口选通)口选通)PC3PC3输入输入输出输出输出输出BINTRBINTR(B B口中断)口中断)PC4PC4输入输入输出输出输出输出BBFBBF(B B
50、口缓冲器满)口缓冲器满)PC5PC5输入输入输出输出输出输出BSTBBSTB* * (B B口选通)口选通)表表9-3 C9-3 C口在两种口在两种I/OI/O工作方式下各位定义工作方式下各位定义 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(1 1)基本)基本I/OI/O方式方式(2 2)选通)选通I/OI/O方式方式 ( (见右图)见右图) a.a.选通选通I/OI/O输入输入b.b.选通选通I/OI/O输出
51、输出图图9-15Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3. 3. 内部定时器内部定时器/ /计数器及使用计数器及使用 14 14位的减位的减1 1定时器定时器/ /计数器计数器,计数长度计数长度和和计数方式计数方式由写入计由写入计数寄存器的控制字来确定。数寄存器的控制字来确定。计数器的两个寄存器的格式如计数器的两个寄存器的格式如图图9-169-16。图图9-16Evaluation only.Created
52、 with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.T13T13 T0:T0:计数器长度计数器长度M2M2、M1:M1:设置定时器的设置定时器的4 4种工作方式种工作方式4 4种工作方式及相应输出波形种工作方式及相应输出波形如如图图9-179-17。图图9-17Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspos
53、e Pty Ltd.任何时候都可以设置计数器的长度和工作方式任何时候都可以设置计数器的长度和工作方式,但是必须将,但是必须将命令字写入命令寄存器。命令字写入命令寄存器。如果计数器正在计数如果计数器正在计数,只有在写入启动命令之后,计数器才,只有在写入启动命令之后,计数器才接收新的计数长度并按新的工作方式计数。接收新的计数长度并按新的工作方式计数。若写入计数器的初值为若写入计数器的初值为奇数,奇数,TIMEOUTR*TIMEOUTR*引脚的引脚的方波输出是方波输出是不对称的不对称的。例如例如,初值为,初值为9 9时,计数器输出的时,计数器输出的5 5个脉冲周期个脉冲周期内为高电平,内为高电平,4
54、 4个脉冲周期内为低电平,如个脉冲周期内为低电平,如图图9-189-18所示。所示。图图9-18Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.注意注意:81C55:81C55的计数器初值不是从的计数器初值不是从0 0开始,而从开始,而从2 2开始。这是因为,开始。这是因为,如果选择计数器的输出为如果选择计数器的输出为方波形式方波形式(无论是单方波还是连续(无论是单方波还是连续方波),则规定是从启动计数开始,方波),
55、则规定是从启动计数开始,前一半计数前一半计数输出为输出为高电高电平平,后一半计数后一半计数输出为输出为低电平低电平。如果计数如果计数初值是初值是0 0或或1 1,就无法产生这种方波,就无法产生这种方波。因此。因此81C5581C55计数器计数器的的初值范围初值范围是是3FFFH3FFFH2H2H。如果如果硬要将硬要将0 0或或1 1作为初值写入作为初值写入,其效果将与送入初值,其效果将与送入初值2 2的情况一的情况一样。样。81C5581C55复位后复位后并不预置并不预置计数器的工作方式和长度计数器的工作方式和长度,计数器停止计,计数器停止计数。数。Evaluation only.Create
56、d with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9.3.3 89C519.3.3 89C51与与81C5581C55接口及软件编程接口及软件编程1.1.硬件接口电路硬件接口电路89C5189C51单片机可以和单片机可以和81C5581C55直接连接而不需要任何外加逻辑直接连接而不需要任何外加逻辑 器件。接口电路如器件。接口电路如图图9-199-19所示。所示。89C5189C51单片机单片机P0P0口输出的低口输出的低8 8位地址位地址不需要另外加锁存器不需要
57、另外加锁存器, , 直接与直接与81C5581C55的的AD0AD0AD7AD7相连,既作为低相连,既作为低8 8位地址总线又位地址总线又 作为数据总线,地址锁存控制直接用作为数据总线,地址锁存控制直接用89C5189C51发出的发出的ALEALE信信 号。号。81C5581C55的的CE*CE*端接端接P2.7P2.7,IO/M*IO/M*端与端与P2.0P2.0相连。相连。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty
58、Ltd.图图9-19Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.当当P2.7=0P2.7=0时,若时,若P2.0=0P2.0=0,则访问,则访问81C5581C55的的RAMRAM单元。单元。当当P2.7=0P2.7=0时,时,若若P2.0=1P2.0=1,则访问,则访问81C5581C55的各端口。的各端口。由此可得到图由此可得到图9-199-19中中81C5581C55的的各端口以及各端口以及RAMRAM单元
59、的地址编码单元的地址编码,如,如表表9-49-4所示。所示。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2. 2. 81C5581C55编程举例编程举例8155H8155H( (1) 1) 初始化程序设计初始化程序设计例例9-69-6 若若A A口定义为基本输入方式,口定义为基本输入方式,B B口定义为基本输出方口定义为基本输出方 式,对输入脉冲进行式,对输入脉冲进行2424分频,初始化程序如下:分频,初始化程序
60、如下:START: MOV DPTR, START: MOV DPTR, 7F04H 7F04H ;指针指向定时器低;指针指向定时器低8 8位位MOV A,MOV A,18H18H ;计数初值;计数初值2424送送A,A, MOVX DPTR,AMOVX DPTR,A ;计数初值低;计数初值低8 8位装入定时器位装入定时器INC DPTR INC DPTR ;指针指向定时器高;指针指向定时器高8 8位位MOV A,MOV A,40H 40H ;设定时器连续方波输出;设定时器连续方波输出MOVX DPTR,AMOVX DPTR,A ;计数初值高;计数初值高6 6位装入定时器位装入定时器MOV D
61、PTR,MOV DPTR,7F00H 7F00H ;指向命令;指向命令/ /状态口状态口MOV A,#0C2HMOV A,#0C2H ;设定命令控制字;设定命令控制字MOVX DPTR,AMOVX DPTR,A ;A A口输入,口输入,B B口输出口输出, ,开定时器开定时器Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例9-79-7 读读81C5581C55的的7EF1H7EF1H单元。程序如下:单元。程序如下
62、:MOVMOVDPTR,#7EF1HDPTR,#7EF1H;DPTR;DPTR数据指针指向数据指针指向81C5581C55的的7EF1H7EF1H单元单元MOVX MOVX A,DPTRA,DPTR;7EF1H;7EF1H单元内容单元内容AA例例9-89-8 将立即数将立即数41H41H写入写入81C55 RAM81C55 RAM的的7E20H7E20H单元。程序如下:单元。程序如下:MOV MOV A,#41HA,#41H; ;立即数立即数AAMOV MOV DPTR,#7E20HDPTR,#7E20H;DPTR;DPTR数据指针指向数据指针指向81C5581C55的的7E20H7E20H单
63、元单元MOVX MOVX DPTR,ADPTR,A; ;立即数立即数41H41H送到送到81C55 RAM81C55 RAM的的7E20H7E20H单元单元Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9.4 9.4 用用74LSTTL74LSTTL电路扩展并行电路扩展并行I/OI/O口口 利用利用74LS27374LS273和和74LS24474LS244,将,将P0P0口扩展成简单的输入、输出口口扩展成简单的输
64、入、输出口的电路的电路。 74LS273 74LS273输出端接输出端接8 8个个LEDLED发光二极管,以发光二极管,以显示显示8 8个按钮开关个按钮开关状态状态,某位低电平时二极管发光。,某位低电平时二极管发光。 74LS244 74LS244是缓冲驱动器,扩展输入口,是缓冲驱动器,扩展输入口,接接8 8个按钮开关。个按钮开关。 74LS273 74LS273和和74LS24474LS244的工作受的工作受89C5189C51的的P2.0P2.0、RD*RD*、WR*WR*三条控制三条控制线控制。线控制。电路的工作原理如下电路的工作原理如下: : 当当P2.0=0,WRP2.0=0,WR*
65、 *=0(RD=0(RD* *= =) )选中写选中写74LS27374LS273, 89C5189C51通过通过P0P0口输出数据到口输出数据到74LS27374LS273,;,; 当当P2.0=0,RDP2.0=0,RD* *=0(WR=0(WR* *=1)=1)时选中读时选中读74LS244,74LS244, 某开关按下时某开关按下时则对应位输入为则对应位输入为“0”“0”。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pt
66、y Ltd.图图9-20Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.输出程序段:输出程序段:MOV A,#data MOV A,#data ;数据;数据AAMOV DPTR,#0FEFFHMOV DPTR,#0FEFFH;I/OI/O地址地址DPTRDPTRMOVX DPTR,A MOVX DPTR,A ;WRWR* *为低,数据经为低,数据经74LS27374LS273口输出口输出输入程序段:输入程序段: MO
67、V DPTR,#0FEFFH MOV DPTR,#0FEFFH ;I/OI/O地址地址DPTRDPTR MOVX A,DPTR MOVX A,DPTR;RDRD* *为低,为低,74LS24474LS244端口端口 ;数据读入内部;数据读入内部RAMRAM例例9-99-9 编写程序把按钮开关状态通过编写程序把按钮开关状态通过图图9-209-20中的发光二极管中的发光二极管显示出来。显示出来。DDIS:DDIS:MOV DPTR,#0FEFFH MOV DPTR,#0FEFFH ;输入口地址;输入口地址DPTRDPTRLP:LP:MOVX A,DPTR MOVX A,DPTR ;按钮开关状态读入
68、;按钮开关状态读入A A中中Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.MOVX DPTR,AMOVX DPTR,A ;A A中数据送输出口中数据送输出口SJMP LP SJMP LP ;反复连续执行;反复连续执行9.5 9.5 用用MCS-51MCS-51的串行口扩展并行口的串行口扩展并行口9.5.1 9.5.1 用用74LS16574LS165扩展并行输入口扩展并行输入口图图9-21Evaluation on
69、ly.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例9-10 9-10 从从1616位扩展口读入位扩展口读入5 5组组数据(每组二个字节),并把它数据(每组二个字节),并把它们转存到内部们转存到内部RAM 20HRAM 20H开始的单元中。开始的单元中。MOV R7,#05H MOV R7,#05H ;设置读入组数;设置读入组数MOV R0,#20H MOV R0,#20H ;设置内部;设置内部RAMRAM数据区首址数据区首址START: C
70、LR P1.0START: CLR P1.0;并行置入数据,;并行置入数据,S/LS/L* *=0=0 SETB P1.0 SETB P1.0;允许串行移位,;允许串行移位,S/LS/L* *=1=1 MOV R1,#02H MOV R1,#02H;设置每组字节数,即外扩;设置每组字节数,即外扩 ;74LS16574LS165的个数的个数RXDAT: MOV SCON,#10H RXDAT: MOV SCON,#10H ;设串口方式;设串口方式0 0,允许接收,启动,允许接收,启动WAIT: JNB RI,WAIT WAIT: JNB RI,WAIT ;未接收完一帧,循环等待;未接收完一帧,循
71、环等待CLR RICLR RI ;清;清RIRI标志,准备下次接收标志,准备下次接收Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.MOV A,SBUFMOV A,SBUF;读入数据;读入数据MOV R0,AMOV R0,A;送至;送至RAMRAM缓冲区缓冲区INC R0INC R0;指向下一个地址;指向下一个地址DJNZ R1,RXDATA DJNZ R1,RXDATA ;未读完一组数据,继续;未读完一组数据,继续
72、DJNZ R7,STARTDJNZ R7,START;5 5组数据未读完重新并行置入组数据未读完重新并行置入 ;对数据进行处理;对数据进行处理Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.9.5.2 9.5.2 用用74LS16474LS164扩展并行输出口扩展并行输出口. .74LS16474LS164:8 8位串入并出移位寄存器。位串入并出移位寄存器。 图图9-229-22是是利用利用74LS16474LS16
73、4扩展二个扩展二个8 8位并行输出口位并行输出口的接口电路。的接口电路。图图9-22Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例例9-11 9-11 编写将内部编写将内部RAMRAM单元单元30H30H、31H31H的内容经串行口由的内容经串行口由74LS16474LS164并行输出子程序。并行输出子程序。START: MOV R7,#02HSTART: MOV R7,#02H;设置要发送的字节个数;设置要发送
74、的字节个数 MOV R0,#30H MOV R0,#30H;设置地址指针;设置地址指针 MOV SCON,#00H MOV SCON,#00H ;设置串行口为方式;设置串行口为方式0 0SEND:SEND: MOV A,R0 MOV A,R0 MOV SBUF,A MOV SBUF,A ;启动串行口发送过程;启动串行口发送过程WAIT:WAIT: JNB TI,WAIT JNB TI,WAIT ;1 1帧数据未发完,循环等待帧数据未发完,循环等待 CLR TI CLR TI INC R0 INC R0 ;取下一个数;取下一个数 DJNZ R7,SEND DJNZ R7,SEND ;未完,发完从子程序返回;未完,发完从子程序返回 RETRETEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.