ADC10模块支持快速、10位的A/D转换。该模块包含一个10位SAR核心、采样选择控制、参考电位产生器和数据传送控制器(DTC)。
DTC允许ADC10的采样被转换,并在存储区的任何地方存储,不需要CPU的干预。该模块可被用户软件设置,以支持各种各样的应用。
ADC10的特点包括:
·高于200-ksps的最高转换速率
·单调的10位转换器,没有丢码
·采样和保持,具有可编程的采样周期
·由软件或定时器_A开启转换
·可软件选择的片上参考电压产生(1.5V或2.5V)
·可软件选择的内部或外部参考
·可达8个外部输入通道
·转换通道用于内部温度传感器、Vcc和外部参考
·可选的转换时钟源
·单一通道,重复单一通道,序列和重复序列转换模式
·ADC核心和参考电压可被分别关电
·数据转换控制器用于对转换结果的自动存储
例1 使用内置的温度传感器来测量MSP430G2553芯片的温度
主程序代码如下所述:
/***************************************
*使用内置的温度传感器来测量MSP430芯片的温度,
*让AD转换与内置温度传感器相连,并把温度值显示
*在LCD1602上。
***************************************/
//主程序代码如下所述:
//=======================main.c==========================
#include<msp430g2553.h>
#include"LCD1602.h"
unsigned int temp[3];
static const int seg[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
long wendu=0;
long ADCvalue=0;
void delay(unsigned long cnt)
{
while(cnt)
cnt--;
}
//=================温度显示 ================
void wen_xianshi()
{
DispOneChar(1,3,0x4e); // Now : XX.X 度
DispOneChar(1,4,0x6f);
DispOneChar(1,5,0x77);
DispOneChar(1,6,0x20);
DispOneChar(1,7,seg[temp[2]]);
DispOneChar(1,8,seg[temp[1]]);
DispOneChar(1,9,0x2e);
DispOneChar(1,10,seg[temp[0]]);
DispOneChar(1,11,0xdf);
DispOneChar(1,12,0x43);
}
//======================================
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
//配置ADC10
ADC10CTL1 =INCH_10+ADC10DIV_3; //选择ADC的通道10,也即让AD转换与内部温度传感器相连,且时钟