这个简单的按键处理为什么达不到我的要求~

[复制链接]
2612|10
 楼主| 秋风吹落叶 发表于 2012-8-8 17:59 | 显示全部楼层 |阅读模式
#include<msp430x14x.h>
#define uint unsigned int
//#define KEY_Pressed  (P3IN&0xF3)
#define uchar unsigned char
void main(void)
{
        uint i;
        WDTCTL = WDTPW + WDTHOLD;              // stop WDT
        P2DIR = 0xff;                           // P2口输出
        P3DIR &=~BIT2;                          //P3口输入
      
        P2OUT = 0x00;
        __delay_cycles(100000);
        P2OUT = 0xFF;
        while(1)
        {
        if(!(P3IN&BIT2))                //检测按键状态,如果有键被按下
                {
                for(i=0;i<4000;i++);              //延时消抖
                if (!(P3IN&BIT2))          //再次检验按键状态                    
                 for(i=0;i<4000;i++);   
                P2OUT |=0X00;  //P2是输出LED
                while(!(P3IN&BIT2)) ;   //等待按键放开
                }
        }
}
 楼主| 秋风吹落叶 发表于 2012-8-8 17:59 | 显示全部楼层
以上程序有错误码?
tianm 发表于 2012-8-8 19:07 | 显示全部楼层
你的要求是什么
wjzx111056 发表于 2012-8-8 21:00 | 显示全部楼层
楼主,你的硬件中按键是什么接的啊?你想要达到什么要求啊?你得把问题说清楚点啊!如果你的输出口中只用到了其中的一位的话,建议不要向端口整体赋值,以免影响其他的引脚上的电平情况。
wjzx111056 发表于 2012-8-8 21:01 | 显示全部楼层
楼主,你的硬件中按键是什么接的啊?你想要达到什么要求啊?你得把问题说清楚点啊!如果你的输出口中只用到了其中的一位的话,建议不要向端口整体赋值,以免影响其他的引脚上的电平情况。
 楼主| 秋风吹落叶 发表于 2012-8-8 22:08 | 显示全部楼层
哦,感谢提醒啊!我想设置一个按键按下去,然后LED就亮,表达了我这个按键有反应,按键借P3.2口的,led显示P2全亮,但是还是不懂哪里问题,按键按下去LED都没有亮的啊~
 楼主| 秋风吹落叶 发表于 2012-8-8 22:09 | 显示全部楼层
3# tianm
!我想设置一个按键按下去,然后LED就亮,表达了我这个按键有反应,按键借P3.2口的,led显示P2全亮,但是还是不懂哪里问题,按键按下去LED都没有亮的啊~
 楼主| 秋风吹落叶 发表于 2012-8-8 22:09 | 显示全部楼层
5# wjzx111056
回复在楼下!
yirongfu 发表于 2012-8-9 12:14 | 显示全部楼层
P2OUT |=0X00;

这句什么意思???????如果原来是1,这句有意义吗?
yiucing 发表于 2012-8-9 14:18 | 显示全部楼层
看来应该是
P2OUT &= 0X00;
lnak 发表于 2012-8-9 16:09 | 显示全部楼层
看来应该是
P2OUT = 0XFF;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

27

帖子

0

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