按键处理达不到要求

[复制链接]
 楼主| wyjie 发表于 2014-10-18 22:02 | 显示全部楼层 |阅读模式
#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)) ;   //等待按键放开
                }
        }
}
zhaoxqi 发表于 2014-10-18 22:02 | 显示全部楼层
程序有错误码?
shimx 发表于 2014-10-18 22:03 | 显示全部楼层
你的要求是什么
zhaoxqi 发表于 2014-10-18 22:04 | 显示全部楼层
你的硬件中按键是什么接的啊?你想要达到什么要求啊?你得把问题说清楚点啊!如果你的输出口中只用到了其中的一位的话,建议不要向端口整体赋值,以免影响其他的引脚上的电平情况。
 楼主| wyjie 发表于 2014-10-18 22:06 | 显示全部楼层
我想设置一个按键按下去,然后LED就亮,表达了我这个按键有反应,按键借P3.2口的,led显示P2全亮,但是还是不懂哪里问题,按键按下去LED都没有亮的啊~
dengdc 发表于 2014-10-18 22:06 | 显示全部楼层
P2OUT |=0X00;

这句什么意思???????如果原来是1,这句有意义吗?
huangchui 发表于 2014-10-18 22:07 | 显示全部楼层
看来应该是
P2OUT &= 0X00;
 楼主| wyjie 发表于 2014-10-18 22:08 | 显示全部楼层
OK,晓得了
 楼主| wyjie 发表于 2014-10-18 22:08 | 显示全部楼层
那就结贴了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

927

主题

12706

帖子

5

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