技术文档

单片机io口作用 浅析单片机IO引脚外接上下拉电阻的作用

小编 2024-11-24 技术文档 23 0

浅析单片机IO引脚外接上下拉电阻的作用

爱玩单片机的亲们通常都会常见IO引脚接上拉电阻或下拉电阻的现象,如图一中RP11、RP12、RP13、RP14均为上拉电阻,图二中R18为下拉电阻。

图一

图二

什么是上下拉电阻,作用是什么呢?通俗来讲,上拉电阻是单片机IO引脚与电源VCC间连接的电阻,下拉电阻为单片机IO引脚与GND间连接的电阻。

因为单片机内部不外乎是各类逻辑门电路的集成,而逻辑门电路由晶体管组成,单片机IC引脚在单片机内部有输入回路与输出回路,输入回路可等效为“图三”及“图四”,其中Rup与Rdown均为外接上拉与下拉电阻,PXX为单片机某IO引脚。而输出回路工作模式有推挽式输出与集电极(漏极)浮空输出模式,以后者为例,输出回路可等效为“图五”,其中Rup为外接上拉电阻,PXX为单片机某IO引脚。

图三

图四

图五

从“图三”、“图四”中可以看到,当IO引脚外接上拉电阻时,引脚默认电压为高电平,当IO引脚外接下拉电阻时,引脚默认电压为低电平,这样就可以消除引脚不定状态的影响。

而从“图五”中可看到,若不外接上拉电阻,IO引脚处于高阻态,若单片机内部晶体管Qinner截止,处于静默状态时,受内外电路影响,可能输出高电平,也可能输出低电平,存在不稳定因素,而此时上拉电阻Rup的作用便是在此期间,将其稳定在高电平,需要其输出低电平时,由程序控制,使晶体管Qinner导通输出低电平,所以外接上下拉电阻非常重要的一个作用便是让种种不稳定状态期间,使IO引脚电平强制保持为高电平或低电平。所以我们常常在单片机上电这个极不稳定的状态之后,单片机大部分IO口默认为高电平。

详解单片机的IO接口

MCS-51系列单片机有4组I/O接口:P0、P1、P2和P3。前面简单介绍了一下各个端口,要学好单片机技术,非常有必要详细了解这些端口的内部结构及工作原理。

P0端口

P0 端口有 P0.0~P0.7 共 8 个引脚,这些引脚除了可作 I/O 引脚外,在外接存储器时,还可作地址 / 数据总线引脚。 P0端口每个引脚的内部电路结构都相同,其内部电路结构如图2-6所示。

图2-6 P0端口内部电路结构

(1)当P0端口用作输出端口时

如果要将P0端口用作输出端口,单片机内部的CPU会发出一个“0”到与门的控制端。控制端的“0”一方面关闭与门(即与门的一端为“0”时,不管另一端输入何种信号,输出都为“0”),使地址/数据总线送来的信号无法通过与门;另一方面控制电子开关,让电子开关与锁存器的Q端接通。

此时若给锁存器的写锁存器端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q和Q端输出,如D端输入“1”,则Q端输出“0”(Q端输出“1”),该“0”经电子开关送到场效应管VT2的栅极,VT2截止,从P0端口输出“1”。

也就是说,当给P0端口内部的与门控制端送“0”,同时给写锁存器端送写脉冲信号时,单片机内部总线的信号就可以通过接口电路从P0端口输出。

(2)当P0端口用作输入端口时

当将P0端口用作输入端口时,P0端口的信号既送到三态门,又送到VT2的漏极。如果锁存器之前锁存的为“0”,即Q=0、Q=1,其中Q=1会使VT2导通,P0端口被钳在“0”电平上,“1 ”将无法送入P0端口。

解决的方法是:在将数据输入P0端口前,先通过内部总线向锁存器写“1”,即让Q=0,VT2截止,P0端口输入的“1”就可以送到三态门的输入端,此时再给三态门的读引脚送一个读控制信号,“1”就可以通过三态门送到内部总线。

也就是说,要将P0端口作为输入端口,先要将P0端口的锁存器写“1”,然后再给输入三态门送读控制信号,P0端口的数据就可以通过接口电路,送到单片机内部的总线上。

(3)当P0端口用作地址/数据总线引脚时

如果要将P0端口用作地址/数据总线引脚,先要给与门的控制端送“1”,于是与门打开,同时电子开关和非门输出端接通。当地址/数据总线为“1”时,“1”一方面通过与门送到VT1的栅极,VT1导通,另一方面送到非门,经反相变为“0”,再经电子开关送到VT2的栅极,VT2截止,VT1导通,VT2截止使P0端口输出为“1”;当地址/数据总线为“0”时,VT1导通,VT2也导通,P0端口输出为“0”。

也就是说,当给与门的控制端送“1”时,内部地址/数据总线上的信号就可以从P0端口输出,P0端口就可当作地址/数据总线引脚使用。

P1端口

P1 端口有 P1.0~P1.7 共 8 个引脚,这些引脚可作 I/O 引脚。 P1端口每个引脚的内部电路结构都相同,其内部电路结构如图2-7所示。

图2-7 P1端口内部电路结构

从图2-7中可以看出,P1端口的结构较P0端口简单很多,由于P1端口内部采用了一只场效应管,并且与电源之间接了一只上拉电阻,所以不需要在P1端口的外部接上拉电阻。

(1)当P1端口用作输出端口时

如果要将P1端口用作输出端口,应给锁存器的写锁存器CL端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q和Q端输出,如D端输入“1”,则Q端输出“0”(Q端输出“1”),该“0”送到场效应管的栅极,场效应管截止,从P1端口输出“1”。

(2)当P1端口用作输入端口时

当将P1端口用作输入端口时,如果锁存器以前锁存的为“0”,即Q=0、Q=1,其中Q=1会使场效应管导通,P1端口被钳在“0”电平上,“1”将无法送入P1端口。所以与P0端口一样,在将数据输入P1端口前,先要通过内部总线向锁存器写“1”,让Q=0,场效应管截止,P1端口输入的“ 1”就可以送到输入三态门的输入端,此时再给三态门的读引脚送一个读控制信号,“1”就可以通过输入三态门送到内部总线。

P2端口

P2端口有P2.0~P2.7共8个引脚,P2端口每个引脚的内部电路结构都相同,其内部电路结构如图2-8所示。

图2-8 P2端口内部电路结构

从图2-8中可以看出,P2端口的内部结构与P0端口很相似。P2 端口也可作 I/O 引脚,在外接存储器时,还可以作为地址总线引脚。

(1)当P2端口用作地址总线引脚时

如果要将P2端口用作地址总线引脚,单片机内部的CPU会发出一个控制信号到电子开关的控制端,让电子开关与内部地址总线接通,地址总线上的信号就可以在通过电子开关、非门和场效应管后从P2端口引脚输出。

(2)当P2端口用作I/O接口时

如果要将P2端口用作I/O接口,单片机内部的CPU会发出一个控制信号到电子开关的控制端,让电子开关与锁存器接通。

当将P2端口用作输出端口时,给锁存器的CL端送写脉冲信号,内部总线上的数据就被锁存进锁存器并从Q端输出,再通过电子开关、非门和场效应管从P2端口引脚输出。

当将P2端口用作输入端口时,如果锁存器以前锁存的为“0”,即Q=0,经非门反相后会使场效应管导通,P2端口被钳在“0”电平上,“1”将无法送入P2端口。所以与P0、P1端口一样,在将数据输入P2端口前,先通过内部总线向锁存器写“1”,让Q=1,场效应管截止,P2端口输入的“1 ”就可以送到输入三态门的输入端,此时再给读引脚送一个读控制信号,“1”就可以通过三态门送到内部总线。

P3端口

P3 端口有 P3.0~P3.7 共 8 个引脚, P3 端口可作为 I/O 接口,还可以用于其他方面。P3端口每个引脚的内部电路结构都相同,其内部电路结构如图2-9所示。

图2-9 P3端口内部电路结构

(1)当P3端口用作I/O接口时

如果要将P3端口用作I/O接口,应让与非门的选择输出功能端为“1”,以开通与非门。

当将P3端口用作输出端口时,给锁存器的CL端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q端输出,再通过与非门和场效应管从P3端口引脚输出。

当将P3端口用作输入端口时,应先通过内部总线向锁存器写“1”,让Q=1,场效应管截止,P3端口输入的信号就可以通过缓冲器、输入三态门送到内部总线。

(2)当P3端口用作第二功能时

P3端口用作第二功能(又称复用功能)时,实际上也是在该端口输入或输出信号,只不过输入、输出的是一些特殊功能的信号。所以当P3端口用作第二功能时,其内部电路的工作原理与用作I/O接口时是一样的,在用作输入功能时,端口的锁存器同样要先置“1”。

P3端口8个引脚的第二功能详见表2-1。例如P3.2引脚用作第二功能时,该端口可输入由外部设备送到的中断请求信号,该信号通过缓冲器、输入三态门送到内部总线。

P3端口除了可以接收外界的输入信号外,还可以接收内部的替代输入功能端送来的信号,该信号通过输入三态门送到内部总线。

总之,P0、P1、P2 和 P3 端口的功能是:都可以作输入或输出端口; P0、P2、P3 端口具有第二功能,各种端口的第二功能见表2-1。例如,表中说明P0端口的第二功能可以用作低8位地址总线/ 数据总线,P2端口可用作高8位地址总线,P3.0端口可用作串行数据接收端。

表2-1 MCS-51系列单片机各端口的第二功能

相关问答

三、简答题1、MCS51系列 单片机 共有几个并行I/O ,分别用什么...

[最佳回答]MCS-51单片机有4个双向的8位I/O口的P0~P3口为三态双向口P1,P2,P3口为准双向口(用作输入时,口线被拉成高电平,所以称为准双向口).51单片机的4个口...

单片机 io 扩展模块的 作用 ?

通过单片机IO控制扩展口,增加单片机IO口能控制的端口的数量。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的...

什么是上拉电阻、下拉电阻?为什么要接? 单片机IO口 在什么情...

[最佳回答]顾名思义,上拉就是把电平拉高(一般到电源),下拉就是拉低(一般到地).上拉主要是为了提高灌电流驱动能力,相当于从电源借点儿功率到IO口,下拉主要是在...

51 单片机 p0 功能?

做基本I/O口使用。CPU发出的控制信号为低电平,使多路控制开关MUX接通B端,即与输出锁存器的“!Q”连接,同时使与门输出为低电平,场效应管Q1截止。当P0输出数...

单片机 DDRB的 作用 ?

DDRB决定了单片机IO口的方向,若是仅仅应用,那在读取端口是设置DDRB相应位为1,然后读取PINB,写端口是设置DDRB相应位为0,然后写PORTB,若是想深入了解,最好看a...

51 单片机 什么时候需要配置 io口 模式?

如需要用到推挽输出的时候。如需要用到推挽输出的时候。

单片机 io口 最低驱动电压及电流,也就是说多少伏以上及多少毫安以上被认为高电平?

5v单片机的io口与TTL电平兼容输入高电平>2.0V低电平<0.8V,输出高电平3.5V,低电平0.2V,输入电流是很小的1UA左右,输出电流可以在10-20ma5v单片机的i...

单片机 为什么要用模拟SPI?

一个方面是自身的不好用,设置麻烦,另一个是通信方式和被控的器件时序不兼容,还一个原因就是自带的可能专用IO被其他功能占用了,或是已经使用在别的SPI器件上...

stm32开发板那么多的 IO 接口都是干什么用的?怎么连接外部扩展板?

单片机的开发板是为方便初学者而设计的,开发板往往选用比较流行、片上资源比较丰富的单片机作为核心,将常用的外设电路通过跳线的方式整合起来,让初学者通过一...

8051 io口 有哪两种形式?

51单片机的IO口有输入和输出两种形式。当IO作为输入时又分高阻态和施密特两种输入模式,高阻输入适合检测电流比较小的信号,而施密特模式适用于检测电平不够稳...

猜你喜欢