- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
合肥工业大学DSP及MSP430实验室;第六章 MSP430单片机的输入输出模块;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.1 通用IO端口;6.2 模数转换模块(ADC12);6.2 模数转换模块(ADC12);6.2 模数转换模块(ADC12);6.2 模数转换模块(ADC12);6.2 模数转换模块(ADC12);6.2 模数转换模块(ADC12);6.2 模数转换模块(ADC12);6.2 模数转换模块(ADC12);6.2 模数转换模块(ADC12);【例6.2.1】 单通道单次转换举例。
分析:本实例采用单通道单次转换模式,参考电压对选择:VR+=AVCC、VR-=AVSS,ADC12采样参考时钟源选择内部默认参考时钟ADC12OSC。在主函数中,ADC12在采样转换的过程中,MSP430单片机进入低功耗模式以降低功耗,当采样转换完成,会自动进入ADC12中断服务程序,唤醒CPU并读取采样转换结果。最终实现当输入模拟电压信号大于0.5倍AVCC时,使P1.0引脚输出高电平;否则,使P1.0引脚输出低电平。下面给出实例程序: ;#pragma vector = ADC12_VECTOR
_ _interrupt void ADC12_ISR(void)
{
switch(_ _even_in_range(ADC12IV,34))
{
case 0: break; // Vector 0: 无中断
case 2: break; // Vector 2: ADC溢出中断
case 4: break; // Vector 4: ADC转换时间溢出中断
case 6: // Vector 6: ADC12IFG0
if (ADC12MEM0 = 0x7ff) // ADC12MEM = A0 0.5AVcc?
P1OUT |= BIT0; // P1.0 = 1
else
P1OUT = ~BIT0; // P1.0 = 0
_ _bic_SR_register_on_exit(LPM0_bits); // 退出低功耗模式0
case 8: break; // Vector 8: ADC12IFG1
……
case 34: break; // Vector 34: ADC12IFG14
default: break;
}
};(2)序列通道单次转换模式
该模式对序列通道做单次转换。ADC12转换结果将顺序写入由CSTARTADDx位定义的以ADCMEMx开始的转换存储器中。当由ADC12MCTLx寄存器中ADC12EOS位定义的最后一个通道转换完成之后,整个序列通道转换完成。序列通道单次转换的流程图如图6.2.7所示。当使用ADC12SC位启动转换时,下一次转换可以通过简单地设置ADC12SC位来启动。当有其他任何触发源用于开始转换,ADC12ENC位必须在等待触发信号前置位(上升沿)。其他的采样输入信号将在ADC12ENC复位并置位之前被忽略。;【例6.2.2】 序列通道单次转换举例。
分析:本实例采用序列通道单次转换模式,选择的采样序列通道为A0、A1、A2和A3。每个通道都选择AVCC和AVSS作为参考电压,采样结果被顺序存储在ADC12MEM0、ADC12MEM1、ADC12MEM2和ADC12MEM3中,本实例程序最终将采样结果存储在results[]数组中。下面给出实例程序代码:;#pragma vector=ADC12_VECTOR
_ _interrupt void ADC12ISR (void)
{
switch(_ _even_in_range(ADC12IV,34))
{
case 0: break; // Vector 0: 无中断
case 2: break;
文档评论(0)