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

📄 system_init.c

📁 多点烟雾,温度探测报警程序 基于MSP430F247,485总线.
💻 C
字号:
#include<msp430x24x.h>
#include"System_Init.h"

/************************************
函数名称:
功    能:主机UART1初始化
参    数:
描   述 :这里,用的是P3.6,P3.7口即UART1
***********************************/
void Master_Init_UART1(void)
{
 
 UCA1CTL0 =UCSPB + UCMSB + UCMODE_2;    //8位数据位,1位停止位,地址位多机模式
 UCA1CTL1 =UCSSEL_1;                    //以ACLK为时钟

 
 UCA1BR0=0x03;                 //使用32kHZ晶振,波特率为9600bps

 UCA1BR1=0x00;

 UCA1MCTL=0x4A;  

              

 P3SEL=0xC0;                   //选择P3.6、P3.7为UART1
 
 P3DIR=0x40;                   //P3.6输出
 
 UCA1CTL1 &=~UCSWRST;          //SWRDT复位,UART允许

 UC1IE=UCA1RXIE;               //接收允许中断

}

/************************************
函数名称:
功    能:主机定时器初始化
参    数:
返回 值 :
***********************************/

void Master_Init_TimerA(void)
{
 TACTL =TASSEL1 +TACLR;    //选择的时钟为MCLK,8M
 TACTL |=ID1;              //二分频
 CCR0=4000;
 CCTL0 =CCIE;              //定250MS
 TACTL |=MC1;     
}

/************************************
函数名称:
功    能:主机端口初始化
参    数:
返回 值 :
***********************************/
void Master_Init_Port(void)           //等下将所有端口设为输出,避免外来干扰

{
  P1DIR=0xFF;
  P1OUT=0x00;
  
  P2DIR=0xFF;
  P2OUT=0x00;
  
  P3DIR=0xFF;
  P3OUT=0x00;
  
  P4DIR=0xFF;
  P4OUT=0x00;
  
  P5DIR=0xFF;
  P5OUT=0x00;
  
  P6DIR=0xFF;
  P6OUT=0x00;
    
}

/************************************
函数名称:
功    能:系统时钟初始化
参    数:
返 回 值 :
*************************************/ 
void Master_Init_CLK(void)
{
    unsigned int i;
    BCSCTL1 = 0x00;	                //将寄存器的内容清零
					//XT2震荡器开启
					//LFTX1工作在低频模式
					//ACLK的分频因子为1
					
    do 
    {
      IFG1 &= ~OFIFG;                   // 清除OSCFault标志
      for (i = 0xFF; i > 0; i--);       //稳定时间               
    }
    while ((IFG1 & OFIFG)!=0);          // 如果OSCFault =1   
					
	//将寄存器的内容清零
    BCSCTL2 = 0X00;		
	//MCLK的时钟源为TX2CLK,分频因子为1
    BCSCTL2 |= SELM1;	
	//SMCLK的时钟源为TX2CLK,分频因子为1
    BCSCTL2 |= SELS;	
}



/************************************
函数名称:
功    能:主机DELAY MS
参    数:
返回 值 :
***********************************/
void Master_Delay_ms(unsigned long nValue)//毫秒为单位,8MHz为主时钟
{
    unsigned long nCount;
    int i;
    unsigned long j;
    nCount = 2667;
    for(i = nValue;i > 0;i--)
    {
    	for(j = nCount;j > 0;j--);
    }
   
}

/************************************
函数名称:
功    能:主机DELAY US
参    数:
返回 值 :
***********************************/
void Master_Delay_us(unsigned long nValue)//微秒为单位,8MHz为主时钟
{
    int nCount;
    int i;
    int j;
    nCount = 3;
    for(i = nValue;i > 0;i--)
    {
     for(j = nCount;j > 0;j--);
    }
    
}

⌨️ 快捷键说明

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