1、 1 目 录 第一章 绪论 . 1 1.1 选题背景和意义 . 1 1.2 系统概述 . 2 第二章 硬件电路的设计 . 3 2.1 ATmega16 单片机 . 3 2.1.1 ATmega16 的主要特性 . 3 2.1.2 ATmega16 引脚介绍 . 4 2.2 DS18B20 芯片 . 6 2.2.1 DS18B20 芯片的特性 . 6 2.2.2 DS18B20 引脚排列 . 7 2.2.3 DS18B20 的内部结构 . 7 2.2.4 DS18B20 芯片各部分介绍 . 8 2.3 单线总线系统 . 11 2.3.1 处理顺序 . 11 2.3.2 初始化 . 12 2.3.
2、3 ROM 操作指令 . 12 2.3.4 DS18B20 功能指令 . 12 第三章 系统软件设计 . 14 3.1 DSl8B20 温度测量 . 14 3.1.1 单点测量温度 . 14 3.1.2 多点测量温度 . 15 3.1.3 DS18B20 ROM 搜索 算法 . 17 3.1.4 C 语言程序实现 . 20 3.2 单总线信号时序 . 22 3.2.1 复位脉冲和应答脉冲 . 22 3.2.2 写操作和读操作 . 24 第四章 系统仿真调试 . 27 4.1 系统开发环境 . 27 4.2 系统仿真调试 . 28 结 论 . 30 致 谢 . 31 参考文献 . 32 2 基于
3、 DS18B20 单线多点温度测量系统 专业班级:电子信息工程 2班 学生姓名:杜刘乾 指导老师:秦玉龙 职 称:讲师 摘要 本次毕业设计是基于 DS18B20 单线多点温度测量系统。以 ATmega16 单片机为核心 ,使用温度传感器 DS18B20 实现温度的采集。论文 设计 的 目的是对 DS18B20 进行编程,了解其性能特点,通过所学的 C语言知识和相关资料提供的指令代码完成单片机与 DS18B20 的温度 监测 。 DS18B20 是一种智能温度传感器 ,它 能够直接读出被测温度并且可根据实际要求通过简单的编程实现 912 位 的数字值读数方式。使用 DS18B20 可使系统结构更
4、趋简单, 抗干扰能力强,适合于恶劣环境下现场温度的测量, 可靠性更高 ,可应用于仓库测温、楼宇空调控制和生产过程监控等领域。 单片机对传感器采集来的数据进行处理,通过 LCD 把各个点的温度给显示出来,另一方面单片机可以通过串口通讯传给上位机,由上位机软件显示出来;该系统可以设定温度上下限值,当温度超出系统设定的范围时,系统会报警提示。 关键词 : ATmega16 DS18B20 单线 多点 温度测量 3 1-Wire Multi-point temperature measurement system based on DS18B20 Abstract The graduation pro
5、ject is 1-Wire Multi-point temperature measurement s-ystem based on DS18B20.ATmega16 microprocessor as the core of it, the temper-ature collection is use of DS18B20. Our experimental purpose is programming to DS18B20 and understand its performance characteristics .The instruction code thro-ugh the C
6、 language knowledge and relevant information to complete the DS18B20 temperature measurements.DS18B20 is a smart temperature sensor .The DS18B20 digital thermometer provides 9-bit to 12-bit Celsius temperature measurements. UseDS18B20 makes the system structure more simple,and higher reliability.The
7、 system can be used in many fileds such as the temperature measurement system of war-ehouse,the air conditioning control of building and the monitor of productive process.The temperature data is conversed to digital signals in the sensor and then is tran -smitted to MCU, which processes the data fro
8、m sensor acquisition and displays thetemperature on various points through the LCD. On the other hand MCU can pass-through the serial port communications PC, from PC software displayed. The syste-m can set temperature limits from top to bottom, when the temperature exceeds t-e limits set by system,
9、the system will prompt the police. Key words ATmega16 DS18B20 1-wire multi-point temperature measurement1 第一章 绪论 1.1 选题背景和意义 温度是日常生活、工业、医学、环境保护、化工、石油等领域中不可缺少的物理量。温度的测量和控制在这些领域中就显得尤其重要。传统的温度检测是使用诸如热电偶 、热电阻、半导体 PN 结之类的模拟传感器,经信号取样电路、放大电路和模数转换电路处理,获取表示温度值的数字信号,再交由微处理器或DSP 处理。因为监测环境复杂,测量点多,信号传输距离远及各种干扰的影
10、响,使得传统测量系统的稳定性和可靠性下降。 随着社会的进步和工业技术的发展,温度因素在社会生活的各个方面都起到了重要的作用。由于许多产品对温度范围的要求严格,而目前市场上普遍存在的温度检测仪器大多都是单点测量,同时有温度信息传递不及时、精度度不够高的缺点,不利于工业生产根据温度的变化及时做出决定。在这样的前提下,开发一种能够同时测量多点,并且实时性高、精度度高,能够综合处理多点温度信息的测量系统就很有必要。 国外对温度检测技术研究较早 ,始于 20世纪 70 年代。先是采用模拟式的组合仪表 采集现场信息并进行指示、记录和控制, 80 年代末出现了分布式控制系统 ,目前正开发和研制计算机数据采集
11、控制系统的多因子综合控制系统。现在世界各国的温度检测技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。 我国对于温度检测技术的研究较晚 ,始于 20 世纪 80年代。近年来 ,我国引进了多达 16 个国家和地区的工厂环境控制系统 ,在总 体上,正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展,对推动工厂温度自动检测 产生了积极的作用。与此同时 ,我国的温度测控设施计算机应用以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统。在生产实际中仍然有许多问题困扰着我们,比如环境控制水平落后,软硬件资源不能共享和可靠性差等缺点。与发达国家相比,
12、还存在较大的差距。 近年来随着单片机的发展和传感器技术的革新,温度检测领域也完成了从模拟信号到数字信号的转变。 DS18B20 温度传感器的广泛应用更是推动了这一领域2 的发展。我们可以基于 ATmega16 单片机,利用液晶显示器件以及 DS18B20 温度传感器等器件,通过温度传感器在单片机下的硬件连接,软件编程即可设计 DS18B20 温度传感器系统。该系统可以方便的实现单线多点温度的测量,并可以根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其
13、他主系统的辅助扩展。DS18B20 与 ATmega16 的结合实现了最简温度监测系统,该系统结构简单,抗干扰能力强, 适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 1.2 系统概述 本文详细介绍了基于 DS18B20 单线多点温度测量系统的构成。大致可分为硬件电路设计、软件程序设计和仿真设计。第二章介绍了硬件电路的设计,包括ATmega16 单片机、 DS18B20 传感器的介绍以及电路的连接;第三章介绍了软件的设计,包括 DS18b20 温度传感器的使用过程以及如何在一条线上实现单点和多点温度的测量;第四章介绍了如何通过软件平台得出仿真图。关于各个模块的流程图和相关原程序代码将在下
14、面的章节中一一介绍。 3 第二章 硬件电路的设计 该电路是通过 ATmega16单片机和 DS18B20传感器连接而成的温度测量系统。单片机除了可以测量电信号外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度监测、温度控制系统已广泛应用。单片机的接口信号时数字信号,要用单片机作为控制其测量温度,用温度传感器将温度信息转换为电流或电压信号输出,如果转化的信号是模拟信号,还需要进行 A/D 转化,以满足单片机接口的需要。可以采用温度传感器 DS18B20,此传感器可以直接获取测温值,进行转换,成功采集温度后,利用 单片机进行数据处理,通过 LCD 显示温度。以下是系统组成框图。 图
15、1-1 系统组成框图 2.1 ATmega16 单片机 ATmega16 是基于增强的 AVR RISC 结构的低功耗 8 位 CMOS 微控制器。由于其先进的指令集以及单时钟周期指令执行时间, ATmega16 的数据吞吐率高达 1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。 ATmega16 内核具有丰富的指令集和 32 个通用工作寄存器。所有的寄存器都直接与运算逻单元 (ALU)相连接, 使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的 CISC 微控制器最高至 10倍的数据吞吐率。 2.1.1 ATmega16
16、的主要特性 ATmega16 单片机 报警显示 液晶显示 按键控制 DS18B20 DS18B20 4 (1)先进的 RISC 结构 - 16K 字节的系统内可编程 Flash,擦写寿命: 10, 000 次 - 512 字节的 EEPROM,擦写寿命: 100, 000 次 - 1K 字节的片内 SRAM (2)JTAG 接口(与 IEEE1149.1 标准兼容) - 符合 JTAG 标准的边界扫描功能 - 支持扩展的片内调试功能 - 通过 JTAG接口实现对 Flash、 EEPROM、熔丝位和锁定位的编程 (3)外设特点 - 两个具有独立预分频器和比较器功能的 8位定时器 /计数器 -
17、一个具有预分频器、比较功能和捕捉功能的 16 位定时器 /计数器 - 具有独立振荡器的实时计数器 RTC -四通道 PWM - 8 路 10位 ADC - 8 个单端通道 - 面向字节的两线接口 - 两个可编程的串行 USART - 可工作于主机 /从机模式的 SPI 串行接口 - 具有独立片内振荡器的可编程看门狗定时器 - 片内模拟比较器 (4)I/O 和封装 - 32 个可编程的 I/O口 - 40 引脚 PDIP 封装 ,44 引脚 TQFP 封装 ,与 44 引脚 MLF 封装 2.1.2 ATmega16 引脚介绍 5 图 1-2 ATmega16 引脚图 (1)VCC:供电电压 (
18、2)GND:接地 (3)端口 A(PA7PA0):端口 A 做为 A/D 转换器的模拟输入端。端口 A 为 8位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲 器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内 部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使 系统时钟 还未起振,端口 A处于高阻状态。 (4)端口 B(PB7PB0):端口 B 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使 系统时钟 还未起
19、振,端口 B处于高阻状态。 (5)端口 C(PC7PC0): 端口 C 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以 输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使 系统时钟 还未起振,端口 C处于高阻状态。如果 JTAG 接口 使能,即使复位出现引脚 PC5(TDI)、 PC3(TMS)与 PC2(TCK)的上 拉电阻被激活。 (6)端口 D(PD7PD0): 端口 D 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用
20、6 时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 D处于高阻状态。 (7)RESET: 复位输入 引脚 。持续时间超过最小门限时间的低电平将引起系统复位。持续时间 小于门限间的脉冲不能保证可靠复位。 (8)XTAL1: 反向振荡放大器与片内时钟操作电路的输入端。 (9)XTAL2: 反向振荡放大器的输出端。 (10)AVCC: AVCC 是端口 A 与 A/D 转换器的电源。不使用 ADC 时,该 引脚 应直接与 VCC 连接。使用 ADC 时应通过一个低通滤波器与 VCC 连接。 (11)AREF: A/D 的模拟基准输入 引脚 。 2.
21、2 DS18B20 芯片 DS18B20 是美国 DALLAS 公司推出的单总线数字化测温集成电路,它具有独特的单线接口方式,将非电模拟量温度值转换为数字信号串行输出,仅需占用 1位 I/O 端口,能够直接读取被测现场的温度值。它的体积小,电压适用范围宽 (3V5V),并且可以通过编程实现 912位的温度读数,即具有可调的温度分辨率,因此实用性和可靠性较高,在许多行业中被广泛应用。 DS18B20 数 字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式。型号多种多样,有 LTM8877, LTM8874 等等。主要根据应用场合的不同而改变其外观。封装后的
22、 DS18B20 可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。由于其耐磨耐碰,体积小,使用方便,封装形式多样的特点,也适用于各种狭小空间设备数字测温和控制领域。 2.2.1 DS18B20 芯片的特性 DS18B20 单线数字温度传感器,即“一线器件”,其具有独 特的优点: (1)采用单总线的接口方式,与微处理器连接时,仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 (2)
23、测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 +125;在 -10+85范围内,精度为 0.5。 7 (3)在使用中不需要任何外围元件。 (4)持多点组网功能,多个 DS18B20 可以并联在惟一的单线上,实现多点测温。 (5)供电 方式灵活, DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。 (6)测量参数可配置 DS18B20 的测量分辨率可通过程序设定 912 位。 (7)负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 (8)掉电保护功能, DS18B20 内部含有 EEPROM,在系统断电以后,它仍可保存分辨率及报警温度的设定值。 2.2.2 DS18B20 引脚排列 图 1-3 DS18B20 引脚排列 1.GND 为接地。 2.DQ 为数字信号输入 /输出端。 3.VDD 为外接供电电源输入口。 2.2.3 DS18B20 的内部结构 DSl8B20 的内部主要包括寄生电源、温度传感器、 64 位激光 ROM 单线接口、存放中间数据的高速暂存器、温度报警触发器 TH 和 TL 用于存储用户写入报警上下限的报警触。 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS