单片机矩阵按键,在第一个按键的时候,执行了一个程序,用检测按下第二个按键跳出了那个程序

但是主函数中也有按键检测,它影不影响主函数中第二个按键检测?第二个按键检测还有要执行的其他函数。。。大神帮帮忙!
我是不是必须要按两次第二个按键,才能停止第一个按键的程序,再执行第二个按键后面的程序?
main中:
switch(temp)
{
case 0xee:
{key++;display1(key);} //display1(key)中另有一个检测第二个按键的程序
break;
case 0xde:
{y();}
break;
}

看看《吴鉴鹰单片机项目实战精讲》里面的资料吧,有详细的例程的追问

...能帮我具体说一下吗?或者发一下资料,谢谢了!

温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机做矩阵键盘,定义四个键,其中一个确认键,要求按下确认键时才显 ...
之前按下的按键数值保存在变量里面,当检测到按下确认键的时候再把之前的按键数值取出来显示。

C语言,4X4矩阵键盘怎么判断有再次按键发生?
你在程序检测到按键后,加个延时去抖,不要加松手检测。然后执行第一个按键相对应的程序。然后继续按键扫描。注意这里说的是继续,也就是继续往下检测。否则你的程序就只能执行第一个按键所对应的程序了。这样,就能检测到你第二次按键的键值了。当然,这个扫描是循环的。也就是说即使你第二次按的按键...

单片机菜鸟求高人指点 矩阵键盘 数码管,怎么实现:按1显示1,再按2显示1...
unsigned long sum=0;unsigned char code str[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff};void scan();void disp_led(unsigned long int dat);void delay(unsigned int dly);void main(){for(k=0;k<=7;k++){SBUF=str[10];while(TI==0);TI=0;} while(1...

51单片机矩阵键盘如何实现两个键同时按下的时候显示其他数字,用c语言...
这样只要定义16字节的缓冲区全部按键都能检测到。(一般不需要那么多6个足够)还有一种方式 是 如果只返回2个按键的话。可以这样 常规按键扫描 返回范围在0-15也就是0-F 读取到一个值后把这个值左移4位 再继续读取。当读取到第二个值的时候与上第一个值。就能获取2个按键的值了。

用单片机的并行口接2*3矩阵键盘,每个按键功能由4个数码管输出,初始值...
设计步骤:1,先搞明白矩阵键盘,如果有条件先焊接出来,简单编程,实现矩阵键盘功能。2,数码管的设计;可以静态可以动态,如果初学者,可以选择静态显示,对程序来说比较简单。3,结合1,2实现第一个按键功能。4,在第一个按键功能基础上,通过定时器,加入数据移位,实现第二、第三个按键功能。5,闪烁...

51单片机矩阵键盘检测方面的问题
第一个问题,应该是考虑如果先开锁存器,在那一时刻,P0的值还是上一次给P0赋的值,下在一条语句才将这次的值给P0,这样会造成数码管的余辉,静态显示的时候,因为太快看不到,动态显示时,就会比较明显了。第二个问题他的程序应该检测的是高四位,是否被拉低,因为temp和0xf0与,低四位不管是...

51单片机矩阵4*4键盘程序,P0口接一个数码管,P2口接矩阵键盘
if(cord_h!=0x0f) \/\/先检测有无按键按下 { DelayMs(10); \/\/去抖 if((KeyPort&0x0f)!=0x0f){ cord_h=KeyPort&0x0f; \/\/读入列线值 KeyPort=cord_h|0xf0; \/\/输出当前列线值 cord_l=KeyPort&0xf0; \/\/读入行线值 while((KeyPort&0xf0)!=0xf0);\/\/等待松开并输出 ret...

单片机矩阵键盘连击怎样实现?
\/\/---处理key_time的,如果在600ms内按下第二次,视为双击 key_SinglePress[keys] = 1; \/\/---把相应按键的单击置1 } else { key_DoublePress[keys] = 1; \/\/---按相应按键的双击置1 } void ISR_Timer0(void) interrupt 1 \/\/---定时器,我的定时器是3.333ms中断一次 { unsigned c...

单片机矩阵键盘按键行列逐级扫描法
=0xf0) { \/\/表示有按键按下 KeyPort=0xfe; \/\/检测第一行if(KeyPort!=0xfe) { Val=KeyPort&0xf0; Val+=0x0e; \/\/相当于检测到第一行有键按下,键值=列(高四位)+行(低四位) while(KeyPort!=0xfe); DelayMs(10); \/\/去抖 while(KeyPort!=0xfe); return Val; ...

关于51单片机矩阵键盘的问题。
(2)4X4 矩阵键盘的8根线直接连在IO上,而独立按键有一根线固定是接地的,这就意味着必须采取扫面或者线反转的方法。比如其中一根行线赋0,相当于这一行的四个按键变成了四个独立按键,在读取列线的值就知道了究竟哪个按键被按下了。 此时P3口就出现了特定的电平组合,相当于特征码了,然后再...

相似回答