基于WIFI-模块的无线数据传输报告.doc_第1页
基于WIFI-模块的无线数据传输报告.doc_第2页
基于WIFI-模块的无线数据传输报告.doc_第3页
基于WIFI-模块的无线数据传输报告.doc_第4页
基于WIFI-模块的无线数据传输报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

计算机科学与技术学院课 程 设 计 报 告(2014 2015学年 第 2 学期) 课程名称:基于WIFI 模块的无线测温传输系统 班 级: 电子1204班 学 号: P1402120404,P1402120430 姓 名: 陈磊 周艳奎 指导教师: 武晓光 胡方强 包亚萍 袁建华 毛钱萍 2015年 07月1.系统总体设计本章主要内容是论述基于51单片机的温度采集系统的总体设计以及方案论证。本系统由单片机、温度信号采集与A/D转换、人机交互、电源系统单元、通信单元五部分组成,功能模块具体实现的器件的不同,将直接影响整个系统的性能及成本,为了达到高效、实用的目的,在系统设计之前的方案论证是十分重要的。2.本系统工作流程DS18B20进行数据的采集并将数据以二进制的形式传至单片机系统上电初始化单片机对数据进行处理通过串口将数据传至WiFi模块 手机或电脑对wifi模块连接并接收数据 单片机:该部分的功能不仅包括向温度传感器写入各种控制命令、读取温度数据、数据处理。单片机是整个系统的控制核心及数据处理核心。 数字温度传感器DS18B20:本部分的主要作用是用传感器检测模拟环境中的温度信号,温度传感器上电流将随环境温度值线性变化。再把电流信号转换成电压信号,使用A/D转换器将模拟电压信号转换成单片机能够进行数据处理的数字电压信号,本设计采用的是数字温度传感器,以上过程都在温度传感器内部完成。 电源系统单元:本单元的主要功能是为单片机提供适当的工作电源,同时也为其他模块提供电源。在本设计当中,电源系统输出 +5 V 的电源。3. 单片机主控单元 本部分主要介绍单片机最小系统的设计。单片机系统的扩展,一般是以基本最小系统为基础的。所谓最小系统,是指一个真正可用的单片机最小配置系统,对于片内带有程序存储器的单片机,只要在芯片外接时钟电路和复位电路就是一个小系统了。小系统是嵌入式系统开发的基石。本电路的小系统主要由三部分组成,一块AT89S51芯片、复位电路及时钟电路。AT89S51单片机:AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。4K字节可系统编程的Flash程序存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作,并禁止其它所有部件工作,直到下一个硬件复位。P0是一个8 位双向I/O 端口,端口置1时作高阻抗输入端,作为输出口时能驱动8 个TTL电平。对内部Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,需要接上拉电阻。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8 位)/数据总线,访问期间内部的上拉电阻起作用。P1是一个带有内部上拉电阻的8 位准双向I/0 端口。输出时可驱动4 个TTL电平。端口置1 时,内部上拉电阻将端口拉到高电平作输入用。对内部Flash 程序存储器编程时,接收低8 位地址信息。P2是一个带有内部上拉电阻的8 位准双向I/0 端口。输出时可驱动4 个TTL电平。端口置1 时,内部上拉电阻将端口拉到高电平作输入用。对内部Flash 程序存储器编程时,接收高8 位地址和控制信息。在访问外部程序和16 位外部数据存储器时,P2口送出高8 位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。P3是一个带有内部上拉电阻的8 位准双向I/0 端口。输出时可驱动4 个TTL电平。端口置1 时,内部上拉电阻将端口拉到高电平作输入用。对内部Flash 程序存储器编程时,接控制信息。除此之外P3 端口还有第二功能。P3口引脚的第二功能,如表4-2所示:表4-2 P3口引脚第二功能P3口引脚 第二功能P3.0串行通信输入(RXD)P3.1串行通信输出(TXD)P3.2外部中断0( INT0)P3.3外部中断1(INT1)P3.4定时器0 输入(T0)P3.5定时器1 输入(T1)P3.6外部数据存储器写选通P3.7外部数据存储器读选通复位电路:计算机在启动运行的时候都需要复位,使中央处理器CPU和系统中的其他部件都处于一个确定的初始状态,并且从这个初始状态开始工作。单片机的复位是靠外部电路实现的,MCS-51单片机有一个复位引脚RST,高电平有效。MCS-51单片机通常采用上电自动复位和按钮复位两种。复位电路的基本功能是系统上电时,RC电路充电,RST 引脚出现正脉冲,提供复位信号直至系统电源稳定后,撤销复位信号,为可靠起见,电源稳定后还要经一定的延时,才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。图3-2中的RC 复位电路可以实现上述基本功能。调整RC 常数会令对驱动能力产生影响。时钟电路:时钟电路提供单片机的时钟控制信号,单片机时钟产生方式有内部时钟方式和外部时钟方式。最常用的是内部时钟方式是采用外接晶振和电容组成的并联谐振回路。瓷片电容的取值对振荡频率输出的稳定性、大小及振荡电路的起振速度都有一定的影响。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-33MHz内选择。电容取30PF 左右。XTAL1是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2 悬空。单片机最小系统如图4-2所示:图 4-2 最小系统图4.数字温度传感器DS18B201、DS18B20的主要特性1.1、适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数 据线供电1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯1.3、 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温1.4、DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内1.5、温范围55+125,在-10+85时精度为0.51.6、可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温1.7、在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快1.8、测量结果直接输出数字温度信号,以一 线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力1.9、负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。2、 DS18B20工作原理2.1初始化时序见图 4-4主机总线 to 时刻发送一复位脉冲(最短为 480us 的低电平信号)接着在 tl 时刻释放总线并进入接收状态DSl820 在检测到总线的上升沿之后 等待 15-60接着 DS1820 在 t2 时刻发出存在脉冲(低电平持续60-240 us)如图中虚线所示图4-4DS18B20初始化时序图程序:Init_DS18B20(void)/初始化ds1820 DQ = 1; /DQ复位 _nop_(); _nop_(); /稍做延时2ms DQ = 0; /单片机将DQ拉低,发出复位脉冲(要求480us960us) Delay(70); /精确延时566us DQ = 1; /拉高总线(要求1660us) Delay(5); /延时46us presence = DQ; /如果=0则初始化成功 =1则初始化失败 Delay(25); DQ = 1; return(presence); /返回信号,0=presence,1= no presence2.2读时间隙见图 4-5 主机总线 to 时刻从高拉至低电平时总线只须保持低电平 l7ts之后15捍 s也就是说t 2 时刻前主机必须完成读位并在to 后的 60s一120s 内释放总线读位子程序(读得的位到C中) 图4-5读时间隙时序图程序:ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay(4);return(dat);2.3写时间隙当主机总线 to 时刻从高拉至低电平时 就产生写时间隙从 to 时刻开始 15us 之内应将所需写的位送到总线DSl820 在 t1为15-60us 间对总线采样 若低电平写入的位是 0见若高电平 写入的位是连续写 2 位间的间隙应大于 1us ,见图4-6。 图4-6写时间隙时序图程序:WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay(5); DQ = 1; dat=1;3、DS18B20的应用电路 DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。下面就是DS18B20几个不同应用方式下的 测温电路图:3.1、DS18B20寄生电源供电方式电路图如下面图4所示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部 电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。独特的寄生电源方式有三个好处:1)进行远距离测温时,无需本地电源2)可以在没有常规电源的条件下读取ROM3)电路更加简洁,仅用一根I/O口实现测温要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由 于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的 能量,会造成无法转换温度或温度误差极大。因此,图4电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并 且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。图43.2、DS18B20寄生电源强上拉供电方式电路图改进的寄生电源供电方式如下面图5所示,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到 E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最 多10S内把I/O线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺 点就是要多占用一根I/O口线进行强上拉切换。图5注意:在图4和图5寄生电源供电方式中,DS18B20的VDD引脚必须接地3.3、DS18B20的外部电源供电方式 在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证 转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空 ,否则不能转换温度,读取的温度总是85。图6:外部供电方式单点测温电路图7:外部供电方式的多点测温电路图外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度 监控系统。站长推荐大家在开发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根VCC引线。在外接电源方式下, 可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证温度量精度。7.程序框图初始化调用显示子程序1S到?初次上电?读出温度值温度计算处理显示数据刷新发温度转换开始命令NY主流程图Y主流程图7.1温度采集系统原理框图,见图7-1N图7-1温度采集系统原理框图7.2读温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,其程序流程,见图7-2 发DS18B20复位命令发跳过ROM命令读取温度命令读取操作,CRC校验9字节完?CRC校验正确?移入温度暂存器结束 N Y Y N图7-2读温度子程序7.3温度转换子程序温度转换命令子程序主要是发温度转换开始命令,其子程序流程见图7-3。DS18B20复位命令跳过ROM命令温度转换开始命令结束图7-3温度转换子程序流程7.4计算温度子程序此程序将RAM中读取值进行BCD码的转换运算并进行正负判定流程,见图7-4。开始温度零下? N Y温度值取补码置“”标志 置“+”标志 计算小数位温度BCD值计算整数位温度BCD值结束图7-4计算温度子程序流程8.语言程序#include #define uchar unsigned char#define uint unsigned intuchar CNCHAR6 = 摄氏度;sbit DQ=P17; /定义 DS18B20 接口int temp; / 温度变量void Delay1ms() /delay unsigned char a,b; for(b=102;b0;b-) for(a=3;a0;a-);void dsreset(void) /发送复位和初始化命令 uint a,b; /DS18B20 初始化 DQ=0; b=102; while(b0)b-; DQ=1; a=3; while(a0)a-;bit tmpreadbit(void) /read a bit读一位 int i; bit dat; DQ=0;i+; /i+小延时一下 DQ=1;i+;i+; dat=DQ; i=8;while(i0)i-; return (dat);uchar tmpread(void) /读一个字节 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好 /一个字节在 DAT 里 return(dat); /将一个字节数据返回void tmpwritebyte(uchar dat) /写一个字节到 DS18B20 里 int i; char j; bit testb; for(j=1;j1; if(testb) / 写 1 部分 DQ=0; i+;i+; DQ=1; i=8; while(i0) i-; else DQ=0; /写 0 部分 i=8;while(i0)i-; DQ=1; i+;i+; int tmp() /获得温度 float tt; uchar a,b; dsreset(); Delay1ms(); tmpwritebyte(0xcc); /跳过读取ROM命令 tmpwritebyte(0xbe); /发送读取数据命令 a=tmpread(); /连续读两个字节数据 b=tmpread(); temp=b; temp=8; temp=temp|a; /两字节合成一个整型变量。 tt=temp*0.0625; /得到真实十进制温度值,因为 DS18B20 /可以精确到 0.0625 度,所以读回数据的最低位代表的是 /0.0625 度。 temp=tt*10+0.5; /放大十倍,这样做的目的将小数点后第一位 /也转换为可显示数字,同时进行一个四舍五入操作。 return temp; /返回温度值/-串口程序-void InitUART(void) /功能:串口初始化,波特率 9600,方式 1 TMOD = 0x20; SCON = 0x50; TH1 = 0xFA; TL1 = TH1; PCON = 0x80; EA = 1; ES = 1; TR1 = 1;void Sendtemp(int temp) /发送温度 unsigned char i, datas

温馨提示

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

评论

0/150

提交评论