急求C51单片机4X4矩阵键盘检测程序执行问题
部分一:P3=0xfe;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;...
部分一:P3=0xfe;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
.......
部分二:P3=0xfd;
temp=P3;
.......
部分三:P3=0xfb;
temp=P3;
......
请问若按下第二行第二列的按键时,此程序是否要执行部分一,若执行部分一,岂不是部分二的按键释放指令就没法执行了吗?希望回答的详细些,谢谢 展开
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
.......
部分二:P3=0xfd;
temp=P3;
.......
部分三:P3=0xfb;
temp=P3;
......
请问若按下第二行第二列的按键时,此程序是否要执行部分一,若执行部分一,岂不是部分二的按键释放指令就没法执行了吗?希望回答的详细些,谢谢 展开
2个回答
展开全部
楼主给出的程序,看起来是《十天...》中的。
程序分成了四个部分。
本来,如果在第一部分检测到按键,程序,就应该结束了,
但是,他还要继续执行第二、第三、第四部分。
每一部分,还有单独的延时消抖、等待释放的环节。
这程序,逻辑上,错误很多,太垃圾了。
建议看看:
http://hi.baidu.com/do_sermon/item/1bcc07288bf4b2d0a517b695
http://zhidao.baidu.com/question/584760327.html
http://zhidao.baidu.com/question/586303033.html
程序分成了四个部分。
本来,如果在第一部分检测到按键,程序,就应该结束了,
但是,他还要继续执行第二、第三、第四部分。
每一部分,还有单独的延时消抖、等待释放的环节。
这程序,逻辑上,错误很多,太垃圾了。
建议看看:
http://hi.baidu.com/do_sermon/item/1bcc07288bf4b2d0a517b695
http://zhidao.baidu.com/question/584760327.html
http://zhidao.baidu.com/question/586303033.html
更多追问追答
追问
你好,我只是想问下,按道理说若按下第二行第二列的按键,它所在的区域为程序第二部分,经过第一部分唯有switch作为空语句不会执行,为什么会直接跳到它所在的部分呢?
追答
若按下第二行第二列的按键:
部分一:P3=0xfe; --执行
temp=P3; --执行
temp=temp&0xf0; --执行
while(temp!=0xf0) --不执行,去执行部分二
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
.......
部分二:P3=0xfd;--执行
temp=P3;--执行
temp=temp&0xf0; --执行
while(temp!=0xf0) --执行
{
delay(5);--执行
temp=P3; --执行
temp=temp&0xf0;--执行
while(temp!=0xf0) --执行
{
temp=P3; --执行
switch(temp)--执行,在这里判断出来按键,之后,还要继续执行部分三、部分四。
……
2013-09-14
展开全部
若按下第二行第二列的按键时:只有第2部分的条件才会成立,所以你说的情况根本不会发生,
追问
你好,按道理说若按键按下,第一部分唯有switch作为空语句不会执行,为什么会直接跳到它所在的部分呢?
追答
C 规定了switch的语法如此,你如果要问为什么会进入指定的位置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询