MSP430中ADC12模块提供了4种转换模式,在此采取序列通道单次转换模式,以方便上位机实时控制。四个通道A/D转换只须启动一次,最后一个通道转换完成后设置中断标志位。对转换模式、转换采样时序以及转换通道的设置如下:
ADC12CTL0=ADC12ON+SHT0_2+MSC; /打开ADC12并设置采样时间
ADC12CTL1=SHP+CONSEQ_1; /序列通道单次转换模式
ADC12MCTL0=INCH_0; /选择通道0
ADC12MCTL1=INCH_1; /选择通道1
ADC12MCTL2= INCH_2; /选择通道2
ADC12MCTL3= INCH_3+EOS; /选择通道3和序列结束标志
ADC12CTL0|=ENC; /启动AD转换
整个数据采集的过程都是由PC机为中心,PC机通过向MSP430发送命令来控制A/D转换的开始和结束。对于MSP430收到的控制数据(命令),我们在此规定:
字节1:0xFF----启动A/D转换,0xFE----停止A/D转换
如果MSP430收到的数据第一个字节是0xFF,先设置标志adflag=1,然后启动A/D转换并设置相应其他的参数,当四个通道的数据采集和转换均完成,最后通过USB接口向PC发送采集到的数据。当MSP430收到的数据的第一个字节是0xFE,则设置adflag=0,不启动A/D转换。
PC机端的应用程序是VB.NET环境下开发,它主要完成对采集到的数据进行解封装、显示,控制整个数据采集系统的进行、停止、并设置相应的一些参数,以及最后的数据分析处理工作。上位机程序框图如图4所示。

图4 上位机程序框图