《物联网系统设计与应用开发》课件3-5 任务5 ADC_第1页
《物联网系统设计与应用开发》课件3-5 任务5 ADC_第2页
《物联网系统设计与应用开发》课件3-5 任务5 ADC_第3页
《物联网系统设计与应用开发》课件3-5 任务5 ADC_第4页
《物联网系统设计与应用开发》课件3-5 任务5 ADC_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

ADC介绍01任务:片内温度值读取03目录相关寄存器021、ADC介绍什么是ADC?模拟/数字转换通常简写为ADC,是将输入的模拟信号转换为数字信号,各种被测控的物理量(如:速度、压力、温度、光照强度、磁场等)是一些连续变化的物理量,传感器将这些物理量转换成与之相对应的电压和电流就是模拟信号。单片机系统只能接收数字信号,要处理这些信号就必须把他们转换成数字信号。模拟/数字转换是数字测控系统中必须的信号转换。对于CC2530的ADC模块,端口P0引脚可以配置为ADC输入端,依次为AIN0~AIN71、ADC介绍CC2530的ADC工作流程?3、设置该端口模拟IO口使用APCFG|=0x01;1、设置该端口为外设IO口P0SEL|=0x01以P0.0口为ADC口为例2、设置该端口为输入IO口P0DIR&=~0x014、清ADC中断标志ADCIF=0;5、设置参考电压ADCCON3|=0x80(采用AVDD5引脚,即3.3V)7、设置工作通道并启动ADCCON3|=0x00(采用0通道启动,共16个通道)6、设置抽取率ADCCON3|=0x10(采用9位采样)8、等待转换完成while(!ADCIF)9、保存数据signedshortvalue; value=ADCL>>2; value|=((int)ADCH<<6);启动方式可以设置为手动启动,当ADCCON1|=0x30时,为手动启动转换,当ADCCON1|=0x40时启动提取14位ADC数据,ADC低6位=ADCL高6位,ADC高8位=ADCH8位2、相关寄存器ADC有三种控制寄存器:ADCCON1,ADCCON2和ADCCON3。这些寄存器用于配置ADC,以及读取ADC转换的状态。ADCCON1:设置ADC转换的状态

(启动方式、开始、停止转换)ADCCON2:设置转换序列的执行方式

(通道号码、参考电压和抽取率)ADCCON3:设置单个转换的执行方式

(通道号码、参考电压和抽取率)2、相关寄存器ADCCON1-ADC控制寄存器位名称复位R/W描述7E0C0R/H0转换结束。当ADCH被读取的时候清除。如果已读取前一数据之前,完成一个新的转换,EOC位仍然为高。0:转换没有完成

1:转换完成6ST0开始转换。读为1,直到转换完成。0:没有转换正在进行1:如果ADCCON1.STSEL=11并且没有序列正在运行就启动一个转换序列。5:4STSEL[1:0]11R/W1控制16位随机数发生器。当写01时,当操作完成时设置将自动返回到00。00:正常运行。(13X型展开)01:LFSR的时钟一次(没有展开).10:保留11:停止。关闭随机数发生器3:2RCTRL[1:0]00R/W控制16位随机数发生器。当写01时,当操作完成时设置将自动返回到00。00:正常运行。(13X型展开)01:LFSR的时钟一次(没有展开).10:保留11:停止。关闭随机数发生器1:0-11R/W保留。一直设为11。2、相关寄存器ADCCON2-ADC控制寄存器位名称复位R/W描述7:6SREF[1:0]00R/W选择用于序列转换的参考电压00:内部参考电压01:AIN7引脚上的外部参考电压10:AVDD5引脚11:AIN6-AIN7差分输入外部参考电压5:4SDIV[1:0]01R/W设置转换序列通道的抽取率。抽取率也决定完成转换需要的时间和分辨率。00:64抽取率(7位ENOB)01:128抽取率(9位ENOB)10:256抽取率(10位ENOB)11:512抽取率(12位ENOB)3:0SCH[3:0]0000R/W序列通道选择。当读取的时候,这些位将代表有转换进行的通道号码。0000:AIN00001:AIN10010:AIN20011:AIN30100:AIN40101:AIN50110:AIN60111:AIN71000:AIN0-AIN11001:AIN2-AIN31010:AIN4-AIN51011:AIN6-AIN71100:GND1110:温度传感器1111:VDD/32、相关寄存器ADCCON3-ADC控制寄存器位名称复位R/W描述7:6SREF[1:0]00R/W选择用于单通道转换的参考电压00:内部参考电压01:AIN7引脚上的外部参考电压10:AVDD5引脚11:AIN6-AIN7差分输入外部参考电压5:4SDIV[1:0]01R/W设置单通道ADC转换抽取率。抽取率也决定完成转换需要的时间和分辨率。00:64抽取率(7位ENOB)01:128抽取率(9位ENOB)10:256抽取率(10位ENOB)11:512抽取率(12位ENOB)3:0SCH[3:0]0000R/W单个通道选择。选择写ADCCON3触发的单个转换所在的通道号码。当单个转换完成,该为自动清除0000:AIN00001:AIN10010:AIN20011:AIN30100:AIN40101:AIN50110:AIN60111:AIN71000:AIN0-AIN11001:AIN2-AIN31010:AIN4-AIN51011:AIN6-AIN71100:GND1110:温度传感器1111:VDD/32、相关寄存器APCFG

模拟I/O配置寄存器位名称复位R/W描述7:0APCFG[7:0]0x00R/W模拟外设I/O配置。APCFG[7:0]选择P0.7~P0.0作为模拟I/O0:模拟I/O禁用1:模拟I/O使用2、相关寄存器ADCL(0xBA)

ADC数据低位寄存器位名称复位R/W描述7:2ADC[5:0]000000RADC转换结果的低位部分1:0-00R0没有使用。读出来一直是0ADCH(0xBB)

ADC数据高位寄存器位名称复位R/W描述7:0ADC[13:6]0x0000RADC转换结果的高位部分任务:片内温度值读取任务要求:本任务是使用ADC实现片内温度传感器值的读取,然后通过串口发送到PC并显示出来。程序流程如图所示。任务流程图主函数:首先初始化串口和温湿度传感器,然后获取芯片温度值,将温度值发送到串口。程序分析/*main函数*/voidmain(void){chari;floatAvgTemp;charstrTemp[6];

InitUART();//初始化串口

InitSensor();//初始化ADC

while(1){AvgTemp=GetTemperature();

for(i=0;i<63;i++){AvgTemp+=GetTemperature();AvgTemp=AvgTemp/2;//每次累加后除2}

memset(strTemp,0,6);sprintf(strTemp,"%.02f",AvgTemp);//将浮点数转成字符串

UartSendString(strTemp,5);//通过串口发给电脑显示芯片温度

DelayMS(1000);//延时

}}温湿度传感器初始化函数:程序分析*/温度传感器初始化函数*/voidInitSensor(void){DISABLE_ALL_INTERRUPTS();//关闭所有中断

InitClock();//设置系统主时钟为32MTR0=0x01;//设置为1来连接温度传感器到SOC_ADCATEST=0x01;//使能温度传感}获取温度值函数代码如下:程序分析/*得到实际温度值*/floatGetTemperature(void){uintvalue;

ADCCON3=(0x3E);//选择1.25V为参考电压;14位分辨率;对片内温度传感器采样

ADCCON1|=0x30;//选择ADC的启动模式为手动

ADCCON1|=0x40;//启动AD转化

while(!(ADCCON1&0x80));//等待AD转换完成

value=ADCL>>4;//ADCL寄存器低2位无效,由于只有12位有效,故ADCL寄存器低4位无效。

value|=(((uint)ADCH)<<4);return(value-1367.5)/4.5-5;//根据AD值,计算出实际的温度}开发步骤(1)正确连接CC2530开发板与仿真器,将工程编译、下载至CC2530开发板中。(2)下载完后可以单击“Debug→Go”全速运行,也可以将CC2530重新上电或者按下复位按钮让刚才下载的程序重新运行。(3)打开串口调试助手,设置波特率为115200。开发步骤(4)程序运行后,串口助手软件中每秒会输出一条检测到的温度数据,用手摸CC2530温度会有明显变化。感谢观看THANKYOUPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcont

温馨提示

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

评论

0/150

提交评论