ImageVerifierCode 换一换
格式:DOC , 页数:38 ,大小:1.84MB ,
资源ID:6558148      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6558148.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(无线传感器网络实验指导书20140506F.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

无线传感器网络实验指导书20140506F.doc

1、 无 线 传 感 器 网 络 实 验 指 导 书 电子信息工程教研室 目 录 实验一 光照传感器实验…………………………………………………………… 1 实验二 红外反射传感器实验……………………………………………………… 6 实验三 温湿度传感器实验…………………………………………………………9 实验四 LED灯控制实验……………………………………………………………15 实验五 片上温度AD实验…………………………………………………………18 实验六 模拟电压AD转换实验

2、……………………………………………………22 实验七 串口收发数据实验…………………………………………………………25 实验八 串口控制LED实验…………………………………………………………29 实验九 点对点无线通信实验………………………………………………………33 实验十 基于Z-Stack的无线组网实验……………………………………………34 实验十一 基于Z-Stack的串口控制LED实验……………………………………36 36 实验一 光照传感器实验 一、实验目的 了解光敏电阻传感器的特性,掌握其工作原理。 二、实验环境 光照传感器模块、ST

3、Link仿真器、USB2UART模块、IAR for STM8 1.30开发软件、AccessPort串口调试软件。 三、实验原理 1、光敏电阻 光敏电阻是一种对光敏感的元件,它的电阻值能随着外界光照强弱变化而变化。光敏电阻的结构如图1所示,光照特性曲线如图2所示。 图1 光敏电阻结构 图2 光照特性曲线 图3 电路原理图 2、光敏传感器模块原理图 如图3所示,光敏电阻阻值随着光照强度变化时,在引脚Light_AD输出电压也随之变化。STM8的PD2引脚采集Light_AD电压模拟量转化为数字量

4、当采集的AD值大于某一阈值时,则将PD3即Light_IO引脚置低,表明有光照。 传感器使用的光敏电阻的暗电阻为 2M 欧姆左右,亮电阻为 10K 左右。可以计算出:在黑暗条件下,Light_AD 的数值为 3.3V * 2000K /(2000K + 10K) = 3.28V。在光照条件下,Light_AD 的数值为 3.3V * 10K/(10K + 10K) = 1.65V。STM8单片机内部带有 10 位 AD 转换器,参考电压为供电电压 3.3V。根据上面计算结果,选定1.65V(需要根据实际测量结果进行调整)作为临界值。当 Light_AD 为 1.65V 时,AD读数为 1.

5、65 / 3.3 * 1024 = 512。 当AD读数大于512时说明无光照,当 AD 读数小于 512 时说明有光照,并点亮 LED3 作为指示。并通过串口函数来传送触发(有光照时)信号。 3、源码分析 #include "main.h" u8 CMD_rx_buf[8]; // 命令缓冲区 u8 DATA_tx_buf[14]; // 返回数据缓冲区 u8 CMD_ID = 0; // 命令序号 u8 Sensor_Type = 0; // 传感器类型编号 u8 Sensor_ID = 0; // 相同类型传感器编号 u8 Sensor_Data[

6、6]; // 传感器数据区 u8 Sensor_Data_Digital = 0; // 数字类型传感器数据 u16 Sensor_Data_Analog = 0; // 模拟类型传感器数据 u16 Sensor_Data_Threshod = 0;// 模拟传感器阈值 void main(void) { u8 i = 0; CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); // 设置内部时钟16M为主时钟 Uart1_Init(); LED_Init(

7、); for(i = 0;i < 14;i++) DATA_tx_buf[i] = 0; for(i = 0;i < 8;i++) CMD_rx_buf[i] = 0; /* 根据不同类型的传感器进行修改 */ Sensor_Type = 2; Sensor_ID = 1; CMD_ID = 1; DATA_tx_buf[0] = 0xEE; DATA_tx_buf[1] = 0xCC; DATA_tx_buf[2] = Sensor

8、Type; DATA_tx_buf[3] = Sensor_ID; DATA_tx_buf[4] = CMD_ID; DATA_tx_buf[13] = 0xFF; GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_SLOW); // ADC ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_3, ADC1_PRESSEL_FCPU_D4,

9、 ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL3, DISABLE); ADC1_Cmd(ENABLE); ADC1_StartConversion(); Sensor_Data_Analog = 0; Sensor_Data_Threshod = 700; delay_ms(1000);

10、 while (1) { // 获取传感器数据 Sensor_Data_Analog = ADC1_GetConversionValue(); if(Sensor_Data_Analog < Sensor_Data_Threshod) { Sensor_Data_Digital = 0; // 无光照 GPIO_WriteHigh(GPIOD, GPIO_PIN_3); } else

11、 { Sensor_Data_Digital = 1; // 有光照 GPIO_WriteLow(GPIOD, GPIO_PIN_3); } // 组合数据帧 DATA_tx_buf[10] = Sensor_Data_Digital; // 发送数据帧 UART1_SendString(DATA_tx_buf, 14); LED_Toggle(); delay_ms(1000); } } #ifd

12、ef USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) { /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* Infinite loop */ while (1) { } } #endif 四

13、实验步骤 1)首先,我们要把传感器模块插到USB2UART模块上,再把ST-Link插到JTAG 口上,最后把两根USB线插到PC机的USB端口。 2)我们用 IAR SWSTM8 1.30软件,打开..\2-Sensor_光照传感器\Project\Sensor.ewp。然后,在窗口左侧的User文件夹下的main.c中输入上述源代码。 3)打开后点击“Project”的“Rebuil All”或者选中工程文件右键“Rebuil All”把我们的工程编译一下。 4)点击“Rebuil All”编译完后,无警告,无错误。 5)编译完后我们要把程序烧到模块里,点击中间的Downloa

14、d and Debug进行烧写。 6)打开串口工具..\AccessPort.exe,配置好串口参数,波特率115200,8个数据位,1个停止位,无校验位。单片机采集的信息发送给PC机。 7)传感器底层串口协议返回14个字节,第1位字节和2位字节是包头,第3位字节是传感器类型,第4位字节是传感器ID,第5位字节是节点命令ID,第6位字节到11位字节是数据位,其中第11位字节是传感器的状态位,第12位字节和第13位字节是保留位,第14位字节是包尾。 例如:返回“EE CC 02 01 01 00 00 00 00 00 00 00 00 FF”时,第11位字节为“0”时,表示无光照,返回“

15、EE CC 02 01 01 00 00 00 00 00 01 00 00 FF”时,第11位字节为“1”是表示有光照。测试结果如图4所示。 图4 测试结果 五、思考题 1、如何编程控制PD3输出高低电平? 2、编程实现求解光敏电阻的阻值。 实验二 红外反射传感器实验 一、实验目的 了解红外反射传感器的特性,掌握其工作原理。 二、实验环境 红外反射传感器模块、ST-Link仿真器、USB2UART模块、IAR for STM8 1.30开发软件

16、AccessPort串口调试软件。 三、实验原理 1、红外反射传感器 红外反射传感器使用的是反射型红外光电开关,反射型红外光电开关把一个红外光发射器和一个红外光接收器装在一个同一面上,前方装有滤镜,滤除干扰光。发光器能发出红外光,在无阻情况下光接收器不能收到光。但当前方有障碍物时,光被反射回接收器,光电开关便动作,输出一个开关控制信号,切断或接通负载电流,从而完成一次控制动作。 图5电路原理图 2、红外反射传感器模块原理图 如图5所示,红外光电开关U3供电电压为5V,集电极开路输出。当无障碍物时,U3的1脚输出高电平,Q1导通,IR_DATA为低电平;当有障碍物时,U

17、3的1脚输出低电平,Q1截止,IR_DATA为高电平。通过STM8单片机读取 IR_DATA的高低电平状态,即可获知红外反射传感器是否检测到障碍物,当检测到障碍物时,可以点亮 LED3作为指示。通过串口传输信号。 3、源码分析 #include "main.h" u8 CMD_rx_buf[8]; // 命令缓冲区 u8 DATA_tx_buf[14]; // 返回数据缓冲区 u8 CMD_ID = 0; // 命令序号 u8 Sensor_Type = 0; // 传感器类型编号 u8 Sensor_ID = 0; // 相同类型传感器编号 u8 Sensor_

18、Data[6]; // 传感器数据区 u8 Sensor_Data_Digital = 0; // 数字类型传感器数据 u16 Sensor_Data_Analog = 0; // 模拟类型传感器数据 u16 Sensor_Data_Threshod = 0;// 模拟传感器阈值 void main(void) { u8 i = 0; CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); // 设置内部时钟16M为主时钟 Uart1_Init(); LED_Init()

19、 GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT); GPIO_Init(GPIOD, GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_SLOW); for(i = 0;i < 14;i++) DATA_tx_buf[i] = 0; for(i = 0;i < 8;i++) CMD_rx_buf[i] = 0; /* 根据不同类型的传感器进行修改 */ Sensor_Type = 4;

20、 Sensor_ID = 1; CMD_ID = 1; DATA_tx_buf[0] = 0xEE; DATA_tx_buf[1] = 0xCC; DATA_tx_buf[2] = Sensor_Type; DATA_tx_buf[3] = Sensor_ID; DATA_tx_buf[4] = CMD_ID; DATA_tx_buf[13] = 0xFF; delay_ms(1000); while (1) { //

21、获取传感器数据 if(!GPIO_ReadInputPin(GPIOD, GPIO_PIN_3)) { Sensor_Data_Digital = 0; // 无障碍 GPIO_WriteHigh(GPIOD, GPIO_PIN_2); } else { Sensor_Data_Digital = 1; // 有障碍 GPIO_WriteLow(GPIOD, GPIO_PIN_2);

22、 } // 组合数据帧 DATA_tx_buf[10] = Sensor_Data_Digital; // 发送数据帧 UART1_SendString(DATA_tx_buf, 14); LED_Toggle(); delay_ms(1000); } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) { /* User can add his own

23、 implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* Infinite loop */ while (1) { } } #endif 四、实验步骤 我们把红外反射传感器模块插到USB2UART模块上,重复第1个实验的编译、链接、下载代码、与PC机通信过程。 例如:返回“EE CC 04 01 01 00 00 00 00 00 00

24、00 00 FF”时,第11位字节为“0”时,表示无障碍,返回“EE CC 04 01 01 00 00 00 00 00 01 00 00 FF”时,第11位字节为“1”是表示有障碍。 五、思考题 1、简述红外反射传感器模块IR_DATA引脚电平变化原理。 2、编程实现计数,红外反射传感器模块被障碍物挡住的次数。 实验三 温湿度传感器实验 一、实验目的 了解温湿度传感器的特性,掌握其工作原理。 二、实验环境 温湿度传感器模块、ST-Link仿真器、USB2UART模块

25、IAR for STM8 1.30开发软件、AccessPort串口调试软件。 三、实验原理 1、温湿度传感器 AM2302湿敏电容数字温湿度模块是一款含有己校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高精度测温元件,并与一个高性能8位单片机相连接。如图6所示,AM2302引脚图。 图6 AM2302引脚图 图7 AM2302单总线通信协议 AM2302器件采用简化的单总线通信,单总线通信协议如图7所示,单总线通信格式如图8所示。单总线即只有一根数据线

26、系统中的数据交换、控制均由数据线完成。设备(微处理器)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。由于它们是主从结构,只有主机呼叫传感器时,传感器才会应答,因此主机访问传感器都必须严格遵循单总线序列,如果出现序列混乱,传感器将不响应主机。 图8 AM2302单总线通信格式 2、温湿度传感器模块原理图 如图9所示,AM2302通过DATA与单片机相连。 图9温湿度传感器原理图 3、源码分析 #include

27、"main.h" u8 CMD_rx_buf[8]; // 命令缓冲区 u8 DATA_tx_buf[14]; // 返回数据缓冲区 u8 CMD_ID = 0; // 命令序号 u8 Sensor_Type = 0; // 传感器类型编号 u8 Sensor_ID = 0; // 相同类型传感器编号 u8 Sensor_Data[6]; // 传感器数据区 u8 Sensor_Data_Digital = 0; // 数字类型传感器数据 u16 Sensor_Data_Analog = 0; // 模拟类型传感器数据 u16 Sensor_Data_T

28、hreshod = 0;// 模拟传感器阈值 void main(void) { u8 i = 0; CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); // 设置内部时钟16M为主时钟 Uart1_Init(); LED_Init(); DHT22_Init(); for(i = 0;i < 14;i++) DATA_tx_buf[i] = 0; for(i = 0;i < 8;i++) CMD_rx_

29、buf[i] = 0; /* 根据不同类型的传感器进行修改 */ Sensor_Type = 10; Sensor_ID = 1; CMD_ID = 1; DATA_tx_buf[0] = 0xEE; DATA_tx_buf[1] = 0xCC; DATA_tx_buf[2] = Sensor_Type; DATA_tx_buf[3] = Sensor_ID; DATA_tx_buf[4] = CMD_ID; DATA_tx_buf[13] = 0xFF;

30、 delay_ms(1000); while (1) { // 获取传感器数据 if(DHT22_Read()) { Sensor_Data[2] = Humidity >> 8; Sensor_Data[3] = Humidity&0xFF; Sensor_Data[4] = Temperature >> 8; Sensor_Data[5] = Temperature&0xFF;

31、 } // 组合数据帧 for(i = 0;i < 6;i++) DATA_tx_buf[5+i] = Sensor_Data[i]; // 发送数据帧 UART1_SendString(DATA_tx_buf, 14); LED_Toggle(); delay_ms(1000); } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t

32、 file, uint32_t line) { /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* Infinite loop */ while (1) { } } #endif 四、实验步骤 我们把温湿度传感器模块插到USB2UART模块上,重复第1个实验的编译、链接、下

33、载代码、与PC机通信过程。 例如:返回 EE CC 0A 01 01 00 00 HH HL TH TL 00 00 FF,HH,HL代表温度变化,TH,TL代表湿度变化。 五、思考题 1、计算温湿度传感器输出的温度值、湿度值。 2、分析C语言实现单总线协议的过程。 3、编程实现模拟报警系统,当温度超过某一阈值时,LED闪烁。 实验四 LED灯控制实验 一、实验目的 掌握CC2530芯片的输入输出端口编程控制。 二、实验环境 实验开发箱平台、ZigBee(CC2530)模块、J-

34、Link仿真器、IAR for MCS-51 开发软件、AccessPort串口调试软件。 三、实验原理 原理图如图10所示,ZigBee(CC2530)模块硬件上设计有2个LED灯,2个按键,用来编程调试使用。2个LED灯分别连接 CC2530的P1_0、P1_1两个IO引脚。从原理图上可以看出,2个LED灯共阳极,当P1_0、P1_1引脚为低电平时候,LED灯点亮。 图10 输入输出原理图 2、源码分析 #include #define uint unsigned int #define uchar unsigned char //定

35、义控制LED灯的端口 #define LED1 P1_0 //定义LED1为P10口控制 #define LED2 P1_1 //定义LED2为P11口控制 //函数声明 void Delay(uint); //延时函数 void Initial(void); //初始化P1口 /**************************** //延时函数 *****************************/ void Delay(uint n) { uint i,t; for(i = 0;i<5;i++) for(t = 0;t

36、); } /**************************** //初始化程序 *****************************/ void Initial(void) { P1DIR |= 0x03; //P1_0、P1_1定义为输出 LED1 = 1; //LED1灯熄灭 LED2 = 1; //LED2灯熄灭 } /*************************** //主函数 ***************************/ void main(void) { Initial(); //调用初始化函数

37、 LED1 = 0; //LED1点亮 LED2 = 0; //LED2点亮 while(1) { LED2 = !LED2; //LED2闪烁 Delay(50000); } } 四、实验步骤(在实验箱的ZigBee协调器(CC2530)上进行实验) 1)把J-Link仿真器一端连到实验箱右下角的JLink插座上,另一端连到PC机USB端口上。打开实验箱左上角的开关和ZigBee协调器的开关供电,Power LED红灯点亮。按下“选择”按钮,当ZigBee协调器的Debugled黄灯点亮时,选

38、中该模块。 2)用IAR for MCS-51软件,打开..\ Src\ZigBee\TI\exp\Basic\Exp1.ewp。然后,在窗口左侧的main.c中输入上述源代码。 3)打开后点击“Project”的“Rebuil All”把工程编译一下。点击“Rebuil All”编译完后,无警告,无错误。 4)编译完后我们要把程序烧到模块里,点击左侧的Debug进行烧写。若烧写失败,重新插拔J-Link仿真器的USB端口。 5)点击运行,点击停止。 五、思考题 1、分析输入输出端口的编程控制。 2、编程实现,初始化LED1,LED2全灭;按下S2,LED1,LED2点亮;按

39、下3次S4,LED1,LED2闪烁。 实验五 片上温度AD实验 一、实验目的 利用CC2530的内部温度传感器作为A\D输入源,将转换后的温度数值利用串口发送给PC机终端。 二、实验环境 实验开发箱平台、ZigBee(CC2530)模块、J-Link仿真器、IAR for MCS-51 开发软件、AccessPort串口调试软件。 三、实验原理 1、源码分析 #include #include #include "./uart/hal_uart.h" #d

40、efine uchar unsigned char #define uint unsigned int #define uint8 uchar #define uint16 uint #define TRUE 1 #define FALSE 0 //定义控制LED灯的端口 #define LED1 P1_0 //定义LED1为P10口控制 #define LED2 P1_1 //定义LED2为P11口控制 //#define HAL_MCU_CC2530 1 // ADC definitions for CC2430/CC2530 from the hal_a

41、dc.c file #define HAL_ADC_REF_125V 0x00 /* Internal 1.25V Reference */ #define HAL_ADC_DEC_064 0x00 /* Decimate by 64 : 8-bit resolution */ #define HAL_ADC_DEC_128 0x10 /* Decimate by 128 : 10-bit resolution */ #define HAL_ADC_DEC_512 0x30 /* Decimate by 512 : 14-bit res

42、olution */ #define HAL_ADC_CHN_VDD3 0x0f /* Input channel: VDD/3 */ #define HAL_ADC_CHN_TEMP 0x0e /* Temperature sensor */ /**************************** //延时函数 *****************************/ void Delay(uint n) { uint i,t; for(i = 0;i<5;i++) for(t = 0;t

43、 void InitLed(void) { P1DIR |= 0x03; //P1_0、P1_1定义为输出 LED1 = 1; //LED1灯熄灭 LED2 = 1; //LED2灯熄灭 } /********************************************************************* * @fn readTemp * @brief read temperature from ADC * @param none *

44、@return temperature */ static char readTemp(void) { static uint16 voltageAtTemp22; static uint8 bCalibrate=TRUE; // Calibrate the first time the temp sensor is read uint16 value; char temp; ATEST = 0x01; TR0 |= 0x01; ADCIF = 0; //clear ADC i

45、nterrupt flag ADCCON3 = (HAL_ADC_REF_125V | HAL_ADC_DEC_512 | HAL_ADC_CHN_TEMP); while ( !ADCIF ); //wait for the conversion to finish value = ADCL; //get the result value |= ((uint16) ADCH) << 8; value >>= 4;

46、 // Use the 12 MSB of adcValue /* Assume ADC = 1480 at 25C and ADC = 4/C */ #define VOLTAGE_AT_TEMP_25 1480 #define TEMP_COEFFICIENT 4 // Calibrate for 22C the first time the temp sensor is read. // This will assume that the demo is started

47、 up in temperature of 22C if(bCalibrate) { voltageAtTemp22=value; bCalibrate=FALSE; } temp = 22 + ( (value - voltageAtTemp22) / TEMP_COEFFICIENT ); // Set 0C as minimum temperature, and 100C as max if( temp >= 100) return 100; else if(temp <

48、 0) return 0; else return temp; } void main(void) { char temp_buf[20];//, vol_buf[20]; uint8 temp;//, vol; InitUart(); // baudrate:57600 InitLed(); LED1 = 0; while(1) { LED2 = !LED2; //LED2 blink 表示程序运行正常 temp = readTemp(); //

49、vol = readVoltage(); sprintf(temp_buf, (char*)"temperature:%d\r\n", temp); //sprintf(vol_buf, (char*)"vol:%d\r\n", vol); prints(temp_buf); //prints(vol_buf); Delay(50000); Delay(50000); Delay(50000); } } 四、实验步骤 1)重复第四个实验的实验步骤1)~5),打开..\ Src\ZigBee\TI\exp\Basic\E

50、xp6.ewp。 2)串口线一端连到PC机COM口,另一端连到实验箱右下角Debug_UART端口,仅把拨码开关S7的4开关拨上去,其余3个及S8、S9、S10的拨码开关都拨下来。 3)打开串口工具..\AccessPort.exe,配置好串口参数,波特率57600,8个数据位,无奇偶校验位,无硬件流模式。单片机采集的温度发送给PC机,如图11所示。 图11实验结果 五、思考题 1、编写温度转换的流程图。 实验六 模拟电压AD转换实验 一、 实验目的 利用CC2530的1/3模拟电压源作为A\D输入源,将转换后的数值利用串口发送给PC机终

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服