历史上的今天
返回首页

历史上的今天

今天是:2025年06月03日(星期二)

正在发生

2020年06月03日 | 单片机中的上下拉电阻有什么作用

2020-06-03 来源:elecfans

上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平。


比如我们的 IO 设置为开漏输出高电平或者是高阻态时,默认的电平就是不确定的,外部经一个电阻接到 VCC,也就是上拉电阻,那么相应的引脚就是高电平;经一个电阻到 GND,也就是下拉电阻,那么相应的引脚就是一个低电平。


上拉电阻应用很多,都可以起到什么作用呢?我们现在主要先了解最常用的以下 4 点:

OC 门要输出高电平,必须外部加上拉电阻才能正常使用,其实 OC 门就相当于单片机IO 的开漏输出。


加大普通 IO 口的驱动能力。标准 51 单片机的内部 IO 口的上拉电阻,一般都是在几十 K 欧,比如 STC89C52 内部是 20K 的上拉电阻,所以最大输出电流是 250uA,因此外部加个上拉电阻,可以形成和内部上拉电阻的并联结构,增大高电平时电流的输出能力。


在电平转换电路中,比如我们前边讲的 5V 转 12V 的电路中,上拉电阻其实起到的是限流电阻的作用。


单片机中未使用的引脚,比如总线引脚,引脚悬空时,容易受到电磁干扰而处于紊乱状态,虽然不会对程序造成什么影响,但通常会增加单片机的功耗,加上一个对 VCC 的上拉电阻或者一个对 GND 的下拉电阻后,可以有效的抵抗电磁干扰。


那么我们在进行电路设计的时候,又该如何选择合适的上下拉电阻的阻值呢?


从降低功耗的方面考虑应当足够大,因为电阻越大,电流越小。


从确保足够的引脚驱动能力考虑应当足够小,电阻小了,电流才能大。


在开漏输出时,过大的上拉电阻会导致信号上升沿变缓。我们来解释一下:实际电平的变化都是需要时间的,虽然很小,但永远都达不到零,而开漏输出时上拉电阻的大小就直接影响了这个上升过程所需要的时间,如图 9-2 所示。想一下,如果电阻很大,而信号频率又很快的话,最终将导致信号还没等上升到高电平就又变为低了,于是信号就无法正确传送了。

单片机中的上下拉电阻有什么作用

图 9-2 上拉电阻阻值对波形的影响


综合考虑各种情况,我们常用的上下拉电阻值大多选取在 1K 到 10K 之间,具体到底多大通常要根据实际需求来选,通常情况下在标准范围内就可以了,不一定是一个固定的值。

推荐阅读

史海拾趣

台湾固锝(GD)公司的发展小趣事
衡量放大器对信号噪声贡献的指标,低噪声系数表示放大器引入的噪声较少。
Components Corporation公司的发展小趣事
如果发现电路工作不正常或性能参数不符合要求,应仔细排查故障原因并进行修复。
Bytes公司的发展小趣事

Bytes公司自成立以来,始终坚持以技术创新为核心竞争力。公司早期便投入大量研发资源,开发出一款具有划时代意义的电子产品,迅速在市场上占据一席之地。随着技术的不断进步,Bytes公司不断推出更新换代的产品,满足消费者日益增长的需求。同时,公司还积极与高校、科研机构合作,共同研发新技术,为公司的持续发展提供源源不断的动力。

Colibrys SA公司的发展小趣事

Colibrys在MEMS技术方面拥有深厚的专业知识,这得益于公司长期的研发积累和不断创新的精神。许多客户委托公司建造最苛刻的航空航天、能源、铁路或汽车测试设备,这些成功案例进一步巩固了公司在行业内的领先地位。无论是用于汽车安全气囊的MEMS加速度计,还是用于引导钻头的高温加速度计,都体现了Colibrys在专业知识应用方面的卓越能力。

德索五金(dosinconn)公司的发展小趣事
Eutech公司的发展小趣事

在电源适配器和服务器电源市场,EUtech公司凭借技术创新迅速崛起。他们不断优化产品设计,提高产品性能,同时注重节能环保。随着下游AI行业的快速发展,公司及时抓住机遇,推出了一系列高性能、高可靠性的电源产品,赢得了市场的广泛认可。

问答坊 | AI 解惑

SIM卡座PCB封装(抽屉式和推拉式)

SIM卡座PCB封装(抽屉式和推拉式)…

查看全部问答>

卢二都

嘿嘿,麻烦大家给我提供74HC14施密特整形电路的一些资料。谢谢…

查看全部问答>

关于LED电源驱动芯片

大家懂电源的朋友可以关心一下的,现最好的驱动电源使用哪种芯片,推荐一下!…

查看全部问答>

NorFlash应用问题(39VF1601型号)

1)NorFlash可供使用的地址空间应该从0x0000开始吧。那么为什么在手册中在说明ID读取时,如下:manufacturer\'s ID   0000H(address)   00BFH(data) ; Device ID   0001H(address)  2782H(data) 。感到不 ...…

查看全部问答>

我的6410裸奔和使用wince6.0哪个难度大?

我的系统主要是对来自camera接口的数据进行图像处理,并通过USB OTG口(作为device使用)上传给PC机。不需要运行其它进程。 硬件选用s3c6410。经过在s3c2442的PDA上跑图像处理测试代码,时间比较紧张,主要瓶颈在存储器访问上。因此我们打算给6410 ...…

查看全部问答>

关于函数的调用

我由CDialog类派生了一个新类DlgMenu 然后定义了一个DlgMenu类型变量Dlg1; 写了一个函数:void Fun(CDialog myDlg) 当我这样调用这个函数时Fun(Dlg1),为什么不行? 程序报错:cannot convert parameter 1 from \'class DlgMenu ‘to \'class C ...…

查看全部问答>

ADC0809的C程序,不知道哪错了。大侠们指点迷津啊

void main(void) { unsigned char xdata* data dptr;   unsigned char i,VOUT=0;   float Y,Y1,Y2,X;   while(1)         {          dptr=0x7ff8;  ...…

查看全部问答>

LED照明设计过程中关键问题全析

要设计产品,首先要确定用谁的LED封装结构;接下来考虑怎样适应这些封装形式; 由我们选择的机会不多,光学结构是建立在这些封装之上的;我们很多创意不能很好的发挥。下面介绍LED照明设计过程中的关键问题及分析。   一、半导体照明应用中存在 ...…

查看全部问答>

IAR4.2能修改缩进吗?

最近用IAR4.2开发ST,发现它默认的缩进只有两个空格,像 if(a) { ? ?b; } 不知道能不能修改成默认有更多空格,比如四个,像 if(a) { ? ? ? ? b; } 求教!…

查看全部问答>

430 能进行指数运算吗?

430 能进行指数运算吗? 如果能该怎样实现?? #include <math.h> void main(void) { dou××e i; i=exp(1.5); } 但从 watch 中检测 i 值 ,显示 un××iala××e 怎么一回事?? 3ks…

查看全部问答>