1、 数显温度计的设计与制作 1 在日常生活、工业、军事等领域,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持, 硬件电路复杂,软件调试复杂,制作成本高。 美国 DALLAS 半导体公司生产的 DS18B20 单线智能温度传感器,属于新一代适配微处理器的能温度传感器,本数显温度计设计采用 DS18B20 作为检测元件, 测量温度范围为 -55125 ,最大分辨率为 0.0625,该数显温度计可直接读出被测温度值,具有测温误差小,分辨力高,抗干扰能力强,能够远程传输数据,用户可设定温度上下限,有越限自动报警
2、功能,自带串行接口总线等优点而且采用 3 线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 .: 单片机 AT89C2051DS18B20 温度传感器分辨率 1 珜 ? 侻 粪 数显温度计的设计与制作 2 design and manufacture ABSTRACT In daily life, industrial, military and other areas often have to use the temperature detection and control, traditional detectors. This a thermocouple and
3、thermal resistance, thermocouple and thermal resistance measured in general are voltage, turn replaced by the corresponding temperature, need more external hardware support complex hardware and software debugging complex, production costs high. The United States Dallas Semiconductor DS18B20 produced
4、 by a single intelligent temperature sensor, belong to a new generation of microprocessors to fit the temperature sensor, The digital thermometer DS18B20 used as a design element detection. Measuring temperature range of -55125 , maximum resolution of 0.0625 The digital thermometer can be directly r
5、ead out the measured temperature, measurement error is small, high resolution, anti-interference capability. to long-distance transmission of data, users can set the temperature lower and upper limits of a more limited automatic alarm function, bringing their Serial Bus interface and the advantages
6、of using 3-wire microcontroller connected with the reduction of the external circuit low cost and easy to use feature. KEY WORDS: SCM AT89C2051,DS18B20 Temperature Sensor,RESOLUTION PQ 数显温度计的设计与制作 3 目 录 .1 1.1 电路工作原理概述及清单列表.1 1.2 主控制器.2 1.3 显示电路.2 .3 2.1 单片机 AT89C2051 芯片的结构和性能.3 211 主要性能参数.3 212 功能特
7、性概述.4 213 引脚功能说明.4 214 某些指令的约束条件.6 215 程序存储器的加密.7 216 空闲模式.7 217 掉电模式 .8 2.2 温度传感器工作原理.8 . 221 DS18B20 的性能特点. .8 222 DS18B20 的测温原理.13 223 DS18B20 与单片机的接口电路.14 0A4H, 0B0H, 99数显温度计的设计与制作 4 2.3 时钟信号电路与复位电路的分析.14 231 AT89C2051 的时钟电路.14 232 AT89C2051 的复位电路.15 2.4 总线驱动.16 .173.1 主程序.17 3.2 读出温度子程序.18 3.3
8、温度转换命令子程序.19 3.4 计算温度子程序.19 3.5 显示温度数据刷新子程序19 3.6 DS18B20 的各个 ROM 命令 21 3.7 温度数据的计算处理方法23 .24.25.37 毕业设计的切身认识.37 致谢.38 参考文献.39 (附录) %? 数显温度计的设计与制作 5 11 温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传感器使用 DS18B20,用 4 位共阳极 LED 数码管以动态扫描法实现温度显示。 数显温度计的设计与制作 6 12 单片机AT89C2051 具有低压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手
9、式产品的设计使用,系统可用二节电池供电。 13 显示电路采用 4 位共阳极 LED 数码管,从 P1 口输出段码,列扫描用 P3.0P3.3口来实现,列驱动用 9012 三极管。如下图所示 u 隅濅 0数显温度计的设计与制作 7 21 AT89C2051 AT89C2051 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含有 2KB 的可反复擦写的只读程序存储器和 128B 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高精度 ,非易失性存储器技术生产,兼容标准MCS-51 指令系统 ,片内配置通用 8 位中央处理器和 Flash 存储单元,功能强大的A
10、T89C2051 单片机可为您提供许多高性价比的应用场合。 211 与 MCS-51 产品指令系统完全 2KB 可反复擦写闪速存储器 1000 次擦写周期 2.7V6V 的工作电压范围 全静态操作: 0MHz24MHz 两级加密程序存储器 1288B 内部 ROM 15 个可编程 I/O 口线 2 个 16 位定时/计数器 潜硎菊嬷康母行唬 ? 数显温度计的设计与制作 8 6个中断源 可编程串行 UART 通道 可直接驱动 LED 的输出端口 内置一个模拟比较器低功耗空闲和掉电模式 AT89C2051提供以下标准功能:2KB 的 Flash 闪速存储器,128B 内部 RAM,15个 I/O
11、口线,两个 16 位定时/记数器,一个 5 向量两级中断结构,一个全双工串行通信口,内置一个精密比较器,片内震荡器及时钟电路。同时,AT89C2051 可降至0HZ 静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM、定时/记数器,一个 5 向量两级中断结构,一个全双工串行通信口,内置一个精密比较器,片内震荡器及时钟电路继续工作。掉电方式保存 RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。 鯹?V撼? 数显温度计的设计与制作 9 的封装的形式和引脚排列如上图所示电源 接地 口口是一组 8 位双向端口,提供内部上拉电阻,主要考
12、虑他们分别是内部精密比较器的同向输入端()和反向输入端() ,如果需要应在外部接上拉电阻。口输出缓冲器可吸收电 并可直接驱动。当口引脚写入“1”时可作输入端,当引脚用作输入并外部拉低时,他们将因内部的上拉电阻而输出电流() 。口还在 Flash 闪速编程及程序校验时接受代码数据。 口:口的是带有内部上拉电阻的 7 个双向。P3.6 没有引出,它作为一个通用口不可访问,但可以作为固定输入片内比较器的输出信号,P3 口缓冲器可吸收 20mA 电流。当 P3 口写入“1”时,他们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出流() 。P3 口还用于实现 AT8
13、9C2051 特殊的功能,如下表所示。P3 口还接收一些用于 Flash 闪速存储编程和程序校验的控制信号。 表 AT89C2051 的 P3 口的特殊功能 端口引脚功能特性 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外中断 0) P3.3 INT1(外中断 1) P3.4 T0(定时/计数器 0) P3.5 T1(定时/计数器 1) W 頙热-“?F 蚇碵螨刖 0 数显温度计的设计与制作 10 RST:复位输入。RST 引脚一旦保持两个机器周期以上的高电平,所有的I/O 口将复位到“1” (高电平)状态,当振荡器正在工作时,保持两个机器周期以上的高电
14、平便可完成复位,每个机器周期为 12 个时钟振荡周期。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 AT89C2051是经济型低价位的微控制器,它含有 2KB 的 Flash 闪速程序存储器,指令系统与 MCS-51 完全兼容,可使用 MCS-51 指令系统对 其进行编程。但是在使用某些有关指令进行编程时,程序员需注意一些事项。 和跳转或分支有关的指令有一定的空间约束,使目的地址能安全落在AT89C2051 的 2KB 的物理程序存储器空间内,程序员必须注意这一点。对于 2KB存储器的 AT89C2051 来说,LJMP 7E0H 是一条有效
15、指令,而 LJMP 7E0H 则为无效指令。 (1) 分支指令 对于 LCALL、LJMP 、ACALL、AJMP 、SJMP、JMPA+DPTR 等指令,只要程序员记住这些分支指令的目的地址在程序存储器大小的逻辑范围之内(AT89C2051 程序地址空间为:000H-7FFH 单元),这些无条件分支指令就会正确执行,超出物理空间的限制会出现不可预知的程序出错,至于中断的使用,80C51 系列硬件结构中已经保存标准中断服务子程序的地址。 (2) 与 MOVX 相关的指令,数据存储器 AT89C2051 包含 128B 内部数据存储器,这样, AT89C2051 的堆栈深度局限于内部 RAM 的
16、 128B 范围内,它既不支持外部数据存储器的访问,也不支持外部程序存储器的执行,因此程序不应有 MOVX?指令。 一般的 80C51 汇编器即使在违反上述指令约束而写入指令时仍对指令汇编,用户应了解正使用 AT89C2051 微控制器的存储器物理空间和约束范围,适当的调节所使用的指令寻址范围以适应 89C2051。 ?.173.1 主程序 数显温度计的设计与制作 11 AT89C2051可使用对芯片上的两个加密位进行编程(P)或不编程(U)得到如下表所示的功能。 程序加密 保护类型 LB1 LB2 1 U U 无程序加密功能 2 P U 禁止进一步进行 Flash 闪速编程 3 P P 同方
17、式 2,同时禁止校验 注:加密位只能用片擦除操作进行擦除 在空闲模式下,CPU 保持睡眠状态而所有片内的外设保持激活状态,这种方式由软件产生。此时,片内 RAM 和所有特殊功能寄存器的内容保持不变,空闲模式可有任何允许的中断请求或硬件复位终止。 或在不使用外部上拉电阻的情况下应设置为“0” ,而在使用上拉电阻的情况下设置为“1” 。 应注意的是:在用硬件复位终止空闲模式时,AT89C2051 通常从程序停止一直到内部复位获得控制之前的两个机器周期处恢复程序执行。在这种情况下片内硬件禁止对内部 RAM 的读写,但允许对端口的访问,要消除硬件复位终止空闲模式对端口意外写入的可能,原则上进入空闲模式
18、指令的下一条指令不应对端口引脚或外部存储器进行访问。 ?.8 - 数显温度计的设计与制作 12 在掉电模式下,震荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内 RAM 和特殊功能寄存器的内容在终止掉电模式前被终结,退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊寄存器但不改变 RAM 中的内容,在 VCC 恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重新启动并稳定工作。 P1.0 和 P1.1 在不使用外部上拉电阻的情况下应设置为“0”,而在使用外部上拉电阻时应设置为“1” 。 22 DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的
19、一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 912 位的数字读数方式。 221 DS18B20: 独特的单线接口仅需要一个端口引脚进行通信; 多个 DS18B20 可以并联在惟一的三线上,实现多点组网功能; 无须外部器件; 可通过数据线供电,电压范围为 3.05.5V; 零待机功耗; 温度以 9 或 12 位数字量读出; 用户可定义的非易失性温度报警设置; 报警搜索命令识别并标志超过程序限定温度的器件; 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20 采用 3 脚 PR-35 封装或
20、 8 脚 SOIC 封装,其内部结构框图如下图所示:OVX 相关的指令,数据存储器 数显温度计的设计与制作 13 DS18B20 64 位 ROM 的结构如下图所示。开始 8 位是产品类型的编号,接着是每个器件的唯一序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。非易失性温度报警触发器 TH 和 TL,可通过软件写入户报警上下限。 64ROM 8 位检验 CRC 48 位序列号 8 位工厂代码(10H ) MSB LSB MSB LSB MSB LSB o 数显温度计的设计与制作 14 DS18B20温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失