AJ的笔记之上拉电阻的工作原理分析
第二章:聊一聊上拉电阻的工作原理
**********本文所采用的单片机是: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的笔记之上拉电阻的工作原理分析的更多相关文章
- SPI协议及工作原理分析
说明.文章摘自:SPI协议及其工作原理分析 http://blog.csdn.net/skyflying2012/article/details/11710801 一.概述. SPI, Serial ...
- Security:蠕虫的行为特征描述和工作原理分析
________________________ 参考: 百度文库---蠕虫的行为特征描述和工作原理分析 http://wenku.baidu.com/link?url=ygP1SaVE4t4-5fi ...
- Azure WAF防火墙工作原理分析和配置向导
Azure WAF工作原理分析和配置向导 本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢! 本地数据中心往云端迁移的的 ...
- Hadoop生态圈-Zookeeper的工作原理分析
Hadoop生态圈-Zookeeper的工作原理分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 无论是是Kafka集群,还是producer和consumer都依赖于Zoo ...
- 原理剖析-Netty之服务端启动工作原理分析(下)
一.大致介绍 1.由于篇幅过长难以发布,所以本章节接着上一节来的,上一章节为[原理剖析(第 010 篇)Netty之服务端启动工作原理分析(上)]: 2.那么本章节就继续分析Netty的服务端启动,分 ...
- AQS工作原理分析
AQS工作原理分析 一.大致介绍1.前面章节讲解了一下CAS,简单讲就是cmpxchg+lock的原子操作:2.而在谈到并发操作里面,我们不得不谈到AQS,JDK的源码里面好多并发的类都是通过Sy ...
- getaddrinfo工作原理分析
getaddrinfo工作原理分析 将域名解析成ip地址是所有涉及网络通讯功能程序的基本步骤之一,常用的两个接口是gethostbyname和getaddrinfo,而后者是Posix标准推荐在新应用 ...
- [Java] SSH框架笔记_SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- 一篇笔记带你梳理JVM工作原理
首先要了解的 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用, ...
随机推荐
- Python3+unittest使用教程
一.直接使用TestCase 注意所有测试方法都需要以test开头.代码如下: import unittest class Test1(unittest.TestCase): @classmethod ...
- android studio 编辑markdown文件
作为开发人员,对markdown应该比较熟悉,我们在Android开始中,可以使用studio引入Markdown Navigator插件,进行编辑. 搜索 Markdown Navigator 安装 ...
- Tomcat并发优化和缓存优化
Tomcat并发优化 1.调整连接器connector的并发处理能力 在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中 1.参数说明 max ...
- springboot秒杀课程学习整理1-6
1)活动模型设计 配饰秒杀的模型(promoModel)id promoName startDate(建议使用joda-time) endDate itemId promoItemPrice 数据库( ...
- unity打包安卓应用及生成签名
首先,先进行安卓应用的打包.File->build Settings 弹出界面后选择Android,注意,这里如果黄色区域内容与我这个不一致,说明电脑上没有安装studio(安卓开发环境),具体 ...
- 谷歌排名影响因素最新研究(SEM RUSH版)
谷歌排名影响因素,关于这块的研究在国外有很多,一全老师(www.yiquanseo.com)以前也专门翻译整合过两篇,分别是Backlinko的<谷歌排名影响因素权威报告(研究了数百万谷歌网站得 ...
- Python中的 *args 和 **kwargs
基本概念 Python支持可变参数,最简单的方法莫过于使用默认参数. def test_defargs(one, two=2): # 参数one没有默认值,two的默认值为2 print('Requi ...
- codeforces 3b之贪心算法
有货车运量V:有若干物品A 占2单位体积,有若干物品B占1单位体积:相同种类的物品价值不一定一样: 序号按照输入顺序而定:问货车可以拉走最多多少价值的物品,并输出所选物品的序号: 1)常规的解法思路: ...
- 本周HTML5的知识点
html5一般用<meta>标签描述网页的摘要信息.标题标签一共有6个,标题字体加粗<h1>最大,<h6>最小. <p>标签标示内容都在一行显示,结束后 ...
- Spark Streaming的容错和数据无丢失机制
spark是迭代式的内存计算框架,具有很好的高可用性.sparkStreaming作为其模块之一,常被用于进行实时的流式计算.实时的流式处理系统必须是7*24运行的,同时可以从各种各样的系统错误中恢复 ...