基于ds18b20的智能调温系统结题报告(编辑修改稿)内容摘要:

,且准备就绪。 主机输出低电平,保持低电平时间至少 480us,以产生复位脉冲。 接着主机释放总线, ,延时 15~ 60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时 480us[12]。 (2) 写时序 采样15~ 45采样15~ 4511主机写1 时 序主机写0 时 序 图 3- 2 写时序 写时序包括写 0 时序和写 1 时序。 所有写时序至少需要 60us,且在 2 次独立的写时序之间至少需要 1us 的恢复时间,都是以总线拉低开始。 写 1 时序,主机输出低电平,延时2us,然后释放总线,延 时 60us。 写 0 时序,主机输出低电平,延时 60us,然后释放总线,延时 2us[8]。 (3) 读时序 主机采样主机采样454511主机写1 时 序主机写0 时 序 图 3- 3 读时序 总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。 所有读时序至少需要 60us,且在 2次独立的读时序之间至少需要 1us的恢复时间。 每个读时序都由主机发起,至少拉低总线 1us。 主机在读时序期间必须释放总线,并且在时序起始后的 15us之内采样总线状态。 主机输出中北大学仪器与电子学院基金项目结题报告 低 电平延时 2us,然后主机转入输入模式延时 12us,然后读取总线当前电平,然后延时 50us[4] ROM操作命令 当主机收到 DSl8B20 的响应信号后,便可以发出 ROM 操作命令之一,这些命令如表: ROM操作命令。 DS18B20的测温原理 DS18B20的测温原理 : 每一片 DSl8B20在其 ROM中都存有其唯一的 48位序列号,在出厂前已写入片内 ROM 中。 主机在进入操作程序前必须用读 ROM(33H)命令将该 DSl8B20 的序列号读出。 程序可以先跳过 ROM,启动所有 DSl8B20 进行温度变换,之后通过匹配 ROM,再逐一地读回每个 DSl8B20 的温度数据。 DS18B20 的测温原理如图 所示,图中低温度系数晶振的振荡频率受温度的影响很小 ,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数 门打开时, DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。 计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将 55 ℃ 所对应的基数 分别置入减法 计数器 1和温度寄存器中,减法计数器 1和温度寄存器被预置在 55 ℃所对 应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数到 0 时, 停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 图 中的斜率累加器用 于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温 度寄存器值达到被测温度值 . 指令 约定代码 功 能 读 ROM 33H 读 DS18B20 ROM 中的编码 符合 ROM 55H 发出此命令之后,接着发出 64 位 ROM 编码,访问单线总线上与该编码相对应的 DS18B20 使之作出响应,为下一步对该 DS18B20 的读写作准备 搜索 ROM 0F0H 用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位ROM 地址,为操作各器件作好准备 跳过 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS18B20 发温度变换命令,适用于 单片工作。 续表 3- 1 告警搜索 0ECH 执行后,只有温度超过设定值上限或者下限的片子才做中北大学仪器与电子学院基金项目结题报告 命 令 出响应 温度变换 44H 启动 DS18B20 进行温度转换,转换时间最长为 500MS,结果存入内部 9 字节 RAM 中 读暂存器 0BEH 读内部 RAM 中 9 字节的内容 写暂存器 4EH 发出向内部 RAM 的第 3, 4 字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据 复制暂存器 48H 将 E2PRAM 中第 3, 4 字节内容复制到 E2PRAM 中 重调 E2PRAM 0BBH 将 E2PRAM 中内容恢复 到 RAM 中的第 3, 4 字节 读 供 电 方 式 0B4H 读 DS18B20 的供电模式,寄生供电时 DS18B20 发送“ 0”,外接电源供电 DS18B20 发送“ 1” 另外,由于 DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重 要。 系统对 DS18B20 的各种操作必须按协议进行。 操作协议为:初始化 DS18B20(发复位脉冲 )→发 ROM 功能命令 → 发存储器操作命令 → 处理数据。 图 3- 4 测温原理内部装置 DS18B20的测温流程 图 3- 5 DS18B20 测温流程 . 减法计数器 斜坡累加器 减到 0 减法计数器 预 置 低温度系数 振 荡 器 高温度系数 振 荡 器 计数比较器 预 置 温度寄存器 减到 0 初始化 DS18B20 跳过 ROM 匹配 温度变换 延时 1S 跳过 ROM 匹配 读暂存器 转换成显 示码 数码管显示 中北大学仪器与电子学院基金项目结题报告 4 单片机接口设计 设计原则 DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20 的 1 脚接地, 2 脚作为信号线, 3 脚接电源。 另一种是寄生电源供电方式,如图 所示单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET管来完成对总线的上拉。 本设计 采用电源供电方式, 口接单线总线为保证在有效的DS18B20 时钟周期内提供 足够的电流,可用一个 MOSFET 管和 89S52 的 来完成对总线的上拉。 当 DS18B20 处于写存储器操作和温度 A/D 变换操作时,总线上必须有强的上拉,上拉开启时间最大为 10 μs。 采用寄生电源供电方式是 VDD和 GND 端均接地。 由于单线制只有一根线,因此发送接收口必须是三 状态 的。 主机控制 DS18B20 完成温度转换必须经过3 个步骤:  初始化 ;  ROM 操作指令 ;  存储器操作指令。 引脚连接 晶振电路 单片机 XIAL1 和 XIAL2 分别接 30PF 的电容,中间再并个 12MHZ 的晶振,形成单片机的 晶振电路。 串口引脚 P0 口接 9 个 的排阻然后接到显示电路上。 温度传感器 DS18B20 如图 所示。 图 4- 1 DS18B20 与单片机的接口电路 P1 口连接液晶的数据传输引脚。 P2 口 中 接蜂鸣器电路,其他引脚悬空 P3 口中 、 接液晶的使能端。 其它引脚 ALE 引脚悬空,复位引脚接到复位电路、 VCC 接电源、 VSS 接地、 EA 接电源 单 片 机 18B20 VCC GND 中北大学仪器与电子学院基金项目结题报告 5 系统整体设计 系统硬件电路设 计 主板电路设计 单片机的 接 DS18B20 的 2 号引脚, P1 口送 液晶显示 , 、 控制加热器和电风扇。 如附录 2。 各部分电路 (1) 显示电路 显示电路采用了 液晶 lcd1602显示 ,节约了单片机的输出端口,便于程序的编写。 图 5- 1 显示电路图 (2) 单片机电路 中北大学仪器与电子学院基金项目结题报告 图 5- 2 单片机电路引脚图 (3) DS18B20温度传感器电路 VCC0DQ1GND2U2ds18b20VCCGND 图 53 温度传感器电路引脚图 (4) 晶振控制电路 图 55 晶振控制电路图 (5) 复位电路 中北大学仪器与电子学院基金项目结题报告 图 56复位 电路图 系统软件设计 系统软件设计整体思路 一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。 同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。 甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。 因此充分利用其内部丰富的硬件资源和软件资源,采用与 S51 系列单片机相对应的 c 语言和结构化程序设计方法进行软件编程。 程序设计语言有三种:机器语言、汇编语言和高级语言。 机器语 言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(成为目标程序),计算机才能“看懂”,然后逐一执行。 高级语言是面向问题和计算过程的语言,它可通过于各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快,也便于学习和交流,但是本系统却选用了汇编语言。 原因在于,本系统是编制程序工作量不大、规模较小的单片机微控制系统,使用汇编语言可以不用像高级语言那 样占用较多的存储空间。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。