单片机C语言程序的一点小问题

[复制链接]
2549|6
 楼主| lvqingfei 发表于 2008-7-26 15:23 | 显示全部楼层 |阅读模式
请问各位大虾,我这么一段程序,里面的if语句使用的是否有问题。通过仿真软件执行代码,紧跟着if后面的语句不能执行,例如up()。这个之前都有定义的。我利用if语句也就想用来延时扫描按键。
void key(void)
{
  char kvalue;
      kvalue=P0;
  switch(kvalue)
  {
       case 0xfe:                /***key1=the pule number add 1****/
            delay(20);
            if (kvalue==0xfe)up();
             break;
       case 0xfd:                /**key2= the puls number reduce 1**/
            delay(20);
            if(kvalue==0xfd)down();
             break;
       case 0xfb:
            delay(20);
            if(kvalue==0xfb)
              p20=1 ;
             break;
       case 0xf7:
            delay(20);
            if(kvalue==0xf7)
              p20=0;
            break;
       case 0xef:
            delay(20);
            if(kvalue==0xef)
               send();
             break;
       case 0xdf:
            delay(20);
            if(kvalue==0xdf)
               back();
             break;
            default: break;
  }

}
////////
computer00 发表于 2008-7-26 15:41 | 显示全部楼层

不会不执行的,自己再仔细看看吧。

jimoom 发表于 2008-7-26 16:25 | 显示全部楼层

加大括号
btiger2000 发表于 2008-7-26 18:12 | 显示全部楼层

延时好像没啥意义啊

农民讲习所 发表于 2008-7-26 18:22 | 显示全部楼层

你想要提高水平的话

不要使用delay
utopia779 发表于 2008-7-26 21:31 | 显示全部楼层

嗯?

我试了试!
能运行啊!就是没有仿真结果
grady1125 发表于 2008-7-27 01:53 | 显示全部楼层

keyvalue的值本身就是case了

if还有什么用?
用if(keyvalue==P0)还有点意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部