您的位置 首页 分销

单片机IO口结构及上拉电阻

MCS-51单片机IO口详解MCS-51有4组8位IO口:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分别介绍这

MCS-51单片机IO口详解

MCS-51有4组8位I/O口:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口,下面咱们别离介绍这几个口线。

一、P0口和P2口

图1和图2为P0口和P2口其间一位的电路图。由图可见,电路中包括一个数据输出锁存器(D触发器)和两个三态数据输入缓冲器,别的还有一个数据输出的驱动(T1和T2)和操控电路。这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能象P1、P3直接用作输出口。它们一同能够作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。

图1 单片机P0口内部一位结构图

图2 单片机P0口内部一位结构图

P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为2^16=64k,所以MCS-51最大可外接64kB的程序存储器和数据存储器。

二、P1口

图3为P1口其间一位的电路图,P1口为8位准双向口,每一位均可独自界说为输入或输出口,当作为输进口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至”1″,此刻该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0。

图3 单片机P2口内部一位结构图

作为输进口时,锁存器置1,Q(非)=0,T2截止,此刻该位既能够把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口。

需求阐明的是,作为输进口运用时,有两种状况:

1.首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读—修正—写操作,象JBC(逻辑判别)、CPL(取反)、INC(递加)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均归于这类操作。

2.读P1口线状况时,翻开三态门G2,将外部状况读入CPU。


三、P3口

P3口的电路如图4所示,P3口为准双向口,为习惯引脚的第二功用的需求,增加了第二功用操控逻辑,在真实的运用电路中,第二功用显得更为重要。因为第二功用信号有输入输出两种状况,咱们别离加以阐明。

图4 单片机P0口内部一位结构图

P3口的输入输出及P3口锁存器、中止、守时/计数器、串行口和特别功用寄存器有关,P3口的榜首功用和P1口相同可作为输入输出端口,相同具有字节操作和位操作两种方法,在位操作形式下,每一位均可界说为输入或输出。

咱们侧重评论P3口的第二功用,P3口的第二功用各管脚界说如下:

·P3.0 串行输进口(RXD)
·P3.1 串行输出口(TXD)
·P3.2 外中止0(INT0)
·P3.3 外中止1(INT1)
·P3.4 守时/计数器0的外部输进口(T0)
·P3.5 守时/计数器1的外部输进口(T1)
·P3.6 外部数据存储器写选通(WR)
·P3.7 外部数据存储器读选通(RD)

关于第二功用为输出引脚,当作I/O口运用时,第二功用信号线应坚持高电平,与非门注册,以保持从锁存器到输出口数据输出通路四通八达。而当作第二功用口线运用时,该位的锁存器置高电平,使与非门对第二功用信号的输出是疏通的,然后完成第二功用信号的输出。关于第二功用为输入的信号引脚,在口线上的输入通路增设了一个缓冲器,输入的第二功用信号即从这个缓冲器的输出端获得。而作为I/O口线输入端时,取自三态缓冲器的输出端。这样,不管是作为输进口运用仍是第二功用信号输入,输出电路中的锁存器输出和第二功用输出信号线均应置“1”。

四、IO口作业原理

1. P0作为地址数据总线时,T1和T2是一同作业的,构成推挽结构。高电平时,T1翻开,T2截止;低电平时,T1截止,T2翻开。这种状况下不必外接上拉电阻.并且,当T1翻开,T2截止,输出高电平的时分,因为内部电源直接经过T1输出到P0口线上,因而驱动才能(电流)能够很大,这便是为什么教科书上说能够”驱动8个TTL负载”的原因。

2. P0作为一般端口时,T1就永久的截止,T2依据输出数据0导通和1截止,导通时拉地,当然是输出低电平;要输出高电平,T2就截止,P0口就没有输出了,(留意,这种状况便是所谓的高阻浮空状况),假如加上外部上拉电阻,输出就变成了高电平1。

3. 其他端口P1、P2和P3,在内部直接将P1口中的T1换成了上拉电阻,所以不必外接,但内部上拉电阻太大,电流太小,有时因为电流不行,也会再并一个上拉电阻。

4. 在某个时间,P0口上输出的是作为总线的地址数据信号仍是作为一般I/O口的电平信号,是依托多路开关MUX来切换的。而MUX的切换,又是依据单片机指令来区别的。当指令为外部存储器/IO口读/写时,比方 MOVX A,@DPTR ,MUX是切换到地址/数据总线上;而当一般MOV传送指令操作P0口时,MUX是切换到内部总线上的。

5. P0、P1、P2、P3口用于输入时,需求写1使IO下拉的MOS管截止,避免MOS管导通将输入拉底为0,当一向用于输入时不必置1(先运用该IO输出,该IO锁存器里可能是0,再用该IO输入则会使MOS管导通),将IO写1后,该IO锁存器不会变了,所以再一向用于输入不必置1。p0用于地址数据线时输入不必写1,因为MUX没和锁存器相连。

PS:
Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called “quasi- bidirectional” ports.

因为端口1、2、3有固定的内部上拉,所以有时分他们被称为”准双向”口。

Port 0, on the other hand, is considered “true” bidirectional, because when configured as an input it floats.

端口0, 从别的一方面来说,就被 认为是”真实的”双向,因为当它被设置为输入的时分是浮空(高阻态)的。

五、P0口上拉电阻挑选

假如是驱动led,那么用1K左右的就行了。假如期望亮度大一些,电阻可减小,最小不要小于200欧姆,不然电流太大;假如期望亮度小一些,电阻可增大,增加到多少呢,主要看亮度状况,以亮度适宜为准,一般来说超越3K以上时,亮度就很弱了,可是关于超高亮度的LED,有时分电阻为10K时觉得亮度还能够用。我一般就用1k的。

关于驱动光耦合器,假如是高电位有用,即耦合器输入端接端口和地之间,那么和LED的状况是相同的;假如是低电位有用,即耦合器输入端接端口和VCC之间,那么除了要串接一个1——4.7k之间的电阻以外,一起上拉电阻的阻值就能够用的特别大,用100k~500K之间的都行,当然用10K的也能够,可是考虑到省电问题,没有必要用那么小的。

关于驱动晶体管,又分为PNP和NPN管两种状况:关于NPN,毫无疑问NPN管是高电平有用的,因而上拉电阻的阻值用2K~20K之间的,详细的巨细还要看晶体管的集电极接的是什么负载,关于LED类负载,因为发管电流很小,因而上拉电阻的阻值能够用20k的,可是关于管子的集电极为继电器负载时,因为集电极电流大,因而上拉电阻的阻值最好不要大于4.7K,有时分乃至用2K的。关于PNP管,毫无疑问PNP管是低电平有用的,因而上拉电阻的阻值用100K以上的就行了,且管子的基极有必要串接一个1~10K的电阻,阻值的巨细要看管子集电极的负载是什么,关于LED类负载,因为发光电流很小,因而基极串接的电阻的阻值能够用20k的,可是关于管子的集电极为继电器负载时,因为集电极电流大,因而基极电阻的阻值最好不要大于4.7K。

关于驱动TTL集成电路,上拉电阻的阻值要用1~10K之间的,有时分电阻太大的话是拉不起来的,因而用的阻值较小。可是关于CMOS%&&&&&%上拉电阻的阻值就能够用的很大,一般不小于20K,我一般用100K的,实际上关于CMOS电路,上拉电阻的阻值用1M的也是能够的,可是要留意上拉电阻的阻值太大的时分,简单发生搅扰,尤其是线路板的线条很长的时分,这种搅扰更严峻,这种状况下上拉电阻不宜过大,一般要小于100K,有时分乃至小于10K。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/259864.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部