1、 课程设计 (论文 )说明书 题 目: 基于 DS18B20 的数字 温度计的设计与实现 院 (系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 武小年 职 称: 副教授 2012 年 12 月 10 日 基于 DS18B20 的数字温度计的设计与实现 摘要: 随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。对于温度的测量方法与装置的研究就凸显得非常重要。由单片机与温度传感器构成的测温系统可广泛应用于很多领域。 本设计采用 51单片机和 DS18B20 数字温度传感器来进行温度测量的方法 ,包括温度传感器芯片
2、的选取、单片机与温度传感器接口电路的设计 ,以及实现温度信息采集和数据传输的软件设计。 DS18B20 数字温度传感器是单总线器件 ,与 51 单片机组成一个测温系统 ,具有线路简单、体积小等特点 ,而且在一根通信线上 ,可以挂接很多这样的测温系统 ,十分方便。 关键词 : 单片机;温度传感器;数字温度计 Design and implementation of the digital thermometer based on DS18B20 Abstract:With the progress and development of era,microcontroller technology
3、 has become popular in our life,in the work,the scientific research and various fields,has become a relatively mature technology.The temperature measurement method and device of the highlights is very important.Posed by the single chip temperature sensor and temperature measurement system can be wid
4、ely applied in many fields. A practical temperature measuring method based on microcont roller and DS18B20 digital temperature sensor was presented. The selection of temperature sensor chip was discussed and the design of hardware interface circuit and related sof tware were dealt with in more detai
5、ls. The proposed design is simple in hardware connection lines and small in size. In addition , it is applicable for different temperature measuring systems based on DS18B20 temperature sensors hung on one communication line. Key words:microcontroller;temperature sensor;temperature measurement syste
6、m 目 录 1 绪论 . 1 1.1 温度计的介绍 . 1 1.2 选题的目的和意义、 . 1 1.2.1 选题的目的 . 1 1.2.2 选题的意义 . 2 2 数字温度计的设计方案 . 2 2.1 设计方案的确立及论证 . 2 2.1.1 温度传感器 DS18B20 的选择 . 2 2.1.2 单片机 STC89C52 的选择 . 3 3 系统硬件电路 的设计 . 3 3.1 主控制器 . 3 3.1.1 STC89C52 的介绍 . 4 3.1.2 DS18B20 的介绍 . 10 3.1.3 DS18B20 使用的注意事项 . 17 3.2 DS18B20 与单片机接口电路的设计 .
7、17 3.3 显示电路的设计 . 18 3.3.1 方案一:数码管显示 . 18 3.3.2 方案二:液晶显示 . 19 3.3.3 显示电路 . 22 4 系统程序的设计 . 22 4.1 系统设计内容 . 23 4.1.1 主程序 . 23 4.1.2 读出温度子程序 . 23 4.1.3 温度转换命令子程序 . 24 4.1.4 计算温度子程序 . 24 4.1.5 显示数据刷新子程序 . 25 4.1.6 温度数据的计算处理方法 . 26 4.2 汇编源程序 . 26 4.2.1 DS18B20 的各条 ROM 命令 . 26 5 调试及性能分析 . 28 5.1 系统的调试 . 28
8、 5.2 性能分析 . 28 致 谢 . 错误 !未定义书签。 参考文献 . 30 附录 . 31 基于 DS18B20 的数字温度计的设计与实现 1 绪论 1.1 温度计的介绍 温度计是测温仪器的总称。根据 所用测温物质的不同和测温范围的不同,有煤油温度计、酒精温度计、水银温度计、气体温度计、电阻温度计、温差电偶温度计、辐射温度计和光测温度计等。 随着科学技术的发展和现代工业技术的需要,测温技术也不断地改进和提高。由于测温范围越来越广,根据不同的要求,又制造出不同需要的测温仪器。下面介绍几种。 气体温度计多用氢气和氦气作测温物质,因为氢气和氦气的液化温度很低,接近于绝对零度,故它的测温范围很
9、广。这种温度计精确度很高,多用于精密测量。 电阻温度计分为金属电阻温度计和半导体电阻温度计,都是根据电阻值随温度的变化这一 特性制成的。金属温度计主要有用铂、金、铜、镍等纯金属的及铑铁、磷青铜合金的;半导体温度计主要用碳、锗等。电阻温度计使用方便可靠,已广泛应用。它的测量范围为 -260至 600左右。 温差电偶温度计是一种工业上广泛应用的测温仪器。利用温差电现象制成。两种不同的金属丝焊接在一起形成工作端,另两端与测量仪表连接,形成电路。把工作端放在被测温度处,工作端与自由端温度不同时,就会出现电动势,因而有电流通过回路。通过电学量的测量,利用已知处的温度,就可以测定另一处的温度。这种温度计多
10、用铜 康铜、铁 康铜、镍铭 康铜、金 钻 铜、铂 铑等组成。它适用于温差较大的两种物质之间,多用于高温和低浊测量。有的温差电偶能测量高达 3000的高温。有的能测接近绝对零度的低温。 1 1.2 选题的目的和意义 1.2.1 选题的目的 利用单片机 STC89C52 和温度传感器 DS18B20 设计一个设计温度计,能够测量 -55 +125之间的温度值,用 LCD 液晶屏直接显示,误差在 0.5以内,同时要求使用的元器件数目最少。通过这次设计能够更加了解数字温度计的工作原理和熟悉单片机的发展和应用,巩固所学的知识。 1.2.2 选题的意义 单片机是 随着超大规模集成电路技术的发展而诞生的,由
11、于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。本设计主要利用单片机和 LCD 液晶显示屏设计一个数字显示的温度计。选题的意义在于通过这次设计可以将平时在课堂上学到的关于单片机的知识应用与实践中,而且更加深入的认识到单片机在现代生活和生产中的重要性。 2 数字温度计的设计方案 2.1 设计方案的确立及论证 功能要求: 数字式 温度计测温范围在 -55 +125,误差在 0.5以内,采用 LCD 液晶屏显示,直接读取测温值。 方案论证: 2.1.1
12、温度传感器 DS18B20 的选择 方案一:水银温度计 在生活中我们经常看到水银温度计,它只能作为就地监督的仪表,用它来测量温度时,由于读数时用眼睛观察,主观因素大,容易造成误差大,而且不同是水银温度计量程不同,在读数前需要看清它的最小分度值,还有它有热惯性,需要等到温度计达到稳定状态后才能读数,比较麻烦,并且水银有毒,不小心打破后接触到水银,对人体伤害大,所以危险性较高。 方案二:传统测 温元件 传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,其缺点有:硬件电路复杂;软件调试复杂;制作成本高。 方案三: DS18B20 传感器
13、测温 本设计采用美国 DALLAS半导体公司继 DS1820之后推出的一种改进型智能温度传感器 DS18B20 作为检测元件 DS18B20 可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有成本低和易使用的特点。 2.1.2 单片机 STC89C52 的选择 STC89C52 是一种低功 耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程Flash 存储器,内置看门狗定时器,而且 STC89C52 可降到 0Hz 静态逻辑操作,支持两种软件可选择节电模式。空闲模式下, CPU 停止工作,允许 RAM、定时器计数器、串口、中断继续工作。掉电保护方式下, R
14、AM内存被保存,振荡器被冻结,单片机一切工作停止,直到一个中断或硬件复位为止。而且 STC89C52 的工作电压为 3.3V,因此可以用来开发三节 5 号电池供电的便携式产品。 和AT89S52 单片机 的对比 : STC89C52RC 单片机 : 8K字节程序存储空间; 512 字节数据存储空间; 内带 4K字节 EEPROM 存储空间 ; 可直接使用串口下载 。 AT89S52 单片机 : 8K字节程序存储空间; 256字节数据存储空间; 没有内带 EEPROM 存储空间 。 因此选用 STC89C52 更适合。 按照系统设计功能的要求,确定系统由 3个模块组成;主控制器、测温电路和显示电
15、路。 数字温度计总体设计电路结构框图如 2.1 图所示: 图 2.1 数字温度计总体结构框图 3 系统硬件电 路的设计 3.1 主控制器 单片机 STC89C52 具有高速、低功耗、超强抗干扰的特点,指令代码完全兼容传统 8051 单片机, 12时钟机器周期和 6时钟机器周期可以任意选择。 DS18B20 STC89C52 主 控 制 器 显示电路 扫描驱动 3.1.1 STC89C52 的介绍 STC89C52 简介: STC89C52 是一种带 8K 字 节 闪 烁 可 编 程 可 擦 除 只 读 存 储 器( FPEROM-Flash Programable and Erasable R
16、ead Only Memory) 的低电压,高性能 COMOS8 的微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与 工业标准的 MCS-51指令集和输出管脚相兼容。实物如 3.1图所示: 图 3.1 STC89C52 实物图 STC89C52 引脚及特点 STC89C52 的引脚如图 3.2 所示: 图 3.2 芯片引脚功能 1. STC89C52 引脚功能说明 Vcc( 40引脚) :电源电压。 Vss( 20引脚):接地。 P0端( P0.0 P0.7, 39 32引脚): P0口是一个漏极开路的 8 位双向I/O口。作为输出端口,每个引脚能驱动 8 个
17、TTL负载,对端口 P0写入“ 1”时,可以作为高阻抗输入,在 访问外部程序和数据存储器时, P0 口也可以提供低 8 位地址和 8 位数据的复用总线。此时, P0 口内部上拉电阻有效。在 Flash ROM 编程时, P0 端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。 P1 端口( P1.0 P1.7, 1 8 引脚): P1口是一个带内部上拉电阻的 8位双向 I/O 口。 P1 的输出缓冲器可驱动 4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。 P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚
18、会输出一个电流。 此外, P1.0 和 P1.1 还可以作为定时器 /计数器 2 的外部技术输入(P1.0/T2)和定时器 /计数器 2的触发输入 (P1.1/T2EX),具体如表 3.1 所示 : 表 3.1 P1.0 和 P1.1 引脚复用功能 P2 端口 (P2.0 P2.7,21 28 引脚 );P2 口是一个带内部上拉电阻的 8位双向 I/O 口 .P2 的输出缓冲器可以驱动 4个 TTL 输入。对端口写入 1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。 P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在访问外部程序存储器和 16
19、 位地址的外部数据存储器(如执行“ MOVXDPTR”指令)时, P2送出高 8位地址。在访问 8位地址的外部数据存储器(如执行“ MOVXR1”指令)时, P2口引脚上的内容,在整个访问期间不会改变。 在对 Flash ROM 编程和程序校验期间, P2 也接收高位地址和一些控制信号。 P3 端口( P3.0 P3.7, 10 17引脚): P3 是一个带内部上拉电阻的 8位双向 I/O 口。 P3 的输出缓冲器可驱动 4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。 P3 作输入口使用时,因为有内部的上拉 电阻,那些被外部信号拉低的引脚会输入
20、一个电流。 在对 Flash ROM 编程或程序校验时, P3还接收一些控制信号。 P3 口除作为一般 I/O 口外,还有其他一些复用功能,如表 3.2所示: 表 3.2 P3 口引脚复用功能 RST( 9 引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。看门狗计时完成后, RST引脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。 DISRTO 默认状态下,复位高电平有效。 ALE/PROG (30 引脚 ):地址锁存控制信号 (ALE)是访问外部程序存储器时锁存低 8位地址的输出脉冲。在
21、 Flash 编程时,此引脚( PROG )也用作编程输入脉冲。 在一般情况下, ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲将会跳过。 如果需要,通过将地址位 8EH 的 SFR 的第 0 位置“ 1”, ALE 操作将无效。这一位置“ 1”, ALE 仅在执行 MOVX 或 MOV指令时有效。否则, ALE 将被微弱拉高。这个 ALE使能标志位(地址位 8EH 的 SFR 的 第 0 位)的设置对微控制器在外部执行模式下无效。 PSEN( 29 引脚):外部程序存储器选通信号( PSEN)是外部程序存储器选
22、通信号。当 AT89C51RC 从外部程序存储器执行外部代码时, PSEN 在每个机器周期被激活两次,而访问外部数据存储器时, PSEN 将不被激活。 EA/VPP( 31 引脚):访问外部程序存储器控制信号。为使能从 0000H到 FFFFH 的外部程序存储器读取指令, EA必须接 GND。注意加密方式 1时,EA将内部锁定为 RESET。为了执行内部程序指令, EA应该接 VCC。在 Flash编程期间, EA也接 收 12 伏 VPP 电压。 XTAL1( 19引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2( 18 引脚):振荡器反相放大器的输入端。 2.特殊功能寄存器 STC89C52除了有定时器 /计数器 0和定时器 /计数器 1之外 ,还增加了一个定时器 /计数器 2.定时器 /计数器 2 的控制与状态位位于 T2CON,如表 3.3所示: 表 3.3 特殊功能寄存器 T2CON 的描述 T2CON 地址 =0C8H 可位寻址 复位值 =00H 定时器 2是一个 16位定时 /计数器。 通过设置特殊功能寄存器 T2CON 中的 C/T2 位,可将其作为定时器或计数器(特殊功能寄存器 T2CON 的功能说明如表 3.4所示)。