锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

请教一下单片机C语言继电器if判断代码问题

时间:2022-10-14 03:30:00 继电器led

像下面if判断继电器的执行情况 这八种判断方法可以直接写在一个上if判断里么 请大神解释一下 谢谢

#include "reg52.h" ///本文件定义了单片机的一些特殊功能寄存器

typedef unsigned int u16; ///声明和定义数据类型

typedef unsigned char u8;

sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;sbit k6=P1^5;sbit k7=P1^6;sbit k8=P1^7; //定义P10口是k1

sbit l1=P0^0;sbit l2=P0^1;sbit l3=P0^2;sbit l4=P0^3;sbit l5=P0^4;sbit l6=P0^5;sbit l7=P0^6;sbit l8=P0^7; //定义P00口是led

void delay(u16 i)

{

while(i--);

}

void keypros()

{

if(k1==0) ///执行1号继电器动作

{

delay(1000);

if(k1==0)

{

l1=~l1;

}

while(!k1);

}

if(k2==0) //执行2号继电器动作

{

delay(1000);

if(k2==0)

{

l2=~l2;

}

while(!k2);

}

if(k3==0) ///执行3号继电器动作

{

delay(1000);

if(k3==0)

{

l3=~l3;

}

while(!k3);

}

if(k4==0) //执行4号继电器动作

{

delay(1000);

if(k4==0)

{

l4=~l4;

}

while(!k4);

}

if(k5==0) ///执行5号继电器动作

{

delay(1000);

if(k5==0)

{

l5=~l5;

}

while(!k5);

}

if(k6==0) //执行6号继电器动作

{

delay(1000);

if(k6==0)

{

l6=~l6;

}

while(!k6);

}

if(k7==0) //执行7号继电器动作

{

delay(1000);

if(k7==0)

{

l7=~l7;

}

while(!k7);

}

if(k8==0) //执行8号继电器动作

{

delay(1000);

if(k8==0)

{

l8=~l8;

}

while(!k8);

}

}

void main()

{

l1=1;l2=1;l3=1;l4=1;l5=1;l6=1;l7=1;l8=1;

while(1)

{

keypros();

}

}

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章