ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:18.91KB ,
资源ID:11156406      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11156406.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MSP430F14X基本程序 电子设计大赛 ADC12.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MSP430F14X基本程序 电子设计大赛 ADC12.docx

1、MSP430F14X基本程序 电子设计大赛 ADC121 概述 MSP430F14X的ADC12为SAR型12位AD,共有16路输入通道,其中8路独立的外部输入通道,2路接外部Vref+,Vref-,3路内部通道可分别测内部温度传感器、AVCC、和外部参考源。 P6口第二功能为AD输入端。MSP430F149的10、11分别接外部电压参考源正负极,7脚可将内部电压参考源输出。 ADC12共有18个中断源,公用一个中断向量ADC12_VECTOR。AD的参考源可选择内部电压参考源或外部电压参考源。内部电压参考源有1.5V,2.5V可选,使用时向ADC12CTL0写入REFON+ REF2_5V就

2、打开了2.5V。外部电压参考源由REF+接入。上电时若不设置参考源,则参考源为系统供电电压3.3V。2 使用方法概述2.1程序架构中断方式 1、设置 ADC12工作模式,启动转换,开全局中断,等待中断 2、写中断处理函数查询方式 设置ADC12工作模式,启动转换,查询中断标志ADC12IFG while (!(0x01 & ADC12IFG);转换完毕读取采样值,系统自动清除中断标志2.2 使用概述主要参数配置设置工作方式:singsequencere-singre-sequencd;设置转换时间:SHTX设置触发方式:ADC12SCMSCTimerA TimerB设置通道:外部通道内部Tem

3、perature sensor设置参考源:系统电压内部参考源外部参考源其他细节配置 一般要配置采样转换模式为脉冲(SHP),打开ADC12(ADC12ON),使能ADC12转换(ENC),使能中断(如果采取中断模式),触发转换(若采用ADC12SC触发)。解释ADC12模数转换是在SHI的上升沿初始化的。SHI信号有四个来源: The ADC12SC bit;The Timer_A Output Unit 1; The Timer_B Output Unit 0; The Timer_B Output Unit 1。故单次采样时只需要每次设置ADC12CTL0 |= ADC12SC就采样一次;

4、重复采样时,如Rep-sing,设置ADC12CTL1 = SHS_1 +CONSEQ_2就选择了Rep-sing模式,每次采样通过定时器A触发。3 相关寄存器1、ADC12CTL0SHT1x BitsSample-and-hold time. These bits define the number of ADC12CLK cycles inthe sampling period for registers ADC12MEM8 to ADC12MEM15.SHT0x BitsSample-and-hold time. These bits define the number of ADC12

5、CLK cycles inthe sampling period for registers ADC12MEM0 to ADC12MEM7.ADC12ON0 ADC12 off1 ADC12 onENCENC Bit 1 Enable conversion0 ADC12 disabled1 ADC12 enabledADC12SC Bit 0 Start conversion. Software-controlled sample-and-conversion start.ADC12SC and ENC may be set together with one instruction. ADC

6、12SC isreset automatically.0 No sample-and-conversion-start1 Start sample-and-conversionMSC Bit 7 Multiple sample and conversion. Valid only for sequence or repeated modes.0 The sampling timer requires a rising edge of the SHI signal to triggereach sample-and-conversion.1 The first rising edge of th

7、e SHI signal triggers the sampling timer, butfurther sample-and-conversions are performed automatically as soonas the prior conversion is completed.2、ADC12CTL1SHPSHP Bit 9 Sample-and-hold pulse-mode select. This bit selects the source of thesampling signal (SAMPCON) to be either the output of the sa

8、mpling timer orthe sample-input signal directly.0 SAMPCON signal is sourced from the sample-input signal.1 SAMPCON signal is sourced from the sampling timer.SHSx Bits11-10Sample-and-hold source select00 ADC12SC bit01 Timer_A.OUT110 Timer_B.OUT011 Timer_B.OUT1CONSEQx Bits2-1Conversion sequence mode s

9、elect00 Single-channel, single-conversion01 Sequence-of-channels10 Repeat-single-channel11 Repeat-sequence-of-channels3、ADC12IEADC12IEx Bits15-0Interrupt enable. These bits enable or disable the interrupt request for the ADC12IFGx bits.0 Interrupt disabled1 Interrupt enabled4、ADC12IFGADC12IFGx Bits1

10、5-0ADC12MEMx Interrupt flag. These bits are set when correspondingADC12MEMx is loaded with a conversion result. The ADC12IFGx bits arereset if the corresponding ADC12MEMx is accessed, or may be reset withsoftware.0 No interrupt pending1 Interrupt pending5、ADC12MCTLXSREFx Bits6-4Select reference000 V

11、R+ = AVCC and VR = AVSS001 VR+ = VREF+ and VR = AVSS010 VR+ = VeREF+ and VR = AVSS011 VR+ = VeREF+ and VR = AVSS100 VR+ = AVCC and VR = VREF/ VeREF101 VR+ = VREF+ and VR = VREF/ VeREF110 VR+ = VeREF+ and VR = VREF/ VeREF111 VR+ = VeREF+ and VR = VREF/ VeREFINCHx Bits3-0Input channel select0000 A0000

12、1 A10010 A20011 A30100 A40101 A50110 A60111 A71000 VeREF+1001 VREF/VeREF1010 Temperature sensor1011 (AVCC AVSS) / 21100 (AVCC AVSS) / 21101 (AVCC AVSS) / 21110 (AVCC AVSS) / 21111 (AVCC AVSS) / 2EOS Bit 7 End of sequence. Indicates the last conversion in a sequence.0 Not end of sequence1 End of sequ

13、ence4实例程序应用 ADC12内部模块演示程序之单通道多次采样/MSP430高级实验开发组件 - ADC12内部模块演示程序之单通道多次采样/时钟设置:/ACLK=N/A,MCLK=SMCLK=default(DCO800k)/当前演示程序功能描述:/利用MSP430F14X的AD0,进行单通道多次转换实验,P60悬空即可/通过断点在View-Watch中观察转换结果results多次/*/#include #define Num_of_Results 8static unsigned int resultsNum_of_Results; /保存转换结果void main(void) WD

14、TCTL = WDTPW+WDTHOLD; P6SEL |= BIT0; ADC12CTL0 = ADC12ON + SHT0_8 + MSC; ADC12CTL1 = SHP + CONSEQ_2; /采样定时器,单通道多次转换 ADC12IE = BIT0; ADC12CTL0 |= ENC; ADC12CTL0 |= ADC12SC; _BIS_SR(GIE);#pragma vector=ADC_VECTOR_interrupt void ADC12ISR(void) static unsigned int index = 0; resultsindex = ADC12MEM0; /保

15、存结果 index = (index+1)%Num_of_Results; /此处添加断点观察results ADC12内部模块演示程序之多通道单次采样/MSP430高级实验开发组件 - ADC12内部模块演示程序之多通道单次采样/时钟设置:/ACLK=N/A,MCLK=SMCLK=default(DCO800k)/当前演示程序功能描述:/利用MSP430F14X的AD0AD2,进行多通道单次转换实验,P60P62悬空即可/通过断点在View-Watch中观察转换结果A0_Results.A1_Results.A2_Results一次/*/#include unsigned int A0_Re

16、sults; /保存A0结果unsigned int A1_Results; /保存A1结果unsigned int A2_Results; /保存A2结果void main(void) WDTCTL = WDTPW + WDTHOLD; /关闭看门狗 P6SEL |= (BIT0 + BIT1 + BIT2); /端口的第二功能 ADC12CTL0 = ADC12ON + MSC + SHT0_8; /打开ADC12,设置采样时间 ADC12CTL1 = SHP + CONSEQ_1; /使用采样时钟,多通道单次采样 ADC12MCTL0 = INCH_0; /A0,ref+ = AVCC

17、ADC12MCTL1 = INCH_1; /A1,ref+ = AVCC ADC12MCTL2 = INCH_2 + EOS; /A1,ref+ = AVCC ADC12IE = BIT2; /允许P63中断 ADC12CTL0 |= ENC; /允许进行转换 ADC12CTL0 |= ADC12SC; /开始进行转换 _BIS_SR(GIE); /允许系统总中断#pragma vector=ADC_VECTOR_interrupt void ADC12ISR(void) A0_Results = ADC12MEM0; /保存A0转换结果 A1_Results = ADC12MEM1; /保存

18、A1转换结果 A2_Results = ADC12MEM2; /保存A2转换结果 _NOP(); /在此处添加断点观察数据 ADC12内部模块演示程序之多通道多次采样/MSP430高级实验开发组件 - ADC12内部模块演示程序之多通道多次采样/时钟设置:/ACLK=N/A,MCLK=SMCLK=default(DCO800k)/当前演示程序功能描述:/利用MSP430F14X的AD0AD2,进行多通道多次转换实验,P60P62悬空即可/通过断点在View-Watch中观察转换结果A0_Results.A1_Results.A2_Results多次/*/#include unsigned in

19、t A0_Results; /保存A0结果unsigned int A1_Results; /保存A1结果unsigned int A2_Results; /保存A2结果unsigned char counters = 0;void main(void) WDTCTL = WDTPW + WDTHOLD; /关闭看门狗 P6SEL |= (BIT0 + BIT1 + BIT2); /端口的第二功能 ADC12CTL0 = ADC12ON + MSC + SHT0_8; /打开ADC12,设置采样时间 ADC12CTL1 = SHP + CONSEQ_3; /使用采样时钟,多通道单次采样 ADC

20、12MCTL0 = INCH_0; /A0,ref+ = AVCC ADC12MCTL1 = INCH_1; /A1,ref+ = AVCC ADC12MCTL2 = INCH_2 + EOS; /A1,ref+ = AVCC ADC12IE = BIT2; /允许P63中断 ADC12CTL0 |= ENC; /允许进行转换 ADC12CTL0 |= ADC12SC; /开始进行转换 _BIS_SR(GIE); /允许系统总中断#pragma vector=ADC_VECTOR_interrupt void ADC12ISR(void) A0_Results = ADC12MEM0; /保存

21、A0转换结果 A1_Results = ADC12MEM1; /保存A1转换结果 A2_Results = ADC12MEM2; /保存A2转换结果 _NOP(); /在此处添加断点观察数据 ADC12内部模块演示程序之内部参考电压输入(单通道单次转换模式)/MSP430高级实验开发组件 - ADC12内部模块演示程序之内部参考电压输入(单通道单次转换模式)/时钟设置:/ACLK=N/A,MCLK=SMCLK=default(DCO800k)/当前演示程序功能描述:/利用MSP430F14X的AD6,采集通道6(P66)输入,以Veref+作为参考电压进行AD转换/Veref+通过外部引脚输入

22、(P10左边第二个引脚内侧),可以连接至AVCC间接使用之/通过断点在View-Watch中观察转换结果ADC12MEM0/*/#include void main(void) WDTCTL = WDTPW+WDTHOLD; /关闭看门狗 P6SEL |= BIT6; /端口的第二功能P66 ADC12CTL0 = ADC12ON + SHT0_2; /打开ADC12,设置采样定时期 ADC12CTL1 = SHP; /使用采样定时器 ADC12MCTL0 = SREF_2; /Vr+ = VeREF+,使用外部的参考电压输入 ADC12CTL0 |= ENC; /允许进行AD转换 while

23、 (1) ADC12CTL0 |= ADC12SC; /启动一次转换 while (ADC12IFG & BIT0)=0); /等待转换完成 _NOP(); /加入断点可用来观察ADC12MEM0的结果 ADC12内部模块演示程序之内部参考电压输入/MSP430高级实验开发组件 - ADC12内部模块演示程序之内部参考电压输入/时钟设置:/ACLK=N/A,MCLK=SMCLK=default(DCO800k)/当前演示程序功能描述:/利用MSP430F14X的AD6,采集通道6(P66)输入,以Vref+作为参考电压进行AD转换/软件设置Vref+为内部的2.5V参考电压发生器/通过断点在V

24、iew-Watch中观察转换结果ADC12MEM0/*/#include void main(void) WDTCTL = WDTPW + WDTHOLD; /关闭看门狗 P6SEL |= BIT6; /设置端口第二功能 ADC12CTL0 = ADC12ON + SHT0_2 + REFON + REF2_5V; /启动ADC12,使用内部参考电压,2.5V ADC12CTL1 = SHP; /使用采样定时器 ADC12MCTL0 = SREF_1; /Vr+ = Vref+ ADC12CTL0 |= ENC; /允许转换 while (1) ADC12CTL0 |= ADC12SC; /启

25、动转换 while(ADC12IFG&BIT0)=0); /等待转换完成 _NOP(); /加入断点可用来观察ADC12MEM0的结果 ADC12内部模块演示程序之内部温度传感器/MSP430高级实验开发组件 - ADC12内部模块演示程序之内部温度传感器/时钟设置:/ACLK = n/a, MCLK = SMCLK = default DCO 800kHz, ADC12CLK = ADC12OSC/当前演示程序功能描述:/利用MSP430F14X内部的温度传感器,通过ADC12的通道10进行AD转换/计算取得摄氏温度和华氏温度,通过断点在View-Watch中观察温度值/由于定标问题, 可能

26、会存在温度的误差/*/#include unsigned int long temp;unsigned int long TemperF; /华氏温度unsigned int long TemperC; /摄氏温度void main(void) WDTCTL = WDTPW + WDTHOLD; /关闭系统看门狗 ADC12CTL0 = SHT0_8 + REFON + ADC12ON; /内部1.5V参考电压,打开ADC12模块,设置采样保持定时器 ADC12CTL1 = SHP; /采使用采样定时器 ADC12MCTL0 = SREF_1 + INCH_10; /参考电压和通道选择 ADC

27、12IE = BIT0; /ADC12MEM0 ADC12CTL0 |= ENC; /允许转换 _BIS_SR(GIE); /开启系统中断 while(1) ADC12CTL0 |= ADC12SC; /开始采样并AD转换 /oF = (x/4096)*1500mV)-923mV)*1/1.97mV = x*761/4096 - 468 /IntDegF = (ADC12MEM0 - 2519)* 761/4096 TemperF = (temp - 2519) * 761; TemperF = TemperF / 4096; /简化的华氏温度转换公式 /oC = (x/4096)*1500m

28、V)-986mV)*1/3.55mV = x*423/4096 - 278 /IntDegC = (ADC12MEM0 - 2692)* 423/4096 TemperC = (temp - 2692) * 423; TemperC = TemperC / 4096; /简化的摄氏温度转换公式 _NOP(); /加入断点可用来观察IntDegF和IntDegC结果 #pragma vector=ADC_VECTOR_interrupt void ADC12ISR(void) temp = ADC12MEM0; /保存转换结果 ADC12内部模块演示程序之外部输入/*/MSP430高级实验开发组件 - ADC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1