独闷闷网

标题: 解决74HC595上电瞬间输出高电平的两个秘诀。 [打印本页]

作者: jianhong_wu    时间: 2014-10-6 08:06
标题: 解决74HC595上电瞬间输出高电平的两个秘诀。
曹健-江苏:
鸿哥,如何解决上电瞬间74HC595输出高电平的问题?

鸿哥解答:
这个问题很好。在工控中用74HC595控制继电器,如果处理不恰当,在上电瞬间由于单片机正处于自身复位启动状态,留下了短暂的“权力真空”时间,使74HC595还未来得及被单片机初始化而输出短暂的高电平,令继电器误动作,这样的后果是很严重的。我这里有两个秘诀可以有效解决这个问题。基本原理就是充分利用74HC595的第13引脚OE引脚特点,当OE引脚处于高电平状态时,所有的输出引脚都是高阻态的,所谓高阻态,就相当于输出引脚被断开悬空,既不属于高电平,也不属于低电平。


第一种秘诀:用IO口加上拉电阻,配合单片机快速初始化的方法。
在软件上,初始化代码必须先使控制OE引脚的IO口处于高电平,然后马上给74HC595发送所有引脚为低电平的代码指令,最后把OE引脚的IO口处于低电平。
代码如下:
void main()
  {
    oe_dr=1;  //初始化代码必须先使控制OE引脚的IO口处于高电平
    hc595_drive(0x00,0x00); //给74HC595发送所有引脚为低电平的代码指令
    oe_dr=0;  //最后把OE引脚的IO口处于低电平
    while(1)  
    {
       ;
    }

}
电路如下:


第一种秘诀:用电阻电容组成上电瞬间输出高电平电路,配合单片机快速初始化的方法。
代码如下:
void main()
  {
    //此时由于电阻电容电路的影响,OE引脚正处于高电路的瞬间状态,我们及时趁机初始化74HC595
    hc595_drive(0x00,0x00); //初始化代码快速给74HC595发送所有引脚为低电平的代码指令
    while(1)  
    {
       ;
    }

}
电路如下:



作者: 清风明月    时间: 2015-2-10 12:07
鸿哥这么说,我就了然了.......
作者: 西北狼    时间: 2015-3-2 22:47
初始化很重要




欢迎光临 独闷闷网 (http://www.dumenmen.com/) Powered by Discuz! X3.2