【文件属性】:
文件名称:msp430adc程序
文件大小:4KB
文件格式:C
更新时间:2016-05-29 15:52:09
adc12
msp430adc模数转换的c语言程序/****************************************************************************
文件名:adc12.c
编写者:czhang
描述:ADC12模块程序。用于14xx系列。
MCLK:DCO ACLK:32.768kHz
版本:2005-4 V1.0
*****************************************************************************/
#include
#include "adc12.h"
unsigned char Wait=0; //等待转换结束的标志位 0:没有结束;1:结束
unsigned int AdMem[16]; //转换结果缓冲区
#define AD_CI 10
unsigned char AdCi=AD_CI; //单通道或者序列多次转换的转换次数
#define DUO_CI 0 //0:单通道或者序列单次转换 1:单通道或者序列多次转换
/****************************************************************************
初始化
****************************************************************************/
void Adc12Init()
{
ADC12CTL0 &= ~ENC; //使AD模块处于初始状态
ADC12CTL0 = MSC+REFON+REF2_5V+SHT0_15+SHT1_15; //使用内部2.5V参考电压,使用采样保持器。
}
/****************************************************************************
打开或关闭ADC12模块
doit: 0:打开 100:关闭
****************************************************************************/
void Adc12Open(unsigned char doit)
{
if(doit==0)
{
ADC12CTL0 |= ADC12ON;
ADC12CTL0 |= ENC; //允许转换
}
else if(doit==100)
{
ADC12CTL0 &= ~ADC12ON; //不允许转换
ADC12CTL0 &= ~ENC;
}
}
/****************************************************************************
设置转换模式
adr:转换的首地址。取值范围为0~15
mod:转换模式。 0:单通道单次 1:序列通道单次 2:单通道多次 3:序列通道多次
****************************************************************************/
void AdcDo(unsigned int adr,unsigned char mod)
{
ADC12CTL1 = (adr<<12)+SHP+(mod<<1); //SHP意思为由采样定时器控制采样
}
/****************************************************************************
设置通道
tongdao:选择的模拟输入通道,取值范围为0~15
eos: 0表示序列没有结束,0x80表示在序列转换时,表示本次转换结束后,本转换序列结束。
mem:转换存储器控制寄存器,取值: 0~15
verf:参考电压,取值范围为0~7
inter: 0:本通道转换完后不引发中断 1:本通道转换完后引发中断
****************************************************************************/
void SetTongDao(unsigned char tongdao,unsigned char eos,unsigned char mem,unsigned char verf,unsigned char inter)
{
char *pmem_ctl= ADC12MCTL;
pmem_ctl += mem;
*pmem_ctl = tongdao+ eos + (verf<<4);
if(inter==0)
ADC12IE &= ~(0x1<