MSP430F5529、G2553A/D转换模块

发布者:Chunjie2022最新更新时间:2014-12-17 来源: 51hei关键字:MSP430F5529  G2553  转换模块 手机看文章 扫描二维码
随时随地手机看文章

***TI公司的MSP430F5529的A/D转换模块在P1.6输入端,名称为ADC12,是用12位数字寄存器保存转换结果的AD转换器。
 ***转换有两个参考电压,最高电压VR+,最低电压VR-作为转换的上下限,高于等于VR+输出0FFF,小于等于VR-输出0000,待转换模拟电压Vin转换后的数字量计算为Data=4095  x   (Vin-VR-)/(VR+ -VR-),程序结构如下
 
#include "msp430F5529.h"
int tt=0,temp,kk;
void delay(int ns)
{
  while(ns--);
}
//******A/D转换函数设置*****//
void adc1()
{
 P1SEL |=BIT6;       //转换模拟信号从P1.6输入,内部集成了转换模块
 ADC12CTL0 =ADC12ON  + ADC12SHT0_8 + ADC12MSC;
 ADC12CTL1 =ADC12SHP + ADC12CONSEQ_2;
 ADC12MCTL0=ADC12SREF_0+ADC12INCH_6;
 ADC12CTL0 |=ADC12ENC;
//////一次转换结束后产生转换中断调用ADC中断函数////
}

int main(void)
 {
   WDTCTL = WDTPW + WDTHOLD;   // Stop WDT
   UCSCTL3 |=SELREF__REFOCLK;
   __bis_SR_register(SCG0);     //disable the FLL control loop
   UCSCTL0=0X0000;//            //Set lowest possible DCOx,MODxSCG0
   UCSCTL1=DCORSEL_7;           //Select DCO range 24MHz opreation
                               //DCORSEL_x,其中x可选3、4、5、6、7
   UCSCTL3=FLLD_0+731;          //Set DCO Multiplier for 24MHz
                                //(N+1)*FLLRef=Fdco
                                //(731+1)*32768=24MHz
                               //Set FLL DIV =fDCOCLK/2
   /*__bis_SR_register(SCG0);                 //Enable the FLL control loopSCG0
   UCSCTL4 |=SELA__DCOCLK+SELS__XT1CLK+SELM__DCOCLK;//MCLK Source select
   UCSCTL5 |=DIVPA_2;                       //ACLK output divide
   UCSCTL6 |=XT1DRIVE_3+XCAP_0;             //XT1 cap */
  
   P1DIR |= 0x01;                            // P1.0 output
   TA1CCTL0 = CCIE;                          // CCR0 interrupt enabled
   TA1CCR0 = 100;                            //计数最大值设置
   TA1CTL = TASSEL_2 + MC_2 + TACLR;         // SMCLK, contmode, clear TAR
   __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, enable interrupts
   __no_operation();                         // For debugger
 }
 // Timer1 interrupt service routine
 #pragma vector=TIMER1_A0_VECTOR
 __interrupt void TIMER1_A0_ISR(void)
 {
 
   if(kk==50)
   {
     kk=0;
   P1OUT ^= 0x01;// Toggle P1.0
   }
    else kk++;
                           
    TA1CCR0 += 10000;                         // 重装
 }
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR(void)
{
   //读取转换结果哟
    tt=ADC12MEM0; //转换数据存在12位ADC12MEM0寄存器中
}
 ADC12有18个中断源,ADC12IFG0----ADC12IFG15、溢出中断源ADC12OV、ADC12MEMx
ADC12TOV、ADC12_A 转换时间溢出。
当ADC12MEMx存入转换结果的时候,响应的ADC12IFGx位被置位(变1),响应的ADC12IEx位和GIE位也置位产生中断请求。

 



//************************************************************
//  MSP430G2x33/G2x53 Demo - ADC10, Sample A1, 1.5V, TA1 Trig, Set P1.0 if > 0.5V
//
//  Description: A1 is sampled 16/second (ACLK/2048) with reference to 1.5V.
//  Timer_A is run in upmode and TA1 is used to automatically trigger
//  ADC10 conversion, TA0 defines the period. Internal oscillator times sample
//  (16x) and conversion (13x). Inside ADC10_ISR if A1 > 0.5Vcc, P1.0 is set,
//  else reset. Normal mode is LPM3.
//  //* An external watch crystal on XIN XOUT is required for ACLK *//
//
//               MSP430G2x33/G2x53
//            -----------------
//        /|\|              XIN|-
//         | |                 | 32kHz
//         --|RST          XOUT|-
//           |                 |
//       >---|P1.1/A1     P1.0 |--> LED
//
//  D. Dang
//  Texas Instruments Inc.
//  December 2010
//   Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
//********************************************************
#include  "msp430g2553.h"
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  ADC10CTL1 = SHS_1 + CONSEQ_2 + INCH_1;    // TA1 trigger sample start
  ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE;
  __enable_interrupt();                     // Enable interrupts.
  TACCR0 = 30;                              // Delay to allow Ref to settle
  TACCTL0 |= CCIE;                          // Compare-mode interrupt.
  TACTL = TASSEL_2 + MC_1;                  // TACLK = SMCLK, Up mode.
  LPM0;                                     // Wait for delay.
  TACCTL0 &= ~CCIE;                         // Disable timer Interrupt
  __disable_interrupt();
  ADC10CTL0 |= ENC;                         // ADC10 Enable
  ADC10AE0 |= 0x02;                         // P1.1 ADC10 option select
  P1DIR |= 0x01;                            // Set P1.0 output
  TACCR0 = 2048-1;                          // PWM Period
  TACCTL1 = OUTMOD_3;                       // TACCR1 set/reset
  TACCR1 = 2047;                            // TACCR1 PWM Duty Cycle
  TACTL = TASSEL_1 + MC_1;                  // ACLK, up mode
  __bis_SR_register(LPM3_bits + GIE);       // Enter LPM3 w/ interrupts
}
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
  if (ADC10MEM < 0x155)                     // ADC10MEM = A1 > 0.5V?
    P1OUT &= ~0x01;                         // Clear P1.0 LED off
  else
    P1OUT |= 0x01;                          // Set P1.0 LED on
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void ta0_isr(void)
{
  TACTL = 0;
  LPM0_EXIT;                                // Exit LPM0 on return
}

关键字:MSP430F5529  G2553  转换模块 引用地址:MSP430F5529、G2553A/D转换模块

上一篇:MSP430F5529的P1.7、P2.2中断和频率设置
下一篇:MSP430F5529时钟详解

推荐阅读最新更新时间:2024-03-16 13:49

AD1672单片12位模数转换器的原理及其应用
一、 概述 AD1672是美国adi公司最近推向市场的一种新型单片式模数转换器(ADC)。片上含有4个高性能采样保持放大器(sha)和4个闪烁式adc及电压基准。它采用4级流水线结构,输出带有误差修正逻辑电路,并采用bicmos工艺,从而保证在3msps采样速度下12位精度,在整个工作温度范围内不失码。由于ad1672输入sha具有快速建立特性,所以它既适合从负满度到正满度电压逐次切换多通道系统,又适合输入频率高达奈奎斯特速率的单通道采样。 ad1672具有宽频带输入、单电源供电、低功耗和低价格等特点,非常适用于通信、图象处理和医疗设备新电路设计。 ad1672采用28脚plcc封装,工作温度范围为-40~+85°
[模拟电子]
AD574A与MCS-51单片机接口
AD574A逻辑控制真值表
[单片机]
<font color='red'>AD</font>574A与MCS-51单片机接口
工程师说 | 面向AD/ADAS的SoC的AI性能优化
Yuji Obayashi Principal Software Engineer 本文介绍了瑞萨在早期设计阶段针对自动驾驶(AD)和高级 驾驶辅助系统 (ADAS)的SoC中用于AI处理的深度神经网络(DNN)加速器的性能、电路尺寸和功耗的工作内容。 背景 近年,随着深度学习(DeepLearning)人工智能(AI)技术的进步,我们的生活中出现了许多直接有益的应用场景,例如自动翻译精度的提升和根据消费者喜好的个性化推荐。截至2023年,AI在某些领域已经成为产品和服务中不可或缺的应用,其中之一就是自动驾驶(AD)和先进驾驶辅助系统(ADAS)。 以深度神经网络(DNN)为代表的最新人工智能模型的处理需要大规模
[汽车电子]
工程师说 | 面向<font color='red'>AD</font>/ADAS的SoC的AI性能优化
高速模数转换AD9066及其应用
    摘要: AD9066是美国AD公司出品的双6位AD转换器,它的采样率高达60MSPS。可用于广播伴音接收、正交调幅、无线局域VSAT接收等领域。文中介绍了AD9066模数转换器的引脚功能、工作原理及应用电路。     关键词: 模数转换 广播伴音 正交调幅 AD9066 1 概述 AD9006是美国AD公司出品的双通道6位模数转换器(ADC,Analog Digital Converter)。同时也是具有优良品质的低成本相位解调器,其采样频率高达60MPSPS,可用于宽带相移键控解调广播伴音系统,同时,利用它还可以将接收到的信号分解为两个正交矢量并数字化。 AD9066具有如下特性:
[应用]
PIC16位单片机CAN(6)外部AD
外部AD使用的是AD7170 具体的资料看datasheet。简单说一下这个AD的注意事项。 AD7170是一款低功耗ADC,片内集成精密12位 - 调制器和数字滤波器,用于测量宽动态范围、低频信号。该器件具有一个内部时钟和一路差分输入,输出数据速率为125 Hz,增益为1。双线式接口可简化从AD7170获取数据的过程。 简单一句话。一个时钟输入,一个串行转换输出。模拟输入为双极性输入。 时钟和串行数据输出就不多说了,看看时序就知道了。重点看一下什么叫做双极性输入。 AD7170支持双极性输入范围。双极性输入范围不代表器件可以耐受相对于系统GND的负电压。AIN(+)输入端的信号以AIN(?)输入端的电压为基准。例如,当使用2
[单片机]
埃赛力达科技推出第三代TPG3AD1S09 905 nm脉冲激光二极管
高性能三腔225 μm脉冲激光二极管采用SMD封装,可为智能设备提供高输出功率和功效 提供以市场为导向的创新光电解决方案的工业技术领导者埃赛力达科技有限公司(Excelitas Technologies®Corp.)推出新型TPG3AD1S09 905 nm脉冲激光二极管。这款第三代高性能三腔225 μm SMD脉冲激光二极管具有120 W的高输出功率,适用于远距离测距,并为中短程系统提供优异的功效。这些改进后的设计可提供出色的稳定性、光束质量和可靠性,可满足要求最严苛的智能家居、智慧城市和智能工厂应用。 TPG3AD1S09的功率斜率为3 W/A,在40 A电流下工作时输出功率可达120 W。它还降低了串联电阻,允
[电源管理]
埃赛力达科技推出第三代TPG3<font color='red'>AD</font>1S09 905 nm脉冲激光二极管
CC2430单片机AD转换使用方法总结
CC2430单片机标称AD转换精度为14位,在单片机中算是比较高的了,CC2430最广泛的用途是作为传感器来使用的,而传感器测量的物理量的原理多半是将物理量转换成电流、电压等模拟信号,再通过AD转换进入单片机处理。所有用好CC2430的AD是使用好CC2430的一项基本技能。 一、CC2430的ad的几个重要参数 1、量化精度14位 2、转换方式为代儿塔-西格玛方式 3、8路独立通道、4路差分通道 4、参考电压可选内部、外部参考电压;(具体参考datasheet) 5、有DMA功能;(每个通道都能触发),这个功能我认为非常重要,主要是做交流采样,很方便也很容易处理
[单片机]
基于AD8205型高端电流传感器的PWM电流控制器
1 引言 在许多工业应用领域,如电池管理系统、电磁系统、液压系统、电机控制系统和汽车电气控制等系统中,都需要高性能电流检测和控制。在这些应用系统中,大都需要在高共模电压情况下检测小差分电压以实现对电流的监控。 2 电流检测的实现 在以往的电流监控系统设计中,电流的检测可采用电流互感器、霍尔电流传感器等隔离型电流传感器来实现,这种方法简单可靠,但成本高,且传感器后一般还需要进行信号调理,电路设计较为复杂。另一种方法是用采样电阻器与负载串联,将负载电流经过采样电阻器转换成电压后进行放大等处理。由于高共模电压的存在,负载电流在采样电阻器上产生的小差分电压的高精度测量比较困难,且检测电路的设计很复杂。因此,如何在高共模电压情况下进行小差分
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved