第二章:聊一聊上拉电阻的工作原理

**********本文所采用的单片机是:STC89C52RC系********************

【重点提要】其实,理解上拉电阻的原理,关键是理解这两个词:锁存器&开漏输出。

(1)关于锁存器

我们知道,单片机是由微处理器、存储器以及输入输出接口组成的芯片,具体到引脚,我们了解到单片机的结构如下图所示:

原来P1,P2,P3接口对应的元器件是锁存器(一种存储器),而锁存器有一个特征就是存储单元电路。锁存,其实就是缓存的意思,可以把信号暂存为某种电平状态:高电平或低电平,但是具体是哪种,其实是不确定的。我们通过程序控制信号输入“0”和“1”,其实就是改变锁存器的电平状态。“0”为低电平(电压),“1”为高电平。

(2)关于开漏输出

然而,单片机输出属于开漏输出,也就是无法输出电压,不管单片机有多大的蓄能,它的引脚也不输出电压,我们也可以称之为悬空状态。

(3)上拉电阻的工作原理

当我们接入上拉电阻的时候,就是将不确定的信号通过一个电阻钳位在高电平,输入电流,电阻同时起到限流的作用(钳位是指将某点的电位限制在规定电位的措施,是一种过压保护技术。)这个时候,输出高电平的电压会拉到上拉电阻的电压。(如下图所示)

我们再接入一个LED灯,其正极接入P0^1,负极接地(如下图所示)。

这时,P0^1的电平已经被固定在高电平了,在无信号输入的情况下或输入高电平信号“1”的时候,可以保持在高电平状态,上拉电阻的Vcc电源输出的经过上拉电阻限流后的电流流过LED灯,灯就会亮,如下图所示。值得注意的是,LED的电压不是单片机芯片提供的,而是上拉电阻输出端提供的。当我们再并联一个上拉电阻,总电阻变小,电流变大,LED灯变得更亮。输入信号(0或1),就是改变锁存器的电平状态,进而控制Vcc的电源提供的电流是流过LED灯还是流向地。

例如,一盏LED灯接入带上拉电阻的单片机接口(如下图所示),而另一盏灯直接通过同样的10K电阻接入,不过不接入单片机,可以发现,这两盏灯的亮度是一样的。换句话说,P0^1端并没有为LED灯在亮的时候提供任何电源,P0^1的作用就是在输出低电平(0)的时候接地,从而导致LED灯短路不亮,仅此而已。

同理,如果我们把电阻接入负极(地),那么就不叫上拉电阻了,而叫下拉电阻,其作用也不是让单片机输出端保持高电平,而是低电平。

以上就是上拉电阻控制电路的原理,如果没有上拉电阻,那么由于单片机的开漏输出,P0^1将无法输出电压,LED灯也不会亮。

(本章 完。其它章节,请关注公众号“AJ的笔记”获取)

 

AJ的笔记之上拉电阻的工作原理分析的更多相关文章

  1. SPI协议及工作原理分析

    说明.文章摘自:SPI协议及其工作原理分析 http://blog.csdn.net/skyflying2012/article/details/11710801 一.概述. SPI, Serial ...

  2. Security:蠕虫的行为特征描述和工作原理分析

    ________________________ 参考: 百度文库---蠕虫的行为特征描述和工作原理分析 http://wenku.baidu.com/link?url=ygP1SaVE4t4-5fi ...

  3. Azure WAF防火墙工作原理分析和配置向导

    Azure WAF工作原理分析和配置向导 本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢! 本地数据中心往云端迁移的的 ...

  4. Hadoop生态圈-Zookeeper的工作原理分析

    Hadoop生态圈-Zookeeper的工作原理分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   无论是是Kafka集群,还是producer和consumer都依赖于Zoo ...

  5. 原理剖析-Netty之服务端启动工作原理分析(下)

    一.大致介绍 1.由于篇幅过长难以发布,所以本章节接着上一节来的,上一章节为[原理剖析(第 010 篇)Netty之服务端启动工作原理分析(上)]: 2.那么本章节就继续分析Netty的服务端启动,分 ...

  6. AQS工作原理分析

      AQS工作原理分析 一.大致介绍1.前面章节讲解了一下CAS,简单讲就是cmpxchg+lock的原子操作:2.而在谈到并发操作里面,我们不得不谈到AQS,JDK的源码里面好多并发的类都是通过Sy ...

  7. getaddrinfo工作原理分析

    getaddrinfo工作原理分析 将域名解析成ip地址是所有涉及网络通讯功能程序的基本步骤之一,常用的两个接口是gethostbyname和getaddrinfo,而后者是Posix标准推荐在新应用 ...

  8. [Java] SSH框架笔记_SSH三大框架的工作原理及流程

    Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...

  9. 一篇笔记带你梳理JVM工作原理

    首先要了解的 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用, ...

随机推荐

  1. pytest pluggy.manager.PluginValidationError: unknown hook 'pytest_namespace'报错处理办法

    一.背景说明 上周测试的同事说pytest+allure环境在别人电脑上跑没问题,在她的环境跑却报错让帮看一下.其实pytest只是听说过allure直接没听过,但不能直接表示不会,祭出百度大法. 看 ...

  2. day 04 list,元祖

    1,作业讲解 # s = '132a4b5c' # s1 = s[0]+s[2]+s[1] # print(s1) index = 0 # while 1: # print(s[index]) # i ...

  3. Introduction and use of Cookie and Session(Cookie&Session的介绍和使用)

    一.Cookie 1.什么是Cookie? Cookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据. 首先由服务器通过响应头把Cookie传输给客户端,客户端会将Cookie保存起来 ...

  4. MyCat配置运行

    昨天把mycat的环境搭建差不多了,今天直接上配置文件: 主要需要修改三个配置文件: rule.xml schema.xml server.xml rule.xml配置如图: <?xml ver ...

  5. PL/SQL Developer如何导出数据成sql的insert语句

    1.选择菜单 , [工具]-[导出表] 2.选择tab标签页的,[SQL插入] 注意where条件语句,注意要选择相应的表 3.选择输出

  6. Tensorflow计算加速

    在tensorflow里可以通过tf.device函数来指定每个运行的设备,可以是GPU也可以是CPU,比如CPU在tensorflow里的名称为/cpu:0,即便电脑里有多个CPU,tensorfl ...

  7. 使用labelme制作自己的数据集

    # python3 conda create --name=labelme python=3.6 source activate labelme # conda install -c conda-fo ...

  8. 简单gulp.js

    引入相对应的文件 let gulp = require("gulp"); let inject = require("gulp-inject"); let cl ...

  9. 活代码LINQ——07

    来源说明:https://blog.csdn.net/sha574810590/article/details/40738069 在LINQ中,数据源和查询结果实际上都是IEnumerable< ...

  10. 简单的Java ee思维导图