基于WIFI模块和单片机的无线数据传输附代码_第1页
基于WIFI模块和单片机的无线数据传输附代码_第2页
基于WIFI模块和单片机的无线数据传输附代码_第3页
基于WIFI模块和单片机的无线数据传输附代码_第4页
基于WIFI模块和单片机的无线数据传输附代码_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档南京工业大学计算机科学与技术学院Project3课程设计2014-2015学年第二学期班 级:浦电子1203组员姓名:组员学号:指导老师: 武晓光,胡方强,包亚萍袁建华,毛钱萍2015年7月8日精品文档第一章阶段任务第一章1.4基于WIFI模块的无线数据传输的原理 时钟模块最小单片机系统的原理温度传感器DS18B20串口1.5 WIFI模块第三章2.1基于WIFI模块的无线数据传输的实现WIFI模块设置2.2串口部分设置2.3调试与运行过程第四章程序与框图第五章小结2欢迎下载精品文档第一章阶段任务:第一阶段(1天)1、了解课程所给的WIFI模块,并详细研读其说明书2、

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天)写报告3欢迎下载精品文档第二章 基于 WIFI 模块的无线数据传输的原理1.1时钟 DS1302 模块:电路原理图:DS1302与单片机的连接

3、也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。读写时序说明:DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取 相应寄存器的数据。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图XIX2P3. 7P3. 6CF8IDS1302*TP3. 5SCLKV cci1GNDVcc

4、Lor32. 768kHz4欢迎下载精品文档蚩字节读和fLfWUU WW1JU1 JULR/W AQAl A2 A3A4R1h DCDI D203 D4D5 06 07 h单字节写吧换AQ A1A2 AJMF?/c13D1 02D3皿05D6 t17 -图7数据读均时睜5欢迎下载说明复位电路:由电容串联电阻构成,由图并结合”电容电压不能突变”的性质,可以知道,当系统 一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可 以保证可靠的复位.晶振电路:典型的晶振取11.0592M

5、Hz(因为可以准确地得到9600波特率和19200波特率,用 于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)单片机:一片AT89S51/52或其他51系列兼容单片机特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM勺0000H开始执行;当接低电平时,复位后直接从外部ROM勺0000H开始执行.1.3温度传感器 DS18B20 的原理(连接到单片机最小系统,并将温度发送给WIFI 模块):3.1.1 DS18B20性能特点(1)独特的单线接口方式,只需一个接口引脚即可通信;精品文档1.2单片机最小系统的原理:11r IJH_0592M/12MP

6、l oPIiPl 2Pl 3Pl.4Pl 5Pl 6Pl 7RST/VPDP3.0/RXD宀1厂XDPM2/f而P3.3/INT1P3.47T0P3.5/IXP3.6/WP3.7/RDXTAL2XTAL1GNDvccPO 0P0.1P0.2PO 3P0.4P0.5P0.6 PUTEA/VPP-ETPQG-.PSENP2.7P2.6PZ5P24P2.3P2.2P21P2.036353433一 J31d二T程序底rac应a: 3R (JM-开始扭厅24 EA=O程二 扌寺-以.-4?外部 十ROM开368g101115117181P201011振6欢迎下载精品文档每一个DS18B20都有一个唯一的

7、64位ROM序列码;(3)在使用中不需要任何外围元件;可用数据线供电,电压范围:+3.0V-+5.5 V;(5)测温范围:-55C-+125C,在-10C-+85C范围内精度为+0.5C,分辨率为0.0625C;(6)通过编程可实现9-12位的数字读数方式。温度转换成12位数字信号所需时间最长为750ms,而在9位分辩模式工作时仅需93.75ms;(7)用户可自设定非易失性的报警上下限值;(8)告警搜索命令可识别和定位那些超过报警限值的DS18B2Q(9)多个DS18B20可以并联在惟一的三线上,实现多点测温;(10)电源极性接反时,DS18B20不会因发热而烧毁,但不能正常工作;3.1.2

8、DS18B20内部存储器及温度数据格式对于DS18B20内部存储器结构(如图3.1),它包括一个暂存RAM和一个非易失性电可 擦除EERAM后者存放报警上下限TH TL。当改变TH T L中的值时,数据首先被写进暂存 器的第二、三字节中,主机可再读出其中内容进行验证。如果正确,当主机发送复制暂存器 命令,暂存器的第二、三字节将被复制到TH TL中,这样处理有利于确保该数据在单总线上传输的完整性7。暂存器结构EERAM结构温度低字节(BYTE0温度咼字节(BYTE1TH上限报警温度TH(BYTE2_.-lb下限报警温度TL(BYTE3TL-结构寄存器(BYTE4结构寄存器保留(BYTE5保留(B

9、YTE6保留(BYTE7CRC(BYTE8)图3.1 DS18B20结构框图7欢迎下载精品文档暂存存储器作用是在单线通信时确保数据的完整性,它由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位232

10、221202-12-22-32-4S=1时表示温度为负,S=0时表示温度为正,其余低位以二进制补码形式表示,最低位为1时表示0.0625C。温度/数字对应关系如表3.2所示。表3.2 DS18B20温度/数字对应关系表温度(C)输出的二进制码对应的十六进制码+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

11、-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字节8欢迎下载精品文档复制暂存器48H把暂存器的TH TL字节写到 ERAM 中重新调ERAMB8H把E2RAM中的TH TL字节写到暂存器TH TL字节读电源供

12、电方式B4H启动DS18B20发送电源供电方式的信号给主CPU3.1.3 DS18B20操作命令及时序特性DS18B20对读写的数据位有着严格的时序要求,它是在一根I/O线上读写数据的。同时,DS18B20为了保证各位数据传输的正确性和完整性,它有着严格的通信协议。DS18B20每一步操作都要遵循严格的工作时序和通信协议,如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM旨令,最后发送RAM旨令,这样才能对DS18B20进行预定的操作 。该 协议定义了几种信号的时序:初始化时序、读时序、

13、写时序。所有时序都是将主机作为主设 备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始 的,如果要单总线器件送回数据,在进行写命令后,主机需启动读时序完成数据的接收。另 外,数据和命令的传输都是低位在先9。(1)DS18B20的复位时序主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480 Q的低电平),接着主机释放总线进入接收状态,DS18B20在检测到1/0引脚上的上升沿之后,等待 1560Q,然后发出存在脉冲(60240) Q的低电平。如图3.2所示。(2)DS18B20的读时序DS18B20的读时序分为读0时序和读1时序两个过程

14、。DS18B20的读时序是从主机把单总线拉低后,在15秒之内就得释放单总线,从而让DS18B20把数据传输到单总线上。DS18B20完成一个读时序的过程,至少需要60阳。如图3.3所示。9欢迎下载卜一主机发出贷位肺最小迫,应菩脉冲*匸心W的复位时它剛图3.2 DS18B20的复位时序精品文档图3.3 DS18B20的读时序(3)DS18B20的写时序DS18B20的写时序同读时序一样,仍然分为写0时序和写1时序两个过程。DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60 s保证DS18B20能够在15阳到45阴之间能正确地采样I/O总线上的0”电平, 当要写1时

15、序 时, 单总线被拉低之后, 在15之内就得释放单总线。如图3.4所示。图3.4 DS18B20的写时序由DS18B20的通讯协议得知,主机控制DS18B20完成温度转换的过程必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM旨令,最后发送RAM旨令,从而对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500然后释放,DS18B20收到信号后等待1660 e左右,然后发出60240 pS的存在低脉冲,主CPU收到此信号表示复位成功。10欢迎下载精品文档1.4串口部分(让 WIFI 与电脑,单片机进行通讯)串口原理图:19552PltMT Plli

16、T P12PB P1+ P15 P16P173NT1IHTOT1沖EAJVPRESETRHDISPEDALE.WP5ETJ二C6II80C51串行口的结构图:11欢迎下载CH VCCV*ranCtT lOUTCJ+RLIHCA BUOUTV-TL谢nOUTTSJKR址曲湖UT14104DPi0nP、I1580C51串行口的工作万式 :方式1方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送 帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。1帧共10位 -停 止 数据位8位位1、方式1输出写入SBUFTI(中断标志)方式1输入RI(中断标志)用软件置R

17、EN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这 一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄 存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF第9位(停止位)进入RB8并置RI=1,向CPU请求中断12欢迎下载精品文档*起始D0D7TXD起始 D0D2XD3XD4XD5XD6XD7停止位RXD停止位LSBMSB位米样脉冲_-;j-_ _-工_:_w_ r_-_-

18、i_-;j-_ /J_ _精品文档始位1位,数据9位(含1位附加的第9位,发送时为SCOh中的TB8接收时为RB8, 停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。1.5WIFI 模块:使用接口:1电源接口系统采用标准电源插座,外径5.5mm内径2.1mm的标准尺寸,内正外负,输入电压范围548V,电流350mA2指示灯ID名称描述1Power设备供电后亮2Ready内部Linux系统启动完成后亮3Li nk网络连接建立后亮4RXD本设备的串口收到数据闪烁5TXD本设备通过串口向外发送数据时闪烁2.3 RS232接口设备

19、的串口为公口(针),RS232电平(可以直接连电脑串口的电平),引脚顺序与计算机的COM口保持一致,与电脑连接时需要用交叉线(2-3交叉,7-8交叉,5-5直连,7-8可以不接但是一定不能直连电脑,否则可能导致工作不正常),一共有6根线有定义,其余悬空。序号名称描述2RXD设备数据接收引脚3TXD设备数据发送引脚5GND信号地8RTS请求发送8CTS清除发送9VCC默认未使用,PCB上有个焊盘跳线,需要 时可以将它与设备的电源输入正极连接,用于给串口传感器供电或者外部通过串口 线给设备供电。13欢迎下载精品文档第三章 基于 WiFi 模块的无线传输的实现2.1 WIFI 模块的设置-JUW W

20、W -仑 http:/to. 10.100.254/ID 54x| +设宜徭快工件换式赳括:订Fli运化複式-数据传需複式. APfiS:Fl柞为按人点樫式怙P;即穆块创逹川IFI礴, 供手机、 笔记社 平楼电脑等苴他SSA相其设蚤洁进入“无銭捋入直谡置”页面O Slaiion蟆式;.IFI作为第端模式STA.即模决加入畀IF跻由器创逹的AIFIM.谨意在设宜粳块; 式前,话先对无蟻勢舖参数进行设昆 栢关设置话进入“无鳗终端设置”页而$擾式选择嗜无线按入点设置噜无线终端设置I ”,吊口踐县它设苴 斷模块管數据传輪桓式透明恃辅模式-确定I取消I济南有人物联网技术有限公司Ji

21、nan USR I0T Co., Ltd. Us .cm14欢迎下载精品文档串口及网络协议设置设置複块应用程序的审口参数尺网络协议卷数口串口目动成萤设置审口自动咸帧Disable 7确建取消15欢迎下载精品文档确定取消2.2 串口部分设置16欢迎下载精品文档2.3 调试:17欢迎下载运行过程:单片机首先运行,然后对DS18B20和DS1302,LCD1602进行初始化,接着对DS18B20和DS1302进行写设置,读取温度和时间,单片机处理数据,将其在LCD1602上显示,单片机进行串口初始化并通过串口程序将温度和时间准备好,等到串口接收到相应的信号,在发送数据。在程序内检测温度,若温度超过设

22、定的值(值可通过终端修改),将发出报警信号。蜂鸣器报警,待温度下降后(可通过终端打开降温系统),蜂鸣器关闭。第五章程序与框图程序:#in clude#in clude#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned int sbit DQ=P2A0; sbit Icde n=P3A4;sbit Icdrs=P3A5; sbit duIa=P2A6;sbit wela=P2A7;/sbit Ied=P1A0; sbitsclk=P1A4; / sbitio=P1A5; / sbitce=P1A6; /18欢迎下载精品文

23、档时钟信号线信号线片选,也是RST精品文档sbit buzz=P2A3;sbit ledle=P2A5;un sig ned int temp,temp1,temp2,temper,xs,flag,a,s,cc;un sig ned char j;uchar code day=1234567;uchar shi,fe n, miao ,nian,y ue,ri;uchar cdflag;uchar code number=0123456789;sbit ACCO = ACCA0; /定义寄存器ACC的零位sbit ACC7 = ACCA7;void delay1( un sig ned int

24、 m)un sig ned int i,j;for(i=m;i0;i-) for(j=110;j0;j-);void delay (un sig ned int m)while(m-);*void In it_DS18B20()un sig ned char x=0;DQ=1;delay(8);DQ=0; delay(80);DQ=1;delay(4);x=DQ; delay(20);uchar ReadO neChar()un sig ned char i=0;19欢迎下载*DS18B20程序un sig ned char dat=O;for(i=8;i0;i-)DQ=O; dat=1;DQ

25、=1;if(DQ) dat|=0 x80;delay(4); return(dat);void Write On eChar( un sig ned char dat) un sig ned char i=0;for(i=8;i0;i-)DQ=0;DQ=dat&0 x01; delay(5);DQ=1; dat=1;void duwe ndu()un sig ned char a=0;un sig ned char b=0;In it_DS18B20();WriteO neChar(Oxcc);WriteO neChar(0 x44); delay(5);In it_DS18B20()

26、;WriteO neChar(Oxcc);Write On eChar(Oxbe); delay(5);a=Read On eChar();b=Read On eChar();temp1=(b4;/个位temp2=a&0 x0f;/小数temp=(b*256+a)4);/整数精品文档20欢迎下载/去除高四位,即正负位xs=temp2*0.0625*10; temper=temp+xs;*void write_com(uchar com)lcdrs=0;P0=com;delay(5);lcde n=1;delay(5);lcde n=0; void write_data(uchar da

27、te) lcdrs=1;P0=date; delay(5); lcde n=1; delay(5); lcde n=0;void cki nit()TMOD=0 x20;设置定时器1为工作方式2TH1=0 xfa;TL1=0 xfa;TR1=1;REN=1;II允许串行接收SM0=0;SM1=1;II工作方式1II SCON=0 x50;PCON=0 x80; II波特率加倍EA=1;ES=1;21欢迎下载精品文档*串口初始化*精品文档*LCD1602初始*/ void Icdi nit()dula=0;wela=0;ledle=0;Icde n=0;write_com(0 x38);writ

28、e_com(0 x0e);write_com(0 x06);write_com(0 x01); write_com(0 x80+0 x10);*/void display()write_com(0 x80+0 x40);write_data( nu mbertemper/100); write_data( nu mbertemp/10);write_data( nu mbertemp%10); write_data(.);write_data( numberxs%10); write_data(C);void fas( un sig ned char dat)ES=0;/串口中断允许位SBUF

29、=dat;while(!TI);TI=0;ES=1;22欢迎下载温度显示精品文档*void fss(un sig ned char *str) uchar b,i;b=strle n(str); for(i=0;i0; i-)io = ACC0; /就是把最低位的数据传输给10sclk = 1; /时钟拉高读走数据sclk = 0; /时钟拉低允许数据变化ACC = =ACC 1; /把ACC右移一位,然后又把最低的一位传送过去/*DS1302读字节*/uchar read_ds1302_byte() /读DS1302一个字节uchar i;for(i=8; i0; i-)ACC = ACC

30、1; /特别说明,读回来的数据是从最低位到最高位。ACC7 = io; /把读回来的数据存到ACC寄存器的最高位,然后在移到最低位sclk = 1;sclk = 0;23欢迎下载精品文档发送字符串函return ACC;/*DS1302写地址数*/void write_ds1302(uchar add, uchar dat)写任意地址,任意数据ce=0; /根据时序图编写sclk=0;ce=1; II片选打开write_ds1302_byte(add);write_ds1302_byte(dat);io=0; II释放总线sclk=0; II时钟释放ce=0; II片选关闭I*DS1302读地

31、址数据返回*Iuchar read_ds1302(uchar add) II读任意地址数据uchar temp;ce=0;sclk=0;ce=1; II片选打开write_ds1302_byte(add); temp=read_ds1302_byte();sclk=0; II时钟释放io=0; II释放总线ce=0; II片选关闭return temp;24欢迎下载精品文档*void dis_sj()uchar th,tl;n ia n=read_ds1302(0 x8d); /年寄存器yue=read_ds1302(0 x89); /月寄存器ri=read_ds1302(0 x87); /日

32、寄存器write_com(0 x80+0 x08); /th=nian4;write_data( nu mberth); /tl=nian& OxOf;write_data( nu mbertl); /write_data(-);th=yue4;write_data( nu mberth);tl=yue&0 x0f;write_data( nu mbertl);write_data(-);th=ri4;write_data( nu mberth);tl=ri&0 x0f;write_data( nu mbertl);shi=read_ds1302(0 x85); /时寄

33、存器fen=read_ds1302(0 x83); /分寄存器miao=read_ds1302(0 x81); /秒寄存器write_com(0 x80+0 x48); th=shi4;write_data( nu mberth); / tl=shi&0 x0f;write_data( nu mbertl); /25欢迎下载精品文档设置时位置刷新年高位刷新年低位刷新时高位刷新时低位write_data(:);th=fe n4; write_data( nu mberth); tl=fe n&O x0f; write_data( nu mbertl);write_data(:);

34、 th=miao4; write_data( nu mberth); tl=miao&OxOf; write_data( nu mbertl);void fssj()uchar th,tl; th=nian4; fas( nu mberth); tl=nian& OxOf; fas( nu mbertl); fas(-);th=yue4;fas( nu mberth); tl=yue&0 x0f;fas( nu mbertl); fas(-);th=ri4;fas( nu mberth); tl=ri&0 x0f;fas( nu mbertl);fss();th=shi4;fas( nu mberth); tl=sh i&0 x0f;fas( nu mbertl); fas(:);th=fe n4;fas( nu mberth); tl=fe n&O x0f;fas( nu mbertl); fas(:);th=miao4;26欢迎下载精品文档fas( nu mberth); tl=miao&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论