




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 摘 要 本课题主要介绍基于 AT89C51 单片机和 DS18B20 数字温度传感器的多点温 度测量系统。该系统利用 AT89C51 单片机分别采集各个温度点的温度,实现温 度显示、报警等功能。它以 AT89C51 单片机为主控制芯片,采用数字温度传感器 DS18B20 实现多路温度的检测,测量精度可以达到 0.5。该系统采用了 LCD1602A 液晶显示模块,LCD1602A 作为显示器 ,形象直观的显示测出的温度值。 本文首先在绪论中介绍了此系统的背景以及功能。第二章确定设计方案。在第 三章论述了总体的设计过程,确定了技术指标及器件的选择并且描述了系统硬 件电路设计、硬件设计框图及所使用的各种芯片功能与特性。第四章重点剖析 了软件设计的过程。最后一章中具体论述了系统的调试软件及调试中出现的问 题。基于 AT89C51 单片机的单总线多点温度测控系统具有硬件组成简单、多点 温度检测、读数方便、精度高、测温范围广等特点,在实际工程中得到广泛应 用。 关键词:数字温度传感器,AT89C51 单片机,单总线 II Abstract The problem introduces AT89C51 monolithic machine and the DS18B20 figure temperature sensor-based multiple spot temperature measurement system mainly. AT89C51 single chip using the system were collected at various temperatures of the temperature, temperature display and alarm functions. It AT89C51 MCU-based control chip, digital temperature sensor DS18B20 the realization of multi-channel temperature detection, measurement accuracy can reach 0.5 . The system uses LCD1602A liquid crystal display modules,LCD1602A as a display, the display of visual images to measure the temperature. This article first described in the introduction of this system, as well as background features. The second chapter to determine the design. In the third chapter discusses the overall design process to determine the technical specifications and the choice of devices and a description of the hardware circuit design, hardware design and diagram used in a variety of features and functions of the chip. Chapter IV analyzes the key software design process. The final chapter discusses the specific system debugging and debug software problems. AT89C51 single chip based on single-bus multi-point temperature measurement and control system with simple hardware components, multi-point temperature, easy reading, high-accuracy, wide temperature range, and other characteristics of the actual projects are widely used KeyKey wordswords:digital temperature sensor, AT89C51 single chip, single- bus III 目 录 摘要摘要I ABSTRACT.II 第第 1 章章 绪论绪论1 第第 2 章章 系统方案设计系统方案设计2 2.1 方案设计2 2.1.1 方案一利用单总线数字传感器实现小环境温度监测系统.2 2.1.2 方案二利用模拟温度传感器实现小环境温度监测系统.2 2.1.3 方案三利用 PLC 实现小环境温度监测系统.3 2.2 设计方案3 第第 3 章章 系统设计系统设计4 3.1 工作原理4 3.2 单元电路设计4 3.2.1 DS18B20 与单片机接口电路设计4 3.2.2 显示电路设计12 第第 4 章章 系统软件设计系统软件设计17 4.1 软件设计总体思路及主程序流程图17 4.2 测温模块流程图17 4.2.1 温度的采集.17 4.2.2 多点温度的采集.18 4.3 显示模块流程图19 4.4 参照流程图编写程序20 第第 5 章章 元器件安装及调试元器件安装及调试21 5.1 系统调试与仿真21 5.1.1 测试环境及工具21 5.1.2 调试和仿真结果21 5.2 元器件安装22 总结总结23 参考资料参考资料24 致谢致谢25 附录一附录一26 附录二附录二27 1 第 1 章 绪论 21 世纪,科学技术的发展日新月异,科技的进步带动了测量技术的发展, 现代控制设备的性能和结构发生了翻天覆地的变化。我们已经进入了高速发展 的信息时代,测量技术也成为当今科技的一个主流,广泛地深入到研究和应用 工程的各个领域。 温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科 研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一。温 度的变化会给我们的生活、工作、生产等带来重大影响,因此对温度的测量至 关重要。其测量控制一般使用各式各样形态的温度传感器。随着现代计算机和 自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器 件,温度传感器的作用日显突出,已成为自动检测、自动控制系统和计量测试 中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。 分布式温度传感器在电力工业、煤矿、森林、火灾、高层建筑、航空、航 天飞行器等有着重要的应用前景,引起研究人员的广泛关注。本设计使用了美 国 Dallas 半导体公司的新一代数字式温度传感器 DS18B20,它具有独特的单 总线接口方式 ,即允许在一条信号线上挂接数十甚至上百个数字式传感器 ,从 而使测温装置与各传感器的接口变得十分简单 ,克服了模拟式传感器与微机接 口时需要的 A/D 转换器及其它复杂外围电路的缺点。工作时由控制信号进行具 体测量点识别,这使得布线工作大大简化,可以方便地构成多传感器测量网络。 此外与传统的热敏电阻传感器相比,DS18B20 具有更高的测量精度。所以,相对 于传统温度传感器而言,DS18B20 数字温度传感器具有更高的经济性、灵活性、 抗干扰性和精确度,在科学研究和生产实际中得到了广泛的应用。 随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展,在高 集成度,高速度,低功耗以及高性能方面取得了很大的进展。伴随着科学技术 的发展,电子技术有了更高的飞跃,我们现在完全可以运用单片机来代替人工 测量,这样既省时又省力。 本设计是心 AT89C51 为单片机作为控制核心,提出了一种基于 DS18B20 的单总线多点温度测控系统,多个温度传感节点通过单总线与单片机相联形成 分布式系统。单片机通过实时监控温度的变化,通过 LCD1602 字符型 液晶显 示各节点温度的数值,当温度值超出所设定的值时,报警器开始报警,从而远 程实现对整个温度系统的管理和控制。这种分布式温度测量系统具有成本低廉、 2 传感精度高、系统稳定、易于管理等优点。 第 2 章 系统方案设计 无论是工农业生产中,还是日常生活中,对温度的检测和控制都是必不可 少的,对于温度的检测通常是采用热敏电阻在通过 A/D(模/数)转换得到数字 信号,但由于信号的采集对整个系统的影响很大,如果采样精度不高,会使这 个系统准确性下降。因此本次设计采用高精度的温度传感器:数字温度传感器 DS18B20。这种数字温度传感器是 DALLAS 公司生产的单总线, 。而对于温度控制 的方法也有很多:如单片机控制、PLC 控制、模拟 PID 调节器和数字 PID 调节 器等等。综合各方面的意见,本设计采用单片机来实现温度的控制。 2.1 方案设计 2.1.1 方案一利用单总线数字传感器实现小环境温度监测系统 利用单片机系统实现温度恒定的控制,其总体结构图如图 2-1 所示。系统 主要包括现场温度采集、实时温度显示和系统核心 AT89C51 单片机作为微处理 器。 数字式温度传感器 单 片 机 液 晶 显 示 图 2-1 方案一的数字温度监测系统总体结构框图 温度采集电路以数字量形式将现场温度传至单片机。单片机对采集到得温 度进行处理,然后在液晶显示器上分别显示。达到对各个小环境温度的监测。 2.1.2 方案二利用模拟温度传感器实现小环境温度监测系统 方案一:该案由单片机、模拟温度传感器 AD590、运算放大器、AD 转换 器、LCD 显示电路组成。 本方案采用模拟温度传感器 AD590 作为测温元件,传感器将测量的温度变 换转换成电流的变化,再通过电路转换成电压的变化,使用运算放大器交将信 号进行适当的放大,最后通过模数转换器将模拟信号转换成数字信号,传给给 单片机,单片机将温度值进行处理之后用 LCD 显示。如图 2-2 所示: 3 数字式温度传感器 单 片 机 液 晶 显 示 模拟温度 传感器 运算放 大器 A/D 转换 单片机 LCD 显示模块 图 2-2 方案二温度监测系统方案框图 2.1.3 方案三利用 PLC 实现小环境温度监测系统 利用 PLC 实现单总线总线小环境温度监测系统,其控制系统采用 PLC 控制 实现自动控制方式,来达到控制温度的恒定。智能型电偶温度表将置于被测对 象中,热电偶的传感器信号与恒定温度的给定电压进行比较,构成闭环系统, 生成温差电压 Vt,PLC 自适应恒温控制电路,根据 Vt 的大小计算出全通、间接 导通和全断的自适应恒温控制电路,并将占空比可调的控制电平经输出隔离电 路去控制可控硅门极的通断,实现自适应的恒温控制。若温度升的过快,PLC 也将输出关断电平信号转换为可控硅电路相匹配的输入信号。 2.2 设计方案 控制模块的选择,数字比较器与模拟控制器相比较,数字比较器具有以下 几个优点: 1、模拟调节器调节能力有限,当控制规律较为复杂时,就难以甚至无法实 现。而数字控制器能实现复杂控制规律的控制。 2、计算机具有分时控制能力,可实现多回路控制。 3、数字控制器具有灵活性。起控制规律可灵活多样,可用一台计算机对不 同的回路实现不同的控制方式,并且修改控制参数或控制方式一般只可改变控 制程序即可,使用起来简单方便,可改善调节品质,提高产品的产量和质量。 方案一采用智能温度传感器 DS18B20,它直接输出数字量,精度高,电路 简单,只需要模拟 DS18B20 的读写时序,根据 DS18B20 的协议读取转换的温 度。 此方案硬件电路非常简单,但程序设计复杂一些,但是我已经使用开发工 具 KEIL 用 C 语言对系统进行了程序设计,用仿真软件 PROTEUS 对系统进行 了仿真,达到了预期的结果。由此可见,该方案完成具有可行性,体现了技术 的先进性,经济上也没有任何问题。 综上所述,本课题应当采用方案一对系统进行设计。 4 图 2-3 本设计总体结构框图 5 第 3 章 系统设计 3.1 工作原理 基于单片机的单总线多点温度测控系统以 AT89C51 为中心器件,以 KEIL 为系统程序开发平台,用 C 语言进行程序设计,以 PROTEUS 作为仿真软件设 计而成的。系统主要由温度传感器电路、液晶显示电路组成,电路原理图如附 录一所示。 DS18B20 是智能温度传感器,它的输入/输出采用数字量,通过单总线,接 收主机发送的命令,根据 DS18B20 内部的协议进行相应的处理,将转换的温度 数值以串口形式发送给主机。主机按照通信协议用一个 IO 口模拟 DS18B20 的 时序,发送命令(初始化命令、ROM 命令、功能命令)给 DS18B20,并读取 温度值,在内部进行相应的数值处理,用字符型液晶模块显示各点的温度。 每个 DS18B20 有自己的序列号,因此本系统可以在一根总线上挂接了 4 个 DS18B20,通过 CRC 校验,对各个 DS18B20 的 ROM 进行寻址,地址符合 的 DS18B20 才作出响应,接收主机的命令,向主机发送转换的温度。采用这种 DS18B20 寻址技术,使系统硬件电路更加简单。 DS18B20 虽然有测温简单的特点,但在实际应用中应注意一下几点: (1)较小 的硬件开销需要相对复杂的软件进行补偿, 由于 DS1820 与微处理器间采用串行 数据传送,因此,在对 DS1820 进行读写编程时,必须严格的保证读写. (2)在 DS1820 的有关资料中均未提及单总线上所挂 DS1820 数量问题,容易使人误认 为可以挂任意多个 DS1820,在实际应用中并非如此。当单总线上所挂 DS1820 超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系 统设计时要加以注意。(4)在 DS18 20 测温程序设计中,向 DS1820 发出温度转 换命令后,程序总要等待 DS1820 的返回信号,一旦某个 DS1820 接触不好或断 线,当程序读该 DS1820 时,将没有返回信号,程序进入死循环。这一点在进 行 DS1820 硬件连接和软件设计时也要给予一的重视。 3.2 单元电路设计 3.2.1 DS18B20 与单片机接口电路设计 (1) DS18B20 与单片机的接口技术 如图 3-1 所示:DS18B20 与单片机的接口电路非常简单。DS18B20 只有三 个引脚,一个接地,一个接电源,一个数字输入输出引脚接单片机的 I/O 口, 电源与数字输入输出脚间需要接一个 4.7K 的电阻。 6 图 3-1 DS18B20 与单片机接口电路 (2) 中央处理器 AT89C51 简介 AT89C51 的特点 AT89C51 具有以下几个特点: AT89C51 与 MCS-51 系列的单片机在指令系统和引脚上完全兼容; 片内有 4k 字节在线可重复编程快擦写程序存储器; 全静态工作,工作范围:0Hz24MHz; 三级程序存储器加密; 1288 位内部 RAM; 32 位双向输入输出线; 两个十六位定时器/计数器 五个中断源,两级中断优先级; 一个全双工的异步串行口; 间歇和掉电两种工作方式。 AT89C51 的引脚功能描述 AT89C51 单片机 40 引脚分布如右图所示。 AT89C51 是一种低损耗、高性能、CMOS 八 位微处理器,片内有 4k 字节的在线可重复编程、 快速擦除快速写入程序的存储器,能重复写入/擦 除 1000 次,数据保存时间为十年。它与 MCS-51 系列单片机在指令系统和引脚 7 上完全兼容,不仅可完全代替 MCS-51 系列单片机,而且能使系统具有许多 MCS-51 系列产品没有的功能。 AT89C51 可构成真正的单片机最小应用系统,缩小系统体积,增加系统的 可靠性,降低系统的成本。只要程序长度小于 4K,四个 I/O 口全部提供给用户。 可用 5V 电压编程,而且擦写时间仅需 10 毫秒,仅为 8751/87C51 的擦除时间的 百分之一,与 8751/87C51 的 12V 电压擦写相比,不易损坏器件,没有两种电源 的要求,改写时不拔下芯片,适合许多嵌入式控制领域。工作电压范围宽 (2.7V6V) ,全静态工作,工作频率宽在 0Hz24MHz 之间,比 8751/87C51 等 51 系列的 6MHz12MHz 更具有灵活性,系统能快能慢。AT89C51 芯片提供 三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序 或系统不被仿制。P0 口是三态双向口,通称数据总线口,因为只有该口能直接用 于对外部存储器的读/写操作。 端口引脚各个功能 P3.0RXD(串行口输入端) P3.1TXD(串行口输入端) P3.2INT0(外部中断 0 请求输入端,低电平有效) P3.3INT1(外部中断 1 请求输入端,低电平有效) P3.4T0 (定时器/数器 0 计数脉冲输入端) P3.5T1 (定时器/数器 1 计数脉冲输入端) P3.6WR (外部数据存储器写选通信号输出端,低电平有效) P3.7RD (外部数据存储器读选通信号输出端,低电平有效) 表 3-1 P3 口的第二功能 (3)DS18B20 的工作原理 DS18B20 数字温度传感器概述 目前常用的微机与外设串行总线主要有我们熟悉的 12C 总线,SPI 总线, SCI 总线。其中 12C 总线是以同步串行 2 线方式进行通信(一条时钟线,一条 数据线) ,SPI 总线是以同步串行 3 线方式进行通信(一条时钟线,一条数据输 入线,一条数据输出线) ,SCI 总线是以异步方式进行通讯 (一条数据输入线,一条数据输出线) 。这些总线至少需要有 两条或两条以上的信号线。近年来,美国的达拉斯半导体公 司(DALLAS SEMICONDUCTOR)推出了一套单总线(1- Wire Bus)技术,与上述总线不同,它采用单根信号线,即传 输时钟,又传输数据,而且数据传输是双向的,在其线路简 单、硬件开销少、成本低廉、便于总线的扩展和维护等优点。 因此用它来组成一个测温系统,具有线路简单,在一根通信 线,可以挂很多这样的数字温度计,十分方便。 8 DS18B20 产品的特点 只要求一个端口即可实现通信。 在 DS18B20 中的每个器件上都有独一无二的序列号。 实际应用中不需要外部任何元器件即可实现测温。 测量温度范围在55.C 到125.C 之间。 数字温度计的分辨率用户可以从 9 位到 12 位选择。 内部有温度上、下限告警设置。 TO92 封装的 DS18B20 的引脚排列见右图, 其引脚功能描述见表 表 3-2 DS18B20 详细引脚功能描述 序号名称引脚功能描述 1GND 地信号 2DQ 数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向 电源提供电源 3VDD 可选择的 VDD 引脚,当工作于寄生电源时,该引脚必须接地 DS18B20 的内部结构 DS18B20 的内部框图下图所示。64 位 ROM 存储器件独一无二的序列号。 暂存器包含两字节(0 和 1 字节)的温度寄存器,用于存储温度传感器的数字 输出。暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存 器(2 和 3 字节) ,和一字节的配置寄存器(4 字节) ,使用者可以通过配置寄存 器来设置温度转换的精度。暂存器的 5、6 和 7 字节器件内部保留使用。第八字 节含有循环冗余码(CRC ) 。使用寄生电源时,DS18B20 不需额外的供电电源; 当总线为高电平时,功率由单总线上的上拉电阻通过 DQ 引脚提供;高电平总 线信号同时也向内部电容 CPP 充电,CPP 在总线低电平时为器件供电。 图 3-2 DS18B20 的内部框图 9 (4)DS18B20 的 4 个主要数据部件: 光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品 类型标号,接着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的 循环冗余校验码(CRC=X8+X5+X4+1) 。光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。 DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。 这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要 将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1, 测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。 例如+125的数字输出为 07D0H,+25.0625的数字输出为 0191H,- 25.0625的数字输出为 FF6FH,-55的数字输出为 FC90H。 表 3-3 DS18B20 温度数据表 TEMPERATUREDIGITAL OUTPUTDIGITAL OUTPUT +1250000 0111 1101 000007D0H +850000 0101 0101 00000550H +25.06250000 0001 1001 00010191H +10.1250000 0000 1010 001000A2H +0.50000 0000 0000 10000008H 00000 0000 0000 00000000H -0.51111 1111 1111 1000FFF8H -10.1251111 1111 0101 1110FF5EH -25.06251111 1110 0110 1111FE6FH -551111 1100 1001 0000FC90H DS18B20 温度传感器的存储器 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失 性的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄 10 存器。 配置寄存器 表 3-4 配置寄存器 0R1R011111 低五位一直都是“1“,TM 是测试模式位,用于设置 DS18B20 在工作模式还 是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动。R1 和 R0 用来设置分辨率,如下表所示:(DS18B20 出厂时被设置为 12 位) 表 3-5 R1 与 R0 确定传感器分辨率设置表 R1R0 传感器精度/bit转换时间/ms 00993.75 0110187.5 1011375 1112750 (5)DS18B20 的工作过程 初始化 ROM 命令跟随着需要交换的数据 功能命令跟随着需要交换的数据 访问 DS18B20 必须严格遵守这一命令序列,如果丢失任何一步或序列混乱, DS18B20 都不会响应主机(除了 Search ROM 和 Alarm Search 这两个命令,在 这两个命令后,主机都必须返回到第一步) 。 a)初始化: DS18B20 所有的数据交换都由一个初始化序列开始。由主机发出的复位脉 冲和跟在其后的由 DS18B20 发出的应答脉冲构成。当 DS18B20 发出响应主机 的应答脉冲时,即向主机表明它已处在总线上并且准备工作。 b). ROM 命令: ROM 命令通过每个器件 64-bit 的 ROM 码,使主机指定某一特定器件(如 果有多个器件挂在总线上)与之进行通信。DS18B20 的每个 ROM 命令都是 8 bit 长。 c). 功能命令: 主机通过功能命令对 DS18B20 进行读/写 Scratchpad 存储器,或者启动温 度转换。DS18B20 的功能命令如表 3-6 所示。 指令协议功能 读 ROM 33H 读 DS18B20 中的编码(即 64 位地址) 符合 ROM 55H 发出此命令后,接着发出 64 位 ROM 编码,访问单总线上与该编码 相对应的 DS18B20,使之作出响应,为下一步对该 DS18B20 的读写 作准备 11 搜索 ROM 0F0H 用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位 ROM 地址, 为操作各器件作好准备 跳过 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS18B20V 温度转换命令,适用于单 个 DS18B20 工作 报警搜索命令 0ECH 执行后,只有温度超过庙宇值上限或下限的片子才做出响应 温度转换 44H 启动 DS18B20 进行温度转换,转换时间最长为 500ms(典型为 200ms),结果丰入内部 9 字节 RAM 中 读暂存器 BEH 读内部 RAM 中 9 字节的内容 写暂存器 4EH 发出向内部 RAM 的第 3、4 字节写上、下温度数据命令,紧该温度 命令之后,传达两字节的数据 复制暂存器 48H 将 RAM 中第 3、4 字内容复制到 E2PROM 中 重调 E2PROM 0B8H 将 E2PROM 中内容恢复到 RAM 中的第 3、4 字节 读供电方式 0B4H 读 DS18B20 的供电模式,寄生供电时 DS18B20 发送“0” ,外部供 电时 DS18B20 发送“1” 表 3-6 (6)DS18B20 的信号方式 DS18B20 采用严格的单总线通信协议,以保证数据的完整性。所有单总线 器件要求遵循严格的通信协议,以保证数据的完整性。1-wire 协议定义了几种 信号类型:复位脉冲、答应脉冲、写 0、写 1、读 0 和读 1 时序。所有的单总线 命令序列(初始化、ROM 命令、功能命令)都是由这些基本的信号类型组成。 这些信号,除了应答脉冲外都是由主机发出同步信号,并且发出的所有命令和 数据都是字节的低位在前。初始化时序包括主机发送的复位脉冲和从机发出的 应答脉冲主机通过拉低单总线至少 480us,以产生 TX 复位脉冲:然后主机释放 总线,并进入 RX 接收模式,当主机释放总线时,总线由低电平跳变为高电平 时产生一上升沿,单总线器件检测到这上升沿后,延时 1560us,接着单总线器 件通过拉低总线 60240us,以产生应答脉冲。主机接收到从机应答脉冲后,说 明有单总线器件在线,然后主机就开始对从机进行 ROM 命令和功能命令操作。 除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和 命令都是以字节的低位在前。 a).初始化序列:复位脉冲和应答脉冲 在初始化过程中,主机通过拉低单总线至少 480s,以产生复位脉冲(TX)。 然后主机释放总线并进入接收(RX)模式。当总线被释放后,5k 的上拉电阻将 单总线拉高。DS18B20 检测到这个上升沿后,延时 15s60s,通过拉低总线 60s240s 产生应答脉冲。初始化波形如图 3-3 所示。 12 图 3-3 初始化脉冲 b).读和写时序 在写时序期间,主机向 DS18B20 写入指令;而在读时序期间,主机读入来 自 DS18B20 的指令。在每一个时序,总线只能传输一位数据。读/写时序如图 3-4 所示。 写时序 存在两种写时序:“写 1”和“写 0” 。主机在写 1 时序向 DS18B20 写入逻 辑 1,而在写 0 时序向 DS18B20 写入逻辑 0。所有写时序至少需要 60s,且在 两次写时序之间至少需要 1s 的恢复时间。两种写时序均以主机拉低总线开始。 产生写 1 时序:主机拉低总线后,必须在 15s 内释放总线,然后由上拉电 阻将总线拉至高电平。产生写 0 时序:主机拉低总线后,必须在整个时序期间 保持低电平(至少 60s) 。 在写时序开始后的 15s60s 期间,DS18B20 采样总线的状态。如果总线 为高电平,则逻辑 1 被写入 DS18B20;如果总线为低电平,则逻辑 0 被写入 DS18B20。 读时序 13 图 3-4 DS18B20 读/写时序图 DS18B20 只能在主机发出读时序时才能向主机传送数据。所以主机在发出 读数据命令后,必须马上产生读时序,以便 DS18B20 能够传送数据。所有读时 序至少 60s,且在两次独立的读时序之间至少需要 1s 的恢复时间。 每次读时序由主机发起,拉低总线至少 1s。在主机发起读时序之后, DS18B20 开始在总线上传送 1 或 0。若 DS18B20 发送 1,则保持总线为高电平; 若发送 0,则拉低总线。当传送 0 时,DS18B20 在该时序结束时释放总线,再 由上拉电阻将总线拉回空闲高电平状态。DS18B20 发出的数据在读时序下降沿 起始后的 15s 内有效,因此主机必须在读时序开始后的 15s 内释放总线,并 且采样总线状态。 DS18B20 在使用时,一般都采用单片机来实现数据采集。只需将DS18B20 信号线与单片机1 位I/O线相连,且单片机的1 位I/O 线可挂接多个DS18B20 ,就可实现单点或多点温度检测。 (7)DS18B20 的温度计算 DS18B20 允许通过程序对传感器的分辨率,温度报警的上、下限等参数进行 配置。它的内部存储器包括一个高速暂存存储器和一个非易失性可擦除 EPROM。速暂存存储器共有 8 个字节(byte),每个字节 8 位(bit)。 根据温度的计算方法如下: S S S S S = 0 0 0 0 0 b 温度值: T = (MSB and 7) 256 + LSB 0.0625 S S S S S = 1 1 1 1 1 b 温度值: T = - (256 - MSB) 256 - LSB 0.0625 如果,存储器高位寄存器 MS 的 S S S S S 均为 0 ,则被测温度为正值,用上面 第 1 个公式来计算温度。如果存储器高位寄存器 MSB 的 S S S S S 均为 1,则被 测温度为负值,用上面第 2 个公式来计算温度。在这里,有两点应当注意:一是公 式中中括号内的数值为二进制,在计算口号内计算完成后应转化为十进制;二是这 里的 7 与 0.0625 是假设传感器的分辨率设置 0.0625 时的计算值。如果分辨率的 设置值不是 0.0625,那么就应当作相应的变化。第 3 和第 4 个字节分别用来存放 温度报警的上限(TH)和下限值(TL)。DS18B20 在完成温度变换后,会将所测温度 值与贮存在 TH 和 TL 内的上下限值相比较,如果测温结果高于 TH 或低于 TL,DS18B20 内部的告警标志就会被置位,表示温值超出了测量范围。并且该值 在掉电后不会丢失,而是记忆其设定的上下限值。第 5 字节是配置寄存器,如表 3- 4 所示,该寄存器用于对温度转换值的分辨率进行设置。其中,最高位用于设置传 感器是工作模式还是测试模式,是生产厂家为便于检验使用。其出厂时的默认值 14 为 0,为工作模式(即用户使用时的模式)。并且在用户使用中,该位总是保持为 0。R1 与 R0 确定传感器的分辨率,如表 3-5 所示,DS18B20 有 4 种分辨率可供选 择。使用时可以根据实际需要来设置,出厂时的默认设置是 12 位。最后 5 位总 保持为 1。 3.2.2 显示电路设计 温度显示工作原理: LCD1602 可以采用两种方式与单片机连接,一种是采用 8 位数据总线 D0D7,和 RS、R/W、EN 三个控制端口;另一种是只用 D4-D7 作为四位数 据分两次传送。本实验将使用并采用八位数据方式来控制 1602 显示,如图 3-5 所示: 图 3-5 AT89C51与 LCD1602 接口电路图 进行 LCD 设计主要是 LCD 的控制/驱动和外界的接口设计。控制主要是通 过接口与外界通信、管理内/外显示 RAM,控制驱动器,分配显示数据;驱动 主要是根据控制器要求,驱动 LCD 进行显示。控制器还常含有内部 ASCII 字 符库,或可外扩的大容量汉字库。 AT89C51 的 P2.2 与 LCD1602 的使能端 E 相连,P2.1 与读写选择端 R/W 相连,P2.0 与 RS 相连,当使能端使能时,再通过命令选择端来控制读数据, 写数据,写命令。控制 P2 端口与 LCD1602A 的数据端口相连,传输数据。 LCD1602 的性能参数 LCD1602A 的管脚排列如图 3-6、 ,它共有 16 个脚, 各引脚功能如下: VSS: 电源地 15 VDD:电源正极 VL:液晶显示偏压信号,对比度调整端,接地时最高,接正电源最低,可 接 10K 电位器调整 RS: 寄存器选择,高电平选择数据寄存器 低电平选择指令寄存器 图 3-6 LCD1602A 的管脚 R/W 读/写选择端,高电平读操作,低电平写操作 E 使能信号,当 E 端由高电平跳变成低电平时,液晶模块执行命令 BLA 背光源正极图 BLK 背光源负极 D0D7 数据端口 芯片的主要技术参数及应用配置: 显示容量:162 个字符 芯片工作电压:4.55.5V 工作电流: 2.0mA(5.0V) 模块最佳工作电压: 5.0V 字符尺寸:2.954.35(WXH)mm 表 3-7 LCD1602A 主要技术参数 表 LCD 表 3-8 1602A 显示模式 指令码功能 00111000 设置 16*2 显示,5*7 点阵, 8 位数据 接口 指令码功能 00001DCB D=1 开显示 D=0 关显示 C=1 显示光标 C=0 不显示光标 B=1 光标闪烁 B=0 光标不闪烁 16 表 3-9 LCD1602A 显示开/关及光标设置 编号符号引脚说明 1VSS 电源地 2VDD 电源正极 3VL 液晶显示偏压信号, 4RS 数据/命令选择端(H/L) 5R/W 读/写选择端(H/L) 6E 使能信号 7D0Data I/O 8D1Data I/O 9D2Data I/O 10D3Data I/O 11D4Data I/O 12D5Data I/O 13D6Data I/O 14D7Data I/O 15BLA 背光源正 16BLK 背光源负 表 3-10 LCD1602A 接口信号说明 LCD1602 的显示与控制命令 1602 液晶模块内部的字符发生内存(CGROM)已经存储了 160 个不同的 点阵字符图形,如下图所示,这些字符有:阿拉伯数字、英文字母的大小写、 常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英 文字母“A”的代码是 01000001B(41H) ,显示时模块把地址 41H 中的点阵字符 图形显示出来,我们就能看到字母“A”。 1602 液晶模块内部的控制器共有 11 条控制指令,如下所示,它的读写操 作、屏幕和光标的操作都是通过指令编程来实现的。 (说明:1 为高电平、0 为 低电平) 000001NS N=1 当读/写一个字符后,地址指针加 1,且光标加 1; N=0 当读/写一个字符后,地址指针减 1,且光标减 1; S=1 当写一个字符,整屏显示左移(N=1) 或者右移(N=0),以得到光标不移动而整 屏移动的效果; S=0 当写一个字符,整屏显示不移动。 17 指令 1:清显示,指令码 01H,光标复位到地址 00H 位置; 指令 2:光标复位,光标返回到地址 00H; 指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左 移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效; 指令 4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示, 低电平表示关显示 C:控制光标的开与关,高电平表示有游标,低电平表示无 游标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁; 指令 5:光标或显示移位元 S/C:高电平时移动显示的文字,低电平时移动 光标; 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平时为单行显示,高电平时双行显示 F:低电平时显示 5x7 的点阵字符, 高电平时显示 5x10 的点阵字符; 指令 7:字符发生器 RAM 地址设置; 指令 8:DDRAM 地址设置; 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块 不能接收命令或者数据,如果为低电平表示不忙; 指令 10:写数据; 指令 11:读数据; 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模 块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显 示字符地址,也就是告诉模块在哪里显示字符。 1 开始 系统初始化 温度采集 温度处理 数据显示 第 4 章 系统软件设计 4.1 软件设计总体思路及主程序流程图 本系统采用 C 语言编写,主程序主要由四部分构成,系统通电后首先初始化 系统,依次完成温度采集、温度处理、数据显示等三项功能。温度采集部分主要 完成 4 个温度测试点的温度数据采集任务;温度处理部分主要实现对采集到的 温度进行处理;数据显示部分主要实现温度数据的显示。系统软件主流程如图 4-1 所示: 图 4-1 系统软件总流程图 4.2 测温模块流程图 4.2.1 温度的采集 每一片 DSl8B20 在其 ROM 中都存有其唯一的 48 位序列号,在出厂前已写 入片内 ROM 中,主机在进入操作程序前必须逐一接入 DSl8B20,用读 ROM(33H)命令将该 DSl8B20 的序列号读出并登录。当主机需要对众多在线 DSl8B20 的某一个进行操作时首先要发出匹配 ROM 命令(55H),紧接着主机提 供 64 位序列(包括该 DSl8B20 的 48 位序列号)之后的操作就是针对该 DSl8B20 的,而所谓跳过 ROM 命令即为之后的操作,是对所有 DSl8B20 的框图中先有 跳过 ROM 即是启动所有 DSl8B20 进行温度变换之后通过匹配 ROM 再逐一地 读回每个 DSl8B20 的温度数据在 DSl8B20 组成的测温系统中主机在发出跳过 ROM 命令之后再发出统一的温度转换启动码 44H 就可以实现所有 DSl8B20 的 2 读温度 初始化温度传感器 进行温度转换 读取温度 调试显示子程序 子程序返回 统一转换再经过 1s 后就可以用很少的时间去逐一读取这种方式,使其 T 值往往 小于传统方式。由于采取公用的放大电路和 A/D 转换器只能逐一转换,显然通 道数越多这种省时效应就越明显。 图 4-2 DSl8B20 操作流程图 4.2.2 多点温度的采集 单总线 已经挂接了 4 个 DS18B20。由于已经在上面获取了多个 DS18B20 的 ROM 代码并在 AT89C51 单片机内部的中建立了测量位置点和传感器 64 位 ROM 代码之间的关系表,因此对多个温度的巡回测量的步骤如下: (1)发跳过 ROM 命令 CCH。 (2)发启动所有在线的 DS18B20 进行温度转换命令 44H。 (3)延迟 1s。 (4)发匹配 ROM 命令 55H。 (5)按照 AT89C51 中建立的关系表的顺序取出 64 位 ROM 代码发送到单总 线。 (6)发读温度值命令 BEH,读取温度值。 (7)进行 CRC 校验和数据处理后送 LCD 显示器显示。 (8)重复第 4 步到第 7 步,直到所有的 DS18B20 测量处理完。 (9)再重复第 1 步到第 8 步,进行下一轮的巡回测量。 3 如果只对某一个 DS18B20 进行温度测量,只要将第 1 步跳过 ROM 命令 CCH,改为匹配 ROM 命令 55H,将拨动开关拨到和要测量的 DS18B20 的编号相 对应的数值上,单片机读取拨动开关的数值(编号)n,到 AT89C51 建立的关系表中 从(n -1)8 开始的单元取出 ROM 代码发送到总线,去掉第 8 步,其余和上面步骤 相似即可。测试中,DS18B20 选择芯片出厂时默认的 12 位转换精度,转换的结果 用 16 位符号扩展的二进制补码读数形式提供。 初始化 跳过 ROM 等待 1S 初始化 设置 18B20 个数 符合 ROM 读存储器 缓冲指针增一 初始化 B1=0? 否 图 4-3 多路温度测量电路流程图 4.3 显示模块流程图 开始 初始化 LCD1602 写显示地址 写显示字符 子程序返回 是 4 图 4-4 LCD1602 操作流程图 4.4 参照流程图编写程序 程序如下: 4.4.1 头文件 LCD1602.H /*lcd1602.h 头文件*功能 LCD1602 驱动函数的申明*/ #ifndef _LCD1602_H_ #define _LCD1602_H_ #include #include #define uchar unsigned char #define uint unsigned int /*接口定义*/ sbit LcdRs =P20; sbit LcdRw =P21; sbit LcdEn =P22; sfr DBPort =0x80; /sbit LcdRs =P37; /sbit LcdRw =P36; /sbit LcdEn =P20; /sfr DBPort =0x80; /*功能:判断 LCD 忙 *参数:无*/ unsigned char Lcd_Wait(void); /*功能:写 LCD 函数 * 参数:style 为写命令/数据,0- 命令,1-数据;input 为写入的 8 位 *命令/数据*/ #define Lcd_Command 0 #define Lcd_Data 1 #define Lcd_Clear_Screen 0x01 #define Lcd_Home 0x02 void Lcd_Write(bit style,unsigned char input); /*功能:设置显示模式*参数: */ #define Lcd_Display_On 0x04 #define Lcd_Display_Off 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025辽宁抚顺新抚钢有限责任公司招聘拟聘用人员考前自测高频考点模拟试题及1套完整答案详解
- 2025年临沂郯城县部分医疗卫生事业单位招募见习人员的模拟试卷及答案详解(名师系列)
- 2025年福建省厦门海沧华附实验小学招聘1人考前自测高频考点模拟试题及一套完整答案详解
- 2025江苏苏州市昆山高新集团有限公司选聘子企业负责人1人模拟试卷及完整答案详解一套
- 2025年合肥综合性国家科学中心大健康研究院招聘4人模拟试卷及答案详解(典优)
- 2025年湖南常德津市市人民医院公开招聘专业技术人员16人考前自测高频考点模拟试题完整参考答案详解
- 2025年河北廊坊大厂县中医医院公开招聘医师10人考前自测高频考点模拟试题完整答案详解
- 2025河南省机场集团有限公司招聘毕业生考前自测高频考点模拟试题及答案详解(名校卷)
- 2025福建福州市水路运输事业发展中心招聘编外人员1人模拟试卷及答案详解1套
- 2025年福建省福州市鼓楼区总医院成员单位招聘18人考前自测高频考点模拟试题含答案详解
- 塔吊租赁服务技术实施方案技术标
- 员工组织承诺的形成过程内部机制和外部影响基于社会交换理论的实证研究
- 优质课件:几代中国人的美好夙愿
- 2023年真空镀膜机行业市场分析报告及未来发展趋势
- 物业礼仪规范培训方案
- 约谈记录表模板
- 外科护理学阑尾炎教案
- 注塑成型技术培训之工艺理解课件
- 广西佑太药业有限责任公司医药中间体项目环评报告书
- 海绵城市公园改造施工组织设计
- 上体自编教材-体育运动概论-模拟
评论
0/150
提交评论