c51单片机上电后io口默认的电平默认都是高电平,因为只不过P0没有内部上拉电阻,是弱上拉,不加外部上拉电阻的话只能驱动外部的门电路。P1到P3都有上拉电阻,是强上拉,可以直接驱动外部的接口电路。

改变单片机IO口默认电平

接上拉电阻的话就是默认高电平,输入时可以检测下降沿,接按键到地。接下拉电阻就默认低电平,输入时可以检测上升沿,接按键到电源。 如果不接电阻,默认输出无效电平,当输出有效电平时 有效。 P0口特殊,欲输出高电平,必须接上拉电阻

用了STC12C5A60S2的增强型51单片机,这个的单片机可以设置IO口得工作模式,用的这个单片机都可以通过软件设置IO口模式不为开漏而是其它模式,比如说:准双向口/弱上拉(标准8051输出模式)、推挽输出 /强上拉、仅为输入(高阻)或开漏输出功能

设置成推挽输出就行了的,任何时间只能有一个MOS导通,I/O功能。不需要上拉电阻!! 在使用配置好的I/O 之前可以自己用软件初始化输出电平。

使单片机I/O口初始为低电平的方法

普通8051单片机上电复位时普通I/O口因有上拉电阻,输出高电平。但在实际应用中往往要求上电复位时某些I/O为低电平,否则控制系统的继电器、电机等就会动作。这时介绍两种行之有效而且简单的方法:

1.改变I/O配置

很多增强型单片机产I/O有四种配置:准双向口,开漏输出,推挽输出和高阻配置,而默认为准双向口配置,也就是标准8051的I/O口,这种配置的输出电流为200uA左右,如果将这个I/O能过一电阻连接到地,如下图。

从图中可以看出I/O的最大输出电压为:U=200uA&TImes;1K=0.2V,这个值在大多数单片机中属逻辑低电平,同时这个值也不能驱动硅NPN型三极管。等初始化完成后,可以将I/O配置为推挽输出,这个配置可输出20mA的电流,如果电源为5V,这个电阻也只吸收5mA的电流,所以输出为高,可以驱动三极管,继电器等器件。这个电阻的阻值可适当调整,多个I/O时可用排阻。

2.硬件拉低I/O

如果为普通8051单片机,也就是不能配置I/O,这时就可以通过拉低I/O来使复位I/O为你电平,如下图。

因为上电进所在I/O均为高电平,所以通过8050驱动,可将I/O拉低,多个I/O时,R1可用排阻。

如何用C检测单片机IO口电平变化

检测当信号为1并持续0.1s后再为0持续了0.23ms 为真

首先,要知道单片机是多大的晶振,然后指令周器是等于多少个机器周期。个样才能算出一条指令的执行时间。首先,用C写的,到底他编译出来的汇编语句是什么也要搞清楚。

当扫描用户程序结束后,可编程逻辑控制器就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是可编程逻辑控制器的真正输出。

你是要用定时器定时还是用软件延迟呢?

这么短的时间就软件延迟好了。

首先,你要知道你的单片机是多大的晶振,然后指令周器是等于多少个机器周期。个样才能算出一条指令的执行时间。首先,你用C写的,到底他编译出来的汇编语句是什么也要搞清楚。不然,就像一个while(i!=0)i--;这个的语句不同的编译器编出来是不同的!!有的很简洁就是DZJN,有的很长的。

就是用C写延时,必须用示波器看到底是多少。

unsigned int i

bit flag = 0;

while(1)

{

if(P00=1)

{

i=XXXX;//0.1ms

while(i》0)

{

i--;

if(P00!=1)break;

}

if(i==0)

{

i=YYY; //在YYY时间必须出现低电平,不然上面测到的1就不算了。

while(i》0)

{

i--;

if(P00 = 0)

{

i=ZZZ;//0.23ms

while(i》0)

{

i--;

if(P00!=0)break;//退出WHILE

}

if(i==0) flag = 1;

}

}

}

}

单片机程序配置成开漏输出_改变单片机IO口默认电平相关推荐

  1. 单片机程序配置成开漏输出_单片机I/O开漏输出详解

    开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内). 我们先来说说集电极开路输出的结构.集电极开路输出的结构如 ...

  2. 推挽输出和开漏输出_平台/输入amp;输出

    输入 上拉 通过上拉电阻保证在无信号输入时输入端的电平为高电平. 下拉 通过下拉电阻保证在无信号输入时输入端的电平为低电平. 浮空 不外接电阻,对外部信号敏感. 按键检测用到. 模拟 输入信号未经触发 ...

  3. 推挽输出和开漏输出_关于51单片机IO口的输出模式结构

    单片机种类繁多今天主要谈谈51单片机,在stm32单片机中IO(GPIO)输出模式有很多种.如 模拟输入 .浮空输入.下拉输入.上拉输入.开漏输出.推挽输出等很多种,不同的输入输出有不同的功能,实现不 ...

  4. 单片机关于推挽输出和开漏输出

    什么是推挽输出:推挽输出既可以输出高电平也可以输出低电平. 推挽式输出电路:推挽式输出电路是由互补的两个三极管构成,所谓推拉,推是指推出去,就是输出为高电平是,电流是由内流向外的,形象的称之为推:拉就 ...

  5. 开漏输出、推挽输出的区别

    前言 background:测试相关设备引脚输出,使用示波器时发现部分引脚需外接上拉电阻至高电平才能在示波器观察到高阻态,为了深究其中原理,查阅了相关资料,发现知乎中有一篇对这两种输出描述得清晰易懂的 ...

  6. 推挽输出和开漏输出区别

    近期看到常用的IIC的GPIO用到了开漏输出的配置,总结下推挽和开漏输出让自己记得更清楚. 推挽输出(Push-Pull Output) 推挽输出结构是由两个MOS或者三极管收到互补控制的信号控制,两 ...

  7. 开漏输出和推挽输出总结(一看就懂)

    推挽输出(Push-Pull Output) 推挽输出结构是由两个MOS或者三极管收到互补控制的信号控制,两个管子时钟一个在导通,一个在截止,如图1所示: 推挽输出的最大特点是可以真正能真正的输出高电 ...

  8. 什么是GPIO的推挽输出和开漏输出

    数字芯片GPIO一般分为推挽输出和开漏输出 数字芯片GPIO一般是推挽输出(PUSH-PULL),其内部结构如下: 当上面的MOS管导通时,GPIO输出高电平1,称为"推" 当下面 ...

  9. 推挽输出和开漏输出-三极管-mos管

    一.推挽输出 1.1推挽输出的概念 推挽(push-pull)输出是由两个MOS或者三极管组成,两个管子始终保持一个导通,另一个截止的状态. 图1 推挽电路示意图 当输入高电平时,叫做推: 上管Q1导 ...

最新文章

  1. android:themes.xml
  2. 再见丑陋的 SwaggerUI,这款API文档生成神器界面更炫酷,逼格更高!
  3. 最优二叉树(哈夫曼树)知识点
  4. 802.11协议精读5:隐藏终端和暴露终端
  5. centos mate桌面_CentOS 7安装桌面汇总
  6. 按15分钟取数据_步行15分钟能获得什么?这组数据能告诉你……
  7. 如何在 Web 发布规则中使用证书进行 SSL 身份验证
  8. 5 SU01给用户增加权限
  9. Apache Tomcat 再爆严重安全漏洞
  10. 2017年最具价值的十大开源项目:tensorflow 第一
  11. Python pip windows安装
  12. 关于Junit中Assert已经过时
  13. LLVM PASS类pwn题入门
  14. SwiftyJSON 对网络请求来的数据进行解析或者转为modul
  15. js表单验证(提示版)
  16. 苹果手机以旧换新价格表_苹果支持安卓手机以旧换新;索尼公司将更名;百度网盘推出“防误删”文件恢复服务...
  17. cd40系列芯片_CD40系列芯片大全
  18. 《一周学完光线追踪》学习 十一点五 离焦模糊代码原理分析
  19. win10修改和隐藏系统输入法指示器
  20. Rest-assured + testNG1

热门文章

  1. 有没有免费的文字转语音的软件
  2. mesh 协调器 路由器_关于zigbee协调器(单播方式)传输数据给网络中的多个路由器丢失数据包的问题?...
  3. 最新30佳 HTML5 网站设计案例欣赏
  4. three.js 在手机端移动转向 可做场景漫游
  5. Word文档排版有哪些实用的技巧?新手能快速掌握吗?
  6. MINA研究-源代码
  7. P31 multi-threading 多线程 P32 multiprocessing 多核 P33 tkinter
  8. 搭建FTP服务器出现的“FTP文件夹错误”解决方法
  9. 5G R16 让这项黑科技也驶入了发展“快车道”
  10. LabVIEW 编程思想(第2版)传送门