安徽工业大学WSN无线传感器网络实验报告(共53页)_第1页
安徽工业大学WSN无线传感器网络实验报告(共53页)_第2页
安徽工业大学WSN无线传感器网络实验报告(共53页)_第3页
安徽工业大学WSN无线传感器网络实验报告(共53页)_第4页
安徽工业大学WSN无线传感器网络实验报告(共53页)_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上 无线传感器网络实验报告指导教师:卫琳娜班级:物联网131班实验箱序号:3,13等组员姓名学号:程少锋(注:报告中有部分实验截图)实验日期:2016年4月28日3,4节实验一、软硬件平台使用1感知 RF2 实验箱-WSN 系统结构该系统根据不同的情况可以由一台计算机,一套网关,一个或多个网络节点组成。系统大小只受 PC 软件观测数量,路由深度,网络最大负载量限制。感知 RF2 实验箱无线传感器实验平台内配置 ZigBee2007/PRO 协议栈在没有进行网络拓补修改之前支持 5 级路由,31101 个网络节点。传感器网络系统结构图如下图所示。2感知 RF2 实验箱-W

2、SN 系统工作流程基于ZigBee2007/PRO 协议栈无线网络,在网络设备安装过程,架设过程中自动完成。完成网络的架设后用户便可以由 PC 机发出命令读取网络中任何设备上挂接的传感器的数据,以及测试其电压。3感知 RF2 实验箱-WSN 硬件介绍 感知 RF2 物联网实验箱的无线传感器网络开发平台主要硬件包括:C51RF-CC2530-WSN 仿真器、ZigBee 无线高频模块、节点底板、传感器模块以及其它配套线缆等。 网关节点由节点底板+ZigBee 无线高频模块组成。 传感器节点由节点底板+ZigBee 无线高频模块组成+传感器模块组成。 路由节点硬件组成与传感器节点相同,软件实现功能

3、不同。4实验目的:熟悉实验平台前期架构,便于后面程序的烧写。5实验步骤:1安装必要软件(实际实验室中软件已经下载安装完毕,只要通过仿真器C51RF-3进行程序在线下载、调试、仿真即可)1)在实验室机器E盘的无线龙实验箱相关资料/无线传感器实验资料中安装 ZigBee 开发集成环境 IAR7.51A,详细请参考“C51RF-CC2530-WSN 使用说明书”目录下的“IAR 安装与使用”。2)安装传感器网络 PC 显示软件环境,软件位于“C51RF-CC2530-WSN 开发软件C51RF-CC2530-WSN 监控软件”目录下的“Framework Version 2.0.exe”3)安装网关

4、与计算机 USB 连接驱动,驱动位于“C51RF-CC2530-WSN 开发软件”目录下的“CP2102”。4)安装 ZigBee 开发辅助软件,软件位于“C51RF-CC2530-WSN 开发软件”目录下的(程序 下 载 软 件 ) “ Setup_SmartRF04Progr_1.3.0.exe ” 与 ( 物 理 地 址 读 写 工 具 软 件 )“Setup_IEEE_Address_Prog_1.0.0.exe”。5)安装其它辅助开发软件,如位于“C51RF-CC2530-WSN 开发软件”目录下的“串口调试助手.exe”。或且其它用户以为对开发有帮助的软件。(这里串口调试助手已经在

5、桌面创建了快捷方式)2安装 CP2102 驱动为方便无线传感网络与计算机进行通信,网关使用 USB 转换芯片CP2101,因此需要安装 CP2102 驱动。安装网关与计算机连接驱动 CP2102,在配套光盘“CP2102”目录下点击“Setup.exe”安装。3物理地址修改/程序下载软件(在Zigbee加入网络实验中需要)4IAR 软件安装5Framework Version 2.0 安装程序下载(重要)1)按上述(硬件平台组装及设置)步骤 1-3 连接硬件。2)按上述(安装必要软件)步骤安装软件。3)把“C51RF-CC2530-WSN 演示程序C51RF-CC2530-WSN 无线传感器网

6、络演示程序”内文件夹“Texas Instruments”复制至 IAR 安装盘根目录(如 C:)下,或者在E盘中直接打开。4) 使 用 IAR 7.51A 在 如 下 路 径 打 开 工 程 文 件 。“ C:Texas InstrumentsZStack-CC2530-2.2.0-1.3.0ProjectszstackSamplesSampleAppCC2530DB”打开工程文件节点测试确定各程序成功下载至各节点,并修改物理地址使其各不相同。把下载CoordinatorEB-Pro 程序的ZigBee模块安插到节点底板上当作网关使用,网关通过 USB 连接线把计算机与网关连接起来。一会儿,

7、网关节点即建立 ZigBee 无线传感网,液晶显示为“COORD”,等待传感节点的加入。把下载 RouterEB-Pro 或 EndDeviceEB-Pro 程序的 ZigBee 模块安插到节点底板,并把 1个传感器模块安插到节点底上。【6】实验中遇到的困难和解决办法:开始实验时程序不能运行是因为没有通过仿真器将电脑与实验箱相连接。【7】实验总结:做实验前要仔细观察实验指导书的步骤,实验平台前期准备必须要精准,这样可以节约后期实验时间,避免原理上的不熟悉,比如后期实验中修改物理地址等。实验二、GPIO输入输出实验1控制 LED 灯闪烁【实验目的】了解CC2530的GPIO结构和配置原理及如何通

8、过程序控制CC2530的GPIO驱动外部设备如:LED灯。【实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验内容】本例以LED灯为外设,用CC2530控制简单外设,将I/O设置为输出,实验现象LED闪烁。实验中操作了的寄存器有 P1,P1DIR,没有设置而是取默认值的寄存器有:P1SEL,P1INP。GPIO输出控制对象为CC2530模块上的红色和蓝色 LED,分别接在 CC2530芯片的 P1.0 和 P1.1 脚上。输出置位为 0 时 LED 灯点亮,置位

9、为 1 时 LED 灯熄灭。【实验步骤】(在实验一中有详细介绍)1.打开E盘里“演示及开发例子程序”内文件夹“CC2530单片机基础程序”,使用IAR7.51打开“1.1GPIO输入输出实验CC2530-1”中工程文件“forJ1.eww”。2.打开工程后选择Debug或Release模式。3.编译工程并下载到目标板。4.下载完成后点击全速运行(GO 按钮,见下图)或直接按F5 键查看程序运行效果。【实验结果】CC2530模块板载的蓝色LED灯(左边)闪烁。【实验相关代码】程序的初始化和处理流程:【实验拓展研究】利用延时子函数void Delay(uint n)/*/延时*/void Dela

10、y(uint n)uint tt;for(tt = 0;tt<n;tt+);for(tt = 0;tt<n;tt+);for(tt = 0;tt<n;tt+);for(tt = 0;tt<n;tt+);for(tt = 0;tt<n;tt+);执行 5 次 0 到 n 的空循环来实现软件延时。延时时间约为 5*n/32s。(关联LED灭)并且可以修改程序实现LED红灯闪烁。2 按键控制LED灯开关【 实验目的】 1.了解 CC2530 的 GPIO 结构和配置原理 2.学习配置按键的 GPIO 口为输入模式,并采集有效按键 3.如何通过程序控制由按键触发控制 LE

11、D 灯 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验内容】1.本例中让用户掌握按键应用这一常用人机交互方法,本次使用按键 LED 灯的开关。按下“SW2”键切换 ZigBee 模块左边 LED 灯开关,实验中操作了的寄存器有 P0,P0DIR,没有设置而是取默认值的寄存器有:P0SEL,P0INP。2.按键采用五向摇杆按键 Joystick,这里只使用按下这个键。无按键按下时 P06的状态为上拉,高电平。中间键按下时(Cneter),P06 与 GND

12、 连通,P06 采集到低电平。【实验步骤】 1.打开E盘里“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.1GPIO 输入输出实验CC2530-2”中工程文件“ switchLED.eww”。2.打开工程后选择 Debug 或 Release 模式。3.编译工程并下载到目标板。4.运行和查看效果。【实验现象】 按下 SW2摇杆按键的中间键CC2530 模块板载的红色 LED 灯(右边)点亮,再次按下熄灭。【实验相关流程及代码】按键初始化函数 void InitKey (void)/*/按键初始化*/void InitKey(void)P0S

13、EL &= 0X40;P0INP |= 0x40; /上拉(设置位置)P0DIR &= (0x01<<(6); /按键在 P06 ADC 采集主要是配置采集输入采集的 GPIO P06 为输入模式。延时子函数 uchar KeyScan(void)监测 P0.6(K1)上的电平变化,如有高电平变低即有按键产生,返回按键扫描结果为有按键发生。之后对应相关的LED灯位置。3按键控制LED灯闪烁【 实验目的】 1.了解 CC2530 的 GPIO 结构和配置原理 2.学习配置按键的 GPIO 口为输入模式,并采集有效按键 3.如何通过程序控制由按键触发控制 LED 灯闪烁

14、 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验内容】1. 使用按键 LED 灯的开关。按下“SW2”键切换 ZigBee 模块左边 LED 灯开关,实验中操作了的寄存器有 P0,P0DIR,没有设置而是取默认值的寄存器有:P0SEL,P0INP。2. 按键采用五向摇杆按键 Joystick,这里只使用按下这个键。无按键按下时 P06的状态为上拉,高电平。中间键按下时(Cneter),P06 与 GND 连通,P06 采集到低电平。3.【实验步骤】第一步

15、: 打开E盘“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.1GPIO输入输出实验CC2530-3”中工程文件“ switchGLINT.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】 按下 SW2 摇杆按键的中间键CC2530 模块板载的蓝色 LED 灯(左 边)闪烁,再次按下停止。【实验相关代码】程序的初始化和处理流程相应程序函数构造与实验2相似。4.按OLED显示【 实验目的】 1.了解 OLED 显示屏的驱动原理,学习使用 UG-9616

16、GLBBG02 显示屏 2.通过 CC2530 的 GPIO 模拟 IIC 总线驱动 OLED 显示。 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验内容】1.CC2530 通过模拟 IIC 通讯接口控制和驱动 OLED 的驱动芯片 SSD13062.【实验步骤】 第一步: 打开E盘“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.1GPIO 输入输出实验CC2530-4”中工程文件“ OledDisp

17、.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】 程序全速运行后 OLED 屏幕上显示“ Welcome”字符。【实验相关代码】1.函数void ugOled9616int (void) 进行控制驱动OLED有关的GPIO配置,以及配置OLED驱动芯片的寄存器启动 OLED 运行,程序在“ugOled9616.c”文件中。2. 输出显示子函数 void LcdPutString16_8( u8 x,u8 y,u8 *ptr,u8 len,u8 op ),在 OLED 指定的位置。【实验中遇到的困难和

18、解决办法】实验4中也可以将英文字符改成汉字输出,但是程序语言中要改变字符类型等。【实验总结】要学会举一反三,对于代码中的键值控制函数等都要学会处理分析,并修改相应代码实现其他功能。实验三、定时器控制实验实验日期:2016年5月5日3,4节5.使用定时器T1【 实验目的】 1.了解 CC2530 的定时器 T1 的配置和使用2.如何通过程序控制 CC2530 的 T1 驱动 LED 灯定时点亮。 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验原理】本例用定

19、时器1 来改变小灯的状态, T1 每溢出两次,两个小灯闪烁一次闪烁后成闪烁前相反的状态。 T1的操作模式有3种: free-running模式(计数器从0x0000开始计数,当计算值达到0xFFFF时溢出,此时IRCON.T1IF和T1CTL.OVFIF被置1,如果TIMF.OVFIF和IEN1.T1EN也被置1,就会产生中断请求,计数器复位为0x0000,重新开始计数), modulo模式(计数器从0x0000开始计数,当计算值达到T1CC0时溢出,此时IRCON.T1IF和T1CTL.OVFIF被置1,如果TIMF.OVFIF和IEN1.T1EN也被置1,就会产生中断请求,计数器复位为0x

20、0000,重新开始计数)和up-down模式(计数器从0x0000开始计数,当计算值达到T1CC0时,计数值开始递减直至0x0000,此时IRCON.T1IF和T1CTL.OVFIF被置1,如果TIMF.OVFIF和IEN1.T1EN也被置1,就会产生中断请求,计数器重新开始计数)【实验步骤】 第一步: 打开E盘“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.2 定时器控制实验CC2530-1”中工程文件“ T1.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果

21、。【实验现象】 CC2530 模块板载的蓝色 LED 灯(左边)和红色 LED(右边)交替闪烁。【实验相关代码】void Initial(void)/初始化 P1P1DIR = 0x03;/P10 P11 为输出RLED = 1;YLED = 1;/灭 LED/用 T1 来做实验T1CTL = 0x3d;/通道 0,中断有效,128 分频;自动重装模式(0x0000->0xffff);函数功能是将 P10,P11 设为输出,并将定时器 1 设为自动重装模式,计数时钟为 0.25M。6使用定时器T2【 实验目的】 1.了解 CC2530 的定时器 T2 的配置和使用,定时器的中断使用方式

22、2.如何通过程序控制 CC2530 的 T1 驱动 LED 灯定时点亮 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验原理】1.本例开启定时器2的中断,计数比较溢出后产生中断来改变小灯的状态, T2 每溢出一次, 红色小灯状态改变一次(由亮变暗或由暗变亮)。T2的操作模式如T1不同没有T1的3种工作模式: free-running模式, modulo模式和up-down模式。2.GPIO 输出控制对象为 CC2530 模块上的红色和绿色 LED,分别接在

23、 CC2530芯片的 P1.0 和 P1.1 脚上。输出置位为 0 时 LED 灯点亮,置位为 1 时 LED 灯熄灭。【实验步骤】 第一步: 打开E盘“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.2 定时器控制实验CC2530-2”中工程文件“ T2.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】 CC2530 模块板载的蓝色 LED 灯(左边) 由定时器 T2 的比较溢出中断改变状态。【实验相关代码】1.开启溢出中断#define SET_

24、TIMER2_CAP_INT() do T2IRQM = 0x04; EA = 1; T2IE = 1; T2MSEL |= 0xf4; while(0)2.设定溢出周期#define SET_TIMER2_CAP_COUNTER(val) SET_WORD(T2M1,T2M0,val)功能:将无符号整形数 val 的高 8 位写入 T2CAPLPL,低 8 位写入 T2CAPHPH。3.启动 T2#define TIMER2_RUN() T2CTRL|=0X014.停止 T2#define TIMER2_STOP() doT2CTRL&=0XFE;while(0)实验四、中断输入和采

25、集实验7定时器T4中断【 实验目的】 1.了解 CC2530 的 T4 的使用 2.学习定时器 T4 的中断模式使用 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验原理】1.本例用定时器 4 来改变小灯的状态,T4每2000次中断小灯闪烁一轮,闪烁的时间长度为 1000次中断所耗时间。注意定时器 T3,T4 是 8Bit 的定时器。2.GPIO 输出控制对象为 CC2530 模块上的红色和绿色 LED,分别接在 CC2530芯片的 P1.0 和 P1.1

26、 脚上。输出置位为 0 时 LED 灯点亮,置位为 1 时 LED 灯熄灭。【实验步骤】 第一步: 打开E盘“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.3 中断输入和采集实验CC2530-1”中工程文件“ forj8-Tn.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】 CC2530 模块板载的红色 LED 灯(右边) 在 T4 产生中断 1000 此 后开始闪烁,再次中断 1000 次后停止闪烁,一直循环执行。【实验相关代码】*#pragm

27、a vector = T4_VECTOR_interrupt void T4_ISR(void)/IRCON = 0x00;/清中断标志,硬件自动完成if(counter<200)counter+; /10 次中断 LED 闪烁一轮elsecounter = 0; /计数清零RLED = !RLED; /改变小灯的状态主函数功能:这是一个中断服务程序,每 200 次中断改变一次红色 LED 的状态。【实验中遇到的困难和解决办法】:怎么将 T4 设置为不同模式。#define TIMER3_SET_MODE(val) do T4CTL &= 0X03; (val=1)?(T4CTL

28、|=0X01): /*DOWN */ (val=2)?(T4CTL|=0X02): /*Modulo */ (val=3)?(T4CTL|=0X03): /*UP / DOWN */ (T4CTL|=0X00); /*free runing */ while(0)可以根据需要设置不同模式,但前提要在程序里具有定义说明。8.外部中断实验【 实验目的】 1.了解 CC2530 的中断使用2.如何采集外部输出中断(按键触发)并控制 LED 灯状态 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF

29、-3 仿真器1程序下载调试用【实验原理】1.本例使用摇杆按键来翻转 LED 的状态,但这里按键不是做键盘用,而是产生中断触发信号。 按下节点底板上“ SW2”键, CC2530 模块上 1 个 LED 灯改变当前状态。2.按键采用五向摇杆按键 Joystick,这里只使用按下这个键。无按键按下时 P06的状态为上拉,高电平。中间键按下时(Cneter),P06 与 GND 连通,P06 采集到低电平。【实验步骤】 第一步: 打开E盘“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.3 中断输入和采集实验CC2530-2”中工程文件“ for9

30、-external.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】 按下摇杆按键“ SW2” 的中心按键,点亮红色 LED(左边) ,再次按下时熄灭,循环执行。 【实验相关代码】#pragma vector = P0INT_VECTOR_interrupt void P0_ISR(void)if(P0IFG>0) /按键中断P0IFG = 0;RLED = !RLED;P0IF = 0; /清中断标志可以在 P06 触发中断的时候将红色 LED 的状态翻转。注意清中断标志的值设定。实验五、定时

31、器控制实验9.ADC 采集 Joystick 按键【 实验目的】1.了解 CC2530 的 ADC 原理和配置方法 2.通过 ADC 采集读取 Joystick 按键(摇杆) 控制 LED 灯 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验原理】1.本例以 ADC 采集读取 Joystick 按键键值,通过不同的按键动作控制不同的 LED 灯状态,将 P0.6 设置为 AD 输入模式。2.按键采用五向摇杆按键 Joystick。默认的情况下 P0.6 有

32、 R17 上拉至 VCC,当有五个按键中的任意一个按下时均会改变 P0.6 上的电压值。例如按下“UP”键,P0.6 上的电压值等于:P0.6 电压值 = VCC×R20(R20+R21+R22+R23+R24)不同的按键会由不同的分压电阻分压得到不同的电压值,CC2530 通过 ADC采集 P0.6 的电压值判断按键。【实验步骤】 第一步: 打开E盘“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.4ADC 采集实验CC2530-1”中工程文件“ switchLED.eww”。第二步:打开工程后选择 Debug 或 Release

33、 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】按左键( Left)时控制红灯亮, 按右键( Right)时控制蓝灯亮,再次按下时熄灭,循环执行。【实验相关代码】1.通过halAdcSampleSingle函数读取P0.6通道上的电压值判断有无按键按下和具体的按键值。2.ADC 采集子函数 INT16 halAdcSampleSingle(uchar reference, uchar resolution,uchar input)【实验中遇到的困难和解决办法】如何指定采集的分辨率,采集通道等参数?配置 ADC 寄存器采集指定通道的电压值10片内温度采集【 实验目的

34、】 1. 了解 CC2530 的 ADC 原理和配置方法 2. 通过 ADC 读取片内的温度传感器值并通过串口发送出来 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验原理】1. 本例以 ADC 采集读取片内温度传感器值,通过串口发送出。2. 串口采用 USB 转串口 TTL 芯片 CP2102。【实验步骤】第一步: 打开E盘“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.4ADC采集实验CC2530-

35、2”中工程文件“ forj10ADtemperature.eww”。用 USB Mini 线连接节点底板和 PC 机,如提示未安装驱动,根据向导指向在光盘中“软件工具及驱动cp2102CP210xWIN”安装 CP2102 驱动。驱动程序安装成功后可以在从桌面->我的电脑(单击右键)->在硬件选项中点击“设备管理器”按钮。打开设备管理器查看对应的串口号。打开“串口调试助手”软件,根据 CP2102 对应的串口在软件中打开串口通讯口,波特率:57600,数据位:8,停止位:1,无奇偶校验。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第

36、四步: 运行和查看效果。【实验现象】CC2530 采集到片内的温度传感器值后通过串口输出相关的数据。但是数据会出现波动,不是一成不变。【实验相关代码】1.void UartTX_Send_String(char *Data,int len)函数原型:void UartTX_Send_String(char *Data,int len)int j;for(j=0;j<len;j+)U0DBUF = *Data+;while(UTX0IF = 0);UTX0IF = 0;函数功能:串口发送数据,*data 为发送缓冲的指针,len 为发送数据的长度,在初始化串口后才可以正常调用。(这里需要设

37、置)2.void initTempSensor(void)函数原型:void initTempSensor(void)DISABLE_ALL_INTERRUPTS();SET_MAIN_CLOCK_SOURCE(0);*(BYTE _xdata*) 0xDF26) = 0x80;函数功能:将系统时钟设为晶振,设 AD 目标为片机温度传感器。3.将片内温度传感器 AD 转换的结果转换成温度。#define ADC14_TO_CELSIUS(ADC_VALUE) ( (ADC_VALUE) >> 4) - 315。【实验中遇到的困难和解决办法】1. 在查看串口设置时,电脑不是完全按照串

38、口2作为的,有时需要另外设置,并且只能选取没有被占用的串口号。2. 在串口设置完毕后点击程序运行等才能在串口上看到结果,需要注意先后顺序。实验六、串口收发实验实验日期:2016/05/09 11串口通讯【 实验目的】 1.了解 CC2530 的串口结构和配置原理 2.如何通过程序控制 CC2530 的串口收发数据 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验内容】从 CC2530 上通过串口不断地发送字串“ UART0 TX Test”。实验使用 CC

39、2530 的串口 1,波特率为 57600【实验步骤】 第一步: 打开“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”。使用 IAR7.51 打开“ 1.5 串口收发实验CC2530-1”中工程文件“ forj13-uartt.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步:运行和查看效果。打开“串口调试助手”软件,根据 CP2102 对应的串口在软件中打开串口通讯口,波特率: 57600,数据位: 8,停止位: 1,无奇偶校验。【实验现象】CC2530 上通过串口不断地发送字串“ UART0 TX Test”【

40、实验相关代码】void initUARTtest(void);函数原型:void initUARTtest(void)CLKCONCMD &= 0x40; /晶振while(!(SLEEPSTA & 0x40); /等待晶振稳定CLKCONCMD &= 0x47; /TICHSPD128 分频,CLKSPD 不分频SLEEPCMD |= 0x04;/关闭不用的 RC 振荡器PERCFG = 0x00;/位置 1 P0 口P0SEL = 0x3c;/P0 用作串口P2DIR &= 0XC0; /P0 优先作为串口 0U0CSR |= 0x80;/UART 方式U0

41、GCR |= 10;/baud_eU0BAUD |= 216;/波特率设为 57600UTX0IF = 0;函数功能:初始化串口 0,将 I/O 映射到 P0 口,P0 优先作为串口 0 使用,UART 工作方式,波特率为 57600。使用晶振作为系统时钟源。在修改串口号之后还要注意波特率的修改。12.串口显示时钟【 实验目的】 1.了解 CC2530 的串口结构和配置原理 2.如何结合定时器通过串口输出显示时钟 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用

42、【实验内容】利用 CC2530 定时器 1 产生秒信号,通过串口显示时钟。【实验步骤】 第一步: 把“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”复 制至 C: 根目录下的“ Texas Instruments”文件夹内。使用 IAR7.51 打开“ 1.5 串口收发实验CC2530-4”中工程文件“ UARTclock.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】CC2530 上通过串口每隔 1s 中发送一次最新的时钟数据【实验相关代码】void T1_ISR(void);函

43、数原型:_interrupt void T1_ISR(void)IRCON &= 0x02;/清中断标志counter+;if(counter = 250)counter = 0;timetemp = 1; /一秒到led1 = led1; / 调试指示用函数功能:T1 中断服务程序,每 250 次中断将 timetemp 置 1,表示 1 秒时间到,同时改变 LED 的状态。【实验中遇到的困难和解决办法】如何设置时间为1秒显示?T1 计数时钟为 0.25M(见 voidInitClock(void)说明),令T1CC0 = 0X03E8 1000,250 次中断溢出为 1s。实验七、

44、低功耗控制实验13.系统睡眠和中断唤醒【 实验目的】 1.了解 CC2530 的电源管理和低功耗模式 2.如何通过程序控制 CC2530 进入低功耗模式和中断唤醒 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线 SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验原理】1.本例实验使能外部I/O 中断(按下节点底板的SW2 按键) 先让CC2530进入低功耗状态,按键产生中断唤醒CC2530,每次唤醒LED闪烁10 次,然后进入低功耗模式,在进入PM3 之前程序会将两个LED 灯关闭。在应用中也可以不关闭以

45、指示CC2530 处于低功耗模式,可以中断激活。2. CC2530 一共有 4 种功耗模式,分别是 PM0, PM1, PM2, PM3,以 PM3 功耗最低。3. 按键采用五向摇杆按键 Joystick,这里只使用按下这个键。无按键按下时 P06的状态为上拉,高电平。中间键按下时(Cneter),P06 与 GND 连通,P06 采集到低电平。【实验步骤】第一步: 把“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”复 制至 C: 根目录下的“ Texas Instruments”文件夹内。使用 IAR7.51 打开“ 1.6 低功耗控制实验CC2530-2”中工程文件“ f

46、orj18-wakeup.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】CC2530 模块板载的蓝色 LED 灯(左边)闪烁 10 次后蓝色 LED 和 红色 LED 均熄灭,系统已经进入 PM3 的休眠模式。此时按在 SW2 按键的中间 键唤醒 CC2530 蓝色 LED 灯再次闪烁 10 次后又进入 PM3 的休眠模式。【实验相关代码】void PowerMode(uchar sel)uchar i,j;i = sel;if(sel<4)SLEEPCMD &= 0xfc;SLEEP

47、CMD |= i;for(j=0;j<4;j+);PCON = 0x01;elsePCON = 0x00;函数功能:使系统进入 sel 指定的电源模式下,这里的 sel 只能是 0-3 之间的数,程序只能在 CPU 全速运行时执行,也就是说函数中能使系统从全速运行进入 PM0-PM3 而不可以从 PM0-PM3 进入全速运行。14.系统睡眠和定时唤醒【 实验目的】1.了解 CC2530 的电源管理和低功耗模式 2.如何通过程序控制 CC2530 进入低功耗模式和定时器唤醒 【 实验设备】实验设备数量备注CC2530多传感器节点底板1支持CC2530工作的底板CC2530 节点模块1无线

48、SOCUSB 线1连接仿真器C51RF-3 仿真器1程序下载调试用【实验内容】1.这个实验利用睡眠定时器工作在多个电源模式下这一特性来实现定时唤醒,最长的唤醒时隔为8分32秒,而最短的时隔可达30余微秒。实验中在设定好唤醒时间后让CC2530进入PM2模式,在达到指定时间后小灯闪烁,之后再次是设定唤醒时间,进入PM2,唤醒的循环。2.CC2530 一共有 4 种功耗模式,分别是 PM0,PM1,PM2,PM3,以 PM3 功耗最低。【实验步骤】 第一步: 把“ 演示及开发例子程序”内文件夹“ CC2530 单片机基础程序”复 制至 C: 根目录下的“ Texas Instruments”文件夹

49、内。使用 IAR7.51 打开“ 1.6 低功耗控制实验CC2530-4”中工程文件“ forj22.eww”。第二步:打开工程后选择 Debug 或 Release 模式。第三步:编译工程并下载到目标板。第四步: 运行和查看效果。【实验现象】CC2530 模块板载的红色 LED 灯(右边)闪烁 10 次启动睡眠定时 器并进入 PM2 休眠模式。系统在 3s 后唤醒,此时蓝色 LED 状态改变(由亮变灭或由灭变亮)。【实验相关代码】改变系统的电源功耗模式#define SET_POWER_MODE(mode) do if(mode = 0) SLEEPCMD &= 0x03; else

50、 if (mode = 3) SLEEPCMD |= 0x03; else SLEEPCMD &= 0x03; SLEEPCMD |= mode; PCON |= 0x01; asm("NOP"); while (0)看门狗实验截图:实验八、 精简OS实验实验日期:2016/05/12【 实验目的】 1.初始化操作系统,了解 OS 的运行机制和原理 2.了解如何在 OS 中添加事件 【 实验设备】实验设备数量备注CC2530网关板,SMBD-V121网关板与PC的通信节点底板, SMBD-V11-11连接传感器和节点模块CC2530 节点模块1无线数据的收发USB

51、线1连接网关板与PCC51RF-3 仿真器1程序下载调试用【实验原理】【实验步骤】1.打开“ Z-Stack 实验1.OS 实验osbasic”内的工程文件,编译下载程序后,采用 USB 线把网关底板和电脑连接起来。打开串口调试助手,根据实际选择COM接口,波特率选择“ 38400”。2.按下网关底板的复位按键,从串口输出数据:【实验现象】复位所首先输出:“ - OS prj -OS SYS eventsOS test events然后每隔 3 秒输出一串字符:“ OS Timer events”。该实验表演了 ZIGBEE 所包含的精简 OS 系统,怎么样发送所处理事件以及超时定时器的使用。

52、【代码分析】1、 初始化工作:a)初始化 CC2530 工作时钟为 32MHzb) 初始化串口:配置串口 0 为工作串口c)设置串口 0 波特率为 38400d) 初始化定时器 1,该定时的中断作为操作系统脉搏时钟e)发送提示符f)使能全局中断intClock(); / 初始化时钟IntUart(); / 初始化串口timer1_int(); /初始化定时器UART_SETUP(0,38400);/设置波特率为 38400uartsendstring(void *)Txdata,strlen(void *)Txdata);/ 发送字符串EA = 1;2. 初始化操作系统:a)操作系统初始化主要

53、工作是操作系统任务初始化b) 任务初始化分为两个步骤:将所有任务对应的事件表清空;为每个任务分配任务 ID 并初始化具体任务。3. 进入操作系统轮询4. 事件的设置和响应5. 在主函数中调用事件设置函数:在任务号为 testOSTaskID 的任务设置了系统事件 0x8000 和非系统事件 0x0001osal_set_event(testOSTaskID,0x8001 ); /触发事件 0x0001&0x8000在任务号为 testOSTaskID 的任务设置了超时事件 0x0002,超时值为 3000osal_start_timerEx(testOSTaskID, 0x0002, 3000); /打开超时定时器,3 秒超时对应的任务处理函数如下:uint16 testOsProcess( uint8 taskId, uint16 events )/系统任务if( events & 0x8000 )uartsendstring(void *)"OS SYS eventsrn",15);return events 0x8000;/串口信息任务if( events & 0x0001 )uartsendstring(void *)&

温馨提示

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

评论

0/150

提交评论