打印

按键处理达不到要求

[复制链接]
802|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
你的硬件中按键是什么接的啊?你想要达到什么要求啊?你得把问题说清楚点啊!如果你的输出口中只用到了其中的一位的话,建议不要向端口整体赋值,以免影响其他的引脚上的电平情况。

使用特权

评论回复
5
wyjie|  楼主 | 2014-10-18 22:06 | 只看该作者
我想设置一个按键按下去,然后LED就亮,表达了我这个按键有反应,按键借P3.2口的,led显示P2全亮,但是还是不懂哪里问题,按键按下去LED都没有亮的啊~

使用特权

评论回复
6
dengdc| | 2014-10-18 22:06 | 只看该作者
P2OUT |=0X00;

这句什么意思???????如果原来是1,这句有意义吗?

使用特权

评论回复
7
huangchui| | 2014-10-18 22:07 | 只看该作者
看来应该是
P2OUT &= 0X00;

使用特权

评论回复
8
wyjie|  楼主 | 2014-10-18 22:08 | 只看该作者
OK,晓得了

使用特权

评论回复
9
wyjie|  楼主 | 2014-10-18 22:08 | 只看该作者
那就结贴了啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

927

主题

12706

帖子

5

粉丝