MSP430 ADC10_第1页
MSP430 ADC10_第2页
MSP430 ADC10_第3页
MSP430 ADC10_第4页
MSP430 ADC10_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MSP430单片机拥有内置的ADC功能,在一些高级单片机系列上是ADC12,在低级单片机系列上是ADC10,两者的主要区别是分辨率的不同,我们的G2553内置的就是ADC10,所以Cloud就在这里和大家一起学习ADC10。  一、ADC10特性我们先来了解一下这个ADC10的特性,官方给出的:·高达200ksps的转换速率;·固定的10位转换;·具有采样保持功能,并可选采样周期;·可以通过软件代码或TimerA初始化转换;·可选的片内(1.5V或2.5V)或片外参考电压;·支持8个外部输入通道;·内部输

2、入通道支持温度检测,VCC和外部参考(+、);·可选的转换时钟源;·单通道单次/多次、序列通道单次/多次,共4种转换模式;·ADC内核和参考电压都可单独关闭;·具有一个支持自动存储转换结果的数据转换控制器(DTC);  二、ADC10结构OK,我们来引入ADC10的内部结构图来初步认识这个ADC10的内部结构。为了方便大家学习,Cloud将各部分用不同颜色区分开: 1、ADC10内核-SAR和采样保持电路:首先我们看到中间两块橙色的区域,右边五边形的是一个“10-bit SAR”,翻译过来就是一个10位精度的逐次逼

3、近比较型的ADC内核,也就是说,我们的ADC转换就是在这里完成的。那么它的信号来源是哪里呢?就是左边橙色矩形区域的“Sample and Hold”即采样保持电路,它将外部或者内部的模拟信号进行保持以实现ADC转换过程中的信号稳定。 2、ADC10信号通道和转换模式:我们的采样保持电路可以将左边选择器(红色梯形区域)内的信号进行保持。由于我们的SAR只有一个,要对里里外外这么多信号都进行AD转换就必须按顺序来,一个一个选择性地输入,这个选择器就是用来选择要输入的外部或者内部模拟信号。上面绿色矩形框控制着选择器选择哪个信号以及是否自动按序列选择。 3、AD

4、C10时钟和采样触发源:ADC10模块像TimerA模块一样也需要有时钟信号支持,有了时钟,SAR这个逐次逼近比较内核才能够运行(因为它是逐次的嘛),形象地说时钟就是SAR的动力。我们看到蓝色区域,这里可以选择ACLK、MCLK和SMCLK,另外还有一个ADC10OSC,这个时钟是ADC10模块自带的,频率在5MHz左右。和TimerA一样,这些时钟也可以通过分频器进行分频。SAR的动力有了,那么怎么样才能够开启这个SAR运动起来呢?这就是采样触发电路。看黄色区域,采样信号可以由ADC10SC位或TimerA的三个比较匹配器输出端来触发。而且通过ISSH我们可以设置是上边沿触发还是下边沿触发。

5、采样触发信号发出一次,ADC10就会立即从通道选择器中选择要采样的信号经过采样保持电路进入到SAR中进行AD转换。 4、ADC10参考源:AD转换,其本质就是对外部信号进行量化(就是在幅度上对信号进行编码),既然是量化,那么肯定要有参考的标准,这个标准由谁定?对了,就是由ADC10模块的参考源电路决定的。我们看SAR这个五边形的橙色框,上面有“VR-”和“VR+”两个输入端,这两个输入端就是SAR的参考源。其中,负端可以由SREF2来决定由AVSS(可认为GND)或者VREF-/VeREF-来输入得到。而正端可以由SREF0、SREF1来决定由内部或者外部参考电平输入得到。内部支持1

6、.5V或者2.5V,外部由外部引脚输入得到。ADC10同时支持将内部参考电平输出到外部,而且为了保持其低功耗的优势,还可以由REFBURST来降低平均电流。当输入信号等于或小于VR-时,AD结果输出为0;当输入信号等于或大于VR+时,AD结果为0x03FF(1023);输入信号在VR-和VR+之间,AD结果为以下公式:NADC = 1023 × (Vin - VR-) ÷ (VR+  VR-) 5、ADC转换值和DTC电路:我们已经从输入、时钟、触发、参考四个部分了

7、解了ADC10的转换电路,那么我们转换得到的值要如何输出呢?这里我们沿着SAR下面空心粗箭头看到一个棕红色框“ADC10MEM”,这个寄存器就是用来存放得到的AD值的。我们只要读取ADC10MEM的值就可以得到AD值了。为了实现低功耗设计,MSP430支持DTC功能,就是数据传输控制功能,它可以支持将ADC10MEM中的数据自动存放至RAM、Flash或者其他外设中而不用CPU干预。 6、温度传感器:MSP430内置了一个温度传感器(浅蓝色方框),可以通过设置输入通道为0x0A来选择输入温度模拟量。这样的设计让我们不用外部温度芯片就可以实现简单的温度检测,其AD值和温度的关系式为(A

8、10就是温度传感器通道的AD值):VTEMP = 0.00355 × TEMMPC + 0.986  (单位:V)从而推导得到:摄氏度:oC = (A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278华氏度:oF = (A10/1024)*1500mV)-923mV)*1/1.97mV = A10*761/1024 - 468

9、60; 三、ADC10相关寄存器首先让我们看一下有哪些寄存器和ADC10相关的:·1.ADC10AE:ADC10输入使能寄存器·2.ADC10CTL0:ADC10控制寄存器0·3.ADC10CTL1:ADC10控制寄存器1·4.ADC10MEM:ADC10存储器·5.ADC10DTC0:ADC10数据传输控制寄存器0·6.ADC10DTC1:ADC10数据传输控制寄存器1·7.ADC10SA:ADC10数据传输控制启动地址寄存器 下面让我们详细学习每个寄存器:1、ADC10AE:ADC10输入使能寄存器A

10、DC10AE  ADC10输入使能寄存器76543210ADC10AE7ADC10AE6ADC10AE5ADC10AE4ADC10AE3ADC10AE2ADC10AE1ADC10AE0·70-ADC10AEx:ADC10模拟输入控制使能位,用来控制外部模拟输入是否使能  0:禁止   1:使能 2、ADC10CTL0:ADC10控制寄存器0ADC10CTL0  ADC10控制寄存器015141312111098SREFxADC10SHTxADC10SRREFOUTREFBURST765

11、43210MSCREF2_5VREFONADC10ONADC10IEADC10IFGENCADC10SC·1513-SREF:参考电平选择,详细见下表SREFVR+VR-二进制十进制0000VCCVSS0011VREF+VSS0102VeREF+VSS0113VeREF+VSS1004VCCVREF-/VeREF-1015VREF+VREF-/VeREF-1106VeREF+VREF-/VeREF-1117VeREF+VREF-/VeREF-·1211-ADC10SHT:ADC10采样保持时间  00:4 x ADC10CLKs

12、60; 01:8 x ADC10CLKs  10:16 x ADC10CLKs  11:64 x ADC10CLKs·10-ADC10SR:ADC10采样速率,该位用于选择最大采样速率下的参考电平缓冲驱动能力。ADC10SR置1可以减少参考电平缓冲器的电流消耗  0:参考电平缓冲器支持最大速率到200ksps  1:参考电平缓冲器支持最大速率到50ksps·9-REFOUT:参考电平输出允许位,用来控制是否输出参考电平

13、0; 0:参考输出关闭   1:参考输出打开·8-REFBURST:参考电压输出控制位(REFOUT=1时有效)  0:参考电压持续对外输出  1:只有在采样转换期间参考电压持续对外输出·7-MSC:多次采样/转换控制位(只在序列或多次转换模式下有效)  0:每次采样与转换时,由SHI的上升沿触发  1:由SHI的第一个上升沿触发采样定时器,后面的采样与转换由前一次转换完成后立即执行。·6-REF2_5V:参考电压发生器的电压值选择位(REFON

14、=1时有效)  0:1.5V    1:2.5V·5-REFON:参考电压发生器控制位,控制是否打开内部参考电压  0:关闭内部参考电压发生器   1:打开内部参考电压发生器·4-ADC10ON:ADC10控制位,控制是否使用ADC10模块  0:关闭ADC10模块   1:打开ADC10模块·3-ADC10IE:ADC10中断允许控制位,控制是否允许ADC10中断  0:中断禁止

15、60; 1:中断允许·2-ADC10IFG:ADC10中断标志位,如果ADC10MEM已经装满转换结果,该位置1.当中断申请呗接受后,它自动复位,可以由软件复位。在使用DTC时,当完成一个数据块的传递时,该位置1  0:无中断产生   1:有中断产生·1-ENC:ADC10转换使能位,用来控制是否进行转换  0:ADC10禁止   1:ADC10使能·0-ADC10SC:软件可控的采样/转换控制位。ADC10SC和ENC必须用一条指令同时置1。ADC10S

16、C位可自动复位  0:无采样/转换开始  1:开始采样/转换 3、ADC10CTL1:ADC10控制寄存器1ADC10CTL1   ADC10控制寄存器115141312111098INCHxSHSxADC10DFISSH76543210ADC10DIVxADC10SSELxCONSEQxADC10BUSY·1512-INCH:输入通道选择,用来选择进行单次转换的通道或序列转换的最高通道,详细见下面的表格INCH通道 INCH通道二进制十进制二进制十进制00000A010008VeREF+000

17、11A110019VREF-/VeREF-00102A2101010温度传感器00113A3101111(VCC-VSS)/201004A4110012(VCC-VSS)/201015A5110113(VCC-VSS)/201106A6111014(VCC-VSS)/201117A7 111115(VCC-VSS)/2·1110-SHS:采样/保持输入信号源选择位  00:ADC10SC位  01:TimerA.OUT1  10:TimerA.OUT0  11:TimerA.OUT2·

18、9-ADC10DF:ADC10数据格式选择位  0:二进制格式(右对齐)  1:二的补码格式(左对齐)·8-ISSH:采样/保持输入信号反向控制位  0:采样输入信号不反向  1:采样输入信号反向·75-ADC10DIV:ADC10时钟分频选择位,分频系数=ADC10DIV+1·43-ADC10SSEL:ADC10时钟源选择位  00:ADC10OSC  01:ACLK  10:MCLK  11:SMCLK

19、·21-CONSEQ:转换模式选择位  00:单通道单次转换  01:序列通道单次转换  10:单通道多次转换  11:序列通道多次转换·0-ADC10BUSY:ADC10忙标志位,该位指示采样或转换正在进行  0:表明没有正在进行的转换  1:表明一个序列,采样或者转换正在进行 4、ADC10MEM:ADC10转换结果寄存器这是一个用来存放AD转换结果的16位的寄存器,它有两种存放方式(还记得前面ADC10DF这个东东么?),分别是:当ADC1

20、0DF=0时,ADC10MEM为右对齐,存放结构如下:ADC10MEM1514131211109876543210000000转换结果当ADC10DF=1时,ADC10MEM为左对齐,存放结构如下:ADC10MEM1514131211109876543210转换结果000000 5、ADC10DTC0:ADC10数据传递控制寄存器0ADC10DTC0   ADC10数据传递控制寄存器076543210保留未使用ADC10TBADC10CTADC10B1ADC10FETCH·3-ADC10TB:ADC10一块或两块数据模式选择 

21、0;0:一块数据传递模式   1:两块数据传递模式·2-ADC10CT:ADC10连续传递模式选择位  0:在一块或两块传递模式下,一块或两块都传递后,数据传递结束  1:继续数据传递,只有在ADC10CT清0或由数据写入到ADC10SA时,DTC停止·1-ADC10B1:ADC10转存块满标志。该位表明两块数据模式下数据块是否已经装入转换结果。ADC10B1只有当ADC10IFG位在DTC工作期间第一次被设置后才有效(ADCTB=1时有效)·0-ADC10FETCH:该位通常处于复位(ADC1

22、0FETCH=0)状态 6、ADC10DTC1:ADC10数据传递控制寄存器1ADC10DTC1   ADC10数据传递控制寄存器176543210DTC Transfers·70-DTC Transfers:这些位定义了每个数据块中传递的数量  0:DTC禁止    0x000xFF:每个数据块中传递的数量 7、ADC10SA:ADC10数据传递起始地址寄存器ADC10SA   ADC10数据传递起始地址寄存器1514131

23、2111098ADC10SAx76543210ADC10SAx0·151-ADC10SA:该寄存器的内容为DTC的起始地址,需要先对ADC10SA写入来初始化DTC传递。第0位未使用,只读,读结果为0  四、ADC10的采样和转换过程我们要学习ADC10,就必须要了解它是如何对一个模拟信号进行采样和转换的。我们结合下面这个采样/转换的时序图来详细介绍这个过程: 首先是我们的四个采样触发源(ADC10SC和3个TimerA OUT)产生了触发信号,也就是SHI信号产生了一个脉冲,此时采样开始,SAMPCON信号也同时置高。然后采样时钟进行一段时间

24、的计数,在计数时,SAMPCON保持高电平不变,在tsync+tsample时间后,采样完成,此时停止采样并进入到转换阶段。经过13个ADC10CLK时钟后,转换阶段也完成了。我们再回过头来看看SAMPCON信号在高电平状态下到底保持了多少时间,又是谁控制的呢?前面我们知道SHT可以选择采样周期,这个采样周期就是tsample,它可以是4、8、16或64个ADC10CLK个周期。选择的采样周期和ADC10CLK需要同步,这段时间就是上面的tsync,这段时间具体多少不用关心。为了采样的有效,我们在对模拟信号进行采样时,必须保证一定的采样时间也就是tsample。所以我们得学习一下最小采样时间的

25、计算。前面我们还讲了ADC10SR可以控制采样速率,这里我们就要用到它:ADC10SR=0时,此时为高速采样,最小采样时间为:tsample > (RS + RI) × ln(2048) × CI + 800nsADC10SR=0时,此时为低速采样,可以减小电流满足低功耗需求,最小采样时间为:tsample > (RS + RI) × ln(2048) × CI&#

26、160;+ 2500ns上面的式子多了很多R、C啥的,对了,这个最小采样时间是和我们的采样电路是有关系的。在SAMPCON=0时,所有的Ax输入为高阻态。当SAMPCON=1时,在采样时间tsample期间,别选择的Ax输入相当于一个RC低通滤波器如下图: VI=Ax引脚输入电压  VS=外部驱动源电压  RS=外部源内阻  RI=内部多路选择导通输入电阻  CI=输入电容  VC=电容充电电压由于内部电路决定RI最大为2K,CI最大是20pF,所以上面的式子就可以简化为:t

27、sample > (RS + 2K) × 7.625 × 20pF + 800ns    (ADC10SR = 0)tsample > (RS + 2K) × 7.625 × 20pF + 2500ns    (ADC10SR =

28、0;1)  四、ADC10的四种转换模式前面已经说过,ADC10有四种模式,是由CONSEQ来控制的 1、单通道单次模式该模式对由INCH选择的单通道进行一次采样和转换。ADC结果写入到ADC10MEM。当ADC10SC触发一次转换时,连续的转换也可以通过将ADC10SC置位来触发。当使用其他任何触发源来启动转换时,ENC必须在每次转换间隔离,在ENC复位并再次置位前的采样信号将被忽略。转换流程见下图: 我们可以看到,CONSEQx=00表示当前模式为单通道单次模式,在ADC10ON置位后,ADC10开启并进入到等待状态。当ENC产生上升沿时ADC10等

29、待触发并在SAMPCON产生上升沿后进入到采样环节。采样经过4、8、16或64个ADC10CLK周期后进入到转换环节,同样经过12个ADC10CLK周期后完成转换。经过1个ADC10CLK周期,AD结果存入ADC10MEM并且ADC10IFG中断标志位置位,然后ADC10等待下一次的转换使能。如果SHS=0也就是说触发源是ADC10SC,那么当ENC信号和ADC10SC信号都为高电平时同样进入到采样环节。另外,在AD转换的任意阶段,只要ENC清0,则立即回到等待状态。 2、序列通道单次转换模式:该模式对一个序列的通道进行一次采样和转换。序列通道将自动选择INCHx到A0作为当前通道。

30、每个ADC结果都存放到ADC10MEM。最后一个通道也就是A0转换完毕后序列转换就结束。当ADC10SC启动一次,连续的转换也可通过设置ADC10SC位来启动。当任何其他触发源用来启动转换时,ENC必需在每次序列转换间隔离,在ENC复位并再次置位前的采样信号将被忽略。转换流程见下图: 大家可以看到,CONSEQ=01表示为序列通道单次转换模式。这个流程图和第一张差别不大,我们结合第一张流程图的讲解来解释这个流程图。首先我们看到中间主干的流程通路和第一张是一样的,这里就不再赘述了。我们看到左边和右边分别多了一条返回线。左边那条是从转换完成直接返回到采样输入通道的,右边那条是从转换完成返

31、回到触发等待状态的,他们的区别是左边MSC=1也就是自动连续触发,右边MSC=0不自动连续触发所以每次需要等待SAMPCON信号为高才触发下一次采样。然后x也就是当前要转换的通道自减1,直到x=0时转换完A0这个最后通道然后等待ADC10的使能。 3、单通道多次转换模式:该模式对由INCHx选定的通道进行连续采样和转换。每次ADC转换结果都存放到ADC10MEM中。转换流程见下图: CONSEQ=10表示为单通道多次转换模式。中间部分还是一样的,只是两边的返回线现在和MSC有关。左边这条线MSC=1那么就会在上一次转换完成后自动进入下一次的采样环节。右边这条线MSC=0那么

32、当上一次转换完成后会自动进入触发等待状态,只有SAMPCON信号变高才进行下一次的采样。最右边的一条线说明如果ENC清0,那么ADC10将重新等待使能。 4、序列通道多次转换模式:该模式对序列通道进行重复采样和转换。序列通道为从INCHx选择的通道到A0。每次ADC结果都存放到ADC10MEM。通道A0转换完成后序列转换结束,下一个启动信号重新启动序列转换。转换流程见下图: CONSEQ=11表示序列通道多次转换模式。这个流程图显然是“单通道多次”和“序列通道单次”的结合体,所以就不再赘述,相信大家肯定可以自行理解这个转换过程。如果理解不了,那么说明前面三个转换模式没有深入

33、理解,大家可以回过头复习一下前面的三个转换模式。  五、ADC10的数据传递控制器DTC前面概述的时候就讲到MSP430的ADC10包含一个数据传递控制器(DTC),它可以自动地将转换结果从ADC10MEM传递到其他片内存储单元。设置ADC10DTC1寄存器为一个非0值就可以使能DTC。另外,MSP430x20x2系列芯片中是没有DTC的。当DTC使能时,每次ADC10完成转换和将转换结果装载到ADC10MEM后,数据传递启动。无需软件干预来惯例ADC10,直到预先定义的转换数据量被传递。每次DTC传递需要一个MCLK周期。为了避免DTC传递过程中和其他总线竞争(竞争是数电

34、用语),CPU暂停。如果CPU活动,需要一个MCLK周期时间来传递。当ADC10忙的时候,DTC不能启动。也就是说当设置DTC时,程序必须保证当前没有正在进行的转换或序列转换。1、一块数据传递模式:ADC10TB=0时选择一块数据传递模式。ADC10DTC1寄存器中的n值定义了一个数据块传递的总长度。可以利用ADC10SA寄存器在MSP430任何地址范围内定义数据块的起始地址。数据块结束地址为ADC10SA+2n-2。其存储结构式见下图: 内部地址指针最初为ADC10SA,内部传递计数器=n。内部指针和计数器在程序中是已知的。DTC传递ADC10MEM中的数据到由ADC10SA这个指

35、针所指的字地址中(注意是字地址,2个字节)。每次传递后,内部地址指针自增2,内部传递计数器自减1。随着ADC10MEM的每次装载,数据继续传递,知道内部传递计数器=0。其他的DTC数据传递不再继续进行,直到对ADC10SA再写。在一块数据传递模式下使用DTC时,一个完整的数据块传递完成后,ADC10IFG标志自动置1。下图描述了这个过程:  2、两块数据传递模式:ADC10TB=1时选择两块数据传递模式。ADC10DTC1中的n值定义了一个数据块传递的长度。此时,ADC10SA在MSP430任何地址范围内定义的是第一个数据块的地址,第一个数据块的结束地址为ADC10SA+2

36、n-2。另外还有第二个数据块的地址范围为ADC10SA+2n到ADC10SA+4n-2。其存储结构式见下图: 内部地址指针初始=ADC10SA,内部传递计数器=n。内部指针和计数器在程序中是已知的。DTC传递ADC10MEM中的数据到由ADC10SA地址指针所指的字地址中。每次传递后,内部地址指针自增2,内部传递计数器自减1。随着ADC10MEM的每次装载,数据继续传递,知道内部传递计数器=0。此时数据块1已经装满,ADC10IFG和ADC10B1位都将置1。我们也可以通过读取ADC10B1来判断数据块1是否已经装满。DTC继续传递数据块2。内部传递计数器自动重新装载n。在下次装载A

37、DC10MEM时,DTC开始传递转换结果到数据块2中。当完成n次传递后,数据块2也装满了。ADC10IFG标志又将置1,而ADC10B1位将清0。我们也可以通过读取ADC10B1是否清0来判断数据块2是否装满。下图描述了这个过程: 3、连续传递:当ADC10CT=1时,DTC将支持连续传递。当数据块1(一块数据传递模式)或数据块2(两块数据传递模式)完成传递后,DTC并不停止。内部地址指针和数据传递计数器将会重新装载ADC10SA和n的值。如果ADC10CT被清0,则在数据块1(一块数据传递模式)或数据块2(两块数据传递模式)完成传递后(换句话说就是此次传递任务结束后),DTC传递停

38、止。  七、ADC10中断和定时器一样,ADC10也有中断请求的能力。如果不使用DTC(ADC10DTC1=0),当转换结果装载到ADC10MEM时,ADC10中断标志位即ADC10IFG置1。如果使用DTC(ADC10DTC>0),那么当一个数据块传递完成和内部传递计数器n=0时,ADC10IFG置1。如果ADC10IE和GIE都为1,那么一旦ADC10IFG置1,ADC10就会产生一个中断申请。当中断申请被响应后,ADC10IFG标志自动复位。当然ADC10IFG也可由软件复位。大家可以结合下面的逻辑结构来学习这一过程: 上图和前面很多中断触发电路一样,

39、中间是一个D型触发器,这个D型触发器在ADC10CLK时钟为高电平状态时将D端信号传递到Q端,在ADC10CLK时钟信号为低电平状态时保持Q端电平状态不变,Reset复位端一旦置高就会将Q端清0。  八、ADC10编程实例终于到了实例环节了,由于我们要获取模拟信号的AD值来看看AD转换到底对不对所以必须要知道得到的AD值。一种办法是利用IAR或者其他调试软件进行调试,查看内部ADC10MEM的值,还有一种办法是利用硬件显示出AD数据,比如液晶、数码管等等。这里我们将对这两种方法分别作介绍,锻炼大家硬件调试的能力。 1、采样温度AD值并用IAR调试查看:我们要对温度

40、进行采样,所以我们的通道参数INCH要设置为10。ADC10时钟源我们就选默认的ADC10OSC好了,不分频。触发源我们选择ADC10SC信号,保持16个ADC10CLK周期。然后我们使用单通道多次的连续转换模式即CONSEQ=2且MSC=1。参考源我们设置为内部2.5V的参考电平,没有其他用途我们就不设置内部参考电平输出了。同时我们还开启一下ADC10的中断允许。我们这里不需要DTC就不对DTC进行设置了。好的,经过上面的分析,我们可以得到以下代码:#include "io430.h"unsigned short tadc=0;void

41、60;main( void )  WDTCTL = WDTPW + WDTHOLD;  BCSCTL1 = CALBC1_16MHZ;  DCOCTL = CALDCO_16MHZ;  ADC10CTL0 = SREF_1 + ADC10SHT_2 + REF2_5V + MSC + REFON + 

42、;ADC10ON + ADC10IE + ENC + ADC10SC;  ADC10CTL1 = INCH_10 + SHS_0 + ADC10SSEL_0 + CONSEQ_2;    _enable_interrupt();   /开启总中断    while(1)    /ADC10

43、中断服务函数#pragma vector=ADC10_VECTOR_interrupt void ADC10_ISR (void)  tadc = ADC10MEM;OK,我们现在开始调试这段代码。我们在ADC10中断服务函数中按F9下一个断点:然后我们按Ctrl+D进入调试:然后我们按F5全速执行,此时程序运行到断点处自动停下:然后我们将tadc或ADC10MEM添加到监视器中,我们看到Watch1中的内容:然后我们再按F10单步运行一步,发现tadc内容发生了变化:我们可以不断地按F5全速执行,在断点处单步执行

44、查看tadc更新的值。 2、采样温度AD值并用nokia5110液晶显示上个例子我们直接使用IAR调试来查看我们的AD值的,这个例子里我们使用nokia5110这个液晶模块来显示我们的AD值。由于要用到nokia5110,这里Cloud使用了自己移植的库函数,有兴趣的同学可以自己学习5110的相关知识并连接硬件。我们这个实例的重点并不在5110上,所以我们只要知道里面的两条函数的含义就可以了:LCD5110_init(void);   /5110液晶初始化函数,5110液晶上电后必须执行初始化LCD5110_write_english_string(x,

45、y,str);  /5110液晶字符串显示函数,可在给定起始坐标上显示英文或阿拉伯数字字符串OK,我们同样来分析一下程序的结构。大致结构和前面的例子是类似的,只不过我们现在将AD值变成了字符串而已,这个函数相信大家应该都能独立写出,类似于这样:unsigned char showstr5="0000"unsigned short tadc=0;showstr0=tadc%10000/1000+'0'showstr1=tadc%1000/100+'0'showstr2=tadc%100

46、/10+'0'showstr3=tadc%10+'0'LCD5110_write_english_string(0,0,showstr);很简单吧。这里Cloud就不给出具体的工程代码了,因为我们学习写程序,主要学习的是一种编程的思想和解决问题的方法,让大家通过上面的编程思路自行写出可以使用的代码才是培养编程能力的最好方式好吧,扯多了 3、使用TimerA来触发ADC10进行转换我们前面说过,ADC10转换的采样触发源可以是ADC10SC信号也可以是TimerA的某个输出口。这个例子中我们就用TimerA的CCR1的OUT端来触发ADC10进行转换。我们还是讲解一下编程的重点,首先我们要将ADC10SSEL设置为1来选择TimerA.OUT1,然后我们还要对TimerA进行设置,这里就要用到我们前面讲得TimerA的相关知识了,包括时钟源选择、分频系数、计数模式以及输出模式 4、使用外部引脚输入模拟信号进行AD转换MSP430的ADC10肯定是支持外部输入引脚的模拟信号输入的,我们通过前面的学习可以知道当INCH在0到7的范围内就选择了A0到A7这8个外部信号通道。那么这8个引脚到底在哪里呢?我们参看相关数据手册发现这A0到A7分别对应着IO口P1.0到P1.7。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论