无线传感网技术与应用报告Word格式.docx

上传人:b****6 文档编号:18156011 上传时间:2022-12-13 格式:DOCX 页数:14 大小:20.36KB
下载 相关 举报
无线传感网技术与应用报告Word格式.docx_第1页
第1页 / 共14页
无线传感网技术与应用报告Word格式.docx_第2页
第2页 / 共14页
无线传感网技术与应用报告Word格式.docx_第3页
第3页 / 共14页
无线传感网技术与应用报告Word格式.docx_第4页
第4页 / 共14页
无线传感网技术与应用报告Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

无线传感网技术与应用报告Word格式.docx

《无线传感网技术与应用报告Word格式.docx》由会员分享,可在线阅读,更多相关《无线传感网技术与应用报告Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

无线传感网技术与应用报告Word格式.docx

3.4调试接口3

3.5无线设备3

四、DS18B204

4.1DS18B20工作原理4

4.2DS18B20的主要特性5

五、软件设计方案5

5.1程序流程图5

5.2所需用到的部分C语言程序7

5.3实验过程及结果12

六、总结13

七、参考文献13

一、设计题目

本次的设计题目要求是基于DS18B20的温度采集显示系统,

该系统要求包含温度采集模块、温度显示模块等。

其中温度采集

模块所选用的是DS18B20数字温度传感器进行温度采集,温度显

示模块用液晶显示屏显示。

二、硬件设计方案

CC2530结合了领先的RF收发器的优良性能,业界标准的增

强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大

的功能。

CC2530有四种不同的闪存版本:

CC2530F32/64/128/256,

分别具有32/64/128/256KB的闪存。

CC2530具有不同的运行模

式,使得它尤其适应超低功耗要求的系统。

运行模式之间的转换时间短进一步确保了低能源消耗。

其引脚如图1.1所示。

图2.1CC2530芯片

2.2芯片概述

如图1.2所示是CC2530的方框图,图中模块大致可以分为三类:

CPU和内存相关的模块;

外设、时钟和电源管理相关的模块,以及无线电相关的模块。

图2.2CC2530的方框图

三、CC2530模块说明

3.1CPU和内存

CC253x芯片系列中使用的8051CPU内核是一个单周期的

8051兼容内核。

它有三种不同的内存访问总线(SFR,DATA和

CODE/XDATA),单周期访问SFR,DATA和主SRAM。

它还包括一个

调试接口和一个18输入扩展中断单元。

3.2中断控制器

总共提供了18个中断源,分为六个中断组,每个与四个中

断优先级之一相关。

当设备从活动模式回到空闲模式,任一中断

服务请求就被激发。

一些中断还可以从睡眠模式(供电模式1-3)

唤醒设备。

3.3外设

CC2530包括许多不同的外设,允许应用程序设计者开发先

进的应用。

3.4调试接口

执行一个专有的两线串行接口,用于内电路调试。

通过这个

调试接口,可以执行整个闪存存储器的擦除、控制使能哪个振荡

器、停止和开始执行用户程序、执行8051内核提供的指令、设

置代码断点,以及内核中全部指令的单步调试。

使用这些技术,

可以很好地执行内电路的调试和外部闪存的编程。

设备含有闪存存储器以存储程序代码。

闪存存储器可通过用

户软件和调试接口编程。

闪存控制器处理写入和擦除嵌入式闪存

存储器。

闪存控制器允许页面擦除和4字节编程。

3.5无线设备

CC2530具有一个IEEE802.15.4兼容无线收发器。

RF内核

控制模拟无线模块。

另外,它提供了MCU和无线设备之间的一个

接口,这使得可以发出命令,读取状态,自动操作和确定无线设

备事件的顺序。

无线设备还包括一个数据包过滤和地址识别模块。

四、DS18B20

4.1DS18B20工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的

温度值的位数因分辨率不同而不同,且温度转换时的延时时间由

2s减为750ms。

DS18B20测温原理如图所示。

图3.1中低温度系

数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信

号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,

所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器

被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶

振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,

温度寄存器的值将加1,计数器1的预置将重新被装入,计数器

1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

斜率累加器用于补偿和修正测

温过程中的非线性,其输出用于修正计数器1的预置值。

图3.1DS18B20测温原理图

4/17

4.2DS18B20的主要特性

①、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

②、测温范围-55℃~+125℃,固有测温误差1℃。

③、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。

④、工作电源:

3.0~5.5V/DC(可以数据线寄生电源)

⑤、在使用中不需要任何外围元件

⑥、测量结果以9~12位数字量方式串行传送

⑦、不锈钢保护管直径Φ6

⑧、适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温

⑨、标准安装螺纹M10X1,M12X1.5,G1/2"

任选

⑩、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。

五、软件设计方案

5.1程序流程图

程序流程图如图4.1所示。

5/17

开始

初始化,设置

常量

调用DS18B20初

始化子程序

读取温度转换

调用数据处理

子程序

生成显示码

显示温度值

图4.1程序流程图

6/17

5.2所需用到的部分C语言程序

(1)Main()

/***************************************************************

*文件名:

main.c

*功能描述:

DS18B20温度传感器值测试程序

*日期:

2013/11/15

*作者:

*******************************************************

*********/

#include"

smartrfeb.h"

#include<

stdio.h>

boolbread;

intcount;

externuint16readTemp();

/******************************************************

*************************

*函数名称:

CalcTempture

*

*功能描述:

DS18B20温湿度转换计算函数

*入口参数:

val:

温度读取值

***********************/

//

voidCalcTempture(uint16val)

{

uint16tmp;

floattemp;

chars[16];

temp=((float)val)*0.625;

//放大10倍

7/17

tmp=(uint16)temp;

sprintf(s,(char*)"

:

%d.%dC"

((uint16)(tmp/10)),((uint16)(tmp%10)));

PutString(50,35,s);

//在LCD屏上显示湿度值

if(tmp>

=220&

&

tmp<

240){LED1=1;

LED2=0;

LED3=0;

LED4=0;

}if(tmp>

=240&

260){LED1=1;

LED2=1;

=260&

280){LED1=1;

LED3=1;

=280&

tmp){LED1=1;

LED4=1;

}

/*******************************************************************************

*函数名称:

main

DS18B20测试主函数

******************************************************************************/

voidmain(void)

SET_CLOCK_SOURCE(CRYSTAL);

//设置主时钟

while((CLKCONSTA&

0xC0)!

=0);

//等待时钟稳

SET_CLOCK_CLKSPD

(1);

SET_CLOCK_TICKSPD(16);

//32M--16分频

=2MHz

TIMER1_CLOCK_DIVIDE(32);

//2M--32分频

=62.5KHz

TIMER_MODE_SELECT(1,T_MODE_FREE);

//定时器1自由计数65535/(62.5*1000)=1.04856秒

8/17

INIT_LED1();

LCD_Init();

//初始化LCD

SetBackLight(50);

//设置背光

ClrScreen();

FontSet_cn(1,1);

//设置显示字体

PutString_cn(30,10,"

温度测量"

);

PutString_cn(0,35,"

温度值:

"

FontSet(1,1);

IEN1|=(0x01<

<

1);

//开定时器中断;

EA=1;

//开总中断;

count=0;

IO_DIR_PORT_PIN(1,1,IO_OUT);

IO_DIR_PORT_PIN(1,2,IO_OUT);

IO_DIR_PORT_PIN(1,3,IO_OUT);

IO_DIR_PORT_PIN(2,0,IO_OUT);

LED1=1;

while

(1)

if(bread==1)

bread=0;

CalcTempture(readTemp());

(2)LCD

//========================================================================

//文件名:

LCD_Dis.c

//日期:

2009/02/10

//描述:

MzLH04-12864LCD显示模块驱动V1.0版

//基本功能接口函数集

9/17

//参考:

//版本:

//2009/02/10FirstversionMzDesign

hal.h"

#defineDis_X_MAX

128-1

#defineDis_Y_MAX

64-1

unsignedcharX_Witch=6;

unsignedcharY_Witch=10;

unsignedcharX_Witch_cn=16;

unsignedcharY_Witch_cn=16;

unsignedcharDis_Zero=0;

//#defineSPI_RES

P0_0

#define

SPI_SCK

P1_5

SPI_SDA

P1_6

SPI_CS

P1_4

voidLcdPortInit()

IO_DIR_PORT_PIN(0,0,IO_OUT);

IO_DIR_PORT_PIN(1,4,IO_OUT);

IO_DIR_PORT_PIN(1,5,IO_OUT);

IO_DIR_PORT_PIN(1,6,IO_OUT);

//函数:

voidLCD_Init(void)

//描述:

LCD初始化程序,主要在里面完成端口初始化以及LCD模块的复

//参数:

//返回:

//备注:

10/17

//版本:

//==============================================================

==========

voidTimeDelay(unsignedintTimers)

unsignedinti;

while(Timers)

Timers--;

for(i=0;

i<

100;

i++);

voidLCD_Init(void)

LcdPortInit();

//SS和SCK预先设置为高电平

SPI_SCK=1;

SPI_CS=1;

//复位LCD模块

//SPI_RES=0;

TimeDelay(50);

//保持低电平大概2ms左右

//SPI_RES=1;

TimeDelay(80);

//延时大概10ms左右

11/17

5.3实验过程及结果

如图5.3.1所示,将程序按照一定的步骤下载到开发板上。

图5.3.1程序下载

其结果显示如图5.3.2所示。

用手捏住温度传感器,可以观

察到温度值逐渐上升,松手,温度值逐步下降。

图5.3.2温度测量结果显示

12/17

六、总结

七、参考文献

【1】王小强,欧阳俊,黄宁淋,ZigBee无线传感器网络设计与实现【M】.北京:

化学工业出版社,2014.

【2】李文仲,等.ZigBee2007/PRO协议栈实验与实践【M】.北

京:

北京航空航天大学出版社,2009.

【3】瞿雷,刘盛德,胡咸斌,ZigBee技术及应用【M】.北京:

北京航空航天大学出版社,2007.

13/17

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1