• MSP430 流水灯 按键控制LED灯 数码管静态显示


    1.流水灯

    #include "msp430f149.h"
    #include "config.h"
    void delay(int i)
    {
      while(i--);
    }
    void main( void )
    {
        WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
        BoardConfig();
        unsigned int io=0x01,i=0;//用来控制灯亮灭,现在最低位为1,其余为为0
        //初始化
        P2DIR|=0xff;//设置P2所有端口为输出方向
        P2OUT=0xff;
        
        while(1)
        {
            io=0x01;
            for(i=0;i<8;i++)
            {
                P2OUT=~io;
                delay(10000);
                io<<=1;
            }
        }
    }

    2.按键控制LED灯

    #include "msp430f149.h"
    #include "config.h"
    
    void delay(int i)
    {
      while(i--);
    }
    void main( void )
    {
      // Stop watchdog timer to prevent time out reset
      WDTCTL = WDTPW + WDTHOLD;
      BoardConfig();
      _EINT();
      P1IE|=0X01;
      P1IES!=0X01;
      P1IFG&=~0X01; //清除中断标志位
      //P1REN|=0X01;  //使能上下拉电阻
      P1OUT|=0X01;   //设置为上拉电阻
      
      P2DIR|=0X01; //设置P2.0口为输出
      P2OUT|=0X01;
      
      while(1)
      {;
      }
    }
    
    #pragma vector=PORT1_VECTOR
    __interrupt void PORT2_ISR(void)//端口2中断
    {
      delay(100);
      if(P1IFG&0X01)
      {
        while(P1IN&0X01==0);//等待
        delay(500);
        P2OUT^=0X01;//反转灯的亮灭状态
      }
      //清除中断标志位
      P1IFG&=~0X01;
    }

    3.数码管静态显示

    #include "msp430f149.h"
    #include "config.h"
    
    void delay(int i)
    {
      while(i--); 
    }
    void main( void )
    {
      // Stop watchdog timer to prevent time out reset
      WDTCTL = WDTPW + WDTHOLD;
      unsigned int i=0;
      BoardConfig();
      unsigned int data[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
      P5DIR|=BIT5;
      P6DIR|=BIT6;//P5.5 P5.6设置为输出方向
      P6OUT&=~BIT6;//P5.6初始为低电平
      P5OUT|=BIT5;//P5.5初始为高电平
      P4DIR|=0XFF;//P4所有端口设置为输出方向
      P4OUT=0X00;
      P4OUT|=0XEF;//选择Y4;
      P5OUT&=~BIT5;//关闭位选
      P6OUT|=BIT6;//打开段选
      P4OUT=0X3F;//首先为0
    
      while(1)
      {
        for(i=0;i<=15;i++)
        {
          P4OUT=data[i];
          delay(10000);
          delay(10000);
          delay(10000);
          if(i>15)
          {
            i=0;
          }
        }
      }
    }
  • 相关阅读:
    源代码的下载与编译
    Git使用入门
    搭建Android开发环境
    Android系统移植与驱动开发
    Android探索与驱动开发学与思(10)
    Android探索与驱动开发学与思(9)
    Android探索与驱动开发学与思(8)
    第七章
    第六章
    第五章
  • 原文地址:https://www.cnblogs.com/yz-lucky77/p/12150721.html
Copyright © 2020-2023  润新知