打印

LaunchPad之按键LED闪灯爽歪歪

[复制链接]
1525|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaoyang9992006|  楼主 | 2012-6-12 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 gaoyang9992006 于 2012-6-12 18:00 编辑

//默认一起闪烁,按下按键后交替闪烁,再按下又一起,……

#include <msp430g2452.h>
#define     BUTTON                BIT3
#define     LED_RED               BIT0
#define     LED_GREEN             BIT6
#define     LED_DIR               P1DIR
#define     BUTTON_DIR            P1DIR
#define     BUTTON_OUT            P1OUT
#define     LED_OUT               P1OUT
#define     BUTTON_REN            P1REN
#define     BUTTON_ON             (P1IN&BIT3)
#define     BUTTON_OFF           !(P1IN&BIT3)
#define     LED_RED_ON()            P1OUT|=BIT0
#define     LED_RED_OFF()           P1OUT&=~BIT0
#define     LED_GREEN_ON()          P1OUT|=BIT6
#define     LED_GREEN_OFF()         P1OUT&=~BIT6
volatile unsigned char i=0,flag=0;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
   BUTTON_DIR &= ~BUTTON;
   LED_DIR    |= LED_RED+LED_GREEN;
   BUTTON_REN |= BUTTON;
      BUTTON_OUT  = BUTTON;
    while(1)
    {
     /*通过按键改变选择标志位*/
     if(BUTTON_OFF)
       {
        flag=!flag;
           while(BUTTON_OFF);
       }
     if(flag)
             {
       LED_RED_ON();
       i=10;
       while(i--)
       _delay_cycles(50000);
             LED_RED_OFF();
       LED_GREEN_ON();
       i=10;
       while(i--)
             _delay_cycles(50000);
             LED_GREEN_OFF();
             }
          else
             {
              LED_OUT |= LED_RED+LED_GREEN;
              i=10;
              while(i--)
               _delay_cycles(50000);
              LED_OUT ^= (LED_RED+LED_GREEN);
              i=10;
               while(i--)
               _delay_cycles(50000);
             }
    }
}

相关帖子

沙发
gaoyang9992006|  楼主 | 2012-6-12 19:18 | 只看该作者
/**************变化一下,O(∩_∩)O哈哈~*******/
#include <msp430g2452.h>
#define     BUTTON                BIT3
#define     LED_RED               BIT0
#define     LED_GREEN             BIT6
#define     LED_DIR               P1DIR
#define     BUTTON_DIR            P1DIR
#define     BUTTON_OUT            P1OUT
#define     LED_OUT               P1OUT

#define     BUTTON_REN            P1REN
#define     BUTTON_ON             (P1IN&BIT3)
#define     BUTTON_OFF           !(P1IN&BIT3)


#define     BIT_SET(x , y)            x |= (y)
#define     BIT_CLR(x , y)            x &=~(y)
volatile unsigned char i=0,flag=1;
void main(void)
{
          WDTCTL = WDTPW + WDTHOLD;

          BIT_CLR(BUTTON_DIR , BUTTON);
          BIT_SET(LED_DIR , LED_RED+LED_GREEN);
          BIT_SET(BUTTON_REN , BUTTON);
      BIT_SET(BUTTON_OUT , BUTTON);

    while(1)
    {
     /*通过按键改变选择标志位*/
            if(BUTTON_OFF)
       {
               flag=!flag;
           while(BUTTON_OFF);
       }
/*****************************************************/
            if(flag)
             {
                     BIT_SET(LED_OUT , LED_RED);
                     i=10;
                     while(i--)
                     _delay_cycles(50000);
             BIT_CLR(LED_OUT , LED_RED);
/*****************************************************/
                     BIT_SET(LED_OUT , LED_GREEN);
                     i=10;
                     while(i--)
             _delay_cycles(50000);
             BIT_CLR(LED_OUT , LED_GREEN);
             }
/*****************************************************/
          else
             {
                     BIT_SET(LED_OUT ,LED_RED+LED_GREEN);
                     i=10;
                     while(i--)
                             _delay_cycles(50000);
/*****************************************************/
                     BIT_CLR(LED_OUT , LED_RED+LED_GREEN);
                     i=10;
                      while(i--)
                      _delay_cycles(50000);

             }
    }

}

使用特权

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

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1953

主题

15892

帖子

207

粉丝