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

📄 main.c

📁 msp430单片机模拟信号比较器的应用源代码
💻 C
字号:
#include <msp430x14x.h>
#define   uint  unsigned int
#define   uchar unsigned char
#define   beef   BIT6
uchar flag=0;
void int_clk()
{
    uchar i;
    BCSCTL1&=~XT2OFF;  //打开XT振荡器
    BCSCTL2|=SELM1+SELS;//MCLK 8M and SMCLK 1M  
    do
	{
        IFG1 &= ~OFIFG;                 //清除振荡错误标志 
        for(i = 0; i < 100; i++)
	  _NOP();			//延时等待
        }
    while ((IFG1 & OFIFG) != 0);	//如果标志为1继续循环等待
    IFG1&=~OFIFG;
}
void int_COMPARATORA()
{
  P2SEL|=0X14;//P22、P24分别作为比较器的输出和输入
  P2DIR|=0X04;//设置P22作为输出
  CACTL1&=~CAEX;//输出取反
  CACTL1|=CARSEL+CAREF0+CAON+CAIE+CAIES;//选择参考电压接负端、CA1接正端,允许中断下降沿触发中断,参考电压为0。25倍VCC
  CACTL2|=CAF+P2CA1;//使能输出滤波器,CA1作为比较输入功能
}


#pragma vector=COMPARATORA_VECTOR
__interrupt void COMPARATORA(void)	//中断服务程序
{
  flag=1;			//置中断标志为1
}
void delay()		        //软件延时
{
  uint i,j;
  for(i=0;i<=100;i++)
    {
      for(j=0;j<100;j++)
            ;
    }     
}
void main()
{   
  WDTCTL=WDTPW+WDTHOLD;//关看门狗
  int_clk();  //初始化时钟  
  delay();    //调用软件延时子程序
  int_COMPARATORA();//初始化比较器
  _EINT(); 
  while(1)
  {
    while(flag)
        {
        P4DIR|=beef;
        P4OUT&=~beef;		//P4.6输出低电平
        delay();                //调用软件延时子程序
        P4OUT|=beef;        	//P4.6输出高电平
        flag=0;			//标志清零
        }
   }
 } 

⌨️ 快捷键说明

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