打印

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

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

使用特权

评论回复
5
wjzx111056| | 2012-8-8 21:01 | 只看该作者
楼主,你的硬件中按键是什么接的啊?你想要达到什么要求啊?你得把问题说清楚点啊!如果你的输出口中只用到了其中的一位的话,建议不要向端口整体赋值,以免影响其他的引脚上的电平情况。

使用特权

评论回复
6
秋风吹落叶|  楼主 | 2012-8-8 22:08 | 只看该作者
哦,感谢提醒啊!我想设置一个按键按下去,然后LED就亮,表达了我这个按键有反应,按键借P3.2口的,led显示P2全亮,但是还是不懂哪里问题,按键按下去LED都没有亮的啊~

使用特权

评论回复
7
秋风吹落叶|  楼主 | 2012-8-8 22:09 | 只看该作者
3# tianm
!我想设置一个按键按下去,然后LED就亮,表达了我这个按键有反应,按键借P3.2口的,led显示P2全亮,但是还是不懂哪里问题,按键按下去LED都没有亮的啊~

使用特权

评论回复
8
秋风吹落叶|  楼主 | 2012-8-8 22:09 | 只看该作者
5# wjzx111056
回复在楼下!

使用特权

评论回复
9
yirongfu| | 2012-8-9 12:14 | 只看该作者
P2OUT |=0X00;

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

使用特权

评论回复
10
yiucing| | 2012-8-9 14:18 | 只看该作者
看来应该是
P2OUT &= 0X00;

使用特权

评论回复
11
lnak| | 2012-8-9 16:09 | 只看该作者
看来应该是
P2OUT = 0XFF;

使用特权

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

本版积分规则

0

主题

27

帖子

0

粉丝