当前位置: 代码迷 >> 综合 >> 1位独立按键控制程序运行
  详细解决方案

1位独立按键控制程序运行

热度:97   发布时间:2024-02-19 14:37:04.0

为讲述方便,1位独立按键控制程序运行,本文指的是本身带消抖的按键,且按键按下为低电平。

有时用1位独立按键控制程序运行2种(及以上)不同方式可用以下两种方案:

第一种:加标志位法,比如通过按键选择程序运行两种不同的程序,则声明2个标志变量,具体见如下:

unsigned char key1Flag,key2Flag;
unsigned char keyCnt=0;
void main()
{//初始化//开中断while(1){if(key1Flag){//添加程序1}if(key2Flag){//添加程序2}}}
//按键2选一程序
void exint0() interrupt 0       //INT0中断入口
{if(keyCnt==0){key1Flag=1;key2Flag=0;keyCnt=1;return;}else{key1Flag=0;key2Flag=1;keyCnt=0;return;}}

此方案的中断函数2个if条件判断语句中必须加return语句。

 第二种:不加标志位变量,直接加一个unsignde char 变量,对按键输入计数。

#define SECECTION  3
unsigned char keyCnt=0;void main()
{//初始化//开中断while(1){if(keyCnt==1){//添加程序1}if(keyCnt==2){//添加程序2}...if(keyCnt==SECECTION){//添加程序N}}}
void exint0() interrupt 0       //INT0中断入口
{	keyCnt++;if(keyCnt>SECECTION) keyCnt=1;
}

 

  相关解决方案