无线传感器网络实验报告模板

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

无线传感器网络实验报告专业计算机科学与技术班级13级计科1班学号姓名目录实验一CC2530I/O基础实验实验二CC2530按键中断实验三CC2530定时器的使用实验四串行通信接口发送与接收实验五Zigbee点到点无线通信实验六Zigbee串口实验实验七无线温度检测实验实验八Zigbee组网实验实验一CC2530I/O基础实验一、实验目的1.掌握IAR编译软件界面的功能;2.掌握配置通用IO寄存器的方法;3.掌握如何编写代码及程序下载。二、实验内容1.使用CC2530的IO来控制LED灯循环闪烁;2.判断按键是否被按下,如果按下,改变LED灯的状态,原先亮的灯灭,原先灭的亮,如此循环下去。三、相关知识点cc2530有21个可编程的I/O引脚,P0、P1口是完全的8位口,P2口只有5个可使用的位。通过软件设定一组SFR寄存器的位和字节,可使这些引脚作为通常的I/O口或作为连接ADC、计时器或USART部件的外围设备I/O口使用。2.I/O口特性:(1)可设置为通常的I/O口,也可设置为外围I/O口使用;(2)在输入时有上拉和下拉能力;(3)全部21个数字I/O口引脚都具有影响外部的中断事件也能被用来唤醒休眠模式。3.I/O端口的寄存器如下:P0:端口0P1:端口1P2:端口2PERCFG:外设控制寄存器APCFG:模拟外设I/O配置P0SEL:端口0功能选择寄存器P1SEL:端口1功能选择寄存器P2SEL:端口2功能选择寄存器P0DIR:端口0方向寄存器P1DIR:端口1方向寄存器P2DIR:端口2方向寄存器P0INP:端口0输入模式寄存器P1INP:端口1输入模式寄存器P2INP:端口2输入模式寄存器P0IFG:端口0中断状态标志寄存器P1IFG:端口1中断状态标志寄存器P2IFG:端口2中断状态标志寄存器PICTL:中断边缘寄存器P0IEN:端口0中断掩码寄存器P1IEN:端口1中断掩码寄存器P2IEN:端口2中断掩码寄存器PMUX:掉信号Mux寄存器OBSSEL0:观察输出控制寄存器0OBSSEL1:观察输出控制寄存器1OBSSEL2:观察输出控制寄存器2OBSSEL3:观察输出控制寄存器3OBSSEL4:观察输出控制寄存器4OBSSEL5:观察输出控制寄存器5四、实验步骤1.启动IAR;2.新建一个IAR工作区,或者打开一个IAR工作区;3.连接CCDebugger调试器和ZigBee模块、连接CCDebugger到计算机,安装驱动;4.设置项目参数;5.编写、编译、下载程序。五、实验源程序//*******************************//I/O口轮流控制2个LED循环点亮//*******************************#includeioCC2530.h#defineuintunsignedint#defineucharunsignedchar//定义控制灯的端口#defineRLEDP1_0//定义LED1为P10口控制#defineYLEDP1_1//定义LED2为P11口控制#defineK1P2_0//函数声明voidDelay(uint);//延时函数voidInitialLed(void);//初始化P1口voidInitialKey(void);/****************************//延时*****************************/voidDelay(uintn){uinttt;for(tt=0;ttn;tt++);for(tt=0;ttn;tt++);for(tt=0;ttn;tt++);for(tt=0;ttn;tt++);for(tt=0;ttn;tt++);}/****************************//初始化程序*****************************/voidInitialLed(void){P1DIR|=0x03;//P10、P11定义为输出RLED=1;YLED=1;//LED}voidInitialKey(void){P2SEL&=~0X01;P2DIR&=~0X01;P2INP|=0X00;}/***************************//主函数***************************/voidmain(void){InitialLed();//调用初始化函数InitialKey();RLED=0;//LED1YLED=0;//LED2while(1){if(k1==0){delay(100);if(k1==0){while(k1==0);YLED=!YLED;Delay(10000);YLED=!YLED;RLED=!RLED;Delay(50000);Delay(50000);}}}}六、实验结果和过程截图七、实验小结1.cc2530通用IO使用需要配置相关寄存器;2.cc2530通用IO寄存器的类型以及每个类型如何配置;3.I/O端口具备如下特性:(1)21个数字I/O引脚;(2)可以配置为通用I/O或外部设备I/O;(3)输入口具备上拉或下拉能力;(4)具有外部中断能力。实验二CC2530按键中断一、实验目的1.理解中断处理机制;2.掌握通用I/O端口中断处理方法。二、实验内容用中断方式来判断按键是否被按下,如果按下,改变LED灯的状态,原先亮的灯灭,原先灭的灯亮,如此循环下去。三、相关知识点1.中断概述:cc2530有18个中断源,每个中断源都有它自己的位于一系列寄存器中的中断请求标志,每个中断可以分别使能或禁用;2.中断屏蔽:每个中断请求可以通过设置中断使能寄存器IEN0,IEN1或者IEN2的中断使能位使能或禁止。注意某些外部设备有若干事件,可以产生与外设相关的中断请求。这些中断请求可以作用在端口0、端口1、端口2、定时器1、定时器2、定时器3、定时器4和无线电上。对于每个内部中断源对应的SFR寄存器,这些外部设备都有中断屏蔽位;3.中断使能的步骤:总中断使能;端口中断使能;位中断使能;触发沿设置。中断处理程序格式:#pragamavector=中断向量——interruptvoid任意函数名{//中断处理,处理完成后通常需要清除中断;}四、实验步骤1.启动IAR;2.新建一个IAR工作区,或者打开一个IAR工作区,新建project;3.根据预备知识编写程序,编译程序;4.设置项目参数;5.连接CCDebugger调试器和ZigBee模块,下载程序,测试其运行效果;6.分析总结代码。五、实验源程序//头文件的包含和宏定义#includeioCC2530.h#defineuintunsignedint#defineucharunsignedchar//定义控制灯的端口#defineRLEDP1_0//定义LED1为P10口控制#defineYLEDP1_1//定义LED2为P11口控制#defineKEY1P2_0//定义按键为P20口控制//函数声明voidDelay(uint);//延时函数声明voidInitialLed(void);//初始化函数声明voidInitKey(void);//初始化按键函数声明/****************************//延时*****************************/voidDelay(uintn){uinti;for(i=0;in;i++);for(i=0;in;i++);for(i=0;in;i++);for(i=0;in;i++);for(i=0;in;i++);}/****************************//初始化按键,并设置其为中断输入方式*****************************/voidInitKeyINT(void){P2SEL&=~0X01;//引脚为通用IO口;P2DIR&=~0X01;//按键在P20口,设置为输入模式P2INP&=~0x81;//上拉,下拉EA=1;//开全局中断IEN2|=0X02;//开端口2中断P2IEN|=0X01;//P20设置为中断方式,开端口2零号引脚中断PICTL|=0X08;//设置中断触发方式P2IFG|=0X00;//清端口2零号引脚的中断标志}/****************************//初始化LED,将P10、P11定义为输出口,并将LED灯初始化为灭*****************************/voidInitialLed(void){P1SEL&=~0X03;P1DIR|=0x03;//P10、P11定义为输出RLED=1;YLED=0;}/****************************//中断处理函数*****************************/#pragmavector=P2INT_VECTOR__interruptvoidP2_ISR(void){if(P2IFG0)//按键中断{RLED=!RLED;YLED=!YLED;P2IFG=0;Delay(100);P2IF=0;//清中断标志}}/***************************//主函数***************************/voidmain(void){InitalLed();InitKeyINT();//调用初始化函数while(1){}}六、实验结果和过程截图七、实验小结1.当按键KEY按下时,因为KEY所对应的I/O口为P2_0,所以P2端口将会发出一个中断请求,并自动将P2IFG寄存器对应位(即D0位)置1,等待CPU响应;2.CPU在执行完一条指令之后就会检测是否有中断请求,如果检测到中断请求并且IEN2的D1位为1和P2IEN的D0为1时,对应的中断使能位中断使能,则根据中断类型号获得中断向量,根据中断向量得到中断服务子程序的地址,执行终端服务子程序。当中断服务子程序执行完毕后返回执行原来的程序。实验三CC2530定时器的使用一、实验目的1.熟悉cc2530单片机定时器基本功能;2.掌握cc2530单片机定时器1的配置方法。二、实验内容以查询方式查看Timer1是否有溢出,让它来控制LED1、LED2灯以1s的时间间隔轮流闪烁。三、相关知识点1.cc2530定时器的基本功能:实质是实现计数,在每个活动时钟边沿递增或者递减。活动时钟边沿由寄存器位CLKCON.TICKSPD定义,它设置全球系统始终的划分,提供了从0.25MHz到32MHz的不同的时钟标签频率(可以使用32MHzXOSC作为时钟源);2.cc2530定时器T1的基本功能:定时器T1是一个独立的16位定时器,支持典型的定时/计数功能,比如输入捕获,输出比较和PWM功能。定时器有五个独立的捕获/比较通道。每个通道定时器使用一个I/O引脚。定时器用于范围广泛的控制和测量应用,可用的五个通道的正计数/倒计数模式将允许诸如电机控制应用的实现;3.定时器T1的寄存器,由以下几个组成:T1CTL-定时器1控制T1STAT-定时器1状态T1CNTH-定时器1计数高位T1CNTL-定时器1计数地位T1CCTLn-定时器1通道n捕获/比较控制T1CCnH-定时器1通道n捕获/比较高位值T1CCnL-定时器1通道n捕获/比较低位值四、实验步骤1.启动IAR;2.新建一个IAR工作区,或者打开一个IAR工作区,新建project;3.根据预备知识编写程序,编译程序;4.设置项目参数;5.连接CCDebugger调试器和ZigBee模块,下载程序,测试其运行效果;6.分析总结代码。五、实验源程序//*******************************************定时器T1控制闪灯实验(T1计数溢出两次小灯轮闪一次)//*******************************************#

1 / 47
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功