ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:19.77KB ,
资源ID:17671215      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17671215.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于WIFI多点温度采集系统设计Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于WIFI多点温度采集系统设计Word文档格式.docx

1、四、系统总方案简述1、温度传感器DS18b20;2、传感器与WIFI相连,通过指令控制WIFI模块或传输数据并发送出去;3、PC机接收无线信号显示相应的温度信息。五、方案每个部分实现原理1、温度传感器DS18b20DS18B20的温度检测与数字数据输出全集成于一个芯片上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解 18B20 的内部存储器资源。18B20 共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放DS18B20ID编码,其前 8 位是单线系列编码(DS18B20的编码是19H ),后面 48位是芯片唯一的序列

2、号,最后 8 位是以上56的位的CRC 码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。 RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失, DS18B20共9 个字节RAM,每个字节为8 位。第 1 、2 个字节是温度转换后的数据值信息,第 3 、4 个字节是用户 EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5 个字节则是用户第 3 个EEPROM的镜像。第6、7 、8 个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9 个字节为前 8 个字节的CRC 码。工作原理及应用

3、总结DS18b20 ROM 只读存储器 用于存放DS18B20ID编码内部存储器 RAM 数据暂存器 用于内部计算和数据存取,数据在掉电后丢失 EEPROM 非易失性记忆体 用于存放长期需要保存的数据,上下限温度报警值和校验数据DS18b20 温度检测一个工作周期 数据处理DS18b20单总线控制流程1.复位2.存在脉冲3.控制器发送ROM指令 4.控制发送存储器操作指令5.执行或数据读写复位:首先我们必须对 DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS 的低电平信号。当 18B20 接到此复位信号后则会1560uS后回发一个芯片的存在脉冲。存在脉

4、冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在 1560uS后接收存在脉冲,存在脉冲为一个 60240uS 的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20 间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5 条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃 ROM、芯片搜索、报警芯片搜索。ROM指令为8 位长度,功能是对片内的 64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接

5、的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID 号来区别,一般只挂接单个 18B20 芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。控制器发送存储器操作指令:在ROM指令发送给18B20 之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8 位,共 6 条,存储器操作指令分别是写 RAM数据、读RAM数据、将 RAM数据复制到EEPROM 、温度转换、将 EEPROM 中的报警值复制到 RAM、工作方式切换。存储器操作指令的功能是命令18B20 作什么样的工作,是芯片控制的关键。 执

6、行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20 执行其指令,一般转换时间为500uS 。如执行数据读写指令则需要严格遵循 18B20 的读写时序来操作。2、AMS1117芯片1.AMS1117是一个正向低压降稳压器,在1A电流下压降为1.2V,固定输出电压为1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V和可调版2.AMS1117片上微调把基准电压调整到1.5%的误差以内,而且电流限制也得到了调整,以尽量减少因稳压器和电源电路超载而造成的压力3.AMS1117可用于

7、交换式电源 5V至3.3V线性稳压器,电池充电器、电池供电设备等,本系统中使用提供稳定3.3V电压七、程序1.采集端程序/*- 18B20温度传感器-*/#includedelay.h18b20.h/*- 18b20初始化bit Init_DS18B20(void) bit dat=0; DQ = 1; /DQ复位 DelayUs2x(5); /稍做延时 DQ = 0; /单片机将DQ拉低 DelayUs2x(200); /精确延时 大于 480us 小于960us /拉高总线 DelayUs2x(50); /1560us 后 接收60-240us的存在脉冲 dat=DQ; /如果x=0则初始

8、化成功, x=1则初始化失败 DelayUs2x(25); /稍作延时返回 return dat; 读取一个字节unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) / 给脉冲信号 dat=1; if(DQ) dat|=0x80; return(dat);/*- 写入一个字节-*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i i-) DQ = 0; DQ = dat&0x01; Dela

9、yUs2x(25); DQ = 1; dat DelayUs2x(25); 读取温度unsigned int ReadTemperature(void)unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换DelayMs(10); /跳过读序号列号的操作 WriteOneChar(0xBE);/读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar(); /低位b=Read

10、OneChar(); /高位b=8;t=a+b;return(t);2.主程序/*- 名称:DS18b20 温度检测 WIFI传输#includestdio.h#include 18b20a.hchuankou.hbit ReadTempFlag;/定义读时间标志void Init_Timer0(void);/定时器初始化 串口通讯初始化void UART_Init(void) SCON = 0x50; / SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; / TMOD: timer 1, mode 2, 8-bit 重装 TH1 = 0xFD; / TH1

11、: 重装值 9600 波特率 晶振 11.0592MHz TR1 = 1; / TR1: timer 1 打开 /EA = 1; /打开总中断 ES = 1; /打开串口中断 TI=1; 主函数void main (void) int temp;float temperature;char displaytemp16;/定义显示区域临时存储数组Init_Timer0();UART_Init();while (1) /主循环if(ReadTempFlag=1) ReadTempFlag=0; temp=ReadTemperature(); temperature=(float)temp*0.06

12、25; sprintf(displaytemp,Temp1 %7.3f,temperature);/打印温度值 sendstr(displaytemp); temp=ReadTemperature_a();Temp2 %7.3f 定时器初始化子程序void Init_Timer0(void) TMOD |= 0x01; /使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响 /TH0=0x00; /给定初值 /TL0=0x00; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器开关打开 定时器中断子程序void Timer0_isr(void) i

13、nterrupt 1 static unsigned int num; TH0=(65536-2000)/256; /重新赋值 2ms TL0=(65536-2000)%256; num+; if(num=600) / num=0; ReadTempFlag=1; /读标志位置1void zhongduan4() interrupt 4 Uart() ;附:参考原理图Word 是学生和职场人士最常用的一款办公软件之一,99.99%的人知道它,但其实,这个软件背后,还有一大批隐藏技能你不知道。掌握他们,你将开启新世界的大门。Tab+Enter,在编过号以后,会自动编号段落Ctrl + D调出字体

14、栏,配合Tab+Enter全键盘操作吧Ctrl + L 左对齐, Ctrl + R 右对齐, Ctrl + E 居中Ctrl + F查找, Ctrl + H 替换。然后关于替换,里面又大有学问!有时候Word文档中有许多多余的空行需要删除,这个时候我们可以完全可以用“查找替换”来轻松解决。打开“编辑”菜单中的“替换”对话框,把光标定位在“查找内容”输入框中,单击“高级”按钮,选择“特殊字符”中的“段落标记”两次,在输入框中会显示“PP”,然后在“替换为”输入框中用上面的方法插入一个“段落标记”(一个“P”),再按下“全部替换”按钮。这样多余的空行就会被删除。Ctrl + Z是撤销,那还原呢?就是Ctrl + Y,撤销上一步撤销!比如我输入abc, 按一下F4, 就会自动再输入一遍abc

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

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