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