⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 MSP430子程序集
💻 C
字号:
#include <msp430x14x.h>

//**********************************************************************
#define   HONGWAI_BIT      BIT1//红外接收头接于P2.0
#define   HONGWAI_DIR_IN   P1DIR&=~HONGWAI_BIT//设置p2.0为输入
#define   HONGWAI_IES_ON   P1IES|=HONGWAI_BIT//p1.0设置为下降沿中断   红外引脚定义
#define   HONGWAI_IE_ON    P1IE|=HONGWAI_BIT//允许p2.0中断
#define   HONGWAI_IE_OFF   P1IE&=~HONGWAI_BIT//禁止p2.0中断
#define   HONGWAI_IFG      P1IFG//p2.0中断标志
#define   HONGWAI_IN       (P1IN & BIT1) //P2.0输入
//**********************************************************************


//2.5微秒延时程序
void delay_us(unsigned int i)//delay 2.5us at 8M
{  
   unsigned int ii;
   for(ii =i;ii > 0;ii--)
   { 
      _NOP();_NOP();_NOP();_NOP();   
      _NOP();_NOP();_NOP();_NOP();
      _NOP();_NOP();_NOP();_NOP();
      _NOP();_NOP();_NOP();_NOP();       
   }    
}

void int_clk()
{
  unsigned char i;//定义局部变量i
  BCSCTL1&=~XT2OFF;//打开高频晶体震荡器
  BCSCTL2|=SELM1+SELS;//MCLK和SMCLK的时钟源都选择XT2CLK,即都是8MHZ
  do//(至少执行一次DO循环)
  {
    IFG1&=~OFIFG;//清除晶体震荡出错标志位
    for(i=0;i<100;i++)
      _NOP();//简单的延时等待
  }while((IFG1&OFIFG));//判断晶体震荡是否出错,如果还是出错,则继续执行DO循环
  IFG1&=~OFIFG;
}

//IO口初始化子程序
void int_io()
{
  //P5DIR|=0XFF;//set P5 is out  设置控制数码管数据口的IO口为输出模式
  //P6DIR|=BIT0+BIT4+BIT5+BIT6;
  //P3DIR|=BIT0;//P3.0控制74HC573的OE,把这个口设置为输出
  //P3OUT&=~BIT0;//使能74573,使得74573的输出随输入变化
  P2SEL&=~HONGWAI_BIT;
  HONGWAI_DIR_IN;//设置接红外引脚的IO为输入
  HONGWAI_IE_ON;//允许红外引脚中断
  HONGWAI_IES_ON;//设置红外引脚IO为下降沿中断
}  

#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{  
      if((HONGWAI_IFG & HONGWAI_BIT)==HONGWAI_BIT)
   { 
    HONGWAI_IFG&=~HONGWAI_BIT;//P1IFG &= ~BIT0; 
    HONGWAI_IE_OFF;//禁止P1.0中断
    
    

    
    
    HONGWAI_IE_ON;//允许p1.0 中断
    
   }  
}

int main(void)
{
  unsigned int i;
  unsigned char c;
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR|=BIT0;
  
  int_io();
  int_timer();
  _EINT();//开中断
  for( ; ;)
  {
    P1OUT^=BIT0;
    for(i=0;i<50000;i++);
    c++;
    if(c>=5)
    {
    c=0;  
    LPM3;
    }
  }  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -