OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8577|回复: 12

关于stc89c52单片机IO口控制继电器的疑惑

[复制链接]

18

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2013-11-5
在线时间
0 小时
发表于 2014-1-16 15:34:45 | 显示全部楼层 |阅读模式
我把写好的程序烧到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;
}
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2014-1-19
在线时间
1 小时
发表于 2014-1-20 00:23:11 | 显示全部楼层
回复【5楼】我的世界123:
---------------------------------
继电器负载太大了,驱不动,输出口总被拉低了。STC89C52单片机 端口 的 最大电流 为 8 ~ 12 mA,这个 8 ~12  mA 是指 往 IO 口 灌入电流,输出电流 只有 100 ~ 200 uA。
回复 支持 1 反对 0

使用道具 举报

44

主题

225

帖子

0

精华

高级会员

Rank: 4

积分
658
金钱
658
注册时间
2013-11-22
在线时间
131 小时
发表于 2014-1-16 15:54:44 | 显示全部楼层
//试试这个行不行
 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;
}
}
回复 支持 反对

使用道具 举报

9

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2013-9-24
在线时间
0 小时
发表于 2014-1-16 16:22:14 | 显示全部楼层
你硬件怎么连的?
人需要沐浴阳光,也必将经历风雨
回复 支持 反对

使用道具 举报

18

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2013-11-5
在线时间
0 小时
 楼主| 发表于 2014-1-16 16:30:18 | 显示全部楼层
回复【2楼】zhp:
---------------------------------
还是没反应
回复 支持 反对

使用道具 举报

18

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2013-11-5
在线时间
0 小时
 楼主| 发表于 2014-1-16 16:32:46 | 显示全部楼层
回复【3楼】LOVE_FYD:
---------------------------------
就是用对应的io口分别用led灯来判断高低电平
回复 支持 反对

使用道具 举报

44

主题

225

帖子

0

精华

高级会员

Rank: 4

积分
658
金钱
658
注册时间
2013-11-22
在线时间
131 小时
发表于 2014-1-16 16:57:40 | 显示全部楼层
估计是你的硬件的问题
上原理图和程序吧
回复 支持 反对

使用道具 举报

12

主题

85

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2013-11-24
在线时间
0 小时
发表于 2014-1-16 21:07:13 | 显示全部楼层
继电器的是怎么驱动的? 是否有光耦,光耦是否是没加上拉
学一天不会,我学两天;再不会,再两天·········
回复 支持 反对

使用道具 举报

32

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2013-10-16
在线时间
1 小时
发表于 2014-1-17 10:56:29 | 显示全部楼层
回复【7楼】正点妹子:
---------------------------------
继电器驱动只有光耦是不行的,要有个放大电路,最好是直接使用ULN2803
回复 支持 反对

使用道具 举报

12

主题

85

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2013-11-24
在线时间
0 小时
发表于 2014-1-19 18:10:48 | 显示全部楼层
回复【8楼】higerd_han:
---------------------------------
恩恩,简单点来个三级管就行了!
学一天不会,我学两天;再不会,再两天·········
回复 支持 反对

使用道具 举报

18

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2013-11-5
在线时间
0 小时
 楼主| 发表于 2014-1-20 08:37:47 | 显示全部楼层
谢谢大家,问题已经解决了,原来是电流太小,驱动不起来
回复 支持 反对

使用道具 举报

4

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2014-1-15
在线时间
0 小时
发表于 2014-1-20 09:30:17 | 显示全部楼层
回复【9楼】正点妹子:
---------------------------------
三极管的话还得加保护二极管,
回复 支持 反对

使用道具 举报

55

主题

1231

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2624
金钱
2624
注册时间
2014-2-13
在线时间
514 小时
发表于 2014-2-17 22:32:46 | 显示全部楼层
首先确认好你的电路吧
技术交流,Sell 中颖单片机,欢迎私信骚扰
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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