[信息与通信]第9章MCS51扩展IO接口的设计.ppt

上传人:sccc 文档编号:5615545 上传时间:2023-08-02 格式:PPT 页数:89 大小:6.09MB
返回 下载 相关 举报
[信息与通信]第9章MCS51扩展IO接口的设计.ppt_第1页
第1页 / 共89页
[信息与通信]第9章MCS51扩展IO接口的设计.ppt_第2页
第2页 / 共89页
[信息与通信]第9章MCS51扩展IO接口的设计.ppt_第3页
第3页 / 共89页
[信息与通信]第9章MCS51扩展IO接口的设计.ppt_第4页
第4页 / 共89页
[信息与通信]第9章MCS51扩展IO接口的设计.ppt_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《[信息与通信]第9章MCS51扩展IO接口的设计.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]第9章MCS51扩展IO接口的设计.ppt(89页珍藏版)》请在三一办公上搜索。

1、第六讲,在利用DS1235对MCS-51系列的单片机进行扩展时,基本的连接为:OE与RD控制相连;WE与WR控制相连;CE与P2.7相连;A0-A7与锁存器74LS373的Q0-Q7相连;A8-A14分别与P2.0-P2.6相连;DS1235的基本地址范围:0000H7FFFH。,利用DS1235扩展一个32KB的数据存储器,复习,MCS-51单片机与DS1235芯片的接口,DS1235的基本地址范围:0000H7FFFH,P0连接:74LS373的1D-8DDS1235的DQ1-DQ8,P2连接片选和DS1235的A8-A14,例1:从DS1235的地址单元2000H读取数据到累加器ACC中

2、。例2:从累加器ACC向DS1235的地址为2000H的单元写入数据。读取数据方法1READB:MOV DPTR,#2000H MOVX A,DPTR读取数据方法2READB:MOV P2,#20H MOV R0,#00H MOVX A,R0写入方法1 WRITE:MOV DPTR,#2000H MOVX DPTR,A写入方法2 WRITE:MOV P2,#20H MOV R0,#00H MOVX R0,A,P2口的地址由单片机自动产生,P2口的地址由P2口以I/O方式产生,P2口的地址由单片机自动产生,P2口的地址由P2口以I/O方式产生,DS1235数据存储单元的操作方法,第9章 MCS-

3、51扩展I/O接口的设计9.1 I/O接口扩展概述I/O(输入/输出)接口是MCS-51与外设交换数字信 息的桥梁。I/O扩展也属于系统扩展的一部分。MCS-51真正用作I/O口线的只有P1口的8位I/O线和 P3口的某些位线。在多数应用系统中,MCS-51单片机都需要外扩I/O接口电路。,9.1.1 I/O接口的功能I/O接口电路应满足以下要求:1.实现和不同外设的速度匹配大多数的外设的速度很慢,无法和s量级的单片机速度相比。单片机只有在确认外设已为数据传送做好准备的前提下才能进行I/O操作。想知道外设是否准备好,需I/O接口电路与外设之间传送状态信息。,2.输出数据锁存由于单片机工作速度快

4、,数据在数据总线上保留的时 间十分短暂,无法满足慢速外设的数据接收。I/O电路应具有数据输出锁存器,以保证接收设备接 收。3.输入数据三态缓冲输入设备向单片机输入数据时,但数据总线上面可能“挂”有多个数据源,为不发生冲突,只允许当前正 在进行数据传送的数据源使用数据总线,其余的应 处于隔离状态。,9.1.2 I/O端口的编址首先清楚I/O接口(Interface)和I/O端口(Port)的概念。I/O端口:简称I/O口,指具有端口地址的寄存器或 缓冲器。I/O接口:是指单片机与外设间的I/O接口芯片。一个I/O接口芯片可以有多个I/O端口,分为:(1)数据口(2)命令口(3)状态口I/O端口编

5、址是给所有I/O接口中的寄存器编址。,I/O端口编址两种方式:独立编址与统一编址。1独立编址方式I/O寄存器地址空间和存储器地址空间分开编址,但 需专门读写I/O的指令和控制信号。,2.统一编址方式I/O寄存器与数据存储器单元同等对待,I/O接口共用存储器的地址空间,每个I/O端口视为一个存储单元。统一编址。不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强。MCS-51使用统一编址的方式,MCS-51单片机有片内I/O接口和扩展I/O接口。片内I/O接口寄存器在SFR中,使用片内数据存储器空间,扩展I/O接口使用片外数据存储器地址空间:输出指令:输入指令:

6、片内寻址:MOV P1,A MOV A,P1片外寻址:MOVX DPTR,A MOVX A,DPTR MOVX R0,A MOVX A,R0每一接口芯片中的一个功能寄存器(端口)的地址就 相当于一个RAM单元。,9.1.3 I/O数据的几种传送方式为实现和不同的外设的速度匹配,I/O接口必须根据 不同外设选择恰当的I/O数据传送方式。I/O数据传送的几种传送方式是:(1)同步传送(2)异步传送(3)中断传送。,1.同步传送方式(无条件传送)已知I/O设备准备就绪,可直接进行数据传送。最典型的同步传送就是单片机和外部数据存储器之间的数据传送。具有变化缓慢的数据信号的设备。如:指示灯、数码管等;,

7、2.查询传送方式(条件传送,异步式传送)先查询I/O设备当前状态,若准备就绪,则交换数据,否则循环查询状态。优点:通用性好,硬件连线和查询程序十分简单,缺点:效率不高。为提高效率,通常采用中断传送方式。,1)输出:P1(8位),接打印机数据口;2)输入:P3.1(1位),接打印机的“忙”信号低电平表示状态“忙”,查询方式 送数据或发命令前先检查设备状态.,例:打印机的“忙”状态,3.中断传送方式外设准备好后,发中断请求,单片机进入与外设数 据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。工作效率 高。.如何实现I/O接口的扩展。Intel公司的配套可编程 I/O接口芯

8、片的种类齐全,为扩展I/O接口提供 了很大的方便。,3.中断传送方式 CPU不主动查询外设,只执行自己的程序,当外设准备好需要传送数据时,主动提出申请,(突发的),若CPU准于请求,(响应),放下正在执行的程序,去传送外设的数据。,4.直接存储器访问方式:(DMADirect Memory Access)用于计算机与高速外设进行大批量数据交换,由DMA控制器接管总线控制权,RAM与外设之间直接数据传输,不需CPU的介入。,常用的外围I/O接口芯片有:(1)8255A:可编程的通用并行接口电路(3个8位I/O口)。(2)8155H:可编程的IO/RAM扩展接口电路(2个8位I/O口,1个6位I/

9、O口,256个RAM字节单元,1个14位的减法定时器/计数器)。可与MCS-51单片机直接连接,接口逻辑十分简单。此外,74LS系列的TTL电路也可以作为MCS-51的扩展I/O口,如74LS244、74LS273等。,最后介绍利用串行口来扩展并行I/O口。9.2 MCS-51与可编程并行I/O芯片8255A的接口9.2.1 8255A芯片介绍8255A是Intel公司生产的可编程并行I/O接口芯片,具有3个8位的并行I/O口,3种工作方式,可通过 编程改变其功能,因而使用灵活方便,通用性强。1.引脚说明40只引脚,双列直插式封装,引脚功能如下:,8255是一个通用可编程接口电路。其具有的资源

10、为:三个可编程的8位并行I/O口PA、PB和PC口;PC口可以按位进行操作。,8255A的引脚封装图,数据总线,PA口,PB口,PC口,控制总线,引脚说明,D7D0:三态双向数据线,与单片机数据总线连接,CS*:片选信号线,低电平有效,表示本芯片被选中,RD*:读出信号线,控制8255A中数据的读出高,WR*:写入信号线,控制向8255A数据的写入。,Vcc:+5V电源。,PA7PA0:A口输入/输出线。,PB7PB0:B口输入/输出线。,PC7PC0:C口输入/输出线。,A1、A0:地址线,用来选择8255A内部的4个端口。,89C51的P0口将信息传送的PA口,至少需要哪两步?,典型应用电

11、路,2.内部结构,(1)端口A、B、C,功能和结构上有些差异,PA口:输出锁存和缓冲;输入锁存,PB口:输出锁存和缓冲;输入缓冲,PC口:输出锁存;数据输入缓 冲,PC口可在软件的控制下,分为两个4位端口,作为PA口、PB口选通方式操作时的状态控制信号。,(2)A组和B组控制电路,A组:PA口和PC口的上半部(PC7PC4);,B组:PB口和PC口的下半部(PC3PC0),可根据“命 令字”对PC口按位“置1”或“清0”。,(3)数据总线缓冲器线,三态双向,作为8255A与单片机数据线之间接口,传送数据、指令、控制命令及外部状态信息。,(4)读/写控制逻辑电路线,该电路接收CPU发来的控制信号

12、、RESET、地址信号A1、A0等。对端口进行读写。,表9-1 8255A端口工作状态选择,各端口的工作状态与控制信号的关系如表9-1所示。,复 习,2.内部结构,表9-1 8255A端口工作状态选择,各端口的工作状态与控制信号的关系如表9-1所示。,第七讲,例题1:,例:求8255口地址:解:A口;B口;C口;控制口。,ABi:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0A口:0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 7F00HB口:0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 7F01HB口:0 1 1 1 1 1 1

13、1 0 0 0 0 0 0 1 0 7F02H控制口:0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 7F03H,PIOS:MOV DPTR,#7F03H;控制口地址 MOV A,#86H;写控制字 MOVX DPTR,A;设工作方式,例题2:试将立即数86H写入控制字寄存器,9.2.2 工作方式选择控制字及C口置位/复位控制字,9.2.2 工作方式选择控制字及C口置位/复位控制字,8255A有三种工作方式:,(1)方式0:基本输入输出;,(2)方式1:选通输入输出;,(3)方式2:双向传送(仅A口有)。,1.工作方式选择控制字,三种工作方式由方式控制字来决定。控制字格式如下。

14、,可将8255A编程为:A口方式0输入,B口方式1输出,C口的上半部分(PC7 PC4)输出,C口的下半部分(PC3PC0)输入。,写入工作方式控制字95H,?,如何将95H控制字写入控制寄存器呢?,例 假设8255A的控制字寄存器地址为FF7FH,初始化程序:,MOV DPTR,#0FF7FH;控制字寄存器地址送DPTR MOV A,#95H;方式控制字95H送AMOVX DPTR,A;83H送控制字寄存器,2.C口按位置位/复位控制字,可对C口8位中的任一位置“1”或清“0”。用于位控。,例如:控制字07H写入控制口,置“1”PC3;08H写入控制口,清“0”PC4。,9.2.3 8255

15、A的三种工作方式,1.方式0,基本的输入/输出方式。,外设的I/O数据可在8255A的各端口得到锁存和缓冲,例如:从口线读入一组开关状态,向端口输出数字量,控制一组指示灯的亮、灭。不需要联络信号,,A口、B口、C口均为数据I/O。输出锁存,输入三态,不用联络信号。适用于无条件或查询方式的数据传送。,例 假设8255A的控制字寄存器地址为FF7FH,则令A口和C口的高4位工作在方式0输出,B口和C口的低4位工作于方式0输入,初始化程序:,MOV DPTR,#0FF7FH;控制字寄存器地址送DPTR MOV A,#83H;方式控制字83H送AMOVX DPTR,A;83H送控制字寄存器,开关量输入

16、,显示输出,举例:8255A和MCS-51单片机的接口,开关输入量显示,例1:在上图所示的8255与单片机的连接电路中,8255A的PC口(7FFEH)作为开关量的输入;8255A的PA口(7FFCH)作为信号的输出;要求8个数码管显示PC口输入的外部信号状态。8255A的工作方式字设定:由题意可知8255的工作方式字应该为:89H,?,流程图:,ORG 0000H MOV DPTR,#7FFFH MOV A,#89H MOVX DPTR,ALOOP:MOV DPTR,#7FFEH MOVX A,DPTR MOV DPTR,#7FFCH MOVX DPTR,A SJMP LOOP END,写命

17、令字,送入命令/状态寄存器,8255的C口数据送入ACC,ACC数据写入8255的A口,循环执行,程序清单,2.方式1,选通输入/输出工作方式。A口和B口通常用于I/O数据传送,C口用作A口和B口的联络线,以中断方式传送数据。,(1)方式1输 入,控制联络信号如图9-5所示,STB*与IBF构成了一对应答联络信号,联络信号的功能如下图:,STB*:选通输入,是由输入外设送来的输入信号。IBF:输入缓冲器满,高电平有效。表示数据已送入 8255A的输入锁存器,它由STB*信号的下降沿置 位,由信号的上升沿使其复位.,INTR:中断请求信号,高电平有效。由8255A输出,向单片机发中断请求。,IN

18、TE A:A口中断允许,由PC4控制,INTE B:B口中断允许,由PC2控制。,A口的方式1输入工作方式见图9-6。,(2)方式1输出,如图9-7所示。OBF*与ACK*构成了一对应答联络信号,各信号的功能如下:,OBF*:输出缓冲器满信号,8255A给外设的联络信号,外设可以将数据取走。,ACK*:外设的响应信号,外设已将数据取走。,INTR*:中断请求信号。表示该数据已被外设取走,请求单片机继续输出下一个数据。,INTE A:中断允许,由PC6控制。INTE B:中断允许,由PC2控制。,B口的方式1输出如图9-8所示:,3.方式2,只有A口才能设定为方式2。图9-9为方式2工作示意图。

19、,在方式2下,PA7PA0为双向I/O总线。,当输入时,PA7PA0受STBA*和IBFA控制,其工作过程和方式1输入时相同;,当输出时,PA7PA0受OBFA*、ACKA*控制,其工作过程和方式1输出时相同。,复 习,开关量输入,显示输出,MOV DPTR,#7FFFH MOV A,#89H MOVX DPTR,A,初始化,MOV DPTR,#7FFEHMOVX A,DPTR,将C口的数据读入,MOV DPTR,#7FFCH MOVX DPTR,A,将数据送A口,第八讲,9.2.4 MCS-51单片机和8255A的接口,1.硬件接口电路,如图9-10是8031扩展1片8255A的电路图。74

20、LS373是地址锁存器,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口作为输出,程序如下:,MOV A,#90H;A口方式0输入,B口、;C口输出,的控制字送AMOVDPTR,#0FF7FH;控制寄存器地址DPTRMOVX DPTR,A;方式控制字控制寄存器,MOVDPTR,#0FF7CH;A口地址DPT

21、RMOVX A,DPTR;从A口读数据MOV DPTR,#0FF7DH;B口地址DPTR,MOV A,#DATA1;要输出的数据DATA1AMOVX DPTR,A;将DATA1送B口输出MOV DPTR,#0FF7EH;C口地址DPTR,MOV A,#DATA2;DATA2AMOVX DPTR,A;将数据DATA2送C口输出,例9-2 对端口C的置位/复位。,把PC5置位,控制字为0BH,MOV R1,#7FH;控制口地址R1 MOV A,#0BH;控制字AMOVX R1,A;控制字控制口,PC5=1,把PC5复位,控制字为0AH,MOV R1,#7FH;控制口地址R1 MOV A,#0AH;

22、控制字AMOVX R1,A;控制字控制口,PC5=0,9.3.1 8155H芯片介绍,1.8155H的逻辑结构,如图9-11所示。,9.3 MCS-51单片机与8155H的接口,地址/数据线AD0AD7(8条):是低8位地址线和数据线的共用输入总线,常和MCS-51单片机的P0口相连,用于分时传送地址和数据;PA0PA7、PB0PB7:为A、B口线,用于和外设之间传递数据;PC0PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线;CS:片选线,低电平有效。RESET:复位线,通常与单片机的复位端相连。ALE:地址锁存线,高电平有效。IO/M:RAM或I/O口的选择线。当为0时

23、,选中8155的256 B RAM;当为1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。,8155各引脚的功能为:,RD和WR:读/写线,控制8155的读、写操作。TMRIN(TI):定时/计数器的脉冲输入端。TMROUT(TO):定时/计数器的输出信号端。VCC:电源端。GND:接地端。,3.CPU对8155H I/O端口的控制,(1)8155H各端口地址分配,(2)8155H的命令字,(3)8155H的状态字,9.3.2 8155H的工作方式,1.存储器方式,对片内RAM单元进行读写,若IO/M*=0和CE*=0,则通过AD7AD0上的地址对RAM存储器任一单元读写

24、。,2.I/O方式,8155H的I/O方式分为基本I/O和选通I/O两种工作方式,如表9-3所示。可对片内任一寄存器读写,端口地址由A2、A1、A0三位决定(见表9-2)。,表9-3 C口在两种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.3 MCS-51与8155

25、H接口及软件编程,1.MCS-51与8155H的硬件接口电路,2.8155H的编程举例8155H,(1)初始化程序设计,例9-3 若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 DP

26、TR,A;A口输入,B口输出,开定时器,实验一 8155应用,【实验】8155I/O的用法;查找相关资料,完成8155与8051连接电路,同时按右图将8155 I/O口接上输入/输出线路。【实验要求】将A口,B口设为输出,C口设为输入,PB0 口 输出反相后,一路加PC0端一路加到TIMER IN 端。采用proteus软件完成软仿真,实验时间待定。【实验目的】用来验证明8155的基本用法。,复 习,三态门,三态门:是指逻辑门的输出除有高、低电平两种状态外,还有第三种状态高阻状态的门电路 高阻态相当于隔断状态。三态门都有一个EN控制使能端,来控制门电路的通断。可以具备这三种状态的器件就叫做三态

27、.举例来说:RAM里面的一个存储单元,读写控制线处于低电位时,存储单元被打开,可以向里面写入;当处于高电位时,可以读出,但是不读不写,就要用高电阻态,既不是5v,也不是0v.,第九讲,9.4 用74LSTTL电路扩展并行I/O口,当P2.0=0,WR*=0(RD*=)选中写74LS273,8031通过P0口输出数据到74LS273;,当P2.0=0,RD*=0(WR*=1)时选中读74LS244,某开关按下时则对应位输入为“0”。,输出程序段:MOV A,#data;数据AMOV DPTR,#0FEFFH;I/O地址DPTRMOVX DPTR,A;WR*为低,数据经74LS273口输出,输入程

28、序段:MOV DPTR,#0FEFFH;I/O地址DPTR MOVX A,DPTR;RD*为低,74LS244口数据读入内部RAM,例9-6 编写程序把按钮开关状态通过图9-20中的发光二极管显示出来。程序如下:,DDIS:MOV DPTR,#0FEFFH;输入口地址DPTRLP:MOVX A,DPTR;按钮开关状态读入A中 MOVX DPTR,A;A中数据送输出口 SJMP LP;反复连续执行,9.5 用MCS-51的串行口扩展并行口,9.5.1 用74LS165扩展并行输入口(实现的功能?),一:(1)74ls165 的引脚;(2)74ls165并行置入数据;(3)允许串行移位;二:单片机

29、如何接收74ls165的数据?,why,一:(1)74ls165并行置入数据;(2)允许串行移位,MOV SCON,#10H;设串口方式0,允许接收,启动,二:单片机如何接收74ls165的数据?,例9-7 从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;

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

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号