用51单片机串口发送,按键按下时发送一个数,松开后再发送一个数,然后停止。怎么才能按键松开后停止发送

2025-04-13 10:56:04
推荐回答(3个)
回答1:

你的意思是不是按一次键只发一个数,松开的时候不发?这样的话就是按键消抖了
if(!key) //当键按下
{ delay_ms(20);//延时消抖
if(!key) //延时完毕键依然是按下状态
{while(!key); //等待键释放
your code; //发送数;
}
}
难道你的意思是按下键的时候一直发送?
这样的话if(!key)
{ delay_ms(20);
if(!key)
{your code;}
}

回答2:

首先把按键按下跟松开处理对了,再去处理发送,就很好处理了,不要把两个问题混在一起弄得自己难以分析

回答3:

void key()
{
if(K1==0)
{
delay(10);
if(K1==0)
{
txd_shu(); 有键按下,发
while(!K1); 等待释放
txd_ting(); 再发
}
}
}