你的意思是不是按一次键只发一个数,松开的时候不发?这样的话就是按键消抖了
if(!key) //当键按下
{ delay_ms(20);//延时消抖
if(!key) //延时完毕键依然是按下状态
{while(!key); //等待键释放
your code; //发送数;
}
}
难道你的意思是按下键的时候一直发送?
这样的话if(!key)
{ delay_ms(20);
if(!key)
{your code;}
}
首先把按键按下跟松开处理对了,再去处理发送,就很好处理了,不要把两个问题混在一起弄得自己难以分析
void key()
{
if(K1==0)
{
delay(10);
if(K1==0)
{
txd_shu(); 有键按下,发
while(!K1); 等待释放
txd_ting(); 再发
}
}
}