打印

430g2553的ADC10外部参考电压问题

[复制链接]
2194|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Levenburg|  楼主 | 2016-12-11 19:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在做msp430g2553的ADC10外部参考电压时,想设置一个5V以上的外部参考电压,可怎么也弄不出来!请各位大虾指教指教!

下面是我的程序:

#include <intrinsics.h>
#include "1602-4.h"
#include "1602-4.c"
/********************************************
                                               主函数
  
*******************************************/
void main()
{
   WDTCTL = WDTPW + WDTHOLD;     // 关闭看门狗
    P1SEL|=BIT4;
    P1DIR&=~BIT4;
    ADC10CTL0 =SREF_2+ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled
    ADC10CTL1 = INCH_1;                         // input A1模拟信号输入选择通道A1即p1.1
    ADC10AE0 |= 0x12;                           // PA.1 ADC option select使p1.1允许AD模拟输入信号
    P1DIR |= 0x01;                              // Set P1.0 to output direction
    ADC10CTL0 |= ENC + ADC10SC;     
   // LCD_init_first();
    LCD_init();
    TA0CCTL0 = CCIE;                             // CCR0 1ms中断
    TA0CCR0 = 312;
    TA0CTL = TASSEL_2 + MC_1;                  // SMCLK, upmode
    //_BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
    TA1CCTL0 = CCIE;                             // CCR0 1ms中断
    TA1CCR0 = 312;
    TA1CTL = TASSEL_2 + MC_1;                  // SMCLK, upmode
    _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt

    while(1)
    { if(j>100)
     {
       shuzhi=qushu*35/10;
       lcd_diaoyong();
       LCD_write_command(0x0c);
       j=0;
      }
    }
}

/********************************************
*
定时器Timer0_A
*******************************************/
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer0_A (void)
{
        ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start开始转换
        qushu=ADC10MEM;
        j++;
       __bis_SR_register(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exit
       __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 0(SR)
}
/********************************************
定时器Timer1_A
*******************************************/
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer1_A (void)
{
       P1OUT ^= 0x01;
      __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 0(SR)
}
/********************************************

*******************************************/
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
  __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 0(SR)
}

相关帖子

沙发
Thorald| | 2016-12-11 19:54 | 只看该作者
你得单片机供电才3.3V,如何能用5V的电压作为外部参考呢?

使用特权

评论回复
板凳
Bjorn| | 2016-12-11 20:10 | 只看该作者
楼上说的对,有可能会烧坏板子的。建议改为3.3V以下的电压试试

使用特权

评论回复
地板
Rollo| | 2016-12-11 20:26 | 只看该作者
你是否 输入外部参考电压 有板子排针上输入

使用特权

评论回复
5
Rangar| | 2016-12-11 20:46 | 只看该作者
外部参考电压太高会烧坏板子的,超过量程时建议用电阻分压

使用特权

评论回复
6
Stannis| | 2016-12-11 21:11 | 只看该作者
用3.3V的电压试试

使用特权

评论回复
7
vibra2016| | 2016-12-11 21:26 | 只看该作者
为什么要设置5v以上的参考电压?

使用特权

评论回复
8
vibra2016| | 2016-12-11 21:27 | 只看该作者
这个电压的,对于单片机的IO口来说,是不是偏高?会损坏该IO口的?

使用特权

评论回复
9
vivilzb1985| | 2016-12-11 22:06 | 只看该作者
与楼上一样的疑问,,一般用的ad参考电压的很少超过5V的

使用特权

评论回复
10
vivilzb1985| | 2016-12-11 22:07 | 只看该作者
除非是在单片机上外接专门的Ad采集芯片的。但是这个也不建议的

使用特权

评论回复
11
shenmu2012| | 2016-12-13 21:36 | 只看该作者
把被采集电压信号的分压处理降到5V以下的

使用特权

评论回复
12
shenmu2012| | 2016-12-13 21:36 | 只看该作者
参考电压的不要大于AD的供电电压的

使用特权

评论回复
13
typeof| | 2016-12-13 22:46 | 只看该作者
一般都是3,3V的参考电压

使用特权

评论回复
14
typeof| | 2016-12-13 22:48 | 只看该作者
建议使用外部的ADC吧。

使用特权

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

本版积分规则

46

主题

180

帖子

0

粉丝