Msp430 ADC编程详解:从初始化到转换

需积分: 27 15 下载量 98 浏览量 更新于2023-03-03 收藏 103KB DOC 举报
"本文档介绍了msp430微控制器中ADC(模数转换器)编程的基本流程,主要涉及ADC12CTL0、ADC12CTL1和ADC12MCTL等关键寄存器的配置,以及中断使能和中断标志的设置。" 在msp430微控制器中,ADC的编程主要包括以下几个步骤: 1. **初始化**: 初始化ADC的关键在于设置ADC12CTL0寄存器。首先,通过`ADC12CTL0 &= ~ADC12ENC;`关闭ADC转换允许,确保在配置其他寄存器时不会发生意外的转换。然后,通过设置`ADC12CTL0 = ADC12MSC + ADC12SHT0_15 + ADC12SHT1_15;`启用外部3.3V参考电压,并设定采样保持时间为15个ADC12CLK周期。 2. **配置采样保持时间**: `SHT1`和`SHT0`位用于设定采样保持定时器的值,本例中设置为15,意味着采样和保持时间较长,以确保数据的稳定。 3. **多次采样转换**: `MSC`位(多次采样转换)被设置为1,这样在连续或重复转换模式下,只需一个触发信号,之后的转换将在上一次转换完成后自动开始。 4. **启动ADC转换**: `ADC12SC`位在ADC12CTL0寄存器中用于启动ADC转换。当该位被置1时,ADC转换开始。 5. **选择转换启动方式**: 在ADC12CTL1寄存器中,可以配置启动ADC转换的方式,如选择时钟源(`ADC12SSEL`)、转换序列(`CONSEQ`)和分频器(`ADC12DIV`)。 6. **设置转换存储控制**: ADC12MCTL寄存器用于指定输入通道(`INCH`)和参考电压(`REFIN`),EOSS位可能用于选择端口模拟输入或数字输入。 7. **中断使能**: ADC12IE寄存器用于设置ADC转换的中断使能。例如,`ADC12IE.15`可能用于使能ADC12溢出中断,而`ADC12IFG`寄存器则用于标志中断事件的发生。 8. **中断处理**: 当ADC转换完成或出现中断条件时,需要编写中断服务程序来处理转换结果和清除中断标志。 以上就是msp430 ADC编程的基本流程,它涉及到寄存器的精确配置,以满足特定的转换需求,包括采样率、参考电压、输入通道选择和中断管理。理解这些步骤对于正确地使用msp430的ADC功能至关重要。