xiaobendan001 发表于 2024-5-21 09:25 谢谢! |
cheney03 发表于 2024-5-21 08:58 谢谢!我弄一下试试。 |
LaoYuTou 发表于 2024-5-21 08:18 谢谢!刚开始弄,研究一下 |
if(按键1)disp0(); if(按键2)disp1(); |
先定义两个按键参数sbit k1=P1^6; sbit k2=P1^7; 主函数: if(k1==0) //检测按键K1是否按下{delay(1000); //消除抖动 一般大约10ms if(k1==0) //再次判断按键是否按下{disp0(); //模式1}while(!k1); //检测按键1是否松开 if(k2==0) //检测按键K2是否按下{delay(1000); //消除抖动 一般大约10ms if(k2==0)//再次判断按键是否按下{disp1(); //模式2}while(!k2); //检测按键2是否松开 |
定义按键端口 sbit key1 = P1^6; sbit key2 = P1^7; 在主循环中while(1)中改为 { if(!key1) {//可以考虑消抖,仿真中可不用。 disp0(); while(!key1);//等待按键释放 } if(!key2) { disp1(); while(!key2);//等待按键释放 } } 这种方法不是特别推荐,可以额外定义一边量作为状态初始为0,按键按下后状态改变(1或2),根据状态调用对应函数,调用完后变量清零。这相当于只调用一次的任务。 |