基于WIFI模块和单片机的无线数据传输(附代码)Word格式.docx
《基于WIFI模块和单片机的无线数据传输(附代码)Word格式.docx》由会员分享,可在线阅读,更多相关《基于WIFI模块和单片机的无线数据传输(附代码)Word格式.docx(38页珍藏版)》请在冰豆网上搜索。
温湿度传感器模块
(2):
串口通讯模块
(3):
WIFI传输与接收模块
(4):
显示电路模块
(3天)2、将设计好的模块程序烧录到单片机内,调试
第四阶段:
2天 (2天)写报告
第二章基于WIFI模块的无线数据传输的原理1.1时钟DS1302模块:
电路原理图:
DS1302与单片机的连接也仅需要3条线:
CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。
读写时序说明:
DS1302是SPI总线驱动方式。
它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。
控制字总是从最低位开始输出。
在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(
0位)开始。
同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302
的数据,读出的数据也是从最低位到最高位。
数据读写时序如图
1.2单片机最小系统的原理:
说明
复位电路:
由电容串联电阻构成,由图并结合"
电容电压不能突变"
的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的
51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就
可以保证可靠的复位.
晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)
单片机:
一片AT89S51/52或其他51系列兼容单片机
特别注意:
对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;
当接低电平时,复位后直接从外部ROM的0000H开始执行.
1.3温度传感器DS18B20的原理(连接到单片机最小系统,并将温度发送给
WIFI模块):
3.1.1DS18B20性能特点
(1)独特的单线接口方式,只需一个接口引脚即可通信;
(2)每一个DS18B20都有一个唯一的64位ROM序列码;
(3)在使用中不需要任何外围元件;
(4)可用数据线供电,电压范围:
+3.0V-+5.5V;
(5)测温范围:
-55℃-+125℃,在-10℃-+85℃范围内精度为+0.5℃,分辨率为0.0625℃;
(6)通过编程可实现9-12位的数字读数方式。
温度转换成12位数字信号所需时间最长为
750ms,而在9位分辩模式工作时仅需93.75ms;
(7)用户可自设定非易失性的报警上下限值;
(8)告警搜索命令可识别和定位那些超过报警限值的DS18B20;
(9)多个DS18B20可以并联在惟一的三线上,实现多点测温;
(10)电源极性接反时,DS18B20不会因发热而烧毁,但不能正常工作;
3.1.2DS18B20内部存储器及温度数据格式
对于DS18B20内部存储器结构(如图3.1),它包括一个暂存RAM和一个非易失性电可擦除EERAM,后者存放报警上下限TH、TL。
当改变TH、TL中的值时,数据首先被写进暂存器的第二、三字节中,主机可再读出其中内容进行验证。
如果正确,当主机发送复制暂存器命令,暂存器的第二、三字节将被复制到TH、TL中,这样处理有利于确保该数据在单总线上传输的完整性[7]。
暂存器结构EERAM 结构
温度低字节 (BYTE0)
温度高字节 (BYTE1)
TH
上限报警温度TH(BYTE2)
下限报警温度TL(BYTE3)
TL
结构寄存器 (BYTE4)
结构寄存器
保留
(BYTE5)
(BYTE6)
(BYTE7)
CRC(BYTE8)
图3.1DS18B20结构框图
暂存存储器作用是在单线通信时确保数据的完整性,它由8字节组成,头两个字节表示测得的温度读数。
以12位转化为例说明温度高低字节存放形式(温度的存储形式如表3.1)及计算:
12位转化后得到的12位数据,存储在18B20的两个高低8位的RAM中,二进制中的前面5位是符号位。
如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625
即可得到实际温度;
如果温度小于0,这5位为1,测到的数值需要取反加1,再乘于0.0625
才能得到实际温度[8]。
高8位
S
26
25
24
低8位
23
22
21
20
2-1
2-2
2-3
2-4
表3.1温度的存储形式
S=1时表示温度为负,S=0时表示温度为正,其余低位以二进制补码形式表示,最低位为1时表示0.0625℃。
温度/数字对应关系如表3.2所示。
表3.2DS18B20温度/数字对应关系表
温度(℃)
输出的二进制码
对应的十六进制码
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010001
0191H
+10.125
0000000010100010
00A2H
+0.5
0000000000001000
0008H
0000000000000000
0000H
-0.5
1111111111111000
FFF8H
-10.125
1111111101101110
FF5EH
-25.0625
1111111001101111
FF6FH
-55
1111110010010000
FC90H
DS18B20有六条控制命令,如表3.3所示:
指
令
约定代码 操
作
说
明
表3.3控制命令
温度转换
44H
启动DS18B20进行温度转换
读暂存器
BEH
读暂存器9个字节内容
写暂存器
4EH
将数据写入暂存器的TH、TL字节
复制暂存器
48H
把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM
B8H
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
读电源供电方式
B4H
启动DS18B20发送电源供电方式的信号给主CPU
3.1.3DS18B20操作命令及时序特性
DS18B20对读写的数据位有着严格的时序要求,它是在一根I/O线上读写数据的。
同时,DS18B20为了保证各位数据传输的正确性和完整性,它有着严格的通信协议。
DS18B20每一步操作都要遵循严格的工作时序和通信协议,如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始的,如果要单总线器件送回数据,在进行写命令后,主机需启动读时序完成数据的接收。
另外,数据和命令的传输都是低位在先[9]。
(1)DS18B20的复位时序
主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为
480µ
s的低电平),接着主机释放总线进入接收状态,DS18B20在检测到I/0引脚上的上升沿之后,等待15~60µ
s,然后发出存在脉冲(60~240)µ
s的低电平。
如图3.2所示。
(2)DS18B20的读时序
DS18B20的读时序分为读0时序和读1时序两个过程。
DS18B20的读时序是从主机把单总线拉低后,在15秒之内就得释放单总线,从而让DS18B20把数据传输到单总线上。
DS18B20完成一个读时序的过程,至少需要60µ
s。
如图3.3所示。
图3.2DS18B20的复位时序
图3.3DS18B20的读时序
(3)DS18B20的写时序
DS18B20的写时序同读时序一样,仍然分为写0时序和写1时序两个过程。
DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60µ
s,保证DS18B20能够在15µ
s到45µ
s之间能正确地采样I/O总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15µ
s之内就得释放单总线。
如图3.4所示。
图3.4DS18B20的写时序
由DS18B20的通讯协议得知,主机控制DS18B20完成温度转换的过程必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,从而对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500µ
s,然后释放,DS18B20收到信号后等待16~60µ
s左右,然后发出60~240µ
s的存在低脉冲,主CPU收到此信号表示复位成功。
1.4串口部分(让WIFI与电脑,单片机进行通讯)
串口原理图:
80C51串行口的结构图:
A
TXD
SBUF
控制门
TH1 TL1
发送控制器
TI
去串口中断
1
÷
16
2
≥1
T1溢出率
SMOD
接收控制器
RI
RXD
移位寄存器
80C51串行口的工作方式:
方式1
方式1是10位数据的异步通信口。
TXD为数据发送引脚,RXD为数据接收引脚,传
1帧共10位
空
闲
起
始位
数据位8位
停
止位
D0
D7
L