用51单片机驱动继电器怎样才能避免上电吸合?

[复制链接]
19076|100
 楼主| heyj 发表于 2007-3-11 12:25 | 显示全部楼层 |阅读模式
我用51单片机IO脚,通过PNP三极管驱动继电器,正常IO脚输出为0时继电器吸合。但实际应用时发现在上电瞬间,继电器总是先吸合一下,然后再关闭。已经在单片机第一条指令写MOV&nbsp;P1,#0FFH,一样没有。<br /><br />接着又试着改为NPN驱动,这时单片机IO为高的时候继电器导通。程序第一条指令写MOV&nbsp;P1,#0&nbsp;。&nbsp;结果问题一样的存在。<br /><br />现在只有考虑把继电器的正电源加一个延时上电电路,估计才能避免这种上电自己吸合的问题了。<br /><br />各位还有什么更好的办法吗?
joy晴天 发表于 2007-3-11 12:46 | 显示全部楼层

晕,我没有试过

我的东西里面,它吸合也没关系,所以没有理它。<br />没想到你说的还挺麻烦的。<br /><br />我的东西可以改成上电就一直吸合状态,明天去试一下再说
 楼主| heyj 发表于 2007-3-11 12:55 | 显示全部楼层

困扰中

我这个电路是想用单片机通过继电器去控制另外一个设备的交流电源的。是希望在上电的时候不要吸合,直到单片机给指令才吸合。现在这个继电器在上电瞬间的吸合造成很大的问题。<br /><br />现在估计不是程序的问题,应该是硬件设计的问题。<br />目前我只想到了加个RC延时电路控制继电器的正电源,让这个正电源上电比单片机晚,估计就能避免这种情况。<br /><br />不知道还会不会有其他更简单的解决方法呢<br />
hurrison 发表于 2007-3-11 13:22 | 显示全部楼层

是不是单片机的复位时间太长了?

换小点电容或是电阻试试,再或者先给单片机上电。。
taoest 发表于 2007-3-11 14:26 | 显示全部楼层

电源

PNP驱动上电吸合是因为你的MCU的电源上得比继电器的慢。<br />NPN驱动上点吸合是因为MCU复位时输出高电平。<br />解决办法是用PNP驱动,保证MCU不比继电器后上电,这个方法比较好。或者用NPN驱动,但是要加个继电器电源控制,让他在复位之后才上电。
 楼主| heyj 发表于 2007-3-11 17:49 | 显示全部楼层

电源

现在其实MCU和继电器是用同一个5V电源的<br />无论NPN还是PNP驱动问题都存在。<br /><br />现在我只想到办法是:<br /><br />MCU和继电器分开供电,继电器用LM317做一个慢上电的电路,令继电器比MCU后上电,估计能够解决问题。不知还有没有其他更好的解决方法呢?
AIRWILL 发表于 2007-3-11 18:01 | 显示全部楼层

要这么复杂吗

低电平有效(驱动)不就好了
 楼主| heyj 发表于 2007-3-11 18:05 | 显示全部楼层

低电平有效也不行

用NPN驱动时就是低电平有效的,问题依然
NE5532 发表于 2007-3-11 20:13 | 显示全部楼层

让你的单片机一直保持复位状态,再看下还动不动。

  
likee 发表于 2007-3-11 21:59 | 显示全部楼层

如果还有问题看电路有没有问题或者初始化的问题。

  
AIRWILL 发表于 2007-3-11 22:37 | 显示全部楼层

低电平有效也不行?

不能用NPN直接驱动啦,&nbsp;得有个转换了嘛
ilovecr 发表于 2007-3-11 23:00 | 显示全部楼层

回复

哥们看看你选择的是什么单片机<br />51机器上电复位后都是I/O口1,就是你设置了为0&nbsp;在上电的一瞬间也是1<br />不过这个问题好像可以怎么设置一下,具体的看你的单片机数据手册<br />我也是头几天才看到的<br />只是给你指个方向,具体还得你自己查
 楼主| heyj 发表于 2007-3-11 23:25 | 显示全部楼层

我也没想明白

我现在是用PNP驱动的,低电平有效<br />正常来说,因为MCU51的IO口有上拉电阻,上电一瞬间应该为高电平,继电器不应该吸合的。<br /><br />估计问题是上电时,IO口从0V升到5V的过程中,继电器就已经触发了。
HSB.SIQ 发表于 2007-3-12 03:45 | 显示全部楼层

在三极管的基极上加个电容缓冲一下就行.

  
yf_tech 发表于 2007-3-12 08:34 | 显示全部楼层

晕,你一定是用I/O直接高电平推动了

改成低电平有效不就成了
 楼主| heyj 发表于 2007-3-12 11:25 | 显示全部楼层

已经是用低电平有效了

已经是在用IO脚低电平有效了,问题一样有。<br /><br />在基极接电容的方法也考虑过,可是因为接了很多个继电器和三极管,如果每个都接电容就太麻烦了。<br /><br />目前实在只想到MCU用7805供电,然后把继电器的正电源独立出来,用LM317做个慢上电的电路。<br /><br />各位大侠有更好更经济的方法还望指点一下!
chunyang 发表于 2007-3-12 11:32 | 显示全部楼层

用负逻辑设计是不会有该问题的

  
AA_55 发表于 2007-3-12 11:34 | 显示全部楼层

把电路图贴出来

哪儿用那么复杂的文字分析。<br /><br />顺便说,在系统上电一直到单片机开始执行指令这段时间,系统是不受单片机控制的,如果处理得不好,系统就会处于不确定的状态。这时候要仔细分析系统的各可能状态,采取措施确保处于可控的状态。
独占一江秋 发表于 2007-3-12 11:58 | 显示全部楼层
AA_55 发表于 2007-3-12 12:07 | 显示全部楼层

晕。楼上这个图不能说明任何问题

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

11

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部