用c语言一个开关控制两个灯开关闭合灯1亮灯2灭开关打开灯1灭灯2亮

如题所述

开关控制的话就不用编程语言了好吗,因为开关是直接的物理连接,通过电路实现就好,那我就理解成你是想用单片机来实现吧,首先单片机与外设怎样连接我不考虑,因为你没说。那么我就当是我可以随意的使用单片机的输出吧,然后开关闭合理解成按键是高电平,再按一次取反。

#include<89c51.h>            //是不是这个头文件记不清了。。
#defineuint unsigned int 
#defineuchar unsigned char
#define LED1 P1_0
#define LED2 P1_1
#define KEY1 P0_1
 
/* 函数声明,延迟函数,LED灯初始化函数,按键KEY初始化,按键KEY查询函数*/
voidDelayMs(uint n);
voidLEDInit(void);
voidKEYInit(void);
ucharKEYScan(void);
 
/*主函数*/
void main()
{
   LED1 = 0;
   LED2 = 1;      //不同的接法可能导致结果不一样,有的高电平亮有的低电平
 while(1)         //具体看你自己的板子怎么接的
 {
  if(KEYScan())
    LED1 = ~LED1;
    LED2 = ~LED2;
 }
}
 
 
/*检测按键状态*/
ucharKEYScan(void)
{
 if(KEY1==0)
   DelayMs(100); // 延时一段时间,以免抖动
  if(KEY1==0)
  {
    DelayMs(100);
    while(KEY1==0);
    return 1;
  }
 else
   return 0;
}
 
 
/*延迟函数*/
voidDelayMs(uint n)
{
 int i;
 while(n--)
 {
  for(i=587;i>0;i--) ;
 }
}

以上代码是做CC2530实验的时候做的,修改了一下。

温馨提示:答案为网友推荐,仅供参考
相似回答