单片机/MCUwilliam hill官网
直播中

邓斌

12年用户 18经验值
擅长:控制/MCU
私信 关注
[资料]

求大神看看这程序

本帖最后由 eehome 于 2013-1-5 10:09 编辑


#include "msp430g2553.h"
#define uchar unsigned char
#define uint unsigned int
#define anjian (P1IN & 0x01)
char keycan(void);
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR &=~BIT0;//p1.0设为输入
  P1REN = BIT0;
  P1DIR |=BIT1; //p1.1设为输出
  P1OUT &= ~BIT1;
  while(1)
  {
   if(keycan())//判断按键是否按下;
   {
    P1OUT ^=BIT1;   
   }

  }
  
}

char keycan(void)
{
uint i,t=0;
if(anjian != 0x01)
{
   for(i=0;i<250;i++);//延时一段时间,消除按键抖动
    if (anjian != 0x01) //如果P1输入寄存器P1IN的第0位还是0,则返回1,表示按键按下
    {
      while(anjian != 0x01);
     t=1;
    }
     
}

       return t;
}
按键没反应,一个键盘控制一个LED,按一下亮再按一下灭






回帖(4)

张三

2012-8-11 12:59:46
检查一下,在你按下那一刻(anjian != 0x01)这个条件是否成立.
举报

lstcspring

2012-8-11 13:03:59
你怎么知道按键没反应的,仿真跑一下,看按键是否有反应
举报

邓斌

2012-8-11 13:05:26
引用: lovezjf234 发表于 2012-8-11 12:59
检查一下,在你按下那一刻(anjian != 0x01)这个条件是否成立.

什么意思? 要怎么检查?
举报

邓斌

2012-8-11 13:06:44
引用: lstcspring 发表于 2012-8-11 13:03
你怎么知道按键没反应的,仿真跑一下,看按键是否有反应

按键不能控制LED。我有板子 连了呀
举报

更多回帖

发帖
×
20
完善资料,
赚取积分