第七章-MCS-51单片机的并行接口(上)要点.ppt_第1页
第七章-MCS-51单片机的并行接口(上)要点.ppt_第2页
第七章-MCS-51单片机的并行接口(上)要点.ppt_第3页
第七章-MCS-51单片机的并行接口(上)要点.ppt_第4页
第七章-MCS-51单片机的并行接口(上)要点.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

第7章MCS-51单片机的并行接口,7.1MCS-5l内部IO口及其应用7.2MCS-5l并行IO口的扩展()7.3MCS-51内部定时计数器及其应用7.4并行口应用单片机显示键盘系统,1,并口是相对于串口而言的。,并行接口并行通信:各位数据都是并行传输的,它以字节(或字)为单位与I/O设备或被控对象进行数据交换。并行通信由并行接口来完成,并行接口是连接CPU与并行外设的通道。特点:传输速度快;硬件开销大;只适合近距离传输。一个并行接口中包括状态信息、控制信息和数据信息。,状态信息表示外设当前所处的工作状态。例如:准备好信号表示输入设备已经准备好信息;忙信号(BUSY)表示输出设备正在输出信息,等于指示CPU要处于等待状态。控制信息控制信息是由CPU发出的,用于控制外设接口的工作方式以及外设的启动和停机信息等。数据信息CPU与并行外设数据交换的内容。状态信息、控制信息和数据信息,通常都是通过数据总线传送,这些信息在外设接口中分别存取在不同的端口中。对于一个外设接口,常常需要几个端口才能满足和协调外部设备的工作与要求,图10.1是一个典型的并行接口与CPU、外设的连接图。,图10.1并行接口与CPU、外设的连接,控制寄存器,状态寄存器,输入缓冲寄存器,输出缓冲寄存器,CPU,总线系统,输,入,设,备,输,出,设,备,数据总线,输出数据准备好,输入数据准备好,中断请求,地址,译码器,复位,地址总线,AEN,CS,A,0,A,1,IOR,IOW,输入数据,输入数据准备好,输入应答,输出数据,输出数据准备好,输出应答,2.并行接口的组成状态寄存器状态寄存器用来存放外设的信息,CPU通过访问这个寄存器来了解某个外设的状态。控制寄存器并行接口中有一个控制寄存器,CPU对外设的操作命令都寄存在控制寄存器中。数据缓冲寄存器在并行接口中还设置了输入缓冲寄存器和输出缓冲寄存器,缓冲器是用来暂存数据,可以保证输入,输出数据的可靠性。因为外设与CPU交换数据,CPU的速度远远高于外设的速度。,7.1MCS-5l内部IO口及其应用,6,51单片机内部有4个8位双向IO(输入输出)口。它们的内部结构图在前面作过介绍。从特性上看,这4个端口还有所差别。,P0口:作一般I/O口;低8位地址/数据分时复用功能。P1口:作一般I/O接口。P2口:作一般I/O接口;高8位地址。P3口:作一般I/O接口;每根口线有第二功能。,I/O接口的功能是:,2、对输入设备的三态缓冲外设传送数据时要占用总线,不传送数据时必须对总线呈高阻状态。利用I/O接口的三态缓冲功能,可以实现I/O设备与数据总线的隔离,便于其它设备的总线挂接。,1、对单片机输出的数据锁存锁存数据线上瞬间出现的数据,以解决单片机与I/O设备的速度协调问题。,3、信号转换信号类型(数字与模拟、电流与电压)、信号电平(高与低、正与负)、信号格式(并行与串行)等的转换。,4、时序协调不同的I/O设备定时与控制逻辑是不同的,并与CPU的时序往往是不一致的,这就需要I/O接口进行时序的协调。,P0-P3口进一步说明:,9,4个并行I/O口“输出有锁存,输入有缓冲”;,输入数据时都要“先写1”;,P0口作通用I/O口,输出级是开漏电路,作输出口应接上拉电阻;作地址/数据总线不需要上拉电阻;,P1P3口不需要上拉电阻;,1、51的I/O口直接用于输出,10,都是准双向口。,1、直接用于输出作输出口时有锁存功能。输出操作:以P0P3为目的操作数的传送指令。例如:MOVP1,AMOVP1,R1MOVP1,R1MOVP1,#55H,51单片机没有专门的输入输出指令。,2、51的I/O口直接用于输入,11,2、直接用于输入作输入口时带有输入缓冲器,但没有输入锁存器。因此要输入的数据必须一直保持在引脚上,直到把数据读走。在输入数据之前,要先写“1”MOVP0,#0FFHMOVA,P0用读引脚的传送指令。例如:MOVA,P1MOVR2,P1,3、对锁存器的“读-修改-写”,12,有一类指令是对IO口输出锁存器中的数据进行操作,如对端口数据进行逻辑操作。这一类指令是先读出端口锁存器中的内容,再按指令的规定进行操作,最后将操作的结果写回端口锁存器,称之为“读一修改一写”指令。,这类指令不是对端口引脚上的数据进行操作。若要对引脚上数据进行操作则只能先读入到CPU,然后再进行运算。,4、MCS-51内部IO口应用,13,所有4个IO口都是可以位寻址的,就是说,其中每一位都可以用做输入或输出。,由于MCS-51的IO口只有数据口而没有状态口或控制口,在实际使用时,可以用I0口的某一位(或几位)来作为状态信息的传送者,或者是命令的控制位。,例:P1口八个灯作跑马灯。?,例:P1口八个灯作跑马灯?,14,start:MOVA,#0FFH;CLRC;MOVR2,#08h;循环八次。loop1:RLCA;带进位左移。MOVP1,A;输出到P1口。CALLdelay;延时一段时间DJNZR2,LOOP1;反复循环MOVR2,#07h;再往回循环。loop2:RRCA;带进位右移MOVP1,A;输出到P1口。CALLdelay;延时一段时间DJNZR2,loop2;反复循环LJMPstart;重新开始,;延时子程序delay:MOVr3,#20d1:MOVR4,#20d2:MOVR5,#248DJNZR5,$DJNZR4,d2DJNZR3,d1RETEND,设:LED灯共阳极,P0口输出功能应用举例例P0口做通用I/O输出口,控制8只发光二极管从左到右依次点亮,再从右到左依次点亮,电路图如图所示。,#includeunsignedchari;unsignedchartemp;unsignedchara,b;voiddelay(void)/循环间隔时间unsignedcharm,n,s;for(m=20;m0;m-)for(n=20;n0;n-)for(s=248;s0;s-);voidmain(void)while(1)temp=0 xfe;P0=temp;delay();,for(i=1;i(8-i);P0=a|b;delay();for(i=1;ii;b=temp(8-i);P0=a|b;delay();,例:P3.5口做通用I/O输出口,控制蜂鸣器断续发声,电路图如图所示。,#includesbitBEEP=P35;/蜂鸣器端口voiddelayms(unsignedcharms)/毫秒延时子程序unsignedchari;while(ms-)for(i=0;i120;i+);voidmain(void)/主程序while(1)/循环程序delayms(250);BEEP=1;/启动蜂鸣器delayms(250);BEEP=0;/熄灭蜂鸣器,P2口输入、P1口输出功能应用举例例利用8个拨动开关,把8位数据送到P2口,程序读入,然后送P1口显示。如图所示:,#include#definekeyP2#defineledP1voidmain()while(1)led=key;,7.1为什么需要I/O扩展,原始数据或现场信息要利用输入设备输入到单片机中,单片机对输入的数据进行处理加工后,还要输出给输出设备。常用的输入设备有键盘、开关及各种传感器等,常用的输出设备有LED(或LCD)显示器、微型打印机及各种执行机构等。,80C51单片机内部有四个并行口和一个串行口,对于简单的I/O设备可以直接连接。当系统较为复杂时,往往要借助I/O接口电路(简称I/O接口)完成单片机与I/O设备的连接。现在,许多I/O接口已经系列化、标准化,并具有可编程功能。,输入/输出及其控制方式,扩展I/O接口的原因:单片机本身接口功能有限。单片机控制应用中的复杂接口要求。1、速度差异大2、设备种类繁多3、数据信号形式多样扩展I/O接口电路的功能1、速度协调2、输出数据锁存3、输入数据三态缓冲4、数据转换,7.2MCS-5l并行IO口的扩展,21,常用并口扩展方法:,用三态缓冲器和锁存器扩展简单I/O口。,用专用并口芯片扩展I/O口(8255,8155等),注意:,MCS-51没有专门的外设操作指令和控制信号,将外设看作外部数据存储单元来访问,因此扩展外设占用外部RAM存储器的地址空间,使用访问外部数据存储器指令对外设进行操作。,7.2.1用三态缓冲器和锁存器扩展并口,22,1、8031和三态缓冲器连接扩展输入口,设计原则输入口具有缓冲作用缓冲器。输出口具有锁存作用锁存器。,7.2单片机简单I/O扩展,一、利用TTL、CMOS集成电路来扩展,1、用锁存器扩展简单的8位输出口,74LS377为8D锁存器,八入八出,一时钟CP,一锁存允许/E。/E=0时,CP的上升沿,输入数据并锁存。,MOVDPTR,#7FFFH;指向74LS377MOVA,#data;取输出的数据MOVXDPTR,A;通过74LS377送出数据,P2.7接/E,所以,74LS377的口地址为7FFFH。,P0口是数据总线口,作I/O口用时只能分时使用,为此,输出数据时需要锁存。,2、用锁存器扩展简单的八位输入口,外设与单片机在传输数据速度上存在着一定的差异,为了保证数据能被单片机正确地接收,应采取以下电路:,输入设备STBIN7IN6IN5IN4IN3IN2IN1IN0,8031P2.6P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0,74LS373GQ7D7Q6D6Q5D5Q4D4Q3D3Q2D2Q1D1Q0D0,在STB的下降沿,将数据锁存入74LS373/E控制着74LS373的输出,由P2.6和/RD相或控制,所以74LS373的口地址为BFFFH。,例、设将上图74LS373中数据送入8031片内数据存储器中首地址为50H的数据区。写出相应中断系统初始化及中断服务程序。,中断系统初始化程序:PINT:SETBIT0;/INT0选为下降沿触发方式SETBEA;CPU开中断MOVR0,#50H;置数据区首址SETBEX0;/INT0中断允许,中断服务程序:ORG0003HPINT0:AJMPINT0ORG1000HINT0:MOVDPTR,#0BFFFH;指向74LS373扩展输入口MOVXA,DPTR;8031读入数据MOVR0,A;输入数据送数据区INCR0RETI,3、用三态门扩展8位输入并行口,74LS244是8位三态门,当/1G、/2G均为低电平时,允许输入数据;否则,为高阻态。,输入设备IN7IN6IN5IN4IN3IN2IN1IN0,8031P2.6P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0,74LS2441Y11A11Y21A21Y31A31Y41A42Y12A12Y22A22Y32A32Y42A4,7.2.2可编程通用并行接口8255A,30,在与外设相连时,根据不同的初始化编程可用于无条件传送、查询式传送、中断式传送,以完成单片机与外设的数据交换。,8255是一种8位并行I/O接口芯片,8255有3个8位的并行口:PA、PB、PC,3种工作方式。其中,PC口具有按位进行操作功能。,1、8255的内部结构和引脚,31,双向三态,输入输出都锁存,输入三态输出锁存,和CPU相连,和外设相连,内部控制电路,控制寄存器,3种工作方式,3个8位的并行口PA、PB、PC,1个控制寄存器,8255的引脚,32,(1)I/O口线(24条),PA0PA7、PB0PB7、PC0PC7为24条双向总线,用于8255和外设之间传送数据。PA7PA0:PA口的并行I/O数据线,双向三态。PB7PB0:PB口的并行I/O数据线,双向三态PC7PC0:PC口的并行I/O数据线,双向三态。端口C既可作为8位I/O口,又可作为两个4位I/O口,还常用来配合A口和B口工作,作为控制信号输出、或作为状态信号输入。,8255的引脚,33,(2)D0D7为数据总线,用于传送CPU和8255之间的数据、命令和状态字。(3)RESET:复位信号,输入高电平有效。复位后,8255所有内部寄存器清0,所有口被置为输入方式。,(二)控制逻辑,这是两组根据CPU的编程命令控制8255A工作的电路,控制寄存器用来接收CPU送来的命令字,以决定A组、B组的工作方式,或对C口的每一个位执行位操作。,(五)端口寻址,(六)方式选择,方式0:基本输入输出,方式1:选通输入输出,方式2:双向传送,二、8255A的控制字,1、方式选择控制字,8255A有3种基本的工作方式,在对8255A进行初始化编程时,应向控制寄存器写入方式选择控制字,以规定各端口的工作方式。,方式选择控制字格式,例:在一个8031系统中,有一片8255芯片,其各个端口的地址分别为0F8H0FBH,现要求各个端口的工作方式为:端口A方式0输入端口B方式1输出端口C(上半部)PC7PC4输出端口C(下半部)Bit3输入要求:进行初始化编程,分析:根据8255工作模式可确定方式控制字,95H,初始化编程:,MOVA,#95HMOVR0,#0FBHMOVXR0,A,C口按位置位/复位控制字格式,例:要使端口C的bit3置位的控制字为:00000111B;MOVA,00000111BMOVR0,#0FBHMOVXR0,A而使端口C的bit3复位的控制字为:00000110B;MOVA,00000110BMOVR0,#0FBHMOVXR0,A,三、8255A的工作方式,1、方式0基本输入输出方式,适用于不需要应答信号的简单I/O场合。,A口和B口可作为8位端口,C口的高4位和低4位可作为两个4位的端口,且每个端口均可作为输入口或输出口用。,数据输出有锁存,输入无锁存。,方式0一般用于无条件传送的场合,不需要应答式联络信号,外设总是处于准备好的状态。也可以用作查询式传送,查询式传送时,需要有应答信号。可以将A端口、B端口作为数据口使用。C端口则可用来输出一些控制信息,或输入外设的状态。利用C端口配合A端口和B端口完成查询式的I/O操作。,当A端口和B端口以方式1进行输入输出时,必须利用C端口提供的固定的选通和应答信号,该方式也称选通输入/输出方式。方式1的基本定义是:分成A组和B组,每组包含一个8位的数据端口和1个4位的控制/数据端口。可作输入,也可作输出,且输入和输出都可以被锁存。,2.方式1-选通输入/输出方式,规定:PC3PC5分配给A端口作联络线,PC0PC2分配给B端口作联络线,C端口剩下的2位PC7、PC6可作为简单的输入/输出线使用。,1)选通的输入方式,方式1选通输入下对应的控制信号图(a)对A端口;(b)对B端口,选通输入方式的工作过程:当外设数据已送到8255A某个端口的数据线上时,就发出选通输入信号STB,将数据通过A端口或B端口锁存到8255A的数据输入寄存器。STB信号变低将使输入缓冲器满信号IBF变高,。输入缓冲器满意味着将阻止外设输入新的数据。,49,A口方式1选通输入工作示意图,/RD,选通的输入方式CPU如何读取数据?1、采用查询式输入,CPU先查询IBF是否为高?若IBF为高,8255A的输入缓冲器就为满,则CPU可从8255A读入数据。2、采用中断方式传送数据,先用C端口置1/置0的控制字使相应的端口允许中断,也就是要使PC4或PC2置1。,这种方式的工作过程与选通输入的情况相类似。对应的C端口也是固定分配。规定:PC3、PC6、PC7分配给A端口;PC2、PC1、PC0分配给B端口,剩下的2位PC4、PC5可作为简单的输入/输出线使用。当控制字的D3位为“1”时,PC4、PC5作输入;当控制字的D3位为“0”时,PC4、PC5作输出。,2)选通的输出方式,方式l输出时C端口对A、B端口的控制图(a)对A端口;(b)对B端口,56,B口方式1选通输出工作示意图,/WR,双向方式8255A可以向外设发送数据,同时CPU通过这8位数据线又接收外设的数据。传输过程由C端口对A端口进行控制,所以称为带选通的双向传输方式。方式2的基本定义:只能适用于A端口,一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。A端口的输入和输出都可以被锁存。在这种方式下,C端口中高5位PC7PC3作为控制信号和状态信息使用,剩下的3位PC2PC0可作为简单的输入/输出线使用。,3.方式2-带选通的双向传输方式,方式2时C端口对A端口的控制信号图,INTR:中断请求信号,高电平有效。对应PC3,不论A端口工作在输入方式还是工作在输出方式,当一个操作完成,并且要进入下一个操作时,8255A都要向CPU发出中断请求信号。INTEl:输出中断允许信号。为“1”时,允许向CPU发出由A端口输出数据的中断请求信号。反之,即使输出缓冲器空,也不允许8255A向CPU发中断请求信号。INTEl信号的置1或置0,是用软件使C端口的PC6置1或置0来实现的。INTE2:输入中断允许信号。为“1”时,允许A端口的输入处于中断允许状态,反之,不允许中断。INTE2信号的置1或置0,同样是用软件通过C端口的PC4置1或置0来实现。*方式2的工作时序基本相当于方式1的选通输入时序和选通输出的时序的组合。,方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路,A、B、C三个端口均可。方式1:选通输入输出方式适用于查询和中断方式的接口电路,A、B两个端口均可。方式2:双向选通传送方式适用于双向传送数据的外设,只有A端口才有。适用于查询和中断方式的接口电路,8255A有三种工作方式,

温馨提示

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

评论

0/150

提交评论