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

📄 main.c

📁 一个MSP430相关的ADC—LCD的DEMO CODE
💻 C
字号:
# include <msp430x14x.h>
# include "f14demo_1.h"
//****************************************************
//定义区
 unsigned int value; 
 unsigned char ADVAL[5]={'x','x','x','x','\0'};
 unsigned char number_tab[]={'0','1','2','3','4','5','6','7','8','9'};

//****************************************************
//说明:实验标题1,应用单实形式发送.
void send_title()           //标题显示
{ //sendCMD(DDRAM_0);         //DDRAM
  sendCMD(off_cursor);      //关光标
  sendCMD(LCD_L21);    
  display(LCD_L21,0xBD,0xE1);  //结
  display(LCD_L22,0xB9,0xFB);  //果
  sendDAT('A');  sendDAT('D'); sendDAT('7'); sendDAT('=');
}

//****************************************************
//说明:单片机初始化
void init(void)
{  initlcm();                      //LCD初始化
   char_string (title,LCD_L11);    //发送本实验标题1
   send_title();                   //发送本实验标题2
   sendCMD(off_cursor);            //关光标
   
   //ADC12初始化----------------------
   //单通道,单次采样模式
   P6SEL |= 0x80;                   //使能A/D通道 A7
   ADC12CTL0 = ADC12ON + SHT0_2;    //开ADC12内核和设置SHIT0=2(N=4)
   ADC12CTL1 |= SHP;                 //SAMPCON信号选择为采样定时器输出
   ADC12CTL1 |= CSTARTADD_7;         //定义单次转换地址
   ADC12MCTL7 |= INCH_7;
   //ADC12MCTL0 = SREF_2;             // 使用外部参考电压 Vr+ = VeREF+
   ADC12CTL0 |= ENC;                 //ADC转换允许
   
   //Timer_A初始化--------------------
   P1DIR = 0x02;
   CCR0 = 1638-1;
   CCTL0 = CCIE;
   TACTL = TASSEL_1+MC_1;         //timerA CLK=ACLK,增计数模式
   _EINT();                       //开总中断
}

//****************************************************
//说明:数值转换
void conv(unsigned int intdata, unsigned char *pc)
{  unsigned int a,b,c;
   pc[0]=number_tab[intdata/1000] ;
   a=intdata%1000 ;  
   pc[1]=number_tab[a/100] ;
   b=a%100 ;
   pc[2]=number_tab[b/10] ;
   c=b%10;
   pc[3]=number_tab[c/1] ;
}

//****************************************************
//TimerA0中断服务程序
  #pragma vector=TIMERA0_VECTOR
  __interrupt void Timer_a(void)
  {
    LPM0_EXIT;
  }

//----------------------------------------------------
void main(void)
{     WDTCTL=WDTPW+WDTHOLD;     //停止WDT
     init(); 

      LPM3;
      while(1)
      {ADC12CTL0 |= ADC12SC;                   // 开始转换
       while((ADC12IFG & BIT7)==0);
       _NOP();      
       P1OUT ^= BIT1;                   //反转 P1.1           
       value=ADC12MEM7;                // 读取结果
       conv(value,ADVAL);              //数据转换调用
       char_string (ADVAL,LCD_L25);    //发送本实验标题1
      
      LPM3;
      }
}
//----------------------------------------------------

⌨️ 快捷键说明

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