第7章单片机并行IO口的扩展.ppt

上传人:sccc 文档编号:4749296 上传时间:2023-05-13 格式:PPT 页数:75 大小:5.45MB
返回 下载 相关 举报
第7章单片机并行IO口的扩展.ppt_第1页
第1页 / 共75页
第7章单片机并行IO口的扩展.ppt_第2页
第2页 / 共75页
第7章单片机并行IO口的扩展.ppt_第3页
第3页 / 共75页
第7章单片机并行IO口的扩展.ppt_第4页
第4页 / 共75页
第7章单片机并行IO口的扩展.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《第7章单片机并行IO口的扩展.ppt》由会员分享,可在线阅读,更多相关《第7章单片机并行IO口的扩展.ppt(75页珍藏版)》请在三一办公上搜索。

1、,第7章 单片机并行I/O口的扩展7.1 I/O接口扩展概述I/O(输入/输出)接口是MCS-51与外设交换数字信 息的桥梁。MCS-51真正用作I/O口线的只有P1口的8位I/O线和 P3口的某些位线。在多数应用系统中,MCS-51单片机都需要外扩I/O接口电路。,7.1.1 I/O口扩展的原因1.I/O信息的组成(1)数据信息CPU与外设交换的基本信息就是数据信息,数据的传送可采用并行传送(n位同时传送)和串行传送(一位一位地传送)两种形式。(2)状态信息状态信息是指在CPU与外设之间交换数据时的联络信息。CPU通过对外设状态信息的读取,可知其工作状态。了解状态信息是CPU与I/O设备正确

2、进行数据交换的重要条件。(3)控制信息控制信息指CPU发给外设命令信息,CPU通过发送控制信息控制外设的工作。,2.I/O口接口的作用 CPU与I/O设备交换信息情况较为复杂,所以通常I/O设备并不直接与CPU进行信息交换,而是通过相应的输入/输出接口(称为I/O接口)来进行的。I/O接口是CPU和I/O设备之间进行信息交换的中间环节,其主要功能如下:(1)对输入输出数据进行缓冲、隔离和锁存,实现速度匹配。(2)完成信息格式的变换,如串并转换。(3)实现电气特性的匹配。(4)选择设备或地址译码等。,3.单片机I/O扩展的原因 I/O(输入/输出)接口是MCS-51与外设交换数字信息的桥梁,MC

3、S-51系列单片机有4个并行I/O口(P0,P1,P2,P3口),但对一个稍微复杂的应用系统来说,由于P0口和P2口配合使用用于系统扩展、P3口是一个多功能口每个引脚都具有第二功能,所以真正可供用户使用的并行口,只有P1口,况且常常因扩展I2C和SPI等需占用P1口某些引脚,这使用户不得不扩展并行口以满足实际的需要。因此,当在I/O口线不够用的情况下我们需要扩展并行I/O口。,图7-1 并行接口连接CPU与外设示意图,7.1.2 I/O口数据的传递方式MCS-51单片机为了实现数据的输入/输出传送,通常使用以下4种方式传递数据。(1)无条件传送方式:当外设和单片机能够同步工作时,可以采用无条件

4、方式进行传送,即数据可以随时进行传送。(2)查询方式:查询方式又称为有条件传送方式,即数据的传送是有条件的。在进行I/O操作之前,用户要通过软件查询外设是否为数据传送做好准备,只有确认外设为数据传送做好准备。单片机才能执行数据的输入/输出(I/O)操作。,(3)中断方式:当外设和计算机进行数据交换时,外设向单片机发出中断请求。单片机接到中断请求后,就作出响应,暂停正在执行的程序,而转去为设备的数据输入/输出服务。当服务完成后,程序返回,单片机再继续执行被中断的程序。(4)DMA方式:DMA(Direct Memory Access,直接内存存取)中断方式虽提高了CPU的效率,但仍然是通过CPU

5、执行程序来实现数据传送。其缺点是大量的数据在磁盘与内存间交换需大量的时间,高速I/O设备时或成组数据交换时,显得速度太慢。DMA方式就是在外设与内存间直接传送数据,DMA的速度取决于内存的工作速度。,7.1.3 I/O端口的编址方式I/O端口编址是给所有I/O接口中的寄存器编址。I/O端口编址两种方式:独立编址与统一编址。1独立编址方式 I/O寄存器地址空间和存储器地址空间分开编址,但需专门读写I/O的指令和控制信号。2统一编址方式 I/O寄存器与数据存储器单元同等对待,统一编址。不需要专门的I/O指令,直接使用访问数据存储器。的指令进行I/O操作,简单、方便且功能强。,常用的外围I/O接口芯

6、片有:(1)8255:可编程的通用并行接口电路(3个8位I/O口)。(2)8155:可编程的IO/RAM扩展接口电路(2个8位I/O口,1个6位I/O口,256个RAM字节单元,1个14位的减法定时器/计数器)。可与MCS-51单片机直接连接,接口逻辑十分简单。此外,74LS系列的TTL电路也可以作为MCS-51的扩展I/O口,如74LS244、74LS273等。,7.2 简单I/O口的扩展,简单I/O口的扩展是利用74LS273和74LS244,将P0口扩展成简单的输入、输出口的电路。,如图7-2所示74LS273输出端接8个LED发光二极管,以显示8个按钮开关状态,某位低电平时二极管发光。

7、,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”。,图7-2 简单I/O扩展实例,输出程序段:(1)汇编语言MOV A,#data;数据AMOV DPTR,#0FEFFH;I/O地址DPTRMOVX DPTR,A;WR*为低,数据经74LS273口输出(2)C语言#defin

8、e PORT XBYTE0 xFEFF;A=data;PORT=A;,输入程序段:(1)汇编语言 MOV DPTR,#0FEFFH;I/O地址DPTR MOVX A,DPTR;RD*为低,74LS244口,数据读入内部RAM(2)C语言#define PORT XBYTE0 xFEFF;A=PORT;,【例题7-1】编写程序把按钮开关状态通过图7-2中的发光二极管显示出来。(1)汇编语言DDIS:MOV DPTR,#0FEFFH;输入口地址DPTRLP:MOVX A,DPTR;按钮开关状态读入A中MOVX DPTR,A;A中数据送输出口SJMP LP;反复连续执行(2)C语言#define P

9、ORT XBYTE0 xFEFF;while(1)A=PORT;PORT=A;,7.3 8255A可编程并行接口芯片扩展I/O口8255A芯片介绍:8255A是Intel公司生产的可编程并行I/O接口芯片,具有3个8位的并行I/O口,3种工作方式,可通过 编程改变其功能,因而使用灵活方便,通用性强。,7.3.1.内部结构,图7-3 8255A内部编程结构,(1)端口A、B、C,功能和结构上有些差异,PA口:输出锁存和缓冲;输入锁存,PB口:输出锁存和缓冲;输入缓冲,PC口:输出锁存;数据输入缓冲,PC口可在软件的控制下,分为两个4位端口,作为PA口、PB口选通方式操作时的状态控制信号。,(2)

10、A组和B组控制电路,A组:PA口和PC口的上半部(PC7PC4);,B组:PB口和PC口的下半部(PC3PC0),可根据“命 令字”对PC口按位“置1”或“清0”。,(3)数据总线缓冲器线线,三态双向,作为8255A与单片机数据线之间接口,传送数据、指令、控制命令及外部状态信息。,(4)读/写控制逻辑电路线,该电路接收CPU发来的控制信号、RESET、地址信号A1、A0等。对端口进行读写。,各端口的工作状态与控制信号的关系如表7-1所示。,表7-1 8255A端口工作状态选择,图7-4 8255A芯片引脚图,7.3.2 引脚功能,D7D0:三态双向数据线,与单片机数据总线连接,CS*:片选信号

11、线,低电平有效,表示本芯片被选中,RD*:读出信号线,控制8255A中数据的读出高,WR*:写入信号线,控制向8255A数据的写入。,Vcc:+5V电源。,PA7PA0:A口输入/输出线。,PB7PB0:B口输入/输出线。,PC7PC0:C口输入/输出线。,A1、A0:地址线,用来选择8255A内部的4个端口。,7.3.3 8255A的三种工作方式,1.方式0,基本的输入/输出方式。,外设的I/O数据可在8255A的各端口得到锁存和缓冲,MCS-51可对8255A进行数据的无条件传送。,例如:从口线读入一组开关状态,向端口输出数字量,控制一组指示灯的亮、灭。不需要联络信号,,基本功能为:,(1

12、)具有两个8位端口(A、B)和两个4位端口(C的上半部分和下半部分)。,(2)任一个端口都可以设定为输入或输出,各端口的输入、输出可构成16种组合。,(3)数据输出锁存,输入不锁存。,例 假设8255A的控制字寄存器地址为FF7FH,则令A口和C口的高4位工作在方式0输出,B口和C口的低4位工作于方式0输入,初始化程序:,MOV DPTR,#0FF7FH;控制字寄存器地址送DPTR MOV A,#83H;方式控制字83H送AMOVX DPTR,A;83H送控制字寄存器,2.方式1,选通输入/输出工作方式。A口和B口通常用于I/O数据传送,C口用作A口和B口的联络线,以中断方式传送数据。,(1)

13、方式1输入,控制联络信号如下图所示,STB*与IBF构成了一对应答联络信号,联络信号的功能如下图:,STB*:选通输入,是由输入外设送来的输入信号。IBF:输入缓冲器满,高电平有效。表示数据已送入 8255A的输入锁存器,它由STB*信号的下降沿置 位,由信号的上升沿使其复位,INTR:中断请求信号,高电平有效。由8255A输出,向单片机发中断请求。,INTE A:A口中断允许,由PC4控制,INTE B:B口中断允许,由PC2控制。,A口的方式1输入工作方式见下图。,(2)方式1输出,如下图所示。OBF*与ACK*构成了一对应答联络信号,各信号的功能如下:,OBF*:输出缓冲器满信号,825

14、5A给外设的联络信号,外设可以将数据取走。,ACK*:外设的响应信号,外设已将数据取走。,INTR*:中断请求信号。表示该数据已被外设取走,请求单片机继续输出下一个数据。,INTE A:中断允许,由PC6控制。INTE B:中断允许,由PC2控制。,B口的方式1输出如下图所示:,3.方式2,只有A口才能设定为方式2。下图为方式2工作示意图。,在方式2下,PA7PA0为双向I/O总线。,当输入时,PA7PA0受STBA*和IBFA控制,其工作过程和方式1输入时相同;,当输出时,PA7PA0受OBFA*、ACKA*控制,其工作过程和方式1输出时相同。,7.3.4 8255A的控制字,8255A有三

15、种工作方式:,(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口的上半部分(PC7 PC4)输出,C口的下半部分(PC3PC0)输入。,2.C口按位置位/复位控制字,可对C口8位中的任一位置“1”或清“0”。用于位控。,【例题7-2

16、】如下图是在PROTEUS软件中绘制的用8051扩展1片8255的电路,8255的PA口接输出设备(八个发光二极管)、PB口接输入设备(八个开关)PC口不用,均采用方式0,将8255 B口输入的开关置的数据从A口输出,要求开关合上的对应LED亮,编出相关汇编语言和C语言程序段。,分析:由图7-8可知,P2.7=0才选中该片8255,A1 A0(P2.1 P2.0)为00 01对应PA口和PB口、为11时对应控制口。其余地址写1,A口、B口、控制口地址分别为7CFFH、7DFFH、7FFFH。设定PA口方式0输出,B口方式0输入,控制字10000010B82H,编程如下:(1)汇编语言MOV D

17、PTR,#7FFFH;DPTR指向控制口MOV A,#82H MOVX DPTR,A;控制字写入控制口MOV DPTR,#7DFFH;DPTR指向PB口MOVX A,DPTR;从PB口输入数据CPL A;开关合上的对应LED亮DEC DPL;DPTR指向PA口MOVX DPTR,A;从PA口输出SJMP$,(2)C语言#include#include#define COM8255 XBYTE0 x7FFF#define PA8255 XBYTE0 x7CFF#define PB8255 XBYTE0 x7DFF#define PC8255 XBYTE0 x7EFF#define uchar u

18、nsigned charmain()char a;COM8255=0 x82;/*写方式控制*/a=PB8255;/*B口输入*/PA8255=a;/*A口输出*/,【例题7-3】在8255的PC7引脚接一个LED,用置位/复位控制字使其闪烁。8255和单片机的连接同例7-2。由图可知,8255的控制口地为7FFFH(1)汇编语言MOV DPTR,#7FFFH;指向控制口MOV A,#80H;先写方式控制字MOVX DPTR,AMOV A,#7FH;使PC7位置位PNOT:MOVX DPTR,AACALL DAYXRL A,#01H;使PC7位变反SJMP PNOT,(2)C语言#includ

19、e#include#define COM8255 XBYTE0 x7FFF#define uchar unsigned charmain()uchar i;COM8255=0 x80;/*设置工作方式*/while(1)COM8255=0 x7f;/*使PC7位置位*/for(i=0;i5000;i+);/*延时*/COM8255=0 x7e;/*使PC7位复位*/for(i=0;i5000;i+);/*延时*/,7.3.5 单片机和8255A的接口举例,1.硬件接口电路,如下图是8031扩展1片8255A的电路图。74LS373是地址锁存器,P0.1、P0.0经74LS373与8255A的地

20、址线A1、A0连接;P0.7经74LS373与片选端相连,其他地址线悬空。,2.端口地址确定,图中8255A各端口寄存器的地址为:,A口:FF7CHB口:FF7DHC口:FF7EH控制寄存器:FF7FH,3.软件编程,例:要求8255A工作在方式0,且A口作为输入,B口、C口作为输出,程序如下:,MOV A,#90H;A口方式0输入,B口、;C口输出的控制字送AMOVDPTR,#0FF7FH;控制寄存器地址DPTRMOVX DPTR,A;方式控制字控制寄存器,MOVDPTR,#0FF7CH;A口地址DPTRMOVX A,DPTR;从A口读数据MOV DPTR,#0FF7DH;B口地址DPTR,

21、MOV A,#DATA1;要输出的数据DATA1AMOVX DPTR,A;将DATA1送B口输出MOV DPTR,#0FF7EH;C口地址DPTR,MOV A,#DATA2;DATA2AMOVX DPTR,A;将数据DATA2送C口输出,例:对端口C的置位/复位。,把PC5置位,控制字为0BH,MOV R1,#7FH;控制口地址R1 MOV A,#0BH;控制字AMOVX R1,A;控制字控制口,PC5=1,把PC5复位,控制字为0AH,MOV R1,#7FH;控制口地址R1 MOV A,#0AH;控制字AMOVX R1,A;控制字控制口,PC5=0,7.4 8155可编程并行接口芯片扩展I/

22、O口,7.4.1 8155芯片介绍,1.8155的逻辑结构,如下图所示。,2.8155的引脚功能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对8155 I/O端口的控制,(1)8155各端口地址分配,(2)8155的命令字,(3)8155的状态字,7.4.2 8155的工作方式,1.存储器方式,对片内RAM单元进行读写,若IO/M*=0和CE*=0,则通过AD7AD

23、0上的地址对RAM存储器任一单元读写。,2.I/O方式,8155H的I/O方式分为基本I/O和选通I/O两种工作方式,如表9-3所示。可对片内任一寄存器读写,端口地址由A2、A1、A0三位决定(见表9-2)。,表7-2 C口在两种I/O工作方式下各位定义,(1)基本I/O方式,(2)选通I/O方式(见右图),a.选通I/O输入b.选通I/O输出,3.内部定时器/计数器及使用,14位的减1定时器/计数器,计数长度和计数方式由写入计数寄存器的控制字来确定。,计数器的两个寄存器的格式如下图。,T13T0:计数器长度,M2、M1:设置定时器的4种工作方式,4种工作方式及相应输出波形如下图。,7.4.3

24、 单片机与8155接口及软件编程,1.硬件接口电路,2.编程举例8155H,(1)初始化程序设计,例 若A口定义为基本输入方式,B口定义为基本输出方 式,对输入脉冲进行24分频,初始化程序如下:,START:MOV DPTR,7F04H;指针指向定时器低8位MOV A,18H;计数初值24送A,MOVX DPTR,A;计数初值低8位装入定时器,INC DPTR;指针指向定时器高8位MOV A,40H;设定时器连续方波输出MOVX DPTR,A;计数初值高6位装入定时器,MOV DPTR,7F00H;指向命令/状态口MOV A,#0C2H;设定命令控制字MOVX DPTR,A;A口输入,B口输出

25、,开定时器,MOVX DPTR,A;A中数据送输出口SJMP LP;反复连续执行,7.5 单片机串行口到并行口的转换,7.5.1 用74LS165扩展并行输入口,例 从16位扩展口读入5组数据(每组二个字节),并把它们转存到内部RAM 20H开始的单元中。,MOV R7,#05H;设置读入组数MOV R0,#20H;设置内部RAM数据区首址,START:CLR P1.0;并行置入数据,S/L*=0 SETB P1.0;允许串行移位,S/L*=1 MOV R1,#02H;设置每组字节数,即外扩;74LS165的个数,RXDAT:MOV SCON,#10H;设串口方式0,允许接收,启动,WAIT:

26、JNB RI,WAIT;未接收完一帧,循环等待CLR RI;清RI标志,准备下次接收,MOV A,SBUF;读入数据MOV R0,A;送至RAM缓冲区,INC R0;指向下一个地址,DJNZ R1,RXDATA;未读完一组数据,继续DJNZ R7,START;5组数据未读完重新并行置入;对数据进行处理,7.5.2 用74LS164扩展并行输出口.,74LS164:8位串入并出移位寄存器。,下图是利用74LS164扩展二个8位并行输出口的接口电路。,例 编写将内部RAM单元30H、31H的内容经串行口 由74LS164并行输出子程序。,START:MOV R7,#02H;设置要发送的字节个数 M

27、OV R0,#30H;设置地址指针 MOV SCON,#00H;设置串行口为方式0,SEND:MOV A,R0 MOV SBUF,A;启动串行口发送过程,WAIT:JNB TI,WAIT;1帧数据未发完,循环等待 CLR TI INC R0;取下一个数 DJNZ R7,SEND;未完,发完从子程序返回 RET,7.6 日历时钟接口芯片及应用,7.6.1 并行接口日历时钟芯片DS12887,DS12887是内置锂电池的实时日历时钟芯片,它可以产生秒、分、时、星期、日、月及年等7个时标,并有供用户使用的114B带掉电保护的RAM,可以通过编程读取和修改这些时标,也可以编程产生定时间隔时间中断,使用

28、十分方便。,1.DS12887芯片的引脚,2.片内结构和寄存器,DS12887的内部有10B时标寄存器、4B状态寄存器、114B带掉电保护的RAM。其地址分配如右图所示。,1)时标寄存器 10个时标寄存器可用二进制表示,也可用BCD码表示。其功能和数值范围如下表所示。,2)寄存器0AH寄存器0AH的格式如下图所示。,UIP:更新周期进行标志位,UIP=1时,芯片正处于或将开始新周期,此期间不允许读写时标寄存器。DV2DV0:为010时晶振工作,其他组合时晶振停止。RS3RS0:中断周期时间和SQW输出频率选择位。,3)寄存器0BH寄存器0BH中的格式如下图所示。,SET:为1时禁止更新。为0时

29、正常。PIE:为1时周期中断允许。AIE:为1时警报中断允许。UIE:为1时更新结束中断允许。SQWE:为1时方波输出允许。DM:为0时时间为BCD码,为1时为二进制。24/12:为1时是24小时进制。为0时是12小时进制。DSE:置0。,4)寄存器0CH寄存器0CH的格式如下图所示。,IRQF:中断申请标志。PF:周期中断标志。AF:警报中断标志。UF:更新结束中断标志。,5)寄存器0DH寄存器0DH格式如下图所示。,VRT:为0时表示内部锂电池耗尽。,3.DS12887与89C52的接口电路,下图是89C52与DS12887的接口电路,DS12887的片选信号接P2.4,即P2.4=0时,

30、选中DS12887,设片内时标寄存器和掉电RAM的地址范围是:0E400H0E47FH。,时标寄存器设置的步骤为:(1)寄存器B的SET位置1,芯片停止工作。(2)时标寄存器置初值。秒、分、时、星期、年、月、日时标寄存器的地址顺序为:E400H、E402H、E404H、E406H、E407H、E408H、E409H。(3)读寄存器C,以消除已有的中断标志。(4)读寄存器D,使片内寄存器和RAM数据有效。(5)寄存器B的SET位清0,启动DS12887开始工作。,7.7 VF与FV接口,近年来,慢速的A/D转换,多采用V/F(电压/频率式)转换器,D/A转换器也多采用和F/V(频率/电压)式等,

31、它们是把电压和一定频率的脉冲进行转换,因为单片机内都有定时/计数器,测量脉冲频率和产生一定频率的脉冲都是很方便的。这样的芯片如LM331、AD651、LMX31、VFC32等。和使用A/D转换一样,先用传感器把被测的物理量如温度、湿度、压力等变成电压量,接入V/F芯片,V/F芯片外围按资料提供的电路,接必要的电阻电容,芯片输出接定时/计数器,测量出频率,经过换算得物理量数值。,7.7.1 VF转换,V/F转换器是把电压信号转换成频率信号的器件。它具有应用电路简单、较好的精度、较好的线性度且频率变化动态范围宽、抗干扰能力强、价格较低等诸多优点,因而在输入通道中广泛采用。在一些高精度、远距离数据传输而速度要求不高的场合取代A/D转换器,从而获得较好的性能价格比。,7.7.2 FV转换,频率信号是一种串行数据,它具有很高的信噪抑制比,因此采用频率信号输出占用线数少、易于远距离传输,所以在输出通道中常采用频率信号。但某些执行机构所需控制信号为电压信号,为此,这类输出通道中需设置频压(F/V)转换器。,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号