打印

MSP430自带的ADC做数字电压表的问题

[复制链接]
2198|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Rospiers|  楼主 | 2018-5-30 21:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSP430F19自带的ADC12做数字电压表,用变阻器给p6^0通道提供0~5V电压,买的单片机模块,在P6端口每个管脚都带一个贴片LED二极管,以后还想用LED,所以不敢贸然卸掉LED,不知道是程序的问题还是led影响,在网上还找了其他的两个程序,也是数值不改变,一个一直显示1.19V,另一个一直显示0.09V,自己弄了好几天了,求大神指点一下,谢谢
#include "msp430f149.h"
#include "1602.c"
#define Number_of_Results 200
#define uchar unsigned char
#define uint unsigned int
uchar shuzi[] = {"0123456789."};
static uint results[Number_of_Results];

void uart_orag()
{
  ME1|=UTXE0+URXE0;
  UCTL0|=CHAR;
  UTCTL0|=SSEL0;
  UBR00=0X03;
  UBR10=0X00;
  UMCTL0=0X4a;
  P3SEL|=0X30;
  P3DIR|=0X10;
  UCTL0&=~SWRST;
  IE1|=URXIE0;
}

void Trans_val(uint Hex_Val)
{

  int i,m,n,j=0;
  uchar p[5];
  p[0]=Hex_Val/1000;
  p[1]=10;
  m=Hex_Val%1000;
   p[2]=m/100;
   n=Hex_Val%100;
   p[3]=n/10;
    j=Hex_Val%10;
    p[4]=j;
    for(i = 0;i < 5;i++)
      LCD_write_char((6 + i),1,shuzi[p[i]]);
    delay_ms(10);
}
int main( void )
{

  // Stop watchdog timer to prevent time out reset
  WDT_Init();                         //看门狗设置
    Clock_Init();                       //系统时钟设置
    Port_init();                        //系统初始化,设置IO口属性
    delay_ms(10);                      //延时100ms
    LCD_init();                         //液晶参数初始化设置
    LCD_clear();
     LCD_Desk();
     uart_orag();
     P6SEL|=0X01;
     ADC12IE=0X01;
     ADC12CTL0=ADC12ON+MSC;
     ADC12CTL1=SHP+CONSEQ_2;
     ADC12CTL0|=SREF_1;
     ADC12MCTL0|=SREF_1;
     ADC12CTL0|=ENC;
     _EINT();
     ADC12CTL0|=ADC12SC;


}
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR(void)
{
  static uint index=0;
  results[index++]=ADC12MEM0;
  if(index==Number_of_Results)
  {
    uchar i;
    unsigned long sum=0;
    index=0;
    for(i=0;i<Number_of_Results;i++)
    {
      sum+=results[i];
    }
    sum=sum/200;
    sum=sum*3000/4095;
    Trans_val(sum);
    delay_ms(10);
  }
}

相关帖子

沙发
Lewisnx| | 2018-5-30 21:25 | 只看该作者
LED在通电时会将电压钳位在它的管压降上,你可以做个最小系统试试看。

使用特权

评论回复
板凳
CCompton| | 2018-5-30 21:33 | 只看该作者
估计是引脚外所接的LED的问题

使用特权

评论回复
地板
Richardd| | 2018-5-30 21:47 | 只看该作者
最小系统,虽然数值改变了,但是测试结果还是不对

使用特权

评论回复
5
Mattheww| | 2018-5-30 21:59 | 只看该作者
建议你看看ADC采集方面的

使用特权

评论回复
6
dirtwillfly| | 2018-5-31 07:51 | 只看该作者
msp430ware里有adc采样例程的,建议楼主参考一下
楼主用的什么型号的msp430?

使用特权

评论回复
7
hellosdc| | 2018-6-3 12:59 | 只看该作者
肯定是要去掉的。

使用特权

评论回复
8
uiint| | 2018-6-3 13:00 | 只看该作者
相当于接地处理了。

使用特权

评论回复
9
51xlf| | 2018-6-3 13:00 | 只看该作者
这个肯定不能连接LED的。

使用特权

评论回复
10
i1mcu| | 2018-6-3 13:00 | 只看该作者
去掉不就行了吗

使用特权

评论回复
11
pmp| | 2018-6-3 13:00 | 只看该作者
做数字电压有什么影响呢

使用特权

评论回复
12
mmbs| | 2018-6-3 13:01 | 只看该作者
你确定程序没有问题吗

使用特权

评论回复
13
1988020566| | 2018-6-3 13:01 | 只看该作者
应该是LED的问题呢

使用特权

评论回复
14
lzbf| | 2018-6-3 13:01 | 只看该作者
软件基本没有问题,就看硬件的

使用特权

评论回复
15
houjiakai| | 2018-6-3 13:02 | 只看该作者
这个干扰很大。

使用特权

评论回复
16
youtome| | 2018-6-3 13:02 | 只看该作者
网上的程序很多,都参考。

使用特权

评论回复
17
lzbf| | 2018-6-3 13:03 | 只看该作者
卸掉LED就没有问题了。

使用特权

评论回复
18
hellosdc| | 2018-6-3 13:03 | 只看该作者
影响信号电压。

使用特权

评论回复
19
1988020566| | 2018-6-3 13:03 | 只看该作者
LED的影响很大。

使用特权

评论回复
20
uiint| | 2018-6-3 13:03 | 只看该作者
LED电压才有0.3V

使用特权

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

本版积分规则

116

主题

377

帖子

0

粉丝