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

📄 main.c

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

#define  LED_BIT     BIT2//LED接在P2.2口,这样当LED接在不同的IO口时可以很方便的修改
#define  LED_DIR_OUT P2DIR|=LED_BIT//将P2.2设置为输出 "|"为或运算
#define  LED_H       P2OUT|=LED_BIT//P2.2输出高电平,使LED亮
#define  LED_L       P2OUT&=~LED_BIT//P2.2输出低电平,使LED灭  "~"为取反


void int_clk();//时钟初始化子程序声明
void int_io();//制口的初始化
void delay_us(unsigned int i);//延时14.625微妙程序函数的声明

//******************************************
//子程序名:int_clk()
//功能:   时钟初始化子程序
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;
}
//******************************************

//******************************************
//子程序名:int_io()
//功能:对在本例子中有用到的IO口进行初始设置
void int_io()
{
 LED_DIR_OUT;//把控制LED的P2.2口设置为输出
} 

//软件延时程序
//延时时间:60*i us
void delay_us(unsigned int i)
{ 
  unsigned int j;
  
  while(i--)
  {
   for(j=0;j<43;j++)
   {  
    _NOP();
    _NOP();
    _NOP();
    _NOP();   
    }
  } 
}  //延时时间是怎么计算的在说明里面有详细介绍
//****************************************
//主程序:
int main( void )
{ 
  WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timer to prevent time out reset
  int_clk();//初始化时钟
  int_io();
  for(;;)
  {
   LED_H;//LED亮
   delay_us(8333);//延时8333*60US=0.4998S
   LED_L;//LED灭
   delay_us(8333);
  }  
}

⌨️ 快捷键说明

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