• 大小: 7KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: MSP430G2553  ADS8361  

资源简介

用MSP430G2553控制额ADS8361串行AD的程序

资源截图

代码片段和文件信息

//*******************************************************************
//ADS8361数据采集控制程序
//
//    说明:1.ADS8361最大采样率为500KSPS16-Bit精度2+2通道同步采样ADC。
//         2.数据从通道A的CH0通道输入,经运放放大后,输入MSP430G2553中。
//         3.MSP430将数据转化成电压值,通过串口发送给上位机显示。
//*******************************************************************
//
//配置说明:
//    M0=0 M1=0 :工作模式modeI数据两通道输入,
//               CHA0/CHA1的数据从DATA A输出,CHB0/CHB1的数据从DATA B输出
//    A0=0      :选择信号从A0和B0通道输入
//    A0=1       选择型号从A1和B1通道输入
//    CONVST    :从低电平变成电平时,AD由采样状态变为保持状态
//    CLOCK     :时钟信号,控制采样频率F(Max)=CLOCK/20
//    参考电压使用内部提供的2.5v
//    串口设置: 波特率:9600,数据位8位,无校验位,1位停止位
//
//输入连接:
//   -2.5V-2.5V -|A0-     |
//          2.5V-|A0+     |
//               |        |
//             |-|B0-     |
//             |-|B0+     |
//*******************************************************************
//转换过程:
//   0.  将片选信号拉低
//   1. 将CONVST和RD变成高电平(至少15ns),开始转换
//   2. 在每个时钟信号的下降沿读取数据,时钟信号的高低电平时间至少40ns
//   3. 时序和输出数据格式:
//   CONVST信号: 0->1
//   时钟下降沿: .1  .2    .3     .4--------.19 .20
//   数据      : 0  CH0(0)CHA(0) DA15-------DA0  0
//   4. 数据含义:输出的是二进制补码,最高为是符号位(具体可见数据手册FIGURE8)
//                当输入为正时,参考电压用2.5V时,输入电压在0-2.5v波动,数据
//                输出为0-32767(对应DA14-DA0)。
//                当输入为负时,输入电压在0~-2.5V波动,数据输出为32767-65535
//                注意:CONVST的上升沿应先于时钟信号CLOCK下降沿至少10ns或者后于5ns
//*******************************************************************

#include “MSP430G2553.h“
#include 

//*******************************************************************
//引脚配置:
//
#define  M1_0     P2OUT &=~BIT4    //输出0
#define  M1_1     P2OUT |= BIT4    //输出1
#define  M0_0     P2OUT &=~BIT3
#define  M0_1     P2OUT |= BIT3
#define  A0_0     P1OUT &=~BIT4
#define  A0_1     P1OUT |= BIT4
#define  RD_0     P1OUT &=~BIT5
#define  RD_1     P1OUT |= BIT5
#define  CLOCK_0  P2OUT &=~BIT0
#define  CLOCK_1  P2OUT |= BIT0

#define  LED1_0   P1OUT &=~BIT0
#define  LED1_1   P1OUT |= BIT0
#define  LED2_0   P1OUT &=~BIT6
#define  LED2_1   P1OUT |= BIT6
//KEY P1.3

volatile unsigned int Cha=0count=0;
volatile int ChaVoltage=0tmp=0;        //A0通道输入的电压值(单位是mV)
char string[32];

//*******************************************************************
//串口发送字符函数
//*******************************************************************
void uart_send_ch(unsigned char ch)
{
    while(!(IFG2& UCA0TXIFG)); //查询发送是否结束
    UCA0TXBUF = ch;
    IFG2&=~UCA0TXIFG; //清除发送一标志位
}

//*******************************************************************
//串口发送字符串函数
//*******************************************************************
void uart_send_str(char *str)
{
    for( ; *str; )
    {
        uart_send_ch((unsigned char)*str);
        str++;
    }
}

//*******************************************************************
//AD转换函数调用一次,返回16位数据
//*******************************************************************
unsigned int Read_Cha_Ad()
{
    volatile u

评论

共有 条评论