柱子哥 发表于 2015-5-26 20:40:48

高手告诉我,为什么我的单片机无法使继电器动作?

我虽然学单片机好几年,但这是自己第一次做出实物电路。出现了问题。如下图,单片机在烧写完程序,插入目标板后,数码管显示部分、按键输入部分都能正常工作,P1.1在断开与继电器驱动电路之后也能正常输出高电平(+5V)。同样,继电器电路在断开单片机的连接后,如果给R1这一端加上+5V的电源后,继电器也能正常动作。现在问题来了,连接单片机和继电器的电路后,在P1.1输出就不能输出高电平,自然继电器就没有动作,求大神指教,应该怎么完善这个电路?急急急!!!

柱子哥 发表于 2015-5-26 20:41:15

自己做沙发!

dadatou 发表于 2015-5-26 20:52:00

P1.1有没有推挽输出,如果没有,请强上拉。

grj0719 发表于 2015-5-26 20:52:18

P1.0? P1.1? 你把端口电气特性看看。可能是OC?

ccjlhw 发表于 2015-5-26 20:52:51

是不是继电器工作电压没有达到要求

进口小开关 发表于 2015-5-26 20:53:12

你文字描述中是P1.1,而电路图中连接的是P1.0,你看看是不是没有连接对引脚。

yk28981 发表于 2015-5-26 20:56:07

输出口设为推挽或加一上拉电阻。

lans0625 发表于 2015-5-26 21:16:57

用电流倒灌吧,最好加个光耦。。。。。

cd4000 发表于 2015-5-26 21:17:02

R1要加大,用100K的电阻.

yaoyutaoTom 发表于 2015-5-26 21:18:16

单片机的输出电流太小了,应再加一级

hecat 发表于 2015-5-26 21:23:47

AT89S51的P1口是弱上拉,驱动1的能力很弱。

在P1.0端口到VCC接一个1K的上拉电阻。另外程序控制对应P1.0端口,而不是楼主描述的P1.1

hyper320 发表于 2015-5-26 21:28:03

51系列是PMOS架构的IO,意思就是他不像现代的CMOS MCU需要设输入输出状态,51的IO是弱上拉,输出高准位是非常非常没力的(可能只有几百uA吧),但输出低准位倒是很够力,你输出要三级管推继电器,要么就是外加一个上拉的小电阻(例如1K),要么在经过一级放大才够的.

JohnsonTan 发表于 2015-5-26 21:29:01

5伏的继电器需要很大的驱动电流

轻舞飞扬 发表于 2015-5-26 21:41:30

你的引脚不对呀

zqf441775525 发表于 2015-5-26 22:09:18

加一个上拉电阻就行了,取值2K - 4.7K之间均可

szxszx 发表于 2015-5-26 22:22:23

建议改为pnp灌电流驱动,即可以增强驱动能力,又可以防止上电继电器抖动

柱子哥 发表于 2015-5-27 02:32:31

对不起大家,是我描述错误,应该是P1.0。谢谢大家的回复。

柱子哥 发表于 2015-5-27 02:48:35

dadatou 发表于 2015-5-26 20:52
P1.1有没有推挽输出,如果没有,请强上拉。

弱弱的问一下,如何退完输出啊?电路如何连接?

柱子哥 发表于 2015-5-27 02:59:43

hyper320 发表于 2015-5-26 21:28
51系列是PMOS架构的IO,意思就是他不像现代的CMOS MCU需要设输入输出状态,51的IO是弱上拉,输出高准位是非常 ...

问一下,就是因为知道,端口的驱动能力不足,所以才加了一个三极管放大电路,为什么驱动电流还不够啊?另外,网上部分参考资料在基级上加了一个4.7k的下拉电阻,是什么意思啊?我试过,不要说单片机驱动了,就是用电源直接驱动都不行。求解释。

cl1cl1cl1cl1 发表于 2015-5-27 06:05:02

柱子哥 发表于 2015-5-27 02:59
问一下,就是因为知道,端口的驱动能力不足,所以才加了一个三极管放大电路,为什么驱动电流还不够啊?另 ...

你的继电器额定电压是几V的?

loggerjy 发表于 2015-5-27 06:31:00

看继电器规格,如果是5V而且线圈电流够大,建议二级驱动或者改成pnp,如果不是5v,用二级驱动

柱子哥 发表于 2015-5-27 07:27:11

cl1cl1cl1cl1 发表于 2015-5-27 06:05
你的继电器额定电压是几V的?

5V的继电器

xiaobendan 发表于 2015-5-27 07:51:17

几年的时间,都没仔细看看引脚内的电路结构

356053261 发表于 2015-5-27 08:15:07

直接用电源驱动也不行?三极管用错了吧,哈哈

lusson 发表于 2015-5-27 08:24:36

89s51内部上拉应该几十K吧,按50K计算,外部1K可忽略,三极管放大倍数按200计算,则三极管电流会有17mA左右。
这个电流应该驱动不了你的继电器吧。另外这时候你量P1.0的话应该是0.7V左右。

楼主应该看看51的手册,上面会有写端口的输出电流,单片机不一样处理方法不一样,别人加4.7K下拉是因为别人的端口可以输出大电流,加下拉是防止上电瞬间端口还在输入状态时继电器动作。

laujc 发表于 2015-5-27 08:26:17

用电压表量下电压就知道了呀

sweet_136 发表于 2015-5-27 08:29:07

你把Q1换成mos管就可以了.

大米饭 发表于 2015-5-27 08:35:14

IO加一个2K-4.7K上拉电阻
最好设计成IO口低电平驱动继电器,你这样设计的高电平驱动会早上单片机一上电继电器就弹跳一下造成误动作

星晨海源 发表于 2015-5-27 08:37:56

1)程序是否相对;2)继电器的供电电压;3)加一个上拉电阻;4把那个三极管换成MOS管

饭桶 发表于 2015-5-27 08:42:40

这就是学习板上“学习”的后果。

cl1cl1cl1cl1 发表于 2015-5-27 10:40:24

使能时量下继电器俩端的电压差,你会明白不少东西的。

hyper320 发表于 2015-5-27 10:57:27

柱子哥 发表于 2015-5-27 02:59
问一下,就是因为知道,端口的驱动能力不足,所以才加了一个三极管放大电路,为什么驱动电流还不够啊?另 ...

你先验证三极管线路有没有问题,换个LED驱动看会不会亮,如果连LED都不会亮那肯定三极管部份的线路有问题

1.三极管用错,NPN用成PNP型号
2.三极管脚位弄错

另外,MCU IO一般上电初都是高阻抗状态,也就是悬浮状态,下拉电阻是为了避免一开机时三极管误动作而设的,一定要有,否则三极管在开机一瞬间有可能受噪声引响而动作

chen849928055 发表于 2015-5-27 10:59:00

楼上各位说了那么多,楼主都搞晕了,给个能用的吧

chen849928055 发表于 2015-5-27 11:00:19

补充一下,这个电路是低电平驱动,避免了楼主电路的上电误动作,也不需要楼主去设置IO端口模式了。

hyper320 发表于 2015-5-27 11:15:46

51好像没有端口模式的设置吧 ?另外楼主说的很清楚了,电源直接驱动三极管都不行,很明显是三极管线路部份有问题,在怎么改都没用,楼主还是先把三极管线路DEBUG一下吧

黑夜之狼 发表于 2015-5-27 13:04:57

9013+IO驱动继电器我试过,估计是硬件问题罢了,输出高电平就可以驱动继电器

木君之上 发表于 2015-5-27 13:14:30

驱动能力不够把,而且你的放大电路可能参数不对,

wangfan0212 发表于 2015-5-27 23:49:28

8050放大倍数200 . 继电器估计80ma.    80/200=0.4ma   B极电流大于0.4ma。加一个4.7K上拉就OK了

crlfc 发表于 2015-5-28 06:48:26

用光藕隔离还可以带放大。光藕就是二极管+三极管。

lyllkw 发表于 2015-5-28 08:00:12

51的io好像是oc,没有驱动能力,要加上拉电阻

lryxr2507 发表于 2015-5-30 23:28:24

加4.7-10K上拉电阻,另外检查4148二极管是否有质量问题.

yiminglei_2 发表于 2015-5-31 01:55:21

应该是用PNP三级管才方便可靠吧

wy2000 发表于 2015-5-31 07:13:07

老的51单片机的IO口没有推挽输出,输出能力较弱。可以加一个2K左右的上拉电阻。 新型的CPU用推挽就没问题了。还有国产5V继电器吸合电流比较大,建议用8050。用NMOS就没有以上这么多问题了。

bmagui 发表于 2015-5-31 14:05:24

这种问题,最好自己先测试一下各点的电压,然后再根据电压情况,应该就可以找到问题所在。

颜靖峰 发表于 2015-5-31 17:22:05

下拉不好吗?
直接接上去下拉。

ylei12 发表于 2015-5-31 20:52:45

你这单片机是51的,要上拉啊,oc门输出,不上啦哪来的高电平去驱动三极管。

tragedy 发表于 2015-6-1 08:59:37

51的高电平驱动能力比较低,你换成PNP管子,低电平驱动就好了。

cvi670 发表于 2015-6-1 15:53:01

驱动电流不够我也遇到相同问题   最后加了光耦解决
页: [1]
查看完整版本: 高手告诉我,为什么我的单片机无法使继电器动作?