STM8教程实验11ADC模数转换_第1页
STM8教程实验11ADC模数转换_第2页
STM8教程实验11ADC模数转换_第3页
STM8教程实验11ADC模数转换_第4页
STM8教程实验11ADC模数转换_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、 #/5 /5例程十一ADC及其应用在计算机过程控制的数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,如温度,压力,流量和速度等。这里所指的连续变化即数值是随着时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理的都是数字量。这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号。能够把模拟量变成数字量的器件称之为模数转换器。STM8S207ADC模块概述STM8S207系列高性能产品包括了一个10位连续渐进式模数转换器ADC2,(注意STM8S2XX都没有ADC1)提供了多达16个多功能的输入通道。主要性能有:转换时间为14个时钟

2、周期(带有参考电压引脚(可设置为单次或联系的转换模式(可设置转换结束产生中断。ATD模块接口组成和特点STM8S207单片机内置的ADC模块如下图所示:EOCIne&rTLjptGPUANALOGtoDIGITALFrsscaterADC碍MASTERCONVERTERADCJETRUInternalTRQOtriggerIbojtiTIM1GPIOPortsDATAREGISTERANALOGMUXLCH2:0ChantKi-CWT曲gia心inrtinuw寧ADONPowerwfS他rtconerson12.73./4EAIN15AADC模块可以通过ADC_CR1寄存器来开启或者关闭。然后

3、ADC的时钟是有f_master时钟经过预分频后提供的。STM8S207高达16个输入通道,支持多种转换模式ADC模块寄存器设置STM8S207的ADC模块共有8个寄存器。分为4个设置寄存器,2个数据寄存 /5 #/5器和2个施密特触发禁止寄存器。 #/5 #/5 #/5 #/515.3.1ADC控制/状态寄存器ADC_CSR #/5 #/5 #/5 /5OC:转换结束。此位在AD0:转换未结束转换结束后由硬件置位。由软件写“”来清零1.转换结束AWD:因为STM8S207没有ADC1,所以此位无效XTEOCIE:转换结束EOC的中断使能0:禁止转换结束中断1:使能转换结束中断AWDIE:在S

4、TM8S207中无效位CH:选择转换通道,分别选择0到15共16个通道15.3.2ADC配置寄存器1ADC_CR1SPSEL:预分频选择位000:匚孤=If001:fadcmaster二fmasterSP5EL2:0010:011:100:101110111f_adcf_adcf_adcf_adcf_adcf_adcf_master/4f_master/6f_master/8f_master/10f_master/12f_master/18CONT:连续转换0:单次转换模式1:连续转换模式ADON:AD转换开关0:禁止ADC转换,进入低功耗模式1:使能ADC并开始转换 #/5 #/5 #/5需

5、要注意的是:如果此位是0时,并且写1到此位,那么将把ADC从低功耗模式下唤醒。如果此位是1,并且写1到此位,那么将启动AD转换。一旦ADC上电,所选通道的IO输出功能就被禁用了。ADC配置寄存器2ADC_CR2 #/5 #/5EXTTEI5EXSEL;1:OXTTRIG:外触发使能位0:禁止外部触发转换1:使能外部触发转换主要:为了避免错误的触发事件,使用BSET指令来设置EXTTRIG位,不用改变其它位EXTSEL:外部事件选择位00:内部定时器1TRG事件01:ADC_ETR引脚的外部中断10:保留11:保留ALIGN:数据排列0:数据左对齐。高8位在ADC_DRH,其余的在低位字节1:数

6、据右对齐。低8位在ADC_DRL,其余的在高位字节SCAN:STM8S207无效ADC配置寄存器3ADC_CR3SM8S207此寄曇无效OVRADC数据寄存器ADC_DRH、ADC_DRL根据ADC_CR2中的ALIGN设置数据对齐方式T,ADC_DRH和ADC_DRL存放这转换结果。ADC施密特触发器禁止寄存器ADC_TDRH、ADC_TDRL这些位由软件设置。当TDx为1时,禁止施密特触发功能,降低IO的静态功耗;为0时开启施密特触发器。 /515.4ADC模块基础应用实例本节通过一个简单示例,让读者掌握ADC模块的使用和编程方法。本实例硬件连接入下图所示,在STM8S207实验板中ADC

7、的外部输入可以使光敏电阻或者热敏电阻,通过实物图的短路冒可以自行选择。本节ADC内容只是简单说明ADC的编程实例,通过ADC的转换,通过串口把相应的AD值显示出来,实验中使用的AD接口是PFO,也就是AIN10 #/5 #/5VCC3.3 #/5下面看看怎样初始话AD模块,还是从圭函数看起intmain(void)Infiniteloop*/设置內部时钟1剛为主时钟rCLK_HSIPrescalerConfig(CLK_PRESCALE!/*1SetHighspeedinternalclock7当大家看到Lt-TTn-i1-fl:#ifCONVERSIONMODE=COb就知道,在这个例程吓设

8、置的2中专换模式,有单次转换和和连续转换模式,单次转换模式就是转换一次就不转了,就停在那里了,在这个例程中为了调试方便我才设置为了单次转换模式,在实际应用中一般都是连续转换模式,在连续转换模式要开一个定时器去读取AD值回来,一般的实际应用都是这样。如果大家想用连续转换模式的话,很简单,在我的例程中,只要该下宏定义就行。defineCONVERSIONMODECOJVERSIONMODE_S1#defineCONVERSIONMODEC( #/5说了那么多了,还是看看AD的初始化是怎样的。voidADC_Init(void)ADC2_DeInit();CONVERSIONMODE=CONVERSIONMODES/Singleconversionmode*/i1士士xiirT!lT1IIdri1SelifCONVERSIONMCDE=CONVERSIONMODE_/大大CContinuousconversionmodeF/*Analogchannel10女/*PrescalerselectionfADC2=fc/*ConversionfromInternalTIMT/*DISABLEADC2_ExtTriggerState*/里面已经注释得很清楚了。当大家把该例程下载进去,打开串口助手,调好波特率-BaudRate=115200baud-

温馨提示

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

评论

0/150

提交评论