• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

轻触按键控制继电器的奇怪问题,

huihui163 2017-02-24 浏览量:1138

轻触按键控制继电器的奇怪问题,有时按键按下时继电器动作一下瞬间又关断了,单片机STC12c5a60s2,io口通过ULN2803来驱动继电器,总计六个按键控制六个继电器,程序如下,

#include "STC12C5A60S2.h"
#define uint  unsigned int         
sbit KEY5=P2^5;//按键操作
sbit KEY6=P2^6;
sbit KEY7=P2^7;

sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;

void delay(uint a);
void main()
{

LED0=LED1=LED2=0;
KEY5=KEY6=KEY7=1;
        
while(1)
 {
         
    if(KEY5==0)
    {
        delay(150);
        if(KEY5==0){LED0=~LED0;}
                                while(!KEY5);
    }
                if(KEY6==0)
    {
        delay(150);
        if(KEY6==0){LED1=~LED1;}
                                while(!KEY6);
    }
                if(KEY7==0)
    {
        delay(150);
        if(KEY7==0){LED2=~LED2;}
                                while(!KEY7);
    }
        
                        
 }
}
void delay(uint a)
{
        uint i,j;
        for(i=0;i<200;i++)
        for(j=0;j<a;j++);
}

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 代码看上去没问题。

    是继电器内部打火产生的干扰

    给两个方案

    1单片机vcc并联1N4148二极管和1uf电容。

    2每个继电器控制的外部设备并联1N4007二极管。


    • 发布于 2017-02-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7

  • 驱动 继电器线圈的话,要加三极管驱动的,没有三极管驱动,电流不够会造成你给电后跳断,还有就是继电器并联二极管保护电路
    • 发布于2017-02-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 关断是什么意思,是又断开了么?

    估计你的继电器还没有接什么负载吧。

    如果你的电路没有问题,也有续流二级管。

    这个可能的原因是你的电源的功率不够吧。继电器接通后,由于继电器只有线圈,电阻很小,电流会很大。从而拉低电压,导致MCU复位吧。

    解决:

    1、增加电源功率。

    2、继电器电源处增加大的电容

    3、继电器的先型要正确,你是继电器是脉冲的还是常开常闭的,看功能。最好不要长时间导通。



    • 发布于2017-02-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 有問題的是

    1. Code不完整,只有LED輸出? 沒有看到輸出給ULN2803的腳位,還是LED輸出也是接到ULN2803? 附上完整Code比較好解決問題

    2. 可以的話附上電路原理圖,確定防突波Diode和各接線正確,且各元件需共地

    以上可再討論喔

    • 发布于2017-02-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 能不能给出原理图看下 怀疑是不是电流不够导致不能常开
    • 发布于2017-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 你按键按下,有相应反应,说明程序软件应该是可行的。但是动作的一瞬间继电器又关断说明是硬件的问题

    建议

    1、继电器前面加个好点的光耦,这种现象十有八九是干扰产生的

    2、“轻触”这个。。加个按键防抖动

    3、检查一下硬件电路板有没出现短路之类的问题

    • 发布于2017-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 程序应该没有什么问题    看看是不是应为继电器所需的电流太大,让单片机掉电复位了??
    • 发布于2017-02-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

轻触按键控制继电器的奇怪问题,