物联网实验报告资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南林业科技大学
课程设计实验报告
专业班级:2013级计算机科学与技术2班
授课教师:***
学生姓名:***
学生学号:********
实验一
继电器闪烁
一.实验目的:学会使用修改程序,使得继电器按要求闪烁。二.内容:修改以下程序,使得继电器的绿灯闪一下,红灯闪五下#include
typedef unsigned int uint ;
typedef unsigned char uchar;
//定义控制灯的端口
#define RLED P1_0 //定义LED1为P10口控制
#define YLED P1_1 //定义LED2为P11口控制
//函数声明
void Delay(uint); //延时函数
void Initial(void); //初始化P0口
/****************************
//延时
*****************************/
void Delay(uint n)
{
uchar i;
while(n--)
{
for(i=200;i>0;i--);
}
}
/****************************
2
初始化程序
*****************************/
void Initial(void)
{
P1DIR |= 0x03; //P10、P11定义为输出
RLED = 1;
YLED = 1; //LED灭
}
/***************************
//主函数
***************************/
void main(void)
{
Initial(); //调用初始化函数
RLED = 0; //LED1
YLED = 0; //LED2
while(1)
{
RLED = 0;
YLED = 1;
Delay(1000);
RLED = 1;
YLED = 0;
Delay(1000);
}
3
}
三.实验记录:
修改好的程序如下:
#include
typedef unsigned int uint ;
typedef unsigned char uchar;
//定义控制灯的端口
#define RLED P1_0 //定义LED1为P10口控制
#define YLED P1_1 //定义LED2为P11口控制
//函数声明
void Delay(uint); //延时函数
void Initial(void); //初始化P0口
/****************************
//延时
*****************************/
void Delay(uint n)
{
uchar i;
while(n--)
{
for(i=200;i>0;i--);
}
}
/****************************
初始化程序
4
*****************************/
void Initial(void)
{
P1DIR |= 0x03; //P10、P11定义为输出
RLED = 1;
YLED = 1; //LED灭
}
/***************************
//主函数
***************************/
void main(void)
{
uint i;
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);
5
RLED = 1;
YLED = 0;
Delay(1000);
}
RLED = 0;
YLED = 0;
Delay(1000);
}
}
实验显示结果:继电器的绿灯闪一下,红灯闪五下,一直循环着.整个过程中所有仪器都正常。
6
四.实验心得:通过这次的实验,利用C语言将程序修改,学会使用接口编程,学会使用IAR8.10与CC2530接口编程,重新温习for循环语句,掌握继电器的连接方式及工作原理
7
实验二
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协议的具体实现细节,只需关心一个核心的问题:应用程序数据从哪里来到哪里去。
下面举一个例子,当用户应用程序需要进行数据通信时,需要按照如下步骤实现:
8