单片机与继电器的问题

2020-02-05 09:09发布

本帖最后由 onbluesun 于 2012-6-3 16:22 编辑

1.png (18.1 KB, 下载次数: 1) 下载附件 2012-6-3 16:12 上传
  1. #include<reg51.h>
  2. sbit l1=P2^0;
  3. void main()
  4. {
  5. l1=1;
  6. }
复制代码以上是单片机与继电器的接线图和单片机的程序。现在有个问题,接上电源,单片机开始运行,按理继电器应该会启动,但是有时候继电器会无法启动,没有听到“啪”的一声(继电器工作声音),那盏灯也没有亮,可我的单片机程序是让单片机一开机P2.0口就为高电平,那么继电器肯定要运行,不知道这是怎么回事。继电器用的12V的,和单片机共用一个电源,单片机通过电压转换电路将12V转为5V。

解决方法有了,就是在l1=1前面加一句l1=0代码如下:
  1. #include<reg51.h>
  2. sbit l1=P2^0;
  3. void main()
  4. {
  5. l1=0;
  6. l1=1;
  7. }
复制代码不过我确实不知道为什么要加一句l1=0?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
downtoearth
1楼-- · 2020-02-05 09:25
 精彩回答 2  元偷偷看……
onbluesun
2楼-- · 2020-02-05 14:34
downtoearth 发表于 2012-6-3 19:10
是不是加句大循环好点呢?

还是一样,应该没办法了
gongnn
3楼-- · 2020-02-05 15:20
普通51的高电平能用那么强的驱动能力,加上拉,或者找能配置强上拉的。
onbluesun
4楼-- · 2020-02-05 17:01
gongnn 发表于 2012-6-3 20:10
普通51的高电平能用那么强的驱动能力,加上拉,或者找能配置强上拉的。

说得有理
Rapido
5楼-- · 2020-02-05 19:35
延时再输出,LED不加限流?
onbluesun
6楼-- · 2020-02-06 00:28
 精彩回答 2  元偷偷看……

一周热门 更多>