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

[复制链接]
2430|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 | 显示全部楼层
你是否 输入外部参考电压 有板子排针上输入
Rangar 发表于 2016-12-11 20:46 | 显示全部楼层
外部参考电压太高会烧坏板子的,超过量程时建议用电阻分压
Stannis 发表于 2016-12-11 21:11 | 显示全部楼层
用3.3V的电压试试
vibra2016 发表于 2016-12-11 21:26 | 显示全部楼层
为什么要设置5v以上的参考电压?
vibra2016 发表于 2016-12-11 21:27 | 显示全部楼层
这个电压的,对于单片机的IO口来说,是不是偏高?会损坏该IO口的?
vivilzb1985 发表于 2016-12-11 22:06 | 显示全部楼层
与楼上一样的疑问,,一般用的ad参考电压的很少超过5V的
vivilzb1985 发表于 2016-12-11 22:07 | 显示全部楼层
除非是在单片机上外接专门的Ad采集芯片的。但是这个也不建议的
shenmu2012 发表于 2016-12-13 21:36 | 显示全部楼层
把被采集电压信号的分压处理降到5V以下的
shenmu2012 发表于 2016-12-13 21:36 | 显示全部楼层
参考电压的不要大于AD的供电电压的
typeof 发表于 2016-12-13 22:46 | 显示全部楼层
一般都是3,3V的参考电压
typeof 发表于 2016-12-13 22:48 | 显示全部楼层
建议使用外部的ADC吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

180

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部