精华内容
下载资源
问答
  • 本文对单片机IO口无法输出高低电平的原因进行了分析。
  • 单片机检测IO口高电平、低电平、悬空三种状态。 步骤1:设置IO口为输入上拉模式,读取IO口状态,假设用变量IO_State1记录此时IO口状态。 步骤2:设置IO口为输入下拉模式,读取IO口状态,假设用变量IO_State2记录此时...

    单片机检测IO口高电平、低电平、悬空三种状态。

    步骤1:设置IO口为输入上拉模式,读取IO口状态,假设用变量IO_State1记录此时IO口状态。
    步骤2:设置IO口为输入下拉模式,读取IO口状态,假设用变量IO_State2记录此时IO口状态。
    步骤3:根据IO_State1和IO_State2真值表判断IO口状态。

    IO_State1IO_State2IO口状态
    10悬空
    11高电平
    00低电平
    展开全文
  • 简介在很多情况下,电子系统中需要获得比工作电源电压电源,或者负电源。比如在一些功率器件(MOS)的基极驱动信号、扩展运算放大器的动态范围、一些通信信号(UART232)。现在有很多专门的芯片,可以提供高效的电压...

    简介

    在很多情况下,电子系统中需要获得比工作电源高的电压电源,或者负电源。比如在一些功率器件(MOS)的基极驱动信号、扩展运算放大器的动态范围、一些通信信号(UART232)。

    现在有很多专门的芯片,可以提供高效的电压转换,比如ICL7660就是一个非常通用的开关电压转换芯片,通过灵活的配置,可以产生-Vcc, 2VCC等不同的电源。并且可以通过级联获得更高倍数的电压信号。

    如果仅仅是为了驱动一个高端MOS管的动作,需要有两倍以上的VCC作为基极信号,控制器开断,那么可以使用单片机的IO口来产生两倍的工作电源。

    ca8f04a2e4257b1e5c8a12edbf0226be.png

    ▲ 插图|Bing图库

    下面给出了基于STC8G1K08(SOP16封装)设计的方案,以及相关的应用。

    方案

    这个方案最初的目标是用于制作STC无线远程自动程序下载器。由于STC系列的单片机在自动下载的时候,一种最通用的方式,就是使得单片机冷启动,在此过程中,配合PC端的ISP程序在单片机上电过程完成握手信号,使得单片机进入底层监控程序,最终完成下载。

    为了能够自动控制外部单片机电源的通断,通常可以使用微型继电器、大功率MOS管。为了便于后期的通讯,当做开关作用的MOS管位于电源的上端,那么控制它的通断的栅极驱动信号就需要比VCC更高的电压。下面给出的方案就是借助于倍压整流(或者仿照ICL7660的工作原理)的方案。

    1、原理图设计

    本实验的实验工程文件:

    D:zhuoqingAltiumDesignerSTCTest2020Download7660L.SchDoc

    整体的电路原理如下。利用单片极IO口只是该电路功能的一部分。

    29bba4a13911d420cb68e0ff57c380de.png

    ▲ 直接应用单片机IO口完成倍压整流

    使用STC8G1K08的CCP2输出第3通道的PWM波形。配合P3.6输出高电平和低电平,经过两个肖特基二极管的倍压整流(DT,DT1,C20, C21)最终可以在MOS管T1的栅极形成2VCC的电压。

    工作模式1: P5VCTN输出+5V,PWMO输出占空比为50%的方波信号。C20电容上就会交替充上+5V电压,然后通过DT往C21上冲进2VCC 的电压。

    在这种情况下,可以将DT,DT1,C20,C21看成对PWMO的标准倍压整流电路;

    此时T1的栅极上施加有2VCC(+10V)的驱动电压,对外的电源打开。

    工作模式2: 输出0V模式。此时将P5VCNTN输出为0V,PWM0停止振荡,它可以停留在0V,也可以停留在+5V,由于C20的隔直,所以停止振荡的PWMO信号不会对输出产生影响。

    此时,T1栅极的电压经过RT1接到地,输出关断。

    2. 制作实验电路板

    通过设计单面PCB版图,利用快速制版方式获得实验电路。

    c0f424398b0069018069163ba63bc5f6.png

    ▲ 实验电路板

    其中。在C100处焊接容量为1000uF的电容,这使得开关对外负载如果也具有很大的容性的时候,可以提供比较大的冲击电流。

    如果该电容没有焊接,或者采用的电容较小,此时在MOS开启对外负载供电的时候,对本电路电压产生冲激,使得电路中的单片机重启。

    实验结果

    实验中的单片机软件目录:

    D:zhuoqingwindowC51STCToolsSTCDLSTCDL8G1K1PWMSTCDL8G1K1.uvproj

    1. 软件相关配置

    STC的单片机内部时钟配置在35MHz。

    9d9cfdc99f5cd600015255cf70c5923d.png

    ▲ STC8G1K 硬件配置

    在PWM输出使用8Bit的模式。

    2. 相关子程序

    控制10V输使用下面两个指令。需要同时控制P5V,PWMO的输出。

    #define P10V_ON                 ON(P5V_PIN), PWM3SetPWM(0x7f)          #define P10V_OFF                OFF(P5V_PIN), PWM3SetPWM(0xff)

    3. 电路各部分的信号

    系统上电,并下载程序之后,测量电路的各部分的信号以及输出性能。

    78d937a472bd89c9d3c927738203bdc7.gif

    ▲ 实验电路板上电后的情况

    参与产生电压的两个IO口,都设置为PUSH-POLL的大电流输出模式。

    (1)驱动波形:

    测量电路中的波形如下图所示:

    d3045c477513ae04f81e53126afe700e.png

    ▲ 电路上的两部分的波形

    (2)输出的2VCC电压:

    由于存在整流二极管的电压降,所以实际输出的电压比2VCC要低。在MOS的栅极上可以测到得到输出的驱动电压为:9.33V。

    (3)MOS输出阻抗:

    使用手持的RLC表,测量T1(MOS)的D,S极之间的电阻,大约为40mΩ。这说明该MOS管被充分打开了。

    3752e38b01492737eb74b7068dd9f805.png

    ▲ 测量阻抗的手持RLC表

    4. 倍压部分输出特性

    使用电子负载作为倍压整流的负载,测量在不同的输出电流下,倍压整流的输出电压。

    24ddd3aa9dc8ad0d7168592553ff1a11.png

    ▲ 电子负载外观

    如下是测量不通电流下的输出电压,

    vdc=[-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01]vout=[9.31,9.30,9.31,9.31,9.30,9.31,9.31,9.30,9.30,9.31,9.30,9.31,9.31,9.30,9.30,9.31,9.30,9.30,9.11,9.01,8.91,8.82,8.71,8.61,8.51,8.41,8.31,8.21,8.10,8.00,7.90,7.78,7.67,7.57,7.45,7.34,7.22,7.10,6.99,6.87,6.74,6.62,6.49,6.36,6.23,6.09,5.95,5.81,5.66,5.50,5.34,5.18,5.00,4.81,4.63,4.47,4.34,4.26,4.20,4.15,4.11,4.07,4.02,3.99,3.95,3.90,3.87,3.83,3.79,3.75,3.71,3.67,3.63,3.59,3.54,3.50,3.46,3.41,3.37,3.33,3.27,3.23,3.18,3.13,3.08,3.03,2.97,2.93,2.87,2.81,2.76,2.70,2.64,2.58,2.53,2.46,2.40,2.34,2.26,2.19]

    从下面图中俗称,输出电压随着电流的增加逐步下降。

    9193de094a490ac3ac292188a4a48c94.png

    ▲ 倍压整流输出电压与电流之间的关系

    输入电流和电压变化范围大体如下:

    则倍压整流的输出等效电阻为:

    实验中的测量程序:

    #!/usr/local/bin/python# -*- coding: gbk -*-#******************************# TEST1.PY                     -- by Dr. ZhuoQing 2020-05-02## Note:#******************************from headm import *from tsmodule.tshardware    import *from tsmodule.tsvisa        import *from tsmodule.tsstm32       import *#------------------------------------------------------------vdc, vout = tspload('testdata', 'vdc', 'vout')i0 = (99 - 37)v0 = 1.1e-3vstart = vdc[0]def v2i(v):    return (v - vstart) * i0 / v0/ 10printf(vdc, vout)I = [v2i(v) for v in vdc]plt.plot(I, vout)plt.xlabel('Out Current(ms)')plt.ylabel('Out Voltage(V)')plt.grid(True)plt.show()exit()#------------------------------------------------------------dm3068open()#------------------------------------------------------------vdcdim = []voutdim = []for s in range(100):    zbcmd(b'clzigbee %d'%s)    time.sleep(1)    vdc = dm3068vdc()    meter = meterval()    vout = meter[0]    printf("VDC:%f, VOUT:%f"%(vdc, vout))    vdcdim.append(vdc)    voutdim.append(vout)    tspsave('testdata',vdc=vdcdim, vout=voutdim)printf('a')tspsave('testdata',vdc=vdcdim, vout=voutdim)plt.plot(vdc, vout)plt.show()#------------------------------------------------------------#------------------------------------------------------------#        END OF FILE : TEST1.PY#******************************

    结论

    直接使用能够输出大电流的单片机IO口(设置为Push-Poll模式),可以产生2VCC的高压。通过其它方式的二极管整流方式,也可以产生负电压。

    由于在本实验应用中驱动MOS管的栅极负载非常小,所以所产生的2VCC电源的功率可以满足需求。

    展开全文
  • 1.单片机的vcc与led等相连,但vcc没有通电。用单独的5v给io口,发现vcc引脚也有电压,led等亮起,为什么呢。 主要是io口外接二极管保护电路,5vtong

    1.单片机的vcc与led等相连,但vcc没有通电。用单独的5v给io口上电,发现vcc引脚也有电压,led等亮起,为什么呢。

    主要是io口外接二极管保护电路,5vto在这里插入图片描述
    5V通过二极管使得vcc带电

    展开全文
  • 单片机IO口原理解析

    千次阅读 多人点赞 2018-12-01 20:32:25
    单片机有4组IO口,内部结构各不同,有些IO口具有第二功能 上面除了P1外,其他接口都有第二功能。 IO口等效电路 作为普通IO口使用时,4个IO口的工作原理基本一致。 下面的图是P1电路图 右边P1.X是P1的一个IO...

    参考:http://m.elecfans.com/article/581431.html
    @[TOP]

    第二功能

    单片机有4组IO口,内部结构各不同,有些IO口具有第二功能
    在这里插入图片描述
    上面除了P1外,其他接口都有第二功能。

    IO口等效电路

    作为普通IO口使用时,4个IO口的工作原理基本一致。
    下面的图是P1电路图
    在这里插入图片描述
    右边P1.X是P1的一个IO口,如P1.0;PULL-UP*是内部上拉电阻的意思,之所以叫上拉,是因为电阻一端接在VCC上。下面的三角形表示接地,相当于GND。
    最关键的器件是下面这个
    在这里插入图片描述
    这个器件的本质是晶体管,起到电子开关的作用。
    上面的电路大致等效成下图。
    在这里插入图片描述
    图中的R是上拉电阻,S是前面晶体管等效的电子开关。蓝色框中的部分在单片机内部。
    S的开关状态由CPU控制。当用程序设置P1.0管脚为低时,电子开关S闭合。实际S闭合时,两端还有很小的电阻。根据分压原理,P1.0上还有一个很低的电压,近似为0V,可视为低电平。当设置管脚为高电平时,S断开,P1.0通过10K欧电阻接到VCC上。如果用电压表测量,因为电压表内阻很大,所以可得出其电压值为高电平。
    备注1:“输入”绿色箭头,这部分电路只有在读取管脚输入时才会导通,并且是单向的,可以想象成内阻较大的电压表输入端。
    备注2:51单片机IO口工作在普通IO口状态下,电子开关使用晶体管实现的(包括三极管和MOS管两种)。下图中实现的这种电平输出结构,如果是MOS管实现,则被称为漏极开路输出(OD=Open Drain,或简称(“开漏”)),漏极是MOS管的一个管脚,对应与图中S和R的节点处。如果是三极管实现,则称为集电极开路输出(OC=Open Collector),两者原理基本一致。
    在这里插入图片描述

    IO口输出:点亮LED

    #include<reg51.h>
    
    sbit LED = P1^0;
    
    void main()
    {
    	LED = 0;
    	while(1);
    }
    

    在这里插入图片描述
    电路关键部分,将VCC通过1K欧电阻接到LED正极,LED负极接到P1.0口。
    单片机执行LED = 0的时候,电子开关S由CPU控制闭合,P1.0上输出低电平。电流流过1K电阻和LED流入P1.0,在经过S流入GND,LED两端有合适电压,于是被点亮。

    灌电流与拉电流

    在上面例子中,P1.0输出低电平点亮LED。能否反过来,P1.0输出高电平,点亮LED呢?将电路连接成下面这样,并程序中编写LED = 1。
    在这里插入图片描述
    执行LED = 1时,S断开,电流通过10K欧上拉电阻从P1.0流出,并进入LED。由于上拉电阻阻值很大,电流过小,LED不亮。
    这两种方法,前者电流从单片机外部流入单片机内部,称为灌电流接法;后者电流由单片机内部留到外部,称为拉电流接法。对51单片机,灌电流接法,电流比拉电流接法电流大。
    实际中,灌电流的最大电流也是有限的,因为电子开关S中能通过的电流有限。STC官方手册中,建议单个IO口灌电流不超过20mA,所有IO口灌电流之和不超过55mA,否则容易烧坏IO口。而拉电流大小只有230UA左右。

    上拉电阻/下拉电阻/高阻态

    拉电力是从上拉电阻流出来的,能否提高拉电流大小呢?可以。只需要在单片机外部加一个上拉电阻,就可以增大电流,并能成功点亮LED。如下图所示。
    在这里插入图片描述
    但是当单片机输出低电平时,S闭合,电流从VCC通过上拉电阻和S流入GND,造成电流浪费。上拉电阻过大,会导致驱动力不足,过小,输出低电平时浪费电能。
    上拉电阻的作用是什么呢?使IO口输出高电平。如果没有上拉电阻时,开关闭合时能输出高电平,但是开关断开时,P1.0悬空,什么也没连接,这时IO口的电压就是不确定的,这种状态无法判断它是高电平还是低电平,叫做高阻态

    IO口的输入:开关控制

    IO口(Input/Output),意味着可以作输入或输出。
    在这里插入图片描述
    图中S0是一个单刀双掷开关,往上切换,可将P1.0连接到VCC,往下切换可以接到GND。读取时CPU会通过特定电路获取上图中橙色导线的电平。我们要实现的效果是,让CPU读取P1.0端口的电平,从而获得开关S0的状态。
    设置输出高电平时,S断开,CPU通过获取P1.0上的电平,知道外部开关S0的状态。
    设置处处低电平时,S闭合,S0往下切换,P1.0低电平,S0往上切换,P1.0仍是低电平。于是CPU无法判断外部开关S0的状态。
    总结就是,在读取IO电平时,应先设置输出高电平(即断开S),再读取数据

    展开全文
  • 单片机IO口操作总结

    千次阅读 2020-08-28 16:18:39
    单片机IO口操作总结一、单片机IO口概述二、单片机IO口操作1、输入口使用2、输出口使用三、关于上拉电阻四、休眠状态下IO配置4.1、未使用的IO4.2 输入 一、单片机IO口概述 IO是人机交互的接口,I为输入、O为...
  • 单片机IO口状态详解

    万次阅读 2017-11-29 23:55:34
    以前留的一篇文章,写的挺好的,...如下图,当IO输出为高电平时,其驱动能力很弱,外部负载很容易将其拉至低电平。当IO输出为低电平时,其驱动能力很强,可吸收相当大的电流。    准双向只能有效的读取0,而对1则
  • 蜂鸣器实验* 蜂鸣器 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压式...
  • 单片机_IO口知识点介绍

    千次阅读 2019-02-23 22:42:00
    单片机_IO口知识点介绍 IO/GPIO General Purpose Input Output (通用输入/输出)简称为GPIO,GPIO作为单片机与外界通信控制最主要的手段,开始GPIO的学习也是最重要的部分,这里内部的电路原理就不详细深究了,...
  • 单片机IO口悬空,阻态究竟是什么意思?

    万次阅读 多人点赞 2019-03-23 00:08:23
    不是所有的单片机都支持三态输出。三态输出一般由寄存器控制,需进行配置。 阻态既然无确定电平,怎么能做输出呢?把一个端口置为阻态,相当于该端口从电路中断开(仅对输出来说),比如在一个通信线上挂了几...
  • ①RST复位电路51单片机高电平复位,低电平正常工作上电瞬间以及按下按键(电容相当于导线),RST为高电平。按键按下的瞬间会产生大电流冲击,会局部产生较大的电磁干扰。为了减小这种干扰,加一个一个限流电阻。②...
  • 经过长时间调试和查阅资料发现,esp32的引脚分为数字引脚和模拟引脚(官方叫电容式触摸GPIO和模数转换GPIO),当使用以下程序输出高电平时 digitalWrite(GOPIOPin, HIGH); 只有数字引脚正常输出,模拟引脚将不受...
  • 高电平输出状态下,电压虽然没有变化,但电流很小,这就使得单片机IO引脚是无法直接驱动直流电机的。 话不多说,上图 一个三极管放大够呛,没跑多久直接烧了(●—●),所以得上两个三极管 1k的电阻起限流作用,...
  • 5V来自于TTL电平,5为True,0即为False,...所以3v3和5v一般出现在信号电路或者单片机等vcc供电,而12v/24v一般出现在低压动力,例如主板、显卡、轴流风机、监控器。硬件决定系统基础,如果锂电池早点应用的话估计...
  • 关于单片机IO口接开关三极管的疑惑

    千次阅读 2015-05-21 14:51:45
    第一种情况,先不考虑单片机,原理图如下图所示。初始状态:两节干电池做Vcc,负载电阻R1=10欧(固定),限流电阻R2=5k欧(可变,0~5K欧),PNP三极管型号s8550。 在R2从5k欧调小的过程中(一直到10欧),测量R1两端...
  • stm32单片机 IO口3.3v 部分IO口兼容5V

    千次阅读 2016-03-23 21:05:31
    stm32单片机供电3.3v,IO口一般情况下输出3.3V。 部分IO口兼容5V,可以输入5V电压。开漏输出、加5V上拉电阻的情况下,可以输出5V。
  • IO口模式回顾点滴分享A int *p, i;...先做做看看)今天回顾记录一下单片机IO口,这里说的是GPIO,General Purpose Input Output (GPIO)。通用型输入输出端口,简称GPIO,是单片机与其他外围设备和电路进行信...
  • 单片机IO结构详解

    千次阅读 2018-05-02 14:47:41
    2 永远有内部电阻上拉(P0除外),高电平输出电流能力很弱,所以即使IO口长时间短路到地也不会损坏IO口(同理,IO口低电平输出能力较强,作低电平输出时不能长时间短路到VCC) 3 作输入时,因为OC门有"线与"特性,必须把...
  • 51单片机IO口和寄存器

    千次阅读 2020-07-10 16:21:34
    当我们拿到一块单片机时,我们首先看到的是他的外观,就像下边这样的: 当然对于51单片机来说,最常用的还是第一种样式的,这种叫做PDIP封装。在单片机上有很多小针(管脚),这些就是单片机用来输出数据,控制...
  • 在很多情况下,电子系统中需要获得比工作电源电压电源,或者负电源。比如在一些功率器件(MOS)的基极驱动信号、扩展运算放大器的动态范围、一些通信信号(UART232)。 现在有很多专门的芯片,可以提供高效的...
  •  有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,即:编程脉冲:30脚(ALE/PROG) 编程电压(25V):31脚(EA/Vpp)接触过工业设备的兄弟...
  • 单片机的引脚,可以用程序来控制,输出高、低电平,这些可算是单片机的输出电压。...单片机输出高电平时,则允许外部器件,从单片机的引脚拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载”。
  • 51单片机之独立按键 ...如上图所示,当单片机输出高电平时,允许电路从单片机的引脚拉出电流,这个电流就叫做“拉电流”,从而发光二极管被点亮,发光二极管所在的电路可以叫做“拉电流负载” 上拉就是将不确定的信
  • 八种IO口模式 STM32有八种IO口模式,分别是:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。 1、模拟输入 GPIO_Mode_AIN模拟输入,即关闭施密特触发器,将电压信号...
  • 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号 如下图所示: 如图所示,按键闭合式不会立刻稳定的接通,断开时也不会一下子断开,会伴随一些抖动。抖动的时间长短有按键特性决定,一...
  • 51单片机IO口的学习

    千次阅读 2019-01-22 20:27:18
    上拉个人理解就是把高电平拉倒尽可能高的值。一般来说,一个系统,最高的电平是正电源,所以上拉电阻就接到了正电源。 上拉的强弱取决于上拉电阻的阻值。我的理解,负载电阻的大小一般是固定的,它会和上拉电阻串联...
  • 上拉电阻的应用:(1)OC门(开漏输出中,三极管的集电极)要输出高电平,外部必须加上拉电阻(2)加大普通IO口的驱动能力(3)起到限流的作用(4)抵抗电磁干扰 电路设计中如何选择上下拉电阻阻值:(1)从降低功耗...
  • 关于单片机检测高电平

    万次阅读 2011-04-13 20:59:00
    IO口检测高点平的问题,曾经而困扰我不少时间...否则可能影响被检测模块端口的电压(如:被拉低电平至0v,或被拉高)4、注意单片机一般是TTL电平模式的,因此高电平的最低应该是2V,低电平的最高应该是0.8V。(具体还是
  • IO口操作是单片机实践中最基本最重要的一个知识,本篇花了比较长的篇幅介绍IO口的原理。也是查阅了不少资料,确保内容正确无误,花了很长时间写的。IO口原理原本需要涉及很多深入的知识,而这里尽最大可能做了简化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,681
精华内容 1,472
关键字:

单片机io口高电平电压