基于51单片机的ds18b20数字温度计的实训报告_第1页
基于51单片机的ds18b20数字温度计的实训报告_第2页
基于51单片机的ds18b20数字温度计的实训报告_第3页
基于51单片机的ds18b20数字温度计的实训报告_第4页
基于51单片机的ds18b20数字温度计的实训报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

天津电子信息职业技术学院天津电子信息职业技术学院 暨国家示范性软件职业技术学院暨国家示范性软件职业技术学院 单片机实训 题 目: 用 MCS-51 单片机和 18B20 实现数字温度计 姓 名: 系 别: 网络系 专 业: 计算机控制技术 班 级: 计控 指导教师: * 伟 时间安排:2013 年 1 月 7 日 至 2013 年 1 月 11 日 - 1 - 摘要摘要 随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉 中温度进行监测和控制。采用单片机来对他们控制不仅具有控制方便,简单和 灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的 提高产品的质量和数量。 在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生 产过程和科学实验中普遍而且重要的物理参数之一。在生产过程中,为了高效 地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。 温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术 已经比较成熟。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的 一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的 外部硬件支持。我们用一种相对比较简单的方式来测量。 我们采用美国 DALLAS 半导体公司继 DS18B20 之后推出的一种改进型智能温 度传感器 DS18B20 作为检测元件,温度范围为-55125 C,最高分辨率可达 0.0625 C。DS18B20 可以直接读出北侧温度值,而且采用三线制与单片机相连, 减少了外部的硬件电路,具有低成本和易使用的特点。 本文介绍一种基于 AT89C51 单片机的一种温度测量及报警电路,该电路采用 DS18B20 作为温度监测元件,测量范围 0-+100,使用 LED 模块显示,能 设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成 温度传感器 DS18B20 的原理,AT89C51 单片机功能和应用。该电路设计新颖、 功能强大、结构简单。 关键词:关键词:单片机,数字控制,温度计, DS18B20,AT89S51 第第 1 1 章章. .数字温度计总体设计方案数字温度计总体设计方案 1.11.1 数字温度计设计方案论证数字温度计设计方案论证 1.1.11.1.1 方案一方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应, 在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片 机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需 要用到 A/D 转换电路,感温电路比较麻烦。 1.1.21.1.2 方案二方案二 (1).(1).进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感 器,所以这是非常容易想到的,所以可以采用一只温度传感器 DS18B20,此传 感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也 比较简单,故采用了方案二。 (2).(2).方案二的总体设计框图方案二的总体设计框图 温度计电路设计总体设计方框图如图 1 所示,控制器采用单片机 AT89S51,温度传感器采用 DS18B20,用 4 位 LED 数码管以串口传送数据实现温 度显示 图 1 总体设计方框图 主 控 制 器 LED 显 示温 度 传 感 器 单片机复位 时钟振荡 报警点按键调整 - 3 - 第第 2 2 章章 数字温度计详细设计数字温度计详细设计 2.1 主控制器 AT89S51 2.1.1 AT89s51 的特点及特性: 40 个引脚,4k bytes flash 片内程序存储器,128 bytes 的随机存取数据存储 器(ram) ,32 个外部双向输入/输出(i/o)口,5 个中断优先级 2 层中断嵌套 中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(wdt)电 路,片内时钟振荡器。 此外,at89s51 设计和配置了振荡频率可为 0hz 并可通过软件设置省电模 式。空闲模式下,cpu 暂停工作,而 ram 定时计数器,串行口,外中断系统可 继续工作,掉电模式冻结振荡器而保存 ram 的数据,停止芯片其它功能直至外 中断激活或硬件复位。同时该芯片还具有 pdip、tqfp 和 plcc 等三种封装形式, 以适应不同产品的需求。 主要功能特性: 兼容 mcs-51 指令系统 4k 可反复擦写(1000 次)isp flash rom 32 个双向 i/o 口 4.5-5.5v 工作电压 2 个 16 位可编程定时/计数器 时钟频率 0-33mhz 全双工 uart 串行中断口线 128x8bit 内部 ram 2 个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 3 级加密位 看门狗(wdt)电路 软件设置空闲和省电功能 灵活的 isp 字节和分页编程 双数据寄存器指针 2.1.22.1.2 管脚功能说明:管脚功能说明: VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储 器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输 入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接 收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收, 输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且 作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由 于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器 进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉 优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器 的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为 输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示: P3 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断 0) P3.3 /INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电 平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的 地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以 不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作 对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储 器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此 时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微 拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号 将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H- FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此 - 5 - 引脚也用于施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.1.3振荡器特性: XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为 片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外 部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2.1.42.1.4芯片擦除:芯片擦除: 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且 在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持 两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计 数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振 荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。单片机 AT89S51 具 有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设 计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。 单片机 AT89S51 具有低电压供电和体积小等特点,四个端口只需要两个口就 能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节 电池供电。 2.2 温度采集部分的设计 2.2.1.温度传感器 DS18B20 DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能 温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并 且可根据实际要求通过简单的编程实现位的数字值读数方式。 TO92 封装的 DS18B20 的引脚排列见下图,其引脚功能描述见表 1。 (底视图) DS18B20 表 1 DS18B20 详细引脚功能描述 序 号 名称引脚功能描述 1GND 地信号 2DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源 下,也可以向器件提供电源。 3VDD 可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。 DS18B20 的性能特点如下: (1)独特的单线接口仅需要一个端口引脚进行通信; (2)多个 DS18B20 可以并联在惟一的三线上,实现多点组网功能; (3)无须外部器件; (4)可通过数据线供电,电压范围为 3.05.5; (5)零待机功耗; (6)温度以或位数字; (7)用户可定义报警设置; (8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; (9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正 常工作; DS18B20 采用脚 PR35 封装或脚 SOIC 封装,其内部结构框图如图 2 所示。 图 2 DS18B20 内部结构 64 位 ROM 的结构开始位是产品类型的编号,接着是每个器件的惟一的序 号,共有 48 位,最后位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可 以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户 报警上下限。 DS18B20 温度传感器的内部存储器还包括一个高速暂存和一个非易失 性的可电擦除的 EERAM。高速暂存 RAM 的结构为字节的存储器,结构如图 3 I/O C 64 位 RO M 和 单 线 接 口 高 速 缓 存 存储器与控制逻辑 温度传感器 高温触发器 TH 低温触发器 TL 配置寄存器 8 位 CRC 发生器 Vdd - 7 - 所示。头个字节包含测得的温度信息,第和第字节和的拷贝, 是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用 于确定温度值的数字转换分辨率。DS18B20 工作时寄存器中的分辨率转换为相 应精度的温度数值。该字节各位的定义如图 3 所示。低位一直为,是 工作模式位,用于设置 DS18B20 在工作模式还是在测试模式,DS18B20 出厂时 该位被设置为,用户要去改动,R1 和0 决定温度转换的精度位数,来设置 分辨率。 TM R1 1R01111 . . 图 3 DS18B20 字节定义 由表 1 可见,DS18B20 温度转换的时间比较长,而且分辨率越高,所需要 的温度数 据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存的第、字节保留未用,表现为全逻辑。第字 节读出前面所有字节的 CRC 码,可用来检验数据,从而保证通信数据的正确 性。 当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值 就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。 单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格 式以 0.0625LSB 形式表示。 当符号位时,表示测得的温度值为正值,可以直接将二进制位转换 为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原 码,再计算十进制数值。表 2 是一部分温度值对应的二进制温度数据。 表 1 DS18B20 温度转换时间表 R0R1 0 0 0 1 0 1 1 1 9 10 11 12 分辨率/位 温度最大转向时间/ms 93.75 187.5 375 750 . . DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、T字节内容 温度 LSB 温度 MSB TH 用户字节 1 TL 用户字节 2 配置寄存器 保留 保留 保留 CRC 作比较。若TH 或 TTL,则将该器件内的报警标志位置位,并对主机发出 的报警搜索命令作出响应。因此,可用多只 DS18B20 同时测量温度并进行报警 搜索。 在 64 位 ROM 的最高有效字节中存储有循环冗余检验码(CRC) 。主机 ROM 的 前 56 位来计算 CRC 值,并和存入 DS18B20 的 CRC 值作比较,以判断主机收到的 ROM 数据是否正确。 DS18B20 的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度 的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶 振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输 入。器件中还有一个计数门,当计数门打开时,DS18B20 就对低温度系数振荡 器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系 数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法 计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一 个基数值。 减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被 装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如 此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器 中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器 门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。 表 2 一部分温度对应值表 温度/二进制表示十六进制表示 +1250000 0111 1101 0000 07D0H +850000 0101 0101 0000 0550H +25.06250000 0001 1001 0000 0191H +10.1250000 0000 1010 0001 00A2H +0.50000 0000 0000 0010 0008H 00000 0000 0000 1000 0000H -0.51111 1111 1111 0000 FFF8H -10.1251111 1111 0101 1110 FF5EH -25.06251111 1110 0110 1111 FE6FH -551111 1100 1001 0000 FC90H - 9 - 另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念, 因此读写时序很重要。系统对 DS18B20 的各种操作按协议进行。操作协议为: 初使化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理 数据。 DS 18B 20DS 18B 20DS 18B 20 4.7 K GNDGNDGND VCC VCC单 片 机 . . . . 图 4 DS18B20 与单片机的接口电路 2.2.22.2.2 DS18B20DS18B20 温度传感器与单片机的接口电路温度传感器与单片机的接口电路 DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20 的 1 脚接地,2 脚作为信号线,3 脚接电源。另一种是寄生电源供电方式,如图 4 所示单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够 的电流,可用一个 MOSFET 管来完成对总线的上拉。 当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的 上拉,上拉开启时间最大为 10us。采用寄生电源供电方式时 VDD 端接地。由于 单线制只有一根线,因此发送接口必须是三态的。由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格 的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的 时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总 线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开 始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成 数据接收。数据和命令的传输都是低位在先。 DS18B20 的复位时序 DS18B20 的读时序 对于 DS18B20 的读时序分为读 0 时序和读 1 时序两个过程。 对于 DS18B20 的读时隙是从主机把单总线拉低之后,在 15 秒之内就得释放 单总线,以让 DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过 程,至少需要 60us 才能完成。 DS18B20 的写时序 对于 DS18B20 的写时序仍然分为写 0 时序和写 1 时序两个过程。 对于 DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线 要被拉低至少 60us,保证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 IO 总线上的“0”电平,当要写 1 时序时,单总线被拉低之后,在 15us 之内就得 释放单总线。 2.3 显示部分电路设计 2.3.1 74LS164 引脚功能及特性 4ls164 是一个串入并出的 8 位移位寄存器, 他常用于单片机系统中,下面总结一下这个元件的基本知识 - 11 - 74ls164 引脚图 74LS164 内部功能图 74LS164 逻辑符合表 串行输入带锁存 时钟输入,串行输入带缓冲 异步清除 最高时钟频率可高达 36Mhz 功耗:10mW/bit 74 系列工作温度: 0C to 70C Vcc 最高电压:7V 输入最高电压:7V 最大输出驱动能力: 高电平:0.4mA 低电平:8mA 2.3.2 显示电路 显示电路采用 4 位共阳 LED 数码管,从 P3 口 RXD,TXD 串口输出段码。 显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少, 该显示电路只使用单片机的 3 个端口 P1.7,P3.0,P3.1.并配以 4 片串入并出移 位寄存器 74LS164(LED 驱动)四只数码管采用 74LS164 右移寄存器驱动,显示 比较清晰。 其工作过程如下: 1. 串行数据由 P3.0 发送,移位时钟由 P3.1 送出。 2. 在移位时钟的作用下串行口发送缓冲器的数据一位一位地移入 74LS164 中。 3. 四片 74LS164 串级扩展为 4 个 8 位并行输出口,分别连接到 4 个 LED 显 示器的段选端作静态显示。 2.4 报警电路的实现 图 5 中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时 LED 数码管将没有被测温度值显示. 2.5 报警上,下限调整电路实现 图 5 中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可 以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时 LED 数码管将没 有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。 2.6 复位电路的实现 图 5 中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时, 可以手动复位,这样就不用在重起单片机电源,就可以实现复位。 图 5 单片机主板电路 - 13 - 图 6 温度显示电路 第第 3 3 章章 系统软件设计系统软件设计 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算 温度子

温馨提示

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

评论

0/150

提交评论