独闷闷网

 找回密码
 立即注册
搜索
查看: 11718|回复: 2
收起左侧

[原创] 解决74HC595上电瞬间输出高电平的两个秘诀。

[复制链接]
发表于 2014-10-6 08:06:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
曹健-江苏:
鸿哥,如何解决上电瞬间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)  
    {
       ;
    }

}
电路如下:
用IO口秘诀.jpg

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

}
电路如下:
用电阻电容秘诀.jpg

乐于分享,勇于质疑!
发表于 2015-2-10 12:07:17 | 显示全部楼层
鸿哥这么说,我就了然了.......
乐于分享,勇于质疑!
发表于 2015-3-2 22:47:48 | 显示全部楼层
初始化很重要
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2021-2-28 08:24 , Processed in 0.169373 second(s), 20 queries .

快速回复 返回顶部 返回列表