51内核的单片机有个比较恼人的特性就是复位期间,IO口呈高电平状态,万一IO口控制的设备是使用高电平触发的话,在复位的瞬间会造成设备触发。

总结一下接触过的解决方法:

1、把MCU换成别的体系的,譬如AVR、PIC等,这些单片机复位时IO口呈浮空高阻状态,不会造成触发。

2、使用反相驱动,MCU输出低电平反相成高电平再去控制设备。复位时的高电平反相后变成低电平,不会触发。这是比较常用的方法,稳定,但布线复杂了不少。

3、使用光耦隔离。光耦隔离后MCU也是输出低电平打开光耦再驱动被控设备,复位时的高电平不会打开光耦,不会造成误触发。

4、使用多余的IO口锁定,这种方法比较奇怪,在没用的IO口里挑一个出来接到NPN管的基极,再把NPN管的发射极接到被控的IO口,复位时所有的IO口呈高电平,NPN管导通,把被控的IO口强行拉低,相当于把被控IO口的电平锁定为低,避免触发被控的设备。这种方法必须配合软件,复位完毕后必须软件把接NPN管基极的那根IO置低电平,释放被控的IO口。这种方法比较少用,毕竟需要有多余的IO口,还必须加上三极管、电阻,布线复杂了不少,成本也增加不少。

5、使用滤波电容。在被控IO口对地之间接一uF级电容及K级电阻,类似缓冲作用。开机瞬间IO口通过电阻向电容充电,电平有一个逐渐上升的过程。只要电容及电阻的参数选择得当,那么复位时由于缓冲作用IO口还没来得及触发设备时那么MCU已经复位完毕把电平拉低了,这样也就避免了误触发。这种方法有一定限制,会造成设备的响应速度变慢,因此被控的IO口电平不能变化太快,否则由于电容的缓冲作用,设备无法有效控制。

转载于:https://www.cnblogs.com/tecsoon/archive/2010/10/09/1846750.html

总结51单片机避免复位触发的几种方法相关推荐

  1. 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...

    描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...

  2. 51单片机流水灯控制(5种方法)

    实现流程: 1. 新建一个工程(新项目)2. 查看原理图确定需求(流水灯)对应LED引脚在单片机上的哪个引脚3. 编写程序(通过查看原理图可以看到我们需要控制整个P2口以控制8个LED灯)4. 编译程 ...

  3. 51单片机的复位引脚_51单片机复位电路工作原理

    51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位.所以 ...

  4. 基于51单片机的波形发生器(四种波形)(毕业设计资料)

    四种波形的产生,包括锯齿波.三角波.方波.正弦波.通过LCD液晶显示当前波形以及波形的频率.可以通过按键切换波形,并可以通过按键进行设置当前波形的频率大小,也可以设置频率设置不步进值.资料从主页链接中 ...

  5. 51单片机软件复位函数

    51单片机无自带的看门狗,没有提供软件复位的函数和机制,要想实现软件复位,只能通过强制将PC指针指到0x0000位置, 通过以下函数将PC指针强制指到0x0000: void reset(void) ...

  6. keil c语言字符型变量的值,面向51单片机的Keil uVision4的四种基本数据类型

    在标准C语言中,存在着如下六种基本数据类型: 1.char:字符型: 2.short = short int:短整型 3.int:整型 4.long = long int:长整型 5.float:单精 ...

  7. 入门必做的51单片机实验2----》利用外部中断的方法来控制发光二极管和共阴极数码管显示十六进制的0到F

    嘿!各位中午好! 我是肖肖的猪会飞 欢迎收看肖小猪频道 刚刚做了个单片机实验->ヽ( ̄ω ̄( ̄ω ̄")ゝ 分享一下 文章目录 前言 一,实验题目 二,程序 三,仿真效果 前言 此实验为 ...

  8. 51单片机点亮LED的5中方法(由简单到困难)

    本文将介绍用各种不同的方法和算法点亮51单片机LED的程序,包括详细的注释和说明. 方法1:使用GPIO口点亮LED #include<reg52.h> //头文件 sbit LED=P1 ...

  9. 51单片机——UART串口通讯-波特率4种模式可选1.0

    1.51单片机自带硬件串口接口,使用时只需要进行寄存器配置即可. 2.波特率有4种可选择,默认9600bps.另外还有1个字节的发送函数,n个字符发送函数. 3.有几个寄存器默认的reg52.h里面没 ...

最新文章

  1. LeetCode简单题之分割平衡字符串
  2. POP3、SMTP端口(SSL、TSL)
  3. 2015 Spark 将走向哪里?
  4. android 代码设置 键盘适应_硬核软件,能在电脑上控制iPhone和Android手机
  5. 指令系统——数据寻址(3)——堆栈寻址(详解)
  6. java线程创建销毁_c++多线程的创建挂起执行与销毁
  7. mysql存储emij表情_【MySQL】存储emoji表情报错(Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...')的解决方案...
  8. 商城项目面试问题整理
  9. 各种Windows版本下载
  10. 全国计算机等级考试一级模拟考,全国计算机等级考试一级模拟试题一
  11. 腾讯人均月薪 8 万,恍恍惚惚,又被平均了?
  12. 如何正确撰写sci论文中的作者信息
  13. 稀土配合物Ln(DBM)3(Cz-PBM)|Tb(DBM)3(Cz-PBM)|Gd(DBM)3(Cz-PBM)|Ir(L)2(DBM-Ox)Ir(L)2(DBM-Cz)qiyue
  14. 计算机无法验证签名,电脑提示“无法验证此文件的数字签名”的修复方法
  15. 快速部署k8s单机版
  16. 牛顿下山法(C++版)
  17. Python配置新环境时,复制已经安装好虚拟环境的三种方法
  18. win 10系统安装DBC2000时卡死的解决方法
  19. 山地自行车零件选择及使用误区
  20. 2023全国特种作业操作证高处安装、维护、拆除模拟考试试卷一[安考星]

热门文章

  1. element 使用阿里图标变形了_2TB不限速的阿里网盘App来了 终于不再忍受众生平等盘...
  2. dell4528s linux_如何在戴尔PC上使用Ubuntu Linux终端
  3. InnoDB缓存相关优化
  4. 分区表的误区:性能提升
  5. Java-20180419
  6. QT之创建计算器(五)
  7. java使用jeids实现redis2.6的HyperLogLog数据结构的操作
  8. [hdu 1003] Max Sum
  9. RMDB与hadoop的实时整合
  10. WinForm 窗体中实现单例模式