当前位置:   article > 正文

双向开关的c语言源程序,用C语言能把一个单刀双掷(带关断)开关,写出5个开关状态来?...

keil5 单刀双掷

#include

#define key_S 5000

sbit KEY1=P2^0;

sbit KEY2=P2^1;

sbit OUT1=P3^5;

sbit OUT2=P3^6;

sbit OUT3=P3^7;

sbit OUT4=P3^4;

#define num 2000 //预设延时计数值,根据响应需求进行调节

#define OUT_RL_bit  OUT1

#define OUT_LED_bit OUT2

unsigned int FLAG1_bit=0,FLAG2_bit=0,a1=0,a2=0,a3=0,a4=0;

//延时函数

void delay_ms(unsigned int n)

{

unsigned int j;

unsigned char k;

for(j=0;j

for(k= 110;k>0;k--);

//NOP();

}

void Key_Scan()

{

if(KEY1==0 && KEY2==1 && FLAG1_bit==0 && FLAG2_bit==0)

{

if(++a1 >= num)

{

a1=num;

OUT1=0;

OUT2=1;

OUT3=1;

OUT4=1;

FLAG1_bit=1;

FLAG2_bit=0;

a1=0;

a2=0;

a3=0;

a4=0;

}

}

else if(KEY1==1 && KEY2==0 && FLAG1_bit==1 && FLAG2_bit==0)

{

if(++a2 >= num)

{

a2=num;

OUT1=1;

OUT2=0;

OUT3=1;

OUT4=1;

FLAG1_bit=0;

FLAG2_bit=1;

a1=0;

a2=0;

a3=0;

a4=0;

}

}

else if(KEY1==0 && KEY2==1 && FLAG1_bit==0 && FLAG2_bit==1)

{

if(++a3 >= num)

{

a3=num;

OUT1=1;

OUT2=1;

OUT3=0;

OUT4=1;

FLAG1_bit=1;

FLAG2_bit=0;

a1=0;

a2=0;

a3=0;

a4=0;

}

}

else if(KEY1==1 && KEY2==1 && FLAG1_bit==1 && FLAG2_bit==0)

{

if(++a4 >= num)

{

a4=num;

OUT1=1;

OUT2=1;

OUT3=1;

OUT4=0;

FLAG1_bit=0;

FLAG1_bit=0;

a1=0;

a2=0;

a3=0;

a4=0;

}

}

else

{

a1=0;

a2=0;

a3=0;

a4=0;

}

}

void main()

{

while(1)

{

Key_Scan();        //按键扫描

}

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/43381?site
推荐阅读
相关标签
  

闽ICP备14008679号