MCS51P端口知识.doc_第1页
MCS51P端口知识.doc_第2页
MCS51P端口知识.doc_第3页
MCS51P端口知识.doc_第4页
MCS51P端口知识.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

MCS-51P端口知识1 引言MSC51是70年代末的产品,目前出现了很多功能更强大的单片机,但在目前市场上的产品中MSC51仍占单片机的多半产品,且MCS51是其他单片机的基础。本文将详细讨论MSC51的并行接口,目的是为单片机的使用者提供更好的理论依据。2 MSC51的并行I/O端口2.1 I/O端口简介I/O端口又称为I/O接口或I/O通路,是MSC51单片机对外部实现控制和信息交换的必经之路,是一个过渡的大规模集成电路,用于信息传递过程中的速度匹配和增强单片机的负载能力。I/O端口可以实现和不同外设的速度匹配,以提高CPU的工作效率,可以改变数据的传送方式,如:内部并行总线与外部设备串行数据传送的转换。2.2 MSC51各并行I/O的组成I/O端口分为串行口和并行口。串行I/O端口一次只能传送一位二进制信息;并行I/O端口一次可传送一个字节的数据。MSC51单片机有四个并行端口,分别命名为P0、P1、P2、P3,每个端口都有八条端口线,用于传送数据或地址信息。由于每个端口的结构各不相同,因此它们在功能和用途上差别颇大。每个I/O端口都由一个八位数据锁存器和一个八位数据缓冲器组成,其中八位数据锁存器的端口与P0、P1、P2、P3同名,属于21个特殊功能寄存器中的4个,对应内部RAM地址分别为80H、90H、A0H、B0H。需要输出数据时,8个数据锁存器用于对端口引脚上输入数据进行锁存。需要输入数据时,8个数据缓冲器用于对端口引脚上输入数据进行缓冲。另外访问并行I/O端口除了可以用字节地址访问外,还可以进行按位寻址。3 P0综述3.1 P0口功能P0.7P0.0为P0所用。P0口的访问地址是80H,位地址范围是80H87H。由于P0口具有较大的负载能力,最多可推动8个TTL门,因此是真正的双向I/O口。一般来说,P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7P0.0用于传送CPU的输入/输出数据。输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。第二,P0.7P0.0在CPU访问片外存储器时用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。3.2 P0口的结构 图1P0是由一个输出锁存器(D型触发器),两个三态门缓冲22(控制读引脚或读锁存器),与门和多路开关MUX组成的输出控制电路,一对场效应晶体管FET构成的输出电路所组成。P0口的多路开关的输入有两个:地址/数据输出和锁存器输出/Q,多路开关的切换由内部控制信号控制。3.3 P0口的工作原理3.3.1 P0口的I/O操作(通用I/O端口)在P0口作为通用I/O端口时,控制电路中“控制”端输入为0电平。此时,多路开关MUX接入下方的锁存器的/Q端。由于“控制”输入为0,上端的FET截止。输出操作当内部总线信号置0时,锁存器输出/Q输出高电平,下端FET导通,由于上端FET截止,因此P0引脚输出低电平。当内部总线置1时,锁存器输出低电平,下端FET截止,由于上拉电阻的作用,P0口引脚输出高电平。注意:由于两个场效应管均截止,使输出处于“悬浮”状态,因此当MOS负载连接时需要加上一上拉电阻,以保证端口能够正确的输出高电平。如图1所示。输入操作输入操作比较复杂,实际上有两种输入方式:a.读引脚在响应CPU的读引脚操作时,引脚的电平值通过缓冲器BUF1进入内部总线。注意,再执行这种类型的指令时,执行之前必须将端口锁存器置1.执行程序为:MOV P0,#0FFH;端口锁存器置1MOV A,P0; 读引脚此时,下端FET截止,外部数据通过读引脚操作,把数据正确传给数据总线,若不执行MOV P0,#OFFH,则A点可能为高电平,此时下端FET导通,即P0引脚接地,无法正确输入外部电平数据。b.读锁存器在执行读锁存器的操作时,CPU首先完成将锁存器的输出值Q通过缓冲器BUF2读入,然后进行修改,再重新写到锁存器中去,即读锁存器一般完成的是“读修改写”的操作。这种类型的操作指令只有算术(INC,DEC,ADD),逻辑(ORC,XRL,ANL),位(JBC,CPL,CLR)操作指令等。采用读锁存器而不是读引脚操作可以避免一些错误,例如:(如图2)如果使用一个晶体管驱动继电器,当端口输出高电平驱动晶体管导通时,P0.x引脚的输出电平只有0.7V。如果将引脚信号读回来,就会得到一个低电平的错误结果;而采用读锁存器则会保证数据的准确。图2P0口的两种数据操作P0口的操作分两类:字节操作和位操作。CPU对于P0口不仅可以作为一个八位口来操作,也可以按位来操作。有关字节操作指令以MOV为例:输出 MOV P0,A ;P0A MOV P0,#data ;P0data MOV P0,direct ;P0direct输入 MOV A,P0 ;AP0MOV direct,P0 ;directP0有关位操作指令,例如:置位、清除 SETB P0.i ;P0.i1 CLR P0.i ;P0.i0输入,输出:MOV P0.i,C ;P0.iCy MOV C,P0.i ;CyP0.i判 跳:JB P0.i,rel ;P0.i=1跳转 JB P0.i,rel ;P0.i=0跳转 且清P0.i=0逻辑运算:ANL C,P0.i ;Cy(P0与Cy) ORL C,P0.i ;Cy(P0与Cy)P0.i中i07。因此P0口不仅可以以八位一组进行输入输出操作,还可以逐位定义各口线为输入或输出线的电平。例如ORL P0,#00000010B可以使P0.2位口线输出而其余各位不变。ANL P0,#11111101B可以使P0.1位口线输出,而其余各位不变。3.3.2 P0口作为地址/数据复用总线使用(系统使用外存储器时)控制电路的“控制”端置1,此时与门打开,MUX接向上端(地址/数据)信号。此时,输出端的两个FET都处于正常工作状态。P0口的地址/数据端与外部存储器的低8位地址线相连,在指令周期的前半个周期,传送外部存储器的低8位数据,而后半个指令周期则是把外部内存中的数据传送给CPU。当P0的地址/数据口置1时,控制上拉电路的“与门”输出为1,上端FET导端,同时地址/数据通过反相器输出为0,下端FET截止,地址/数据线输出为1。当P0的地址/数据口置0时,控制上拉电路的“与门”输出为0,上端FET截止,同时地址/数据输出通过反相器输出1,下端FET导通,地址/数据线输出为0。此时,P0口作为地址/数据复用总线使用。上下两个FET处于反相,构成了推位式的输出电路,其负载能力大大增加,因此这时P0端口不用外加上拉电阻。注意:P0口控制端的转换是通过指令进行的,即执行I/O总线操作时,如MOV P0,A,系统自动控制端置0,执行地址操作指令如MOVX,MOVC(EA0时)时,则控制端自动置1。在进行硬件系统的设计时,如果使用了外部存储器时,P0口成为整个系统的地址/数据复用总线,此时P0口不能在作为通用的I/O端口。因此一般情况下,P0作为地址/数据总线。4 P1口综述4.1 P1口的功能 P1口的访问地址是90H,位地址范围是90H97H,P1口可以驱动4个LSTTL负载,因此是准双向I/O口。P1口的功能和P0口的第一功能相同,仅用于传递I/O输入/输出数据。4.2 P1口的结构图3包括输出锁存器输入缓冲器BUF1(读引脚),BUF2(读锁存器)以及由FET上拉电阻组成的输出/输入驱动器。由图3可见,P1口与P0口的区别在于内部有上拉电阻,所以输出时不用外接上拉电阻,P1口没有地址/数据复用端口,因此没有控制端。4.3 P1口的工作原理P1口只能进行I/O总线操作,即工作原理同P0口作为I/O输入输出口时的工作原理,这里不再叙述。4.4 P1口的多功能线在80C52中,P1.0和P1.1线是多功能的,即除一般双向I/O口线之外,这两根口线还具有下列功能:P1.0定时器/计数器2的外部输入端T2;P1.1定时器/数据线2的外部控制端T2EX。这时,该两位的结构与P3口的位结构相当。5 P2口综述5.1 P2口的功能P2口的访问地址是A0H,位地址范围A0HA7H。P2口最多可以驱动4个LSTTL负载,因此属于准双向口。P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。5.2 P2口的结构图 4由图4可看出,由于P2口有了第二功能,则较P1口,P2口增加了一个多路开关,用于控制P2口的工作方式。多路开关的输入有两个:一个是锁存器的输出Q端,另一个是地址寄存器的高位输出端。通过控制端的信号来控制他们的输入。注意:锁存器的输出端是Q而不是/Q,故多路开关之后需接反相器。当控制信号为0时,P2口工作在I/O口状态,多路开关接通锁存器。若内部总线输出0,输出锁存器Q端为0,信号经反相器后输出1,FET导通,输出低电平,若内部总线输出1,则过程与上述相反。当控制信号为1时,P2口工作输出高8位地址,P2口的输出电平将随地址输出的0、1而1、0的变化。5.3 P2口的工作原理5.3.1 P2口的I/O操作P2口的I/O操作与PO口的I/O同,这时不再重述。5.3.2 P2口的地址总线操作P2口可以输出程序存储器或片外数据存储器的高8位地址,与P0输出的低地址一起构成16位地址线,从而可分别寻址64KB的程序存储器或片外数据存储器。5.4 P2口使用中注意的问题(1)一般P2口不用于传送存储器的读写数据,因此P2口无需外加地址锁存器。(2)如果使用256B的外部RAM,此时用8位的寄存器R0或R1作间址寄存器,这时P2口无用,此时P2口仍可以做通用I/O端口,如MOV A,R0或MOV A,R0。如果访问外部ROM或使用大于256B RAM时,P2口必须作为外存储器的高8位地址总线,如MOVX A,DPTR;访问外部数据存储器MOVX A,A+DPTR;访问外部程序存储器,这里使用了16位的寄存器DPTR。6 P3口综述 6.1 P3口功能P3口的访问地址是B0H,位地址范围是B0HB7H,P3口可推动4个LSTTL门,是准双向口。P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。P3.0RXD 串行数据接收口P3.1TXD 串行数据发送口P3.2INT0 外中断0输入P3.3INT1 外中断1输入P3.4T0 计数器0计数输入P3.5T1 计数器1计数输入P3.6WR 外部RAM写选通信号P3.7RD 外部RAM读选通信号6.2 P3口的结构图 5由图5可见,P3口的结构与P1口的区别在于:(1)P3口中增加了一个与非门。与非门有两个输入端:一个为锁存器的Q端,另一个为第二功能控制输出。(2)有两个输入缓冲器,第二功能取自第一个缓冲器的输出端。6.3 P3口的工作原理6.3.1 通用I/O模式在通用I/O模式下,“第二输出功能”为1电平,以保证与非门打开,其工作方式与P0口

温馨提示

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

评论

0/150

提交评论