【精品】物联网实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
物联网实验报告
中南林业科技大学课程设计实验报告
专业班级:2013级计算机科学与技术2班
授课教师:张艳
学生姓名:陆焕丽
学生学号:20134636
实验一
继电器闪烁
一.实验目的:学会使用修改程序,使得继电器按要求闪烁。二.内容:修改以下程序,使得继电器的绿灯闪一下,红灯闪五下#include
typedefunsignedintuint;
typedefunsignedcharuchar;
//定义控制灯的端口
#defineRLEDP1_0//定义LED1为P10口控制#defineYLEDP1_1//定义LED2为P11口控制//函数声明
voidDelay(uint);//延时函数
voidInitial(void);//初始化P0口
/****************************
//延时
*****************************/ voidDelay(uintn)
{
uchari;
while(n--)
{
for(i=200;i>0;i--);
}
}
/****************************
初始化程序
*****************************/ voidInitial(void)
{
P1DIR|=0x03;//P10、P11定义为输出RLED=1;
YLED=1;//LED灭
}
/***************************
//主函数
***************************/ voidmain(void)
{
Initial();//调用初始化函数
RLED=0;//LED1
YLED=0;//LED2
while(1)
{
RLED=0;
YLED=1;
Delay(1000);
RLED=1;
YLED=0;
Delay(1000);
}
}
三.实验记录:
修改好的程序如下:
#include
typedefunsignedintuint;
typedefunsignedcharuchar;
//定义控制灯的端口
#defineRLEDP1_0//定义LED1为P10口控制#defineYLEDP1_1//定义LED2为P11口控制//函数声明
voidDelay(uint);//延时函数
voidInitial(void);//初始化P0口
/****************************
//延时
*****************************/ voidDelay(uintn)
{
uchari;
while(n--)
{
for(i=200;i>0;i--);
}
}
/****************************
初始化程序
*****************************/ voidInitial(void)
{
P1DIR|=0x03;//P10、P11定义为输出RLED=1;
YLED=1;//LED灭
}
/***************************
//主函数
***************************/ voidmain(void)
{
uinti;
Initial();//调用初始化函数
RLED=0;//LED1
YLED=0;//LED2
while(1)
{
RLED=0; YLED=1; Delay(1000); for(i=0;i<5;i++) {
RLED=0; YLED=0; Delay(1000); RLED=1; YLED=0; Delay(1000);
}
RLED=0; YLED=0; Delay(1000);
}
}
实验显示结果:继电器的绿灯闪一下,红灯闪五下,一直循环着.整个过
程中所有仪器都正常。
四.实验心得:通过这次的实验,利用C语言将程序修改,学会使用接口编程,学会使用IAR8.10与CC2530接口编程,重新温习for循环语句,掌握继电器的连接方式及工作原理
实验二
Zigbee无线传感网开发入门
一、实验内容:
1、zigbee协议栈使用简介
协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发;协议栈是协议的具体实现形式,通俗的理解为用代码实现的函数库,以便于开发人员调用。
ZigBee的协议分为两部分,IEEE802.15.4定义了物理层和MAC层技术规范,ZigBee 联盟定义了网络层、安全层和应用层技术规范,ZigBee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些应用层API,供用户调用。
注意:虽然协议是统一的,但是协议的具体实现形式是变化的,即不同厂商提供的协议栈是有区别的,例如:函数名称和参数列表可能有区别,用户在选择协议栈以后,需要学习具体的例子,查看厂商提供的Demo演示程序和说明文档来学习各个函数的使用方式,进而快速的使用协议栈进行应用程序的开发工作。
使用ZigBee协议栈进行开发的基本思路可以概括为如下三点:
1、用户对于ZigBee无线网络的开发就简化为应用层的c语言程序开发,用户不需要深入研究复杂的ZigBee协议栈;
2、ZigBee无线传感器网络中数据采集,只需用户在应用层加入传感器的读取函数即可;
3、如果考虑节能,可以根据数据采集周期进行定时,定时时间到就唤醒ZigBee的终端节点,终端节点唤醒后,自动采集传感器数据,然后将数据发送给路由器或者直接发给协调器。
既然ZigBee协议栈已经实现了ZigBee协议,那么用户就可以使用协议栈提供的API 进行应用程序的开发,在开发过程中完全不必关心ZigBee协议的具体实现细节,只需关心一个核心的问题:应用程序数据从哪里来到哪里去。
下面举一个例子,当用户应用程序需要进行数据通信时,需要按照如下步骤实现:(1)调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入;
(2)发送设备调用协议栈提供的无线数据发送函数,实现数据的发送;
(3)接收设备调用协议栈提供的无线数据接收函数,实现数据的正确接收。
因此,使用协议栈进行应用程序开发时,开发者不需要关心协议栈是具体怎么实现的(例如,每个函数是怎么实现的,每条函数代码是什么意思等),只需要知道协议栈提供的函数实现什么样的功能,会调用相应的函数来实现自己的应用需求即可。