OpenEdv-开源电子网
标题:
关于stc89c52单片机IO口控制继电器的疑惑
[打印本页]
作者:
我的世界123
时间:
2014-1-16 15:34
标题:
关于stc89c52单片机IO口控制继电器的疑惑
我把写好的程序烧到stc89c52单片机内,我用定时器中断通过按键的控制来分别实现控制两个led灯,这两个程序都是通过一个按键同时控制的,为什么直接接led灯的那个亮,而通过继电器控制的led灯却控制不了,就是说接在继电器的IO口一直为低电平,给他高电平信号也拉不高,这是为什么?
控制程序如下:
if(key3 == 0)
//+5v时
{
if(Relay1 == 1)
//继电器打开时
{
k1 = 1; //通过继电器控制的io口
k4 = 1;//直接控制led灯的io口
Delay_ms(100);
k4 = 0;
}
else if(Relay1 == 0) //继电器闭合时
{
k4 = 1;
Delay_ms(100);
k4 = 0;
}
}
作者:
zhp
时间:
2014-1-16 15:54
//试试这个行不行
if(key3 == 0) //+5v时
{
if(Relay1 == 1) //继电器打开时
{
Relay1 =0;
k1 = 1; //通过继电器控制的io口
k4 = 1;//直接控制led灯的io口
Delay_ms(100);
k4 = 0;
}
else if(Relay1 == 0) //继电器闭合时
{
Relay1 =1;
k1=0;
k4 = 1;
Delay_ms(100);
k4 = 0;
}
}
作者:
LOVE_FYD
时间:
2014-1-16 16:22
你硬件怎么连的?
作者:
我的世界123
时间:
2014-1-16 16:30
回复【2楼】zhp:
---------------------------------
还是没反应
作者:
我的世界123
时间:
2014-1-16 16:32
回复【3楼】LOVE_FYD:
---------------------------------
就是用对应的io口分别用led灯来判断高低电平
作者:
zhp
时间:
2014-1-16 16:57
估计是你的硬件的问题
上原理图和程序吧
作者:
正点妹子
时间:
2014-1-16 21:07
继电器的是怎么驱动的? 是否有光耦,光耦是否是没加上拉
作者:
higerd_han
时间:
2014-1-17 10:56
回复【7楼】正点妹子:
---------------------------------
继电器驱动只有光耦是不行的,要有个放大电路,最好是直接使用ULN2803
作者:
正点妹子
时间:
2014-1-19 18:10
回复【8楼】higerd_han:
---------------------------------
恩恩,简单点来个三级管就行了!
作者:
延陵小子
时间:
2014-1-20 00:23
回复【5楼】我的世界123:
---------------------------------
继电器负载太大了,驱不动,输出口总被拉低了。STC89C52单片机 端口 的 最大电流 为 8 ~ 12 mA,这个 8 ~12 mA 是指 往 IO 口 灌入电流,输出电流 只有 100 ~ 200 uA。
作者:
我的世界123
时间:
2014-1-20 08:37
谢谢大家,问题已经解决了,原来是电流太小,驱动不起来
作者:
灵灵
时间:
2014-1-20 09:30
回复【9楼】正点妹子:
---------------------------------
三极管的话还得加保护二极管,
作者:
黑夜之狼
时间:
2014-2-17 22:32
首先确认好你的电路吧
欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/)
Powered by Discuz! X3.4