电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPTX文档下载
分享到微信 分享到微博 分享到QQ空间

无线温度检测

  • 资源ID:88050506       资源大小:168.02KB        全文页数:37页
  • 资源格式: PPTX        下载积分:25金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要25金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

无线温度检测

ZigBee网络原理与应用,李曙英 2015. 2.28,无线温度检测,实例:协调器建立网络,终端节点加入网络,终端节点周期性的采集温度数据并发送给协调器,协调器将收到的温度值用串口送PC机显示 与上个实例的区别?,- 3 -,ADC,CC2530的ADC支持多达14位的模拟数字转换,具有多达12位的有效数字位。 它包括一个模拟多路转换器,具有多达8个各自可配置的通道,一个参考电压发生器。转换结果通过DMA写入存储器。,ADC特征 ADC输入 ADC转换,- 4 -,ADC特征,可选的抽取率,设置了712位的分辨率。 8个独立的输入通道,可接收单端或差分信号。 参考电压可选为内部单端、外部单端、外部差分或AVDD5。 产生中断请求。 转换结束时的DMA触发。 温度传感器输入。 电池测量功能。,- 5 -,ADC输入,ADC的输入是通过端口0来实现的。输入引脚AIN0-AIN7是连接到ADC的。ADC输入有两种配置:单端输入和差分输入,单端电压输入AIN0到AIN7以通道号码0到7表示。 通道号码8到11表示差分输入,由AIN0-1、AIN2-3、AIN4-5和AIN6-7组成。 通道号码12到15分别表示GND、温度传感器和AVDD5/3。 以上输入方式在寄存器ADCCON2和寄存器ADCCON3中详细配置。,- 6 -,ADC输入,ADCCON2寄存器-定义ADC的序列转换,- 7 -,ADC输入,ADCCON3寄存器-定义ADC单个值转换,/单次转换,参考电压为电源电压,对P0.7进行采样 12位分辨率 ADCCON3=0xb7;,- 8 -,ADC输入,除了输入引脚AIN0-AIN7,片上温度传感器的输出也可以选择作为ADC的输入,用于温度测量。通过配置寄存器TR0寄存器和ATEST寄存器可以获得片上温度 TR0寄存器,- 9 -,ADC输入,除了输入引脚AIN0-AIN7,片上温度传感器的输出也可以选择作为ADC的输入,用于温度测量。通过配置寄存器TR0寄存器和ATEST寄存器可以获得片上温度 ATEST寄存器,ADC转换,ATEST寄存器ADC的转换分为ADC序列转换和ADC单个转换。ADC执行一系列的转换,并把转换结果通过DMA移动到存储器,不需要任何CPU的干预 ADC序列转换与APCFG寄存器的设置有关,APCFG为8位模拟输入的I/O引脚设置,如果模拟I/O使能,每一个通道正常情况下应是ADC序列的一部分。如果相应的模拟I/O被禁用,将启用差分输入,处于差分的两个引脚必须在APCFG寄存器中设置为模拟输入引脚。 ADCCON2.SCH寄存器位用于定义一个ADC序列转换,它来自ADC输入。如果ADCCON2.SCH设置为一个小于8的值,转换序列来自AIN0-AIN7的每个通道上;当ADCCON2.SCH设置为一个在8和12之间的值,序列包括差分输入;当ADCCON2.SCH大于或等于12,为单个ADC转换。,- 11 -,ADC转换,除了序列转换,每个通道都可以进行ADC单个转换,ADC单个转换通过配置寄存器ADCCON3.SCH完成。当通过写ADCCON3触发的一个单个转换完成时,ADC将产生一个中断。 ADC的数字转换结果可以通过设置寄存器ADCCON1获得。,/开启AD ADCCON1=0x40;,- 12 -,ADC转换,ADC的数字转换结果存放在寄存器ADCH和ADCL中,ADCL ADC数据低位,ADCH ADC数据低高位,/将转换的结果从ADC:ADCH中取出放入到temp中 temp1 = ADCL; temp0 = ADCH;,- 13 -,ADC转换,下述内容用于实现任务描述,将AVDD(3.3v)AD转换,通过串口在PC机显示结果 AD的初始化,void InitialAD(void) /清EOC标志 ADCH ,- 14 -,ADC转换,下述内容用于实现任务描述,将AVDD(3.3v)AD转换,通过串口在PC机显示结果 头文件、宏定义以及函数声明,#include “ioCC2530.h“ #define uint unsigned int /定义控制灯的端口 #define LED1 P1_0 #define LED2 P1_1 char temp2; uint adc; float num; char adcdata=“ 0.0V “; /函数声明 void Delay(uint); void initUARTtest(void); void InitialAD(void); void UartTX_Send_String(char *Data,int len);,- 15 -,ADC转换,下述内容用于实现任务描述4.D.7,将AVDD(3.3v)AD转换,通过串口在PC机显示结果 主函数部分,void main(void) /P1控制LED P1DIR = 0x03; /关LED LED1 = 1; LED2 = 1; /初始化串口 initUARTtest(); /初始化ADC InitialAD(); while(1) /等待ADC转换完成 if(ADCCON1,/开始下一转换 ADCCON1 |= 0x40; /adc赋值 adc |= (uint)temp1; adc |= ( (uint) temp0 )=2; if(adc ,Zstack中ADC应用,协调器建立网络,终端节点加入网络,终端节点周期性的采集温度数据并发送给协调器,协调器将收到的温度值用串口送PC机显示 协调器功能 :建网,接收数据,向串口发数据 终端节点功能:,无线测温-协调器编程,1 建网 2 用户任务:事件1: 接收数据-什么事件? SYS_EVENT_MSG下的 AF_INCOMING_MSG_CMD 事件2:向串口发数据-什么时候? 接收到数据后-事件2包含 在事件1内,无线测温-协调器编程,涉及:串口设置、初始化;-同上例 温度数据存储区,无线测温-协调器编程,特殊之处:数据传递一般会用数据包。 特点:命令头 + 数据 + 命令尾 用结构体构建数据包 本例中的温度数据: struct RFRXBUF unsigned char Head; unsigned char value2; unsigned char Tail; BUF;,typedef union h uint8 TEMP4; struct RFRXBUF unsigned char Head; unsigned char value2; unsigned char Tail; BUF; TEMPERATURE ;,TEMPERATURE temperature; /定义温度数据包存储区 温度数据包在终端、协调器之间传递,TEMPERATURE 类要告知协调器、终端-怎么做? 加入Coordinator.h、Enddevice.h中,无线测温-协调器编程,事件1触发:CoordApp_ProcessEvent任务中 case AF_INCOMING_MSG_CMD: GenericApp_MessageMSGCB( MSGpkt ); break;,无线测温-协调器编程,void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) TEMPERATURE temperature; switch ( pkt-clusterId ) case GENERICAPP_CLUSTERID: osal_memcpy( ,无线测温-终端编程,1、加入网络-同以前例 2、周期性的将温度传感器上的电压转换成数字量温度值,再用无线发送给协调器,无线测温-终端编程,1 片内温度传感器 /使能片内温度传感器 ATEST = 0x01; /连上温度传感器 TR0 |= 0x01;,无线测温-终端编程,2、ADC ADCIF = 0; /清除ADC中断 ADCCON3 = (HAL_ADC_REF_115v | HAL_ADC_DEC_256 | HAL_ADC_CHN_TEMP); while ( !ADCIF );/等待AD转换完成 ADCIF = 0; value = ADCL; / 读取AD 值 value |= (uint16) ADCH) =4 ;,数据发送,void GenericApp_SendTheMessage( void ) uint8 tvalue; TEMPERATURE temperature; temperature.BUF.Head = ',afAddrType_t my_DstAddr; my_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; my_DstAddr.endPoint = GENERICAPP_ENDPOINT; my_DstAddr.addr.shortAddr = 0x0000; AF_DataRequest( ,周期性触发发送事件,#define SEND_DATA_EVENT 0X01 /定义事件 /启动事件 case ZDO_STATE_CHANGE: GenericApp_NwkState = (devStates_t)(MSGpkt-hdr.status); if ( GenericApp_NwkState = DEV_END_DEVICE ) osal_set_event(GenericApp_TaskID,SEND_DATA_EVENT);,/周期性工作 if(events ,无线测温-终端编程,程序结构 传感器的操作为一个文件-Sensor.c, 涉及到的名称常量定义-Sensor.h,无线测温-终端编程,Sensor.h #ifndef SENSOR_H #define SENSOR_H #include extern int8 readTemp(void); #endif,无线测温-终端编程-Sensor.c,#include “Sensor.h“ #include #define HAL_ADC_REF_115v 0X00 /设置参考电压为内部参考电压 :00 (7-6 位) #define HAL_ADC_DEC_256 0X20 /设置抽取率256 :10 (5-4 位) #define HAL_ADC_CHN_TEMP 0X0e/序列通道选择,1110:温度传感器(3-0 位),无线测温-终端编程-Sensor.c,int8 readTemp(void) static uint16 reference_voltage; static uint8 bCalibrate = TRUE; uint16 value; int8 temp; ATEST = 0x01; TR0 |= 0x01; ADCIF = 0; /清除ADC中断 ADCCON3 = (HAL_ADC_REF_115v | HAL_ADC_DEC_256 | HAL_ADC_CHN_TEMP);,while ( !ADCIF );/等待AD转换完成 ADCIF = 0; value = ADCL; / 读取AD 值 value |= (uint16) ADCH) =4 ;,if( bCalibrate ) /记录第一次读取的温度值,为后面校正用 reference_voltage = value; bCalibrate = FALSE ; temp = 22 + ( (value - reference_voltage)/4 ); r

注意事项

本文(无线温度检测)为本站会员(F****n)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.