打印

怎样模数转换

[复制链接]
2397|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lyy3324|  楼主 | 2012-9-11 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
elitezhe| | 2012-9-11 16:34 | 只看该作者
官方例程有很多ad转换的

使用特权

评论回复
板凳
hawksabre| | 2012-9-11 18:43 | 只看该作者
模数转换的思想是将外部的物理量转换为电流,通常为4-20MA   通过电阻将他转换为电压   经过片内A/D转换单元转化   即可   你如果要驱动程序   可以推荐看430使用手册   例程很多   对于你   主要问题可能是寄存器的设置   这个需要熟悉一下430内部结构

使用特权

评论回复
地板
lyy3324|  楼主 | 2012-9-11 22:48 | 只看该作者
嗯,好的 3# hawksabre

使用特权

评论回复
5
gaochy1126| | 2012-9-12 09:42 | 只看该作者
在官网上下载例程就可以了!

使用特权

评论回复
6
figo20042005| | 2012-9-12 13:26 | 只看该作者
看下AD转换的文档,对寄存器的设置,采样时间,分辨率,看看

使用特权

评论回复
7
wjzx111056| | 2012-9-12 20:43 | 只看该作者
msp430单片机的模数转换模块--ADC12  
ADC12模块中由以下部分组成:输入的16路模拟开关,ADC内部电压参考源,ADC12内核,ADC时钟源部分,采集与保持/触发源部分,ADC数据输出部分,ADC控制寄存器等组成。
ADC12的模块内核是共用的,通过前端的模拟开关来分别完成采集输入。ADC12是一个精度为12位的ADC内核,1位非线性微粉误差,1位非线性积分误差。内核在转换时会参用到两个参考基准电压,一个是参考相对的最大输入最大值,当模拟开关开关输出的模拟量大于或等于最大值时 ADC内核的输出数字量为满量程,也就是0xfff;另一个则是最小值,当模拟开关输出的模拟变量小于或等于最大值时,ADC内核输出的数字量为最低值,也就是0x00。而这两个参考电压也是可以通过软件来编程设置的。
ADC45模块的所有寄存器
  转换控制寄存器  ADC12CTL0  ADC12CTL1
  终端控制寄存器  ADC12IFG  中断标志寄存器
                  ADC12IE   中断使能寄存器
                  ADC12IV   中断向量寄存器
  存贮及其控制寄存器
至于如何选择参考源,要满足以下原则:
1、参考源的精度及温度稳定性,对内部参考源来说,还应该注意参考源受其供电电源电压值变化影响的程度
2、如果内部参考源不能满足需求,哪还可以选外部参考源。430 的 ADC12 提供了有这种可能性,即 VeREF。
3、430 ADC12 参考源电压值选取的原则是:既要满足 ADC12 最小电压分辨率要求,有要满足“满刻度”要求。
4、最好不要将 VeREF 引出外部,作为其它用途而使用。
5  当需要稳定的参考电压源的时候,××CC做参考电压比内部参考电压还糟糕!
   外部参考源应该使用专用VERF精密稳压器件提供才行。
存贮在ADC12MEMx的数据为  Nadc=4095*(Vin-Vr-)/(Vref-Vr-)
                         Vin=Nadc*Vref/4095

使用特权

评论回复
8
springspring| | 2012-9-14 20:54 | 只看该作者
void ADC_Init(void)
{
    CLK_PCKENR2 |= 0x08;
    ADC_TDRL = 0x03;      
    ADC_CR1  = 0x01;     
}

ADC_CSR &= 0xF0;
ADC_CSR |= 0;           
        
ADC_CR1 |= 0x01;         
while(!(ADC_CSR&0x80));   
value = ((int)ADC_DRH<<2);
value |= ADC_DRL;         
ADC_CSR &= ~0x80;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

0

粉丝