《单片机输入输出口.ppt》由会员分享,可在线阅读,更多相关《单片机输入输出口.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理与接口应用单片机原理与接口应用(8051输入输出端口结构输入输出端口结构)MCS518051输入输出端口结构输入输出端口结构(慨述)(慨述)80 5180 51单片机有四个单片机有四个8 8位并行位并行I/OI/O端口,记作端口,记作P0P0、P1P1、P2P2和和P3P3。每个端口都是每个端口都是8 8位准双向口,共占位准双向口,共占3232根引脚。每一根引脚。每一 条条I/OI/O线都能独线都能独立地用作输入或输出。立地用作输入或输出。每个端口都包括一个锁存器每个端口都包括一个锁存器(即特殊功能寄存器即特殊功能寄存器P0P3)P0P3),一个一个输出驱动器和输入缓冲器,作为输出时
2、数据可以锁存,作输入时输出驱动器和输入缓冲器,作为输出时数据可以锁存,作输入时数据可以缓冲,但这四个通道的功能不完全相同。数据可以缓冲,但这四个通道的功能不完全相同。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向通用准双向通用I IO O端口使用。在具有片外扩展存储器系统中,端口使用。在具有片外扩展存储器系统中,P2P2口口送出高送出高8 8位地址位地址P0P0口为双向总线,分时送出低口为双向总线,分时送出低8 8位地址和数据位地址和数据的输入输出。的输入输出。8051单片机四个单片机四个I()端口的电路设计非常巧妙,熟悉
3、端口的电路设计非常巧妙,熟悉IO端口端口逻辑电路,不但有利于正确合理地使用端口。而且会对设计单片逻辑电路,不但有利于正确合理地使用端口。而且会对设计单片机外围逻辑电路有所启发。机外围逻辑电路有所启发。一、一、P0P0口的结构:口的结构:结构:一个输出锁存器;结构:一个输出锁存器;二个三态输入缓冲器二个三态输入缓冲器 输出驱动电路及控制电路组成输出驱动电路及控制电路组成其工作状态受其工作状态受:控制电路与门控制电路与门、反相器反相器 转换开关转换开关MUXMUX控制。控制。当当CPU使控制线使控制线C0,开关开关MUX连接连接输输 出锁存器出锁存器,P0口为通用口为通用IO 口,口,当当C1时,
4、开关投向反相器时,开关投向反相器的输出端,的输出端,P0口分时作为地址数据总线使用。口分时作为地址数据总线使用。P0口的某一位的结构图口的某一位的结构图 (一一)P0口作为一般口作为一般IO口使用口使用 当8051组成的系统无外扩存储器、CPU对片内存储器和IO口读写时,内部硬件自动使控制线C0。开关MUX处于图示位置,它把输出级(T2)与锁存器的端接通;因与门输出为0,输出级中的上拉场效应管T1处于截止状态,因此,输出级是漏极开路的开漏电路。这时P0口可作一般IO口用。1、P0口用作输出口 一般的数据输出情况:当CPU执行输出指令时,写脉冲加在D锁存器的CP上,这样与内部总线相连的D端的数据
5、取反后就出现在端口,又经输出级FFT(T2)反相,在P0端口上出现的数据正好是内部总线的数据。读读P0口口D锁存器:锁存器:8051有几条输出指令功能特别强,属有几条输出指令功能特别强,属于于“读一修改读一修改写写”指令。指令。例如,执行例如,执行条条“ANL P0,A”指令的过程是:不直接指令的过程是:不直接读引脚上的数据,而是读引脚上的数据,而是CPU先读先读P0口口D锁存器中的数锁存器中的数据,当据,当“读锁存器读锁存器”信号有效三态缓冲器信号有效三态缓冲器开通,开通,Q端数据送入内部总线和累加器端数据送入内部总线和累加器A中的数据进行中的数据进行“逻逻辑与辑与”操作,结果送问操作,结果
6、送问P0端口锁存器。此时,锁存器端口锁存器。此时,锁存器的内容的内容(Q端状态端状态)和引脚是和引脚是致的。致的。2P0口作输入口 图中的缓冲器用于CPU直接读端口数据。当执行一条由端口输入的指令时,“读引脚”脉冲把该二态缓冲器打开,这样,端口上的数据经过缓冲器读入到内部总线。这类操作由数据传送指令实现。从图中还可看出,在读入端口引脚数据时由于输出驱动从图中还可看出,在读入端口引脚数据时由于输出驱动FET(T2)并接在引脚上,如果并接在引脚上,如果FET(T2)导通就会将输入导通就会将输入的高电平拉成低电平,以致于产生误读。的高电平拉成低电平,以致于产生误读。在端口进行输入操作前,应先向端口锁
7、存器写入在端口进行输入操作前,应先向端口锁存器写入“l”,也就是使锁存器也就是使锁存器0,因为控制线,因为控制线C0,因此因此T1和和T2全截止,引脚处于悬浮状态,可作高阻抗输入。这就全截止,引脚处于悬浮状态,可作高阻抗输入。这就是所谓的准双向口的含义。是所谓的准双向口的含义。(二)P0口作为地址数据总线使用 CPUCPU对片外存储器读写,由内部硬件自动使控制线对片外存储器读写,由内部硬件自动使控制线C Cl l,开关开关MUXMUX拨向反相器拨向反相器输出端。这时输出端。这时P0P0口可作地址口可作地址数据总线分时使用,分为两种情况。数据总线分时使用,分为两种情况。P0P0口用作输出地址口用
8、作输出地址/数据总线:在扩展系统中,数据总线:在扩展系统中,种种是以是以P0P0口引脚输出低口引脚输出低8 8位地址或数据信息。位地址或数据信息。MUXMUX开关开关把把CPUCPU内部地址数据线经反向器内部地址数据线经反向器与驱动场效应管与驱动场效应管FET(T2)FET(T2)栅极接通。从图上可以看到,上下两个栅极接通。从图上可以看到,上下两个FETFET处于反相,构成推拉式的输出电路处于反相,构成推拉式的输出电路(T1T1导通时上拉,导通时上拉,T2T2导通时下拉导通时下拉),大大增加了负载能力。,大大增加了负载能力。另一种情况是由另一种情况是由P0口输入数据。这种情况是在口输入数据。这
9、种情况是在“读引读引脚脚”信号有效时打开输入缓冲器信号有效时打开输入缓冲器使数据进入内部总使数据进入内部总线。线。总结:P0既可作般IO端口用使用,又可作地址数据总线使用。I/O输出时,输出级属开漏电路,必须外接上拉电阻,才有高电平输出;作IO输入时,必须先向对应的锁存器写入“1”,使FET(T2)截止,不影响输入电平。当P0口被地址数据总线占用时,就无法再作IO口使用了。二、P1口 P1口也是一个准双向口:作通用IO口使用。其电路结构见图,输出驱动部分与P0口不同内部有上拉负载电阻与电源相连。实质上电阻是两个场效应管FET并在起,个FET为负载管,其电阻固定;另一个FET可工作在导通或截止两
10、种状态,使其总电阻值变化近似为0或阻值很大两种情况。当阻值近似为0时、可将引脚快速上拉至高电平;当阻值很大时,Pl口为高阻输入状态。当P1口输出高电平时、能向外提供拉电流负载,所以不必再接上拉电阻,在端口用作输入时,也必须先向对应的锁存器写入“1”,使FET截止。由于片内负载电阻较大,约20一40k,所以不会对输入的数据产生影响。P1口某位结构 三、P2口某位结构四、P3口的结构 P3口是一个多功能端口:第功能:通用IO口 第二功能:其他功能(见下表)P3口与P1口的差别在于多了一个与非门和缓冲器,正是这两个部分,使得P3口除了具有P1口的准双向IO功能之外,还可以使用各引脚所具有的第二功能。
11、与非门的作用实际上是一个开关,决定是输出锁存器上的数据还是输出第二功能(W)的信号。当W1时输出Q端信号;当Q1,可输出W线信号。P3各口线的第二功能表 口口 线线 第第 二二 功功 能能 P3.0RXD(串行口接收)串行口接收)P3.1TXD(串行口发送)串行口发送)P3.2(外部中断(外部中断0输入)输入)P3.3(外部中断(外部中断1输入)输入)P3.4T0(计数器计数器0输入)输入)P3.5T1(计数器计数器1输入)输入)P3.6(片外数据存储器写)(片外数据存储器写)P3.7(片外数据存储器读)(片外数据存储器读)P3口的位结构编程时,不必事先由软件设置编程时,不必事先由软件设置P3
12、门为第一门为第一功能功能(通用通用IO口口)还是第二功能。还是第二功能。当当CPU对对P3口进行口进行SFR寻址寻址(位或字节位或字节)访访问时,由内部硬件自动将第二功能输出问时,由内部硬件自动将第二功能输出线线W置置1,这时,这时P3口为通用口为通用IO口;口;当当CPU不把不把P3口作为口作为SFR寻址寻址(位或字节位或字节)访问时,即用作第二功能输出访问时,即用作第二功能输出/输入时,输入时,由内部硬件使锁存器由内部硬件使锁存器Q1。(一)P3口作为通用IO口使用 当对P3口的SFR寻址时,“第二输出功能端W”保持高电平。打开与非门,所以D锁存器输出端Q的状态可通过与非门送至FET场效应
13、管输出,这是作通用IO口输出的情况。当当P3口作为输入使用口作为输入使用(即即CPU读引脚状态读引脚状态)时。同时。同P0P2口一样口一样,应由软件向口锁存器写,应由软件向口锁存器写“1”,即使得锁存器即使得锁存器Q端保持为端保持为1,与非门,与非门0输出为输出为0,FET场效应管截止,引脚端可作为高阻输入。场效应管截止,引脚端可作为高阻输入。当当CPU发出读命令时,使缓冲器的发出读命令时,使缓冲器的“读引脚读引脚”信号有效,三态缓冲器开通,于是引脚的状态信号有效,三态缓冲器开通,于是引脚的状态经两个缓冲器到经两个缓冲器到CPU内部路线。内部路线。(二)P3口用作第二功能使用 当端口用于第二功
14、能时8个引脚是按位独立定义。当某位被用作第二功能时,该位的D锁存器Q应被内部硬件自动置1,使与非门对“第二输出功能端W”是畅通的。输入:Q=1,W=1(W不作第二功能输出)读引脚无效,只有T0、T1、INT0、INT1、RXD有效五、端口的负载能力和接口要求 P0口的输出级与口的输出级与P1P3口的输出级在结构上是不口的输出级在结构上是不同的!同的!因此,其负载能力与接口要求也各不相同。因此,其负载能力与接口要求也各不相同。P0口与其它口不同,它的输出级无上拉电阻。当把它用作通用IO口使用时,输出级是开漏电路,输入时需外接上拉电阻;用作输入时,应先向口锁存器(80H)写1;把它当作地址数据总线
15、时则无需外接上拉电 阻。P0口的每一位输出可驱动口的每一位输出可驱动8个个LS型型TTL负载。负载。P1P3口的输出级接有内部上拉负载电阻,它们的每一位输出可驱动3个LS型TT负载。作为输入口时,任何TTL电路都能以正常的方式驱动805l单片机(HMOS)的P1P3口。由于它们的输出级具有上拉电阻,也可以被集电极开路(oc门)或漏极开路所驱动,而无需外接上拉电阻,对于80c51单片机(CHMOS),端口能提供几毫安的输出电流,故当作输出口去驱动一个普通晶体管的基极(或TTL电路输入端)时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。Pl P3口也都是准双向口也都是准双向I/O口,作输入时,必须先口,作输入时,必须先在相应端口锁存器先写在相应端口锁存器先写1。请看下一节