武洋洋 发表于 2012-4-8 15:14:11

如何一个复位按键控制继电器的吸合、释放???

下面是用两个按键控制继电器:
#include<reg52.h>
sbit Relay=P3^7;
sbit L00=P0^0;
sbit K5=P1^4;
sbit K6=P1^5;
void Delay(unsigned int i)
{
        unsigned int j;
        for(;i>0;i--)
        for(j=0;j<125;j++)
        {;}
}
void main()
{
        while(1)
        {
                if(K5==0)
                {
                        Delay(20);
                        if(K5==0)
                        {L00=0;
                        Relay=0;}
                }
                if(K6==0)
                {
                        Delay(20);
                        if(K6==0)
                        {L00=1;
                        Relay=1;}
                }
        }
}
我想请问如何修改程序用一个按键就能实现上述功能?

BXAK 发表于 2012-4-8 15:40:04

if(K5==0)
{
      Delay(20);
         if(K5==0)
         {
            Relay = !Relay;
            L00 = Relay;
            while(K5==0);
         }
}

riverblue2010 发表于 2012-4-8 15:42:49

可以用一个按键,按一下关,按两下开

ahuang227 发表于 2012-4-8 16:29:23

也可以做成循环的,

武洋洋 发表于 2012-4-8 17:38:19

#include<reg52.h>
sbit Relay=P3^7;
sbit L00=P0^0;
sbit K5=P1^4;
void Delay(unsigned int i)
{
        unsigned int j;
        for(;i>0;i--)
        for(j=0;j<125;j++)
        {;}
}
void main()
{
        while(1)
        {
                if(K5==0)
                {
                        Delay(20);
                        if(K5==0)
                        {
                                Relay=!Relay;
                                L00=!L00;
                                while(K5==0);
                        }
                }
        }
}
多谢二楼的哥哥,功能已经实现。

daniel68 发表于 2012-4-8 18:21:11

{:smile:}下次试试
页: [1]
查看完整版本: 如何一个复位按键控制继电器的吸合、释放???