电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

无线温度检测课件

37页
  • 卖家[上传人]:F****n
  • 文档编号:88157429
  • 上传时间:2019-04-20
  • 文档格式:PPTX
  • 文档大小:133.61KB
  • / 37 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、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组成。 通道号

      2、码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寄存器,- 10 -,ADC转换,ATEST寄存器ADC的转换分为ADC序列转换和ADC单个转换。ADC执行一系列的转换,并把转换结果通过DMA移动到存储器,不需要任何CPU的干预 ADC序列转换与APCFG寄存器的设置有关,APCFG为8位模拟输入的I/O

      3、引脚设置,如果模拟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;

      4、 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转换,通过串口在P

      5、C机显示结果 主函数部分,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内,无线测温-协调器编程,涉及:串口设置、初始化;-同上例 温度数据存储区,无线测温-协调器编程,

      6、特殊之处:数据传递一般会用数据包。 特点:命令头 + 数据 + 命令尾 用结构体构建数据包 本例中的温度数据: 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

      7、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(

      8、 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 ,无线测温-终端编程,程序结构 传感器

      9、的操作为一个文件-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)

      《无线温度检测课件》由会员F****n分享,可在线阅读,更多相关《无线温度检测课件》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.