轻触按键控制继电器的奇怪问题,有时按键按下时继电器动作一下瞬间又关断了,单片机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
轻触按键控制继电器的奇怪问题,有时按键按下时继电器动作一下瞬间又关断了,单片机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