《基于wifi模块和单片机的无线数据传输附代码》由会员分享,可在线阅读,更多相关《基于wifi模块和单片机的无线数据传输附代码(31页珍藏版)》请在金锄头文库上搜索。
1、1南京工业大学南京工业大学 计算机科学与技术学院计算机科学与技术学院Project3 课程设计2014-2015 学年第二学期班 级: 浦电子 1203 组员姓名:组员学号:指导老师:武晓光,胡方强,包亚萍袁建华,毛钱萍 2015 年 7 月 8 日2目 录第 1 章 阶段任务第二章 基于 WIFI 模块的无线数据传输的原理1.1 时钟模块1.2 最小单片机系统的原理1.3 温度传感器 DS18B201.4 串口1.5 WIFI 模块第三章 基于 WIFI 模块的无线数据传输的实现2.1 WIFI 模块设置2.2 串口部分设置2.3 调试与运行过程第四章 程序与框图第五章 小结3第一章 阶段任
2、务: (1 天)1、了解课程所给的 WIFI 模块,并详细研读其说明书2、复习单片机知识(2 天)1、了解温湿度传感器模块,并设计其硬件模块2、了解 lcd1602 显示模块,并设计其硬件模块第一阶段(2 天)1、设计整合电路:5v 转 3.3v 电路2、串口通讯电路第二阶段(4 天) 1、链接并完成整体电路图的设计,并检查2、焊接电路并调试。第三阶段(3 天)1、根据设计的硬件模块设计程序(1):温湿度传感器模块(2):串口通讯模块(3):WIFI 传输与接收模块(4):显示电路模块(3 天)2、将设计好的模块程序烧录到单片机内,调试第四阶段:2 天(2 天)写报告4第二章 基于 WIFI
3、模块的无线数据传输的原理 时钟 DS1302 模块: 电路原理图:DS1302 与单片机的连接也仅需要 3 条线:CE 引脚、SCLK 串行时钟引脚、I/O 串行数据引脚,Vcc2 为备用电源,外接 32.768kHz 晶振,为芯片提供计时脉冲。读写时序说明:DS1302 是 SPI 总线驱动方式。它不仅要向寄存器写入控制字,还需要读取 相应寄存器的数据。控制字总是从最低位开始输出。在控制字指令输入后的下一个 SCLK 时 钟的上升沿时,数据被写入 DS1302,数据输入从最低位( 0 位)开始。同样,在紧跟 8 位的控制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302 的数据,读
4、出的数据也是从最低位到最高位。数据读写时序如图56单片机最小系统的原理:说明 复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变“的性质,可以知道,当系统一 上电,RST 脚将会出现高电平,并且,这个高电平持续的时间由电路的 RC 值来决定.典型的 51 单片机当 RST 脚的高电平持续两个机器周期以上就将复位,所以,适当组合 RC 的取值 就可以保证可靠的复位.晶振电路:典型的晶振取 11.0592MHz(因为可以准确地得到 9600 波特率和 19200 波特 率,用于有串口通讯的场合)/12MHz(产生精确的 uS 级时歇,方便定时操作) 单片机:一片 AT89S51/52 或其
5、他 51 系列兼容单片机 特别注意:对于 31 脚(EA/Vpp),当接高电平时,单片机在复位后从内部 ROM 的 0000H 开 始执行;当接低电平时,复位后直接从外部 ROM 的 0000H 开始执行.温度传感器 DS18B20 的原理(连接到单片机最小系统,并将温度发送给 WIFI 模块):3.1.1 DS18B20 性能特点 (1) 独特的单线接口方式,只需一个接口引脚即可通信;7(2) 每一个 DS18B20 都有一个唯一的 64 位 ROM 序列码;(3) 在使用中不需要任何外围元件;(4) 可用数据线供电,电压范围:+3.0V-+5.5 V;(5) 测温范围:-55 -+125,
6、在-10-+85范围内精度为+0.5,分辨率为 0.0625;(6) 通过编程可实现 9-12 位的数字读数方式。温度转换成 12 位数字信号所需时间最长为750ms,而在 9 位分辩模式工作时仅需 93.75ms;(7) 用户可自设定非易失性的报警上下限值;(8) 告警搜索命令可识别和定位那些超过报警限值的 DS18B20;(9) 多个 DS18B20 可以并联在惟一的三线上,实现多点测温;(10)电源极性接反时,DS18B20 不会因发热而烧毁,但不能正常工作;3.1.2 DS18B20 内部存储器及温度数据格式对于 DS18B20 内部存储器结构(如图 3.1),它包括一个暂存 RAM
7、和一个非易失性电可擦除 EERAM,后者存放报警上下限 TH、TL。当改变 TH、T L 中的值时,数据首先被写进暂存器的第二、三字节中,主机可再读出其中内容进行验证。如果正确,当主机发送复制暂存器命令,暂存器的第二、三字节将被复制到 TH、TL 中,这样处理有利于确保该数据在单总线上传输的完整性7。暂存器结构 EERAM 结构THTL结构寄存器图 3.1 DS18B20 结构框图温度低字节 (BYTE0)温度高字节 (BYTE1)上限报警温度 TH(BYTE2)下限报警温度 TL(BYTE3)结构寄存器 (BYTE4)保留 (BYTE5)保留 (BYTE6)保留 (BYTE7)CRC ( B
8、YTE8)8暂存存储器作用是在单线通信时确保数据的完整性,它由 8 字节组成,头两个字节表示测得的温度读数。以 12 位转化为例说明温度高低字节存放形式(温度的存储形式如表3.1)及计算:12 位转化后得到的 12 位数据,存储在 18B20 的两个高低 8 位的 RAM 中,二进制中的前面 5 位是符号位。如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1,再乘于 0.0625 才能得到实际温度8。 表 3.1 温度的存储形式高 8 位SSSSS262524低 8 位232221202-1
9、2-22-32-4S=1 时表示温度为负,S=0 时表示温度为正,其余低位以二进制补码形式表示,最低位为 1 时表示 0.0625 。温度/数字对应关系如表 3.2 所示。表 3.2 DS18B20 温度/数字对应关系表温度()输出的二进制码对应的十六进制码+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H
10、-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0110 1110FF5EH-25.06251111 1110 0110 1111FF6FH-551111 1100 1001 0000FC90HDS18B20 有六条控制命令,如表 3.3 所示: 表 3.3 控制命令指 令约定代码操 作 说 明温度转换44H启动 DS18B20 进行温度转换读暂存器BEH读暂存器 9 个字节内容写暂存器4EH将数据写入暂存器的 TH、TL 字节9复制暂存器48H把暂存器的 TH、TL 字节写到 E2RAM 中重新调 E2RAMB8H把 E2RAM 中的 TH、TL 字
11、节写到暂存器 TH、TL 字节读电源供电方式B4H启动 DS18B20 发送电源供电方式的信号给主 CPU3.1.3 DS18B20 操作命令及时序特性DS18B20 对读写的数据位有着严格的时序要求,它是在一根 I/O 线上读写数据的。同时,DS18B20 为了保证各位数据传输的正确性和完整性,它有着严格的通信协议。DS18B20 每一步操作都要遵循严格的工作时序和通信协议,如主机控制 DS18B20 完成温度转换这一过程,根据 DS18B20 的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对DS18
12、B20 进行预定的操作 。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始的,如果要单总线器件送回数据,在进行写命令后,主机需启动读时序完成数据的接收。另外,数据和命令的传输都是低位在先9。(1)DS18B20 的复位时序主机控制 DS18B20 完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480s 的低电平) ,接着主机释放总线进入接收状态,DS18B20 在检测到 I/0 引脚上的上升沿之后,等待 1560s,然后发出存在脉冲(60240)s 的低电平。如图 3.2
13、所示。(2)DS18B20 的读时序DS18B20 的读时序分为读 0 时序和读 1 时序两个过程。DS18B20 的读时序是从主机把单总线拉低后,在 15 秒之内就得释放单总线,从而让 DS18B20 把数据传输到单总线上。DS18B20 完成一个读时序的过程,至少需要 60s。如图 3.3 所示。图 3.2 DS18B20 的复位时序10图 3.3 DS18B20 的读时序(3)DS18B20 的写时序DS18B20 的写时序同读时序一样,仍然分为写 0 时序和写 1 时序两个过程。DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线要被拉低至少60s,保证 D
14、S18B20 能够在 15s 到 45s 之间能正确地采样 I/O 总线上的“0”电平,当要写 1 时序时,单总线被拉低之后,在 15s 之内就得释放单总线。如图 3.4 所示。图 3.4 DS18B20 的写时序由 DS18B20 的通讯协议得知,主机控制 DS18B20 完成温度转换的过程必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,从而对 DS18B20 进行预定的操作。复位要求主 CPU 将数据线下拉500s,然后释放,DS18B20 收到信号后等待 1660s 左右,然后发出 60240s 的存在低脉冲,主
15、 CPU 收到此信号表示复位成功。11串口部分(让(让 WIFI 与电脑,单片机进行通讯)与电脑,单片机进行通讯)串口原理图:80C51 串行口的结构图:121SBUF发送控制器接收控制器移位寄存器控制门TIRIATXDRXD去串口中断SMOD01TH1TL1216SBUFT1溢出率80C51 串行口的工作方式 : 方式 1 方式 1 是 10 位数据的异步通信口。TXD 为数据发送引脚,RXD 为数据接收引脚,传 送一帧数据的格式如图所示。其中 1 位起始位,8 位数据位,1 位停止位。停 止 位数据位8位起 始 位LSBMSB空 闲空 闲D0D71帧共10位1、方式 1 输出D0 D1 D
16、2 D3 D4 D5 D6 D7写入SBUF停止位TXDTI(中断标志)起始方式 1 输入D0 D1 D2 D3 D4 D5 D6 D7停止位RXDRI(中断标志)起始位采样脉冲用软件置 REN 为 1 时,接收器以所选择波特率的 16 倍速率采样 RXD 引脚电平,检测到 RXD 引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始 接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输 入移位寄存器最左边时,控制电路进行最后一次移位。当 RI=0,且 SM2=0(或接收到的 停止位为 1)时,将接收到的 9 位数据的前 8 位数据装入接收 SBUF,第 9 位(停止位)进 入 RB8,并置 RI=1,向 CPU