2017毕业论文-基于DS18B20的多路温度检测系统的设计与实现.doc_第1页
2017毕业论文-基于DS18B20的多路温度检测系统的设计与实现.doc_第2页
2017毕业论文-基于DS18B20的多路温度检测系统的设计与实现.doc_第3页
2017毕业论文-基于DS18B20的多路温度检测系统的设计与实现.doc_第4页
2017毕业论文-基于DS18B20的多路温度检测系统的设计与实现.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

辽宁科技大学本科生毕业设计 第I 页 基于 DS18B20 的多路温度检测系统的 设计与实现 摘要 为了达到测量和检测多处温度值,就要求主系统连接多个温度传感器,由于主系统 和配件之间连接器上的空闲引脚通常极为有限,要想在不增加连接器复杂度和成本的条 件下给系统增加外设识别和控制功能就成为一项极具挑战性的任务。作为拥有 1-Wire 的 DS18B20 器件能够满足这些要求。本设计采用多个 DS18B20 连接在于同一条单线总 线上,这可以在许多不同的地方放置多个 DS18B20 温度传感器进行温度检测。通过用单 片机来实现对多个 DS18B20 的控制,从而实现温度检测,实现报警。显示部分采用了七 段数码显示管进行显示,可同时对时间和温度进行显示方便观察。键盘通过对 89C51 的 P1 口直接编程来实现。 关键词关键词:1-Wire;串行总线;七段数码显示管;温度测量 辽宁科技大学本科生毕业设计 第II 页 The design and implementation of the multi- temperature detection system based on DS18B20 Abstract In order to achieve measurement and testing various temperature,It requires the main system linked to a number of temperature sensors,As the main system and accessories between the connector pins are usually very limited spare, not to increase the connector complexity and cost of the conditions to increase the peripheral system to identify and control has become one of the greatest challenges of task.As with 1 - Wire the DS18B20 device can meet these requirementsThis design uses a number of DS18B20,what connected with a one- way bus,which can in many different places at various DS18B20 temperature sensor to detect temperature.To achieve through the use of multiple DS18B20 control, thus realizing the temperature detection,and alarm. Demonstrate a part having adopt seven section of digital display tube to carry out the convenient observation demonstrating, but carrying out display on time and the temperature at the same time.89C51 keyboard through the P1 port direct programming to achieve. Key words: 1-Wire; Serial Bus ; Seven section of digital display tube; temperature survey 辽宁科技大学本科生毕业设计 第III 页 目录 摘要I Abstract.II 1 绪论1 1.1 概述 I2C 总线的应用1 1.2 概述单总线的应用1 1.3 本设计的结构安排2 2 串行总线.3 2.1 I2C 总线.3 2.1.1 I2C 总线工作原理.3 2.1.2 I2C 总线数据传送.3 2.2 单总线.4 2.2.1 单总线多节点系统4 2.2.2 单总线数据通信5 3 硬件设计.6 3.1 本设计系统结构框图.6 3.2 系统的原理图.7 3.3 单片机及其管脚说明.7 3.4 用 I/O 口实现 I2C 总线协议.9 3.5 DS18B20 的读写程序和单总线协议的实现10 3.6 单片机外围电路14 3.6.1 键盘.14 辽宁科技大学本科生毕业设计 第IV 页 3.6.2 报警.15 3.7 三极管的简介.15 3.8 七段数码显示管16 3.9 看门狗的原理.18 3.10 晶振电路原理19 4 软件设计.20 4.1 工作方案简介.20 4.2 主程序流程图.21 4.3 功能模块22 4.4 由 DS18B20 完成温度检测模块.22 4.5 由 DS1338 完成时间读取模块27 4.6 单片机外围电路元件模块.30 4.6.1 键盘模块30 4.6.2 报警模块32 结论.33 参考文献34 致谢.35 附录.36 辽宁科技大学本科生毕业设计 第V 页 1 绪论 在单片机应用系统中,要处理的数据不仅很多,而且很重要时,通常的做法是用并行口 扩展单片机外部数据存储器芯片。近年来,随着半导体技术的不断发展,陆续出现了一些 新的数据要求非常严格的芯片,比较典型的有基于 I2C 总线接口的 24 系列,基于 SPI 总 线的 25 系列,以及并行总线接口的 28 系列,29 系列,这些芯片的特点是芯片掉电后数据 不会丢失,数据可以保存几年、甚至几十年,这些芯片采用 I2C、SPI 或 Microwire 串行 总线协议,与单片机接口通常仅占用 24 个 I/ O 口,可以最大限度地节省单片机的资源, 并且数据可以反复擦写1。 1.1 概述 I2C 总线的应用 Philips 公司开发的 I2C 总线是串行总线的一个应用,它主要应用于单片机外围芯 片的扩展。它只需两根线即可实现单片机与总线上各个具有 I2C 总线接口的外围芯片 进行数据交换。该协议是解决单片机 I/O 口资源紧张的有效措施,I2C 总线是目前最完 善的外围器件的扩展总线,具有最完善的总线规范和最方便的用户界面,其上可挂接 多达 128 个串行外围器件或设备。目前有很多半导体集成电路上都集成了 I2C 接口。 带有 I2C 接口的单片机有:CYGNAL 的 C8051F0XX 系列,PHILIPSP87LPC7XX 系列, MICROCHIP 的 PIC16C6XX 系列等。很多外围器件如存储器、监控芯片等也提供 I2C 接口。 1.2 概述单总线的应用 单总线是一种最简单的串行总线形式, 它通过单条连接线完成了全部的控制、通信 和供电, 节省了 I/O 口, 降低了系统成本并简化了设计。 目前常用的微机与外设之间进行数据传输的串行总线主要有 I2C 总线、SPI 总线和 SCI 总线。其中 I2C 总线以同步串行 2 线方式进行通信(一条时钟线,一条数据线) , 辽宁科技大学本科生毕业设计 第 2 页 SPI 总线则以同步串行 3 线方式进行通信(一条时钟线,一条数据输入线,一条数据输 出线) ,而 SCI 总线是以异步方式进行通信(一条数据输入线,一条数据输出线)的。 这些总线至少需要两条或两条以上的信号线。近年来,美国的达拉斯半导体公司 (DALLASSEMICONDUCTOR)推出了一项特有的单总线(1Wire Bus)技术3。该 技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据 传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总 线扩展和维护等优点。单总线适用于单主机系统,能够控制一个或多个从机设备。主 机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。 当只有一个从机设备时,系统可按单节点系统操作;当有多个从机设备时,系统则按 多节点系统操作。本文结合以单总线温度传感器构成的温度测控系统, 详细讲述单总线 器件与常用的 8051 系列单片机的软件接口。 1.3 本设计的结构安排 如前所述,本设计就是采用单片机模拟串口协议实现带电子钟的温度检测系统。 本设计的结构安排如下: 第 2 章简单介绍两种串行协议即 I2C 总线协议和单总线协议的原理、特点、时序 以及使用方法。 第 3 章介绍本设计应用 I2C 总线协议和单总线协议实现带电子钟的温度检测系统 的硬件。具体的芯片选择和简单的芯片介绍。并且给出了本设计所用主机 ATC89C51 单片机的介绍。以及 I2C 协议和单总线协议在 ATC89C51 单片机上的实现。最后给出 了人机接口的电路图,并对键盘功能和电路进行了介绍。 第 4 章介绍本设计 I2C 总线协议和单总线协议的软件实现。并给出了人机接口部 分的驱动程序包括键盘有液晶显示的程序。给出了设计整体的流程图。这章是设计的 重点。本设计因为采用的是串行总线器件所以对于硬件设计相对简单。但软件部分就 是此次设计的难点。 下面,我们就逐章进入本设计的全过程。 辽宁科技大学本科生毕业设计 第 3 页 2 串行总线 2.1 I2C 总线 2.1.1 I2C 总线工作原理 I2C( Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线制总线,由一条 串行数据线 SDA 和一条串行时钟线 SCL 组成。该总线是双向、两线、串行、多主控 (multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常 性的数据通信。由于其使用两线的硬件接口简单,I2C 总线的应用越来越广泛。实现 I2C 总线通信协议主要有两种方法:利角 MCU 对两根 I/O 口线进行软件编程,模拟 I2C 总线的 SCL 和 SDA 时序要求:使用专用 I2C 总线控制核,但受其主机(host)接口 方式和时钟频率的限制,在有些场合应用并不方便。本设计就是对 89C51 的两个 I/O 口进行编程,模拟 I2C 总线的 SCL 和 SDA 时序要求的。 在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,最高传送速率 100kbps。各 种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作, 所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C 总线上并接的每一模 块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。 CPL 发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制 的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的 量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。 2.1.2 I2C 总线数据传送 在 I2C 总线上传送的一个数据字节由八位数组成,总线对每次传送的字节数没有 限制,但每个字节后必须跟一位应答位。传输速率可达 400K 波特。数据传送时,高位 辽宁科技大学本科生毕业设计 第 4 页 在前,低位在后,这和传统的串行通通讯不同。数据传输时,在时钟线 SCL 高电平期 间,数据线 SDA 上的信息要保持不变,在 SCL 低电平期间,SDA 上的电平才允许变 化。每个 SCL 脉冲对应 SDA 上的一位数据。如图 2.1 所示。 如果在时钟线 SCL 高电平期间,SDA 上的电平出现了下降沿,这种状态规定为起 始信号(S);如果在时钟线 SCL 高电平期间,SDA 上的 1 电平出现上升沿,这种状态 规定为终止信号(P)。 2.2 单总线 2.2.1 单总线多节点系统 美国的达拉斯半导体公司(DALLAS SEMICONDUCTOR) 推出了一项特有的单总 线(1 - Wire Bus) 技术。它采用单根信号线, 既可传输时钟, 又能传输数据, 而且数据传 输是双向的,主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一 条信号线。单总线多节点系统示意图如下图 2.2 所示。 微控制器(主机) 允许 数据 变化 数据线上 数据有效 图 2.1 I2C 总线位传输 辽宁科技大学本科生毕业设计 第 5 页 图 2.2 单总线多节点系统示意图 单总线技术是在一根总线上仅有一个主系统和若干个从系统组成的计算机应用系 统,由于总线上的所有器件都通过 1 条信号线传输信息,这样,整个系统要按单总线协议 规定的时序进行工作,具体的内容是初始化器件、识别器件和进行数据交换。 目前,单总线器件主要有数字温度传感器(如 DS18B20)、A/D 转换器(DS2450)、门 禁、身份识别器(如 DS1990A)、单总线控制器(如 DS1WM)等。本设计应用实例以 DS18B20 为温度传感器,构建了多点温度检测系统。系统采用 1-Wire 公众域(PD) 软件应用程序接口,采用循环程序结构实现查看任何一个检测点的编号、温度值等数 据指示,实现了多个检测点数据的自动化监管。 2.2.2 单总线数据通信 单总线技术实现的硬件简单,但芯片的品种繁多,在适当的外部电路中能完成复 杂的操作,这些功能的实现,则依赖良好的软件环境支持。作为一种与目前大多数标 准串行数据通信方式不同的串行数据传输方式,它有自己独特的通信协议单总线 协议2 (或称一线协议)。 单总线协议定义了如下几种信号类型:复位脉冲、应答脉冲、写 0、写 I,读 0 和读 1。所有这些信号,除了应答脉冲以外,都有由主机发出同步信号,并且所有的命令和 数据都是字节低位在前,这一点与多数标准串行通信方式不同。 1- WIRE DEVIC E 1 1-Wire device 2 1- WIRE DEVIC E n-1 1- WIRE DEVIC E n 辽宁科技大学本科生毕业设计 第 6 页 3 硬件设计 本系统的硬件电路包括主机、温度与检测与控制、人机对话(键盘/显示/报警)和其他扩展电路 (电子日历/复位电路)4 个主要部分。图 3.1 为系统的硬件电路原理图 3.1 本设计系统结构框图 图 3.1 系统的结构框图 由于系统控制方案简单,数据量也不大,因此选用 89C51 作为控制系统的核心, 也可视具体情况换用 8051、8052、8751、8752、80C51、89C52 等。其中, 8051、8052、8751、8752 的各个引脚输入/输出电平只与 TTL 电平兼容; 89C51、89C52、80C51 各引脚输入/输出电平既与 TTL 电平兼容,也与 CMOS 电平兼 容。 温度/时间 液晶显示 键盘 报警 主机 集成温度 传感器 DS18B20 数字温度 传感器 DS18B20 串行实时 时钟 DS1338 智能温度 传感器 DS18B20 辽宁科技大学本科生毕业设计 第 7 页 3.2 系统的原理图 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 JZ 12M C1 30P C2 30P C3 104 C5 103 C4 330UF/16V 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 RP2 10K VCC TXD SI SO RXD VCC CS SCK C7 10UF/16V R6 10k VCC K5RESET 98 U8D 7407 1110 U8E 7407 S1 器器器 R12 4.7K R13 2K VCC Q9 9012 FMQ SDA SCL 232TXD 232RXD C11105 C12 105 C9 105 C14 105 C13 104 TX0 RX0 V+ V- V+ V- VCC R24 R25 R26 R27 R28 R29 R30 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 R32 330 R33 330 R34 330 R35 330 R36 330 R37 330 R38 330 R39 330 R31 VCC DA DB DC DD DE DF DG DPOT 90128 1K8 DA DB DC DPOT DD DE DF DG DE DF DG DA DB DC DPOT DD a 1 d 6 e 7 g 8 f 9 G 10 b 2 c 3 pot 4 G 5 SMG1 DPY 7-SEG a 1 d 6 e 7 g 8 f 9 G 10 b 2 c 3 pot 4 G 5 SMG2 DPY 7-SEG 12 U8A 7407 34 U8B 7407 /cs 1 so 2 wp 3 vss 4 vcc 8 reset 7 sck 6 si 5 U2 X25045 CS SO VCCSI SCK INT0 INT1 C1+ 1 VS+ 2 C1- 3 C2+ 4 C2- 5 VS- 6 T2OUT 7 R2IN 8 VCC 16 GND 15 T1OUT 14 R1IN 13 R1OUT 12 T1IN 11 T2IN 10 R2OUT 9 U4 MAX232 DA DB DC DPOT DD DE DF DG a 1 d 6 e 7 g 8 f 9 G 10 b 2 c 3 pot 4 G 5 SMG3 DPY 7-SEG DA DB DC DPOT DD DE DF DG a 1 d 6 e 7 g 8 f 9 G 10 b 2 c 3 pot 4 G 5 SMG4 DPY 7-SEG S8S7S9 S6S4 S1S3 S5 S2 JZ2 32.768K X1 1 X2 2 VCC 8 SCL 6 SDA 5 VBAT 3 DS1338 GND 4 U3 DS1338 BT1 BATTERY SDA SCL GND 1 DQ 2 VCC 3 U5 DS18B20 GND 1 DQ 2 VCC 3 U6 DS18B20 GND 1 DQ 2 VCC 3 U7 DS18B20 GND GND GND VCC VCC VCC GND GND R1 10K R2 10K R3 10K KEY1 KEY2 KEY3 KEY4 KEY5 KEY6 VCC R? 4.7K VCC DQ DQ FMQ RS232 GND 232TXD 1 6 2 7 3 8 4 9 5 J1 232RXD KEY4 KEY5 KEY6 KEY1 KEY2 KEY3 +5V 图 3.2 系统原理图 辽宁科技大学本科生毕业设计 第 8 页 3.3 单片机及其管脚说明 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器, 俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令 集和输出管脚相兼容。下面指出了各个管脚的用途。 VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8 个 TTL 门电流。当 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(串行输出口) 辽宁科技大学本科生毕业设计 第 9 页 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:当访问外部存储器,地址锁存允许的输出电平用于锁存地址地位字 节。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周 期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.4 用 I/O 口实现 I2C 总线协议 为了记录系统每次检测温度的时间,本设计特别在温度检测的基础上增加了电子 钟的功能。因为本设计主要是研究串行总线,所以选用具有 I2C 协议的 DS1338 串行实 时时钟(RTC)芯片,并用单片机的两个普通 I/O 线实现 I2C 总线功能,这样可以最大限 度地节省单片机的资源6。下面就 DS1338 芯片的特性进行一下介绍。 DS1338 串行实时时钟(RTC)就是其中的一种,DS1338 具有低功耗、全二进制编码 的十进制(BCD)时钟/日历,外加 56 字节 NV SRAM。地址与数据通过 I2C 总线串行传 送。时钟/日历可以提供秒、分、时、日、月、年信息。对于少于 31 天的月份,到每月 的最后一天会自动进行调节,包括闰年修正。DS1338 采用内置晶振和表面贴封装,并 为数据存储提供 56 字节电池备份的 NV RAM 。DS1338 采用 I2C 串行接口协议,具有 可编程方波输出功能自动电源失效检测与转换电路并通过 UL 认证等一系列特性。本 辽宁科技大学本科生毕业设计 第 10 页 设计主要应用 DS1338 串行实时时钟(RTC)来实现带电子钟的温度检测系统。DS1338 的接口电路如图 3.3 所示5。 图 3.3 DS1338 的接口电路 目前,51、96 系列的单片机应用很广,但是由于它们都没有 I2C 总线接口,从而限制 了在这些系统中使用具有 I2C 总线接口的器件。通过对 I2C 总线时序的分析,可以用 51 单片机的两根 I/ O 线来实现 I2C 总线的功能。本设计就是用 ATC89C51 的通用 I/ O 口 来作为 I2C 总线接口,并由软件控制实现数据传送的。连接电路如图 3.4 所示,具体的 软件实现本设计在软件设计中将给出详细的介绍。 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 89C51 VCC JZ2 32.768K X1 1 X2 2 VCC 8 SCL 6 SDA 5 VBAT 3 DS1338 GND 4 U5 DS1338 BT1 BATTERY 图 3.4 DS18B20 与单片机接口电路 3.5 DS18B20 的读写程序和单总线协议的实现 DS18B20 的读写程序和测温程序相同,只是得到的温度值的位数因分辨率不同而 不同,且温度转换时的延时时间由 2s 减为 750ms。 DS18B20 测温原理中低温度系数 晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度 辽宁科技大学本科生毕业设计 第 11 页 系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计 数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对低温度系数晶 振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将 加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲 信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时 温度寄存器中的数值即为所测温度。图 3.5 中的斜率累加器用于补偿和修正测温过程中 的非线性,其输出用于修正计数器 1 的预置值。 图 3.5 DS18B20 测温原理框图 DS18B20 有 4 个主要的数据部件: (1)光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码 (CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以 实现一根总线上挂接多个 DS18B20 的目的。 (2)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)DS18B20 温度传感器的存储器 辽宁科技大学本科生毕业设计 第 12 页 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电 擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。 (4)配置寄存器 该字节各位的意义如下: 表 3.1 配置寄存器结构 TMR1R011111 低五位一直都是“1“,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测 试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动。R1 和 R0 用来设置分辨 率,如下表 3.2 所示:(DS18B20 出厂时被设置为 12 位) 表 3.2 温度分辨率设置表 R1R0 分辨率温度最大转换时间 00 9 位 93.75ms 01 10 位 187.5ms 10 11 位 375ms 11 12 位 750ms 本设计采用多个温度传感器 DS18B20 对温度进行采样,从而进行温度的检测与控 制。因为 DS18B20 是使用单总线协议的,所以具有单总线的优点,本设计通过对 DS18B20 的使用,使读者对单总线协议有了更深的认识。下面就 DS18B20 芯片的特性 进行一下介绍。 与 DALLAS 公司早期生产的 DS1820 相比,DS18B20 具有如下特点4: (1) 精度:DS18B20 在-10+85范围内精度为+-0.5。 (2) 分辨率:DS18B20 的分辨率由 912 位(包括 1 位符号位)数据在线编程 决定。 (3) 温度转换时间:DS18B20 的转换时间与设定的分辨率有关,当设定为 9 位 时,最大转换时间为 93.75ms;10 位时,为 187.5ms;11 位时,为 375ms;12 位时, 辽宁科技大学本科生毕业设计 第 13 页 为 750ms。 (4) 电源电压范围:在保证温度转换精度为+-0.5的情况下,电源电压可为 +3.0V+5.5。 (5) 程序设置寄存器:该寄存器主要用来设置分辨率位数的。 (6) 64 位 ROM 编码:从高位算起,该 ROM 有一个字节的 CRC 校验码,6 个 字节的产品序号和一个字节的家族代码。对于家族代码, DS18B20 是 28H。 (7) 温度数据寄存器:寄存器由两个字节组成,DS18B20 对于 12 位的分辨率 为 2-4,如图 3.6 所示4。 232221202-12-22-32-4 Msb 单位= Lsb SSSSS262524 符号位 图 3.6 DS18B20 的分辨率 (8) 内部存储器分配:DS18B20H 高速暂存寄存器是 DS18B20 高速暂存寄存器的存储分配 温度值低位字节 温度值高位字节 TH/用户字节 1(报警上限) TL/用户字节 2(报警下限) 程序设置字节 保留 保留 保留 DS18B20 采用 TO92 封装或 8 脚 SOIC 封装。其引脚排列及含义如下图 3.8 所示。 TH/用户字节 1 TL/用户字节 2 程序设置字节 E2ROM CRC 图 3.7 DS18B20 高速暂存寄存器的存储分配 低位字节 高位字节 辽宁科技大学本科生毕业设计 第 14 页 DS18B20 的供电方式有两种: 一种是寄生电源;另一种为外电源供电,因为多个器 件挂在总线上,为了识别不同的器件,在程序设计中一般有四个步骤:初始化命令; 传送 ROM 命令;传送 RAM 命令;数据交换命令。本设计在软件介绍部分会就 DS18B20 温度传感器件具体介绍其每一部分的时序。 本系统利用 DS18B20 完成温度采集及转换工作,而单片机 89C51 起实时控制及通 讯作用.可以将多个 DS18B20 与单片机一位总线相连,形成多点测温, 本设计研究多片 DS18B20 与单片机构成的测温系统。DSS18B20 与单片机接口电路如图 3.9 所示. 图 3.9 DS18B20 与单片机接口电路 NC 1 NC 2 DALLAS DS18B20 1 GND 2 DQ 3 VDD VDD 3 NC 1 8 NC 7 NC 6 NC 5 GND GND:地 VDD:电源 DQ:数据输入/输出 NC:空脚 图 3.8 DS18B20 的封装 辽宁科技大学本科生毕业设计 第 15 页 3.6 单片机外围电路 3.6.1 键盘 本设计采用 89C51 单片机的 P1 口来实现。本设计键盘的连接如下图 3.10 所示。 图 3.10 键盘的连接 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键 盘中有键被按下,而且闭合的键位于低电平线与 3 根行线相交叉的 3 个按键之中。若 所有列线均为高电平,则键盘中无键按下。在确认有键按下后,即可进入确定具体闭 合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它 线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某 列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 3.6.2 报警 本设计的报警功能由蜂鸣器实现。当由于意外因素导致 DS18B20 温度高于设置温 度时,P1.7 口送出的低电平经反向器驱动蜂鸣器鸣叫报警。 3.7 三极管的简介 三极管是一种控制元件,三极管的作用非常的大,可以说没有三极管的发明就没 有现代信息社会的如此多样化,电子管是他的前身,但是电子管体积大耗电量巨大, 现在已经被淘汰。三极管主要用来控制电流的大小,以共发射极接法为例(信号从基 辽宁科技大学本科生毕业设计 第 16 页 极输入,从集电极输出,发射极接地),当基极电压 UB 有一个微小的变化时,基极 电流 IB 也会随之有一小的变化,受基极电流 IB 的控制,集电极电流 IC 会有一个很大 的变化,基极电流 IB 越大,集电极电流 IC 也越大,反之,基极电流越小,集电极电 流也越小,即基极电流控制集电极电流的变化。但是集电极电流的变化比基极电流的 变化大得多,这就是三极管的电流放大作用。 刚才说了电流放大是晶体三极管的作用,其实质是三极管能以基极电流微小的变 化量来控制集电极电流较大的变化量。这是三极管最基本的和最重要的特性。我们将 Ic/Ib 的比值称为晶体三极管的电流放大倍数,用符号“”表示。电流放大倍数对于 某一只三极管来说是一个定值,但随着三极管工作时基极电流的变化也会有一定的改 变。根据三极管的作用我们分析它可以把微弱的电信号变成一定强度的信号,当然这 种转换仍然遵循能量守恒,它只是把电源的能量转换成信号的能量罢了。三极管有一 个重要参数就是电流放大系数 。当三极管的基极上加一个微小的电流时,在集电极上 可以得到一个是注入电流 倍的电流,即集电极电流。集电极电流随基极电流的变化 而变化,并且基极电流很小的变化可以引起集电极电流很大的变化,这就是三极管的 放大作用。三极管的作用还有电子开关,配合其它元件还可以构成振荡器,此外三极 管还有稳压的作用。 3.8 七段数码显示管 七段数码管在工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日 期、时间,还可以用来显示比赛的比分等,具有显示醒目、直观的优点.无论是共阴极 还是共阳极的数码管,都分段码和位码,要想让它亮必须驱动它! 以共阳极 4 位数码 管为例,即首先要选中你想要电亮的数码管的位,要想让 4 个数码管全亮须 4 个位全 选中,所谓选中的含义就是给高电平(共阳极) 。数码管分 8 个段,即段码,每个段的 亮灭都对应着一个数字或字母,想让哪一段亮就给哪段送低电平。其中扫描分静态扫 描和动态扫描! 静态扫描比动态扫描简单些。动态扫描他在没个时间只能点亮一位数 码管,但是由于扫描频率的设置,单片机的速度是很快的,但几十 MS 内就能让 4 位 数码管循环亮灭很多次,这些人的肉眼是分辨不出来的,数码管的亮度可以通过软件 设置(扫描频率的设置)调整。 辽宁科技大学本科生毕业设计 第 17 页 每个数码管都有 a、b、c、d、e、f、g 七个笔划和一个小数点 DP,这八个联对应 二极管阳极,阴极都联在一起(称共阴极) 。以四位数码管矩阵为例,四个数码管的 a、b、c、d、e、f、g 七个笔划和一个小数点 DP 电极分别并联在一起。当 c 行高电平, 3 列低电平,其他行列都为高阻态时,第三个数码管的 c 笔划亮,通过扫描方式在 1/20 秒内四个数码管的笔划该亮的都亮一次,由于视觉暂留,就会看到结果。 本设计是通过三极管来驱动数码管显示,当基极电流很小时,无论基极电流如何 变化,集电极电流都接近为 0,集电极电流不随基极电流而变化,也就是管子不导通; 当基极电流增大到一定值以后,集电极电流此后大于 0,且集电极电流随着基极电流而 变化,这是放大状态;当基极电流继续增大,达到一定值以后,集电极电流此后再也 大不上去了,此后即便是基极电流再增加,集电极电流也不能增大,即饱和了。对于 单片机端口通过晶体管驱动负载的情况,无论负载是数码管还是继电器,晶体管都只 能工作在截止状态或饱和状态,是不能工作在放大状态的。 本设计每个三极管负责一段,最后那个三极管负责小数点位。当置于低电平时才有 效,每个数码管都会显示一个相同的数字,所以然后需把其他三个数码管置高电平。 通过这种方法就能把温度测出来。数码管连接如下图 3.11 所示。 辽宁科技大学本科生毕业设计 第 18 页 图 3.11 数码管与单片机接口电路 3.9 看门狗的原理 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁 场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统 无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机 运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片, 俗称“看门狗“。看门狗电路电路的应用,使单片机可以在无人状态下实现连续工作,其工 作原理是:看门狗芯片和单片机的一个 I/O 引脚相连,该 I/O 引脚通过程序控制它定时地 往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他 控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循 环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片 辽宁科技大学本科生毕业设计 第 19 页 机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生 复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。 本设计采用 X25045 芯片的看门狗定时器功能,实现对系统进行复位的。看门狗定 时器对微控制器提供了独立的保护系统。它提供了三种定时时间,可用编程选择 200us、600us 和 6.4s,本设计采用 6.4s 对看门狗进行监测。在设定的时间内如果没有 对 X25045 进行访问,则看门狗以 RESET 信号做输出响应,即变为高电平,延时约 200ms 以后 RESET 由高电平变位低电平,实现对系统进行复位。 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销 复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开 关或电源插头分-合过程中引起的抖动而影响复位。图 3.12 所示的 RC 复位电路可以实 现上述基本功能。 图 3.12 RC 复位电路 3.10 晶振电路原理 晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联 一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的 频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距 离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两 端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电 路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其 辽宁科技大学本科生毕业设计 第 20 页 他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。 晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容, 就可以得到晶振标称的谐振频率。 一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接 入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电 容串联的容量值就应该等于负载电容,请注意一般 IC 的引脚都有等效输入电容,这个 不能忽略。 4 软件设计 4.1 工作方案简介 程序处理是整个系统的关键,即简洁的硬件结构是靠复杂的软件来支持的。本设计 采用的是基于 I2C 总线协议和单总线协议的温度测控系统。 系统上电复位后先处于停止状态,等待输入初始时间和报警温度。显示器显示输 入的时间和温度;时间和报警温度设定好后就可以按确定键启动系统工作了。温度检 测系统不断定时检测当前温度,并送往显示器显示,达到报警值时启动报警电路报警。 并显示当前时间;启动后不能再修改报警温度,必须使电路复位回到初始状态再重新 设定报警温度。 辽宁科技大学本科生毕业设计 第 21 页 4.2 主程序流程图 开始 各数据缓冲区、各标志位初始化 调用键盘管理子程序 确定键闭合时返回 调温度检测子程序 当前温度检测缓冲区 调显示子程序 调报警子程序 辽宁科技大学本科生毕业设计 第 22 页 4.3 功能模块 根据上面对工作流程的分析,系统软件可以分为以下几个功能模块: (1)温度检测及温度值变换:由单总线温度传感器 DS18B20 完成 (2)时间的读取:由具有 I2C 总线协议的传行实时时钟 DS1338 完成 (3)键盘管理:监测键盘输入,接收初始时间设置,接收报警温度设置,启动系 统工作。 (4)报警:当检测到的温度超越报警温度时,蜂鸣器发出报警信号。 4.4 由 DS18B20 完成温度检测模块 运用单总线协议(一线协议)构建的单总线指令系统是单总线网络运行的软件基础, 典型的单总线指令序列如下: 第一步 :初始化 第二步 :ROM 命令(跟随需要交换的数据) 第三步 :功能命令(跟随需要交换的数据) 每次访问单总线器件,必须严格遵守这个命令序列,如果出现序列混乱,则单总 线器件不会响应主机。但是,这

温馨提示

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

评论

0/150

提交评论