双向IO口与准双向IO口的区别_第1页
双向IO口与准双向IO口的区别_第2页
双向IO口与准双向IO口的区别_第3页
双向IO口与准双向IO口的区别_第4页
双向IO口与准双向IO口的区别_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机P0 口是双相口,而 P1P2P3是准双相口。举个例子:相信大家都理解准妈妈,就是 怀孕的女人,当然这里也是这样的,就不是真正的双相口了。为什么P0是双向口,这里的差别是什么呢?最主要原因是:P0没有上拉电阻,所以当 P0最10 口的时候一定要加上上拉电阻,否则的话,你输出的1就是无效了,这样 T2截止了,那么P0都就是呈现高阻状态了。下图分别是PO, P1P2P3的读写数据,红线表示输出,蓝线表示输入(读引脚)Bl建欖MS读引押B2TOO 电軀珈我还有一个就是读锁存器的,没画出来。在读引脚的时候,有一点注意:每当读引脚的时候要确保场效应管T2是截止的,否则的话 1 (高电平)外部数据读

2、不出来, T2会把它拉低,所以通过MOV PX,FFH,把T2截止,就完美了。在单片机学习、开发和应用中,IO 口的配置对功能的实现起着重要的作用,下面介绍常见的四种配置,而现在很多单片机都兼有这四种配置,可供选择。一.准双向口配置如下图,当IO输出为高电平时,其驱动能力很弱,外部负载很容易将其拉至低电平。当IO输出为低电平时,其驱动能力很强,可吸收相当大的电流。准双向口有三个上拉晶体管,一个极弱上拉”,当端锁存器为逻辑“ 1时打开,当端口悬空时,极弱上拉”将端口上拉至高电平。第二个上拉晶体管为 弱上拉”,当端口锁存器为逻辑 “ 1且端口本身也为 “ 1时打开,此上拉 提供的电流,使准双向口输

3、出为“ 1”如果此时端口被外部装置拉到逻辑“0时,通过施密特触发器,控制 弱上拉”关闭,而 极弱上拉”维持开状态,为了把这个端口拉低,外部装置必 须有足够的灌电流能力,使管脚上的电压,降到门槛电以下。第三个上拉晶体管为 强上拉”,当端口锁存器由“0跳变到“ 1时,这个上拉用来加快端口由 逻辑“0到逻辑“ 1的转换速度。准双向口做为输入时,通个一个施密特触如器和一个非门,用以干扰和滤波。V2b准双向口用作输入时,可对地接按键,如下图1当然也可以去掉 R1直接接按键,当按键闭合时,端口被拉至低电平,当按键松开时,端口被内部极弱上拉"晶体管拉至高电平。当端口作为输出时,不应对地外接LED如

4、图形控制,这样端口的驱动能力很弱,LED只能发很微弱的光,如果要驱动 20mA的电流,故能驱动 大电流。LED,要采用图3的方法,这样准双向口在输出为低时,可吸收LED。图4的方法也可以,不过LED不发光时,端口要吸收收很WCvcc110斗1/0二.开漏输出配置这种配置,关闭所有上拉晶体管,只驱动下拉晶体管,下拉与准双向口下拉配置相同,因此只能输出低电平(吸收电流),和高阻状态。不能输出高电平(输也电流)。如果要作为逻辑三推挽输出配置这种配置的下拉与准双向口和开漏配置相同,具有较强的拉电流能力, 不同的是,具有持续的强上拉。因此可以用上图 2的方法来驱动LED 。输出低时四仅为输入配置(高阻配

5、置)这种配置不能输出电流,也不能有收电流,只能作为输入数据使用。仅为输入高胆)时*不提供賺入20胡电流的能力输入数抄干扰滤波以上四种配置各有其特点,在使用中应根据其特点灵活运用。准双向口的最大特点是既可以作为输入,也可以作为输出,不需要通过控制切换。推挽输出的特点是, 无论输也高电平还是低电平都有较大的驱动能力,在输也高电平时, 也能直接点亮 LED,这在准双向口中是不能办到的。这种配置不宜作为输入,因为这需要外 部设备有很强的拉电流的能胃。仅为输入配置的特点是端口只能作为输入使用,可以获得很高的输入阻抗, 在有模拟比较器或ADC的端口中用得较多。开漏输出配置与准又向口相似, 但内部没有上拉电

6、阻。 有很好的电气兼容性, 外部接上拉电 阻到3V电源,就能和3V逻辑器件连接。外部接上拉电阻到 5V电源,就要以和5V器件连 接。需要说明的是以上四种配置均可以作为输入,也就是都可以检测端的逻辑状态,但其特性不同,不是每种配置都可以直接接按键。=下面通过51的10 口介绍各种状态的工作原理MCS-51 有 4 组 8 位 I/O 口: PO、P1、P2 和 P3 口,P1、P2 和 P3 为准双向口, P0 口则为双 向三态输入输出口,下面我们分别介绍这几个口线。一、P0 口和 P2 口图1和图2为P0 口和P2 口其中一位的电路图。由图可见,电路中包含一个数据输出锁存器(D触发器)和两个三

7、态数据输入缓冲器,另外还有一个数据输出的驱动(T1和T2)和控制电路。这两组口线用来作为 CPU与外部数据存储器、外部程序存储器和 I/O扩展口, 而不能象P1、P3直接用作输出口。它们一起可以作为外部地址总线,P0 口身兼两职,既可作为地址总线,也可作为数据总线。地址/数据整制 Vcc读引脚PO. x旳口锁存器和缓冲器结构图1单片机P0 口内部一位结构图地址/数据整制Vcc读锁存器4)-71上拉 电阻内部总线一N 7!P2. z写CP Q -厂一 J1mm读引脚一F2 口蝕存器和缓冲器结构图2单片机P0 口内部一位结构图P2 口作为外部数据存储器或程序存储器的地址总线的高8位输出口 AB8-

8、AB15,P0 口由ALE选通作为地址总线的低 8位输出口 AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由 WR和RD读写信号选通,因为 2A16=64k,所以MCS-51最大可外接64kB 的程序存储器和数据存储器。二、P1 口图3为P1 口其中一位的电路图,P1 口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至 "1",此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为 0。读锁存器读引脚地址/数据揑制VerJ-D-CP QhQ T' 厂12 LLm

9、m内部总銭一写F2 口锁存器和缓冲器结构图3单片机P2 口内部一位结构图作为输入口时,锁存器置1, Q(非)=0 , T2截止,此时该位既可以把外部电路拉成低电平, 也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1 口常称为准双向口。需要说明的是,作为输入口使用时,有两种情况:1首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读一修改一写操作,象JBC(逻辑判断卜CPL(取反)、INC(递增卜DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令 均属于这类操作。2读P1 口线状态时,打开三态门 G2,将外部状态读入 CPU。三、P3 口P3 口的电路如图4所示,P3 口为准双

10、向口,为适应引脚的第二功能的需要,增加了第二 功能控制逻辑,在真正的应用电路中, 第二功能显得更为重要。 由于第二功能信号有输入输 出两种情况,我们分别加以说明。F3 口线逻辑电路图图4单片机P0 口内部一位结构图P3 口的输入输出及 P3 口锁存器、中断、定时/计数器、串行口和特殊功能寄存器有关, P3 口的第一功能和P1 口一样可作为输入输出端口,同样具有字节操作和位操作两种方式, 在位操作模式下,每一位均可定义为输入或输出。我们着重讨论P3 口的第二功能,P3 口的第二功能各管脚定义如下:P3.0 串行输入口(RXD)P3.1 串行输出口(TXD)P3.2 外中断 O(INTO)P3.3

11、 外中断 1(INT1)P3.4 定时/计数器0的外部输入口 (T0)P3.5 定时/计数器1的外部输入口 (T1)P3.6 外部数据存储器写选通(WR)P3.7 外部数据存储器读选通(RD)对于第二功能为输出引脚,当作 I/O 口使用时,第二功能信号线应保持高电平,与非门 开通,以维持从锁存器到输出口数据输出通路畅通无阻。 而当作第二功能口线使用时, 该位 的锁存器置高电平,使与非门对第二功能信号的输出是畅通的, 从而实现第二功能信号的输 出。对于第二功能为输入的信号引脚, 在口线上的输入通路增设了一个缓冲器, 输入的第二 功能信号即从这个缓冲器的输出端取得。 而作为 I/O 口线输入端时,

12、取自三态缓冲器的输出 端。这样,不管是作为输入口使用还是第二功能信号输入, 输出电路中的锁存器输出和第二 功能输出信号线均应置 “1。”四、 IO 口工作原理1. P0作为地址数据总线时, T1和T2是一起工作的,构成推挽结构。高电平时, T1打开, T2截止;低电平时,T1截止,T2打开。这种情况下不用外接上拉电阻 而且,当 T1打开,T2 截止,输出高电平的时候,因为内部电源直接通过 T1输出到P0 口线上,因此驱动能力(电流)可 以很大,这就是为什么教科书上说可以 "驱动8个TTL负载"的原因。2. P0 作为一般端口时, T1 就永远的截止, T2 根据输出数据 0

13、导通和 1截止,导通时拉 地,当然是输出低电平;要输出高电平, T2 就截止, P0 口就没有输出了, (注意,这种情况 就是所谓的高阻浮空状态 ),如果加上外部上拉电阻,输出就变成了高电平 1。3. 其他端口 P1、P2和P3在内部直接将 P1 口中的T1换成了上拉电阻,所以不用外接, 但内部上拉电阻太大,电流太小,有时因为电流不够,也会再并一个上拉电阻。4. 在某个时刻,P0 口上输出的是作为总线的地址数据信号还是作为普通I/O 口的电平信号,是依靠多路开关 MUX 来切换的。而 MUX 的切换,又是根据单片机指令来区分的。当指令为外部存储器 /IO 口读/写时,比如 MOVX A,DPT

14、R ,MUX 是切换到地址 /数据总线上;而当普 通MOV传送指令操作 P0 口时,MUX是切换到内部总线上的。5. PO、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 some

15、times called “ quas- i bidirectional ” ports.因为端口 1、 2、 3有固定的内部上拉 ,所以有时候他们被称为 "准双向 "口。Port 0, on the other han d, is con sidered “ true bdirecti on al, because whe n con figured as an input it floats.端口 0, 从另外一方面来说 ,就被认为是 "真正的 "双向,因为当它被设置为输入的时候是浮 空(高阻态)的。五、 P0 口上拉电阻选择如果是驱动led,那么用

16、1K左右的就行了。如果希望亮度大一些,电阻可减小,最小不 要小于 200 欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增加到多少呢,主要 看亮度情况,以亮度合适为准,一般来说超过 3K 以上时,亮度就很弱了,但是对于超高亮 度的LED,有时候电阻为10K时觉得亮度还能够用。我通常就用1k的。对于驱动光耦合器,如果是高电位有效,即耦合器输入端接端口和地之间,那么和LED的情况是一样的;如果是低电位有效,即耦合器输入端接端口和 VCC 之间,那么除了要串 接一个 1 4.7k 之间的电阻以外,同时上拉电阻的阻值就可以用的特别大,用100k500K之间的都行,当然用 10K 的也可以,但是考

17、虑到省电问题,没有必要用那么小的。对于驱动晶体管,又分为 PNP和NPN管两种情况:对于 NPN,毫无疑问NPN管是高电 平有效的, 因此上拉电阻的阻值用 2K20K 之间的, 具体的大小还要看晶体管的集电极接的 是什么负载,对于 LED 类负载,由于发管电流很小,因此上拉电阻的阻值可以用20k 的,但是对于管子的集电极为继电器负载时, 由于集电极电流大, 因此上拉电阻的阻值最好不要 大于4.7K,有时候甚至用2K的。对于PNP管,毫无疑问PNP管是低电平有效的,因此上 拉电阻的阻值用 100K 以上的就行了, 且管子的基极必须串接一个 110K 的电阻, 阻值的大 小要看管子集电极的负载是什么,对于 LED 类负载,由于发光电流很小,因此基极串接的 电阻的阻值可以用 20k 的,但是对于管子的集电极为

温馨提示

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

评论

0/150

提交评论