优秀毕业设计 基于AT89C51单片机的多点温度检测系统的设计

优秀毕业设计  基于AT89C51单片机的多点温度检测系统的设计
优秀毕业设计  基于AT89C51单片机的多点温度检测系统的设计

南京理工大学

毕业设计说明书(论文)

作者: 孙露学号:104910252060 教研室: 机电教研室

专业: 机电一体化工程

题目: 多点温度检测系统的设计

指导者:谢聪工程师

评阅者:

2012 年 5 月

中文摘要

本设计系统地介绍了基于DS18B20的多点温度测量系统的组成、设计方案、电路原理、程序设计以及系统仿真过程。DS18B20多点温度测量系统是以AT89C51单片机作为控制核心,智能温度传感DS18B20为控制对象,运用汇编语言编程实现系统的各种功能。

该系统由单片机最小系统、传感器电路、报警电路、LCD显示电路、行列式键盘电路、电源电路六大部分组成。借助PROTEUS软件,实现了系统电路设计和仿真。它适用于电力工业、煤矿、森林、火灾、高层建筑等场所,还可以用于环境恶劣的工业控制现场。通过DS18B20的单总线技术,实现对远程环境的温度测量与监控。

关键词 DS18B20, 仿真, 测量系统, PROTEUS

英文摘要

目录

1 绪论 (1)

1.1课题设计背景 (1)

1.2课题研究的目的意义 (1)

1.3国内外现状及水平 (2)

1.4课题研究内容 (2)

2 系统的需求分析与总体方案论证 (4)

2.1基于模拟温度传感器设计方案 (4)

2.2基于数字温度传感器设计方案 (5)

2.3方案论证 (5)

3 电路设计 (7)

3.1工作原理 (7)

3.2DS18B20与单片机接口技术 (8)

3.2.1 DS18B20的引脚功能 (8)

3.2.2 DS18B20与单片机接口电路 (8)

3.2.3 温度寄存器格式和温度/数据对应关系 (9)

3.2.4 单片机对DS18B20的控制方法 (10)

3.3键盘电路设计 (13)

3.3.1 行列式键盘与单片机接口电路 (13)

3.3.2 键盘面板 (13)

3.4显示电路设计 (14)

3.4.1 LCD引脚分布及功能 (14)

3.4.2单片机与图形液晶的接口电路 (15)

3.5报警电路设计 (16)

3.6电源电路设计 (17)

4 程序设计 (18)

4.1系统资源分配 (18)

4.1.1 系统硬件资源分配 (18)

4.1.2 系统软件资源分配 (18)

4.2系统流程设计 (18)

4.2.1主程序流程设计 (18)

4.2.2 DS18B20程序流程设计 (20)

4.2.3 显示程序流程 (21)

4.2.4 键盘程序程序流程 (22)

4.3程序设计 (24)

4.3.1 主程序设计 (24)

5 系统仿真 (25)

5.1PROTEUS仿真环境介绍 (25)

5.2原理图绘制 (26)

5.3程序加载 (27)

5.3.1 程序编译 (27)

5.3.2 程序加载 (27)

5.4系统仿真 (28)

5.5仿真结果分析 (33)

结束语 (34)

致谢 (35)

参考文献 (36)

附录一 (38)

附录二 (39)

1 绪论

1.1课题设计背景

温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同时它也是一种最基本的环境参数。人民的生活与环境温度息息相关,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、大型仓储室、实验室、农场塑料大棚甚至人们的居室里经常需要对环境温度进行检测,并根据实际的要求对环境温度进行控制。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行。炼油过程中,原油必须在不同的温度和压力条件下进行分流才能得到汽油、柴油、煤油等产品;没有合适的温度环境,许多电子设备不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。可见,研究温度的测量具有重要的理论意义和推广价值。

随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。本设计就是为了满足人们在生活生产中对温度测量系统方面的需求。

本设计要求系统测量的温度的点数为4个,测量精度为0.1℃,测温范围为

-55℃~+128℃。采用液晶显示温度值和路数,显示格式为:温度的符号位,整数部分,小数部分,最后一位显示℃。显示数据每一秒刷新一次。

1.2课题研究的目的意义

21世纪科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了巨大的变化,我们已经进入了高速发展的信息时代,测量技术也成为当今科技的主流之一,被广泛地应用于生产的各个领域。对于本次设计,其目的在于:

(1)掌握数字温度传感器DS18B20的原理、性能、使用特点和方法,利用C51对系统进行编程。

(2)本课题综合了现代测控、电子信息、计算机技术专业领域方方面面的知识,具有综合性、科学性、代表性,可全面检验和促进学生的理论素养和工作能力。

(3)本课题的研究可以使学生更好地掌握基于单片机应用系统的分析与设计方法,培养创新意识、协作精神和理论联系实际的学风,提高电子产品研发素质、增强针对实际应用进行控制系统设计制作的能力。

1.3 国内外现状及水平

传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。温度传感器的发展大致经历了以下三个阶段:传统的分立式温度传感器(含敏感元件);模拟集成温度传感器/控制器;数字温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展,同时具有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,发展以温度传感器为载体的温度测量技术具有重大意义。

DS18B20是美国DALLAS公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微机处理,而且可以在一条总线上挂接任意多个DS18B20芯片,构成多点温度检测系统无需任何外加硬件(《单总线数字温度传感器DS18B20及其在单片机系统的应用》)。

单总线数字温度传感器,具有微型化、低功耗、高性能、抗干扰能力强、易于与微控制器接口优点,适合于各种温度测控系统(《数字温度传感器DS18B20及其应用》)。以DS18B20为例,介绍数字式温度传感器的功能特点及由DS18B20组成的温度测控网络系统的设计。

随着社会的发展、农业生产也进人了工厂化、数字化时代,人们开始“使用人工设施、人工控制环境因素,使植物获得最适宜的生长条件,从而延长生产季节,获得最佳产出”,由此“工厂化农业”应运而生并被广泛接受(《单总线温度传感器DS18B20及其在温室系统中的应用》)。

我国是一个人口众多的农业大国 ,粮食生产、需求与储备量很大 ,粮食在储备的过程中常因粮食的湿度过大而升温发热 ,又由于检测手段的落后造成温检系统错报或漏报 ,从而导致粮食大量的腐烂变质 ,给国家带来巨大的损失。这就对粮情检测系统提出了较高的要求(《一种基于单线数字温度传感器DS18B20的储粮温度检测系统的设计》)。而基于DS18B20设计的温度检测系统就可以实现这一需求。

1.4课题研究内容

本设计研究的主要内容如下:

(1)在广泛查阅温度检测控制理论和方法、测温技术和温度控制技术等资料的基础上,根据不同的控制要求及应用领域完成对系统方案的总体设计。本设计采用以AT89C51为核心的单片机系统,来实现对温度的检测、报警等功能。

(2)研究比较各相关元器件的功能与特点,选择合适的元器件。

(3)系统硬件设计。系统硬件设计主要包括:温度检测、单片机数据采集处理、

显示、键盘设定、报警电路等部分。

(4)系统软件设计。本课题采用汇编语言,利用Keil编译器进行编程及调试。主要研究DS18B20与单片机的通信协议、时序及一些通用程序等。

本设计的难点分为硬件和软件两个方面。其中硬件开发的难点在于各种元器件的选择和使用,如各种电阻、电容等的选择。软件开发的难点在于DS18B20的时序,如果时序不正确,将无法读出正确的温度值,对系统产生很大的影响。

2 系统的需求分析与总体方案论证

2.1基于模拟温度传感器设计方案

该方案由单片机、模拟温度传感器AD590、运算放大器、AD转换器、4×4键盘、LCD显示电路、集成功率放大器、报警器组成,如图2.1所示。

本方案采用模拟温度传感器AD590作为测温元件,传感器将测量的温度变换转换成电流的变化,再通过电路转换成电压的变化,使用运算放大器交将信号进行适当的放大,最后通过模数转换器将模拟信号转换成数字信号,传给给单片机,单片机将温度值进行处理之后用LCD显示,当温度值超过设置值时,系统开始报警。

模拟传感器

图2.1 基于模拟温度传感器的测量系统方案

本方案使用的测温元件的性能指标如下:

(1)AD590的测温范围为﹣55℃~+150℃。

(2)AD590的电源电压范围为4V~30V,电源电压可在4V~6V范围变化,电流变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。

(3)输出电阻为710MW。

(4)精度高,AD590共有I、J、K、L、M五档,其中M档精度最高,在﹣55℃~+150℃范围内,非线性误差为±0.3℃。

集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便,温度测量范围广等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0℃时输出为0,温

度25℃时输出2.982V。电流输出型的灵敏度一般为1mA/K。

2.2基于数字温度传感器设计方案

该方案使用了AT89C51单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,采用多个温度传感器对各点温度进行检测,通过4×4键盘模块对正常温度进行设置显示电路采用128×64 LCD模块,使用LM386作为报警电路中的功率放大器。

温度传感器

图2.2 基于数字温度传感器测量系统方案

本课题采用数字温度传感器DS18B20作为测为测温元件,它具有如下特点: (1)只要求一个端口即可实现通信。

(2)在DS18B20中的每个器件上都有独一无二的序列号。

(3)实际应用中不需要外部任何元器件即可实现测温。

(4)测量温度范围在-55℃到+128℃之间。

(5)数字温度计的分辨率用户可以从9位到12位选择。

(6)内部有温度上、下限告警设置。

2.3方案论证

本设计要求测量的点数为4,测温范围为-55℃~+128℃,精度为0.1℃。采用液晶显示,同时显示路数和温度,每秒刷新1次显示数据。

综合模拟温度传感器和数字温度传感器的性能指标,以上两个方案都能达到设计的要求。

方案一采用模拟温度传感器AD590,转换结果需要经过运算放大器和AD转换器传送给处理器。它控制虽然简单,成本低,但是后续电路复杂,且需要进行

温度标定,集成温度传感器AD590输出为电流信号,且输出信号较弱,所以需要后续放大及A/D转换电路,如采用普通运放则精度难以保证,而测量放大器价格较高,这样会使系统成本升高。

方案二采用了数字温度传感器DS18B20,改变了传统温度测试方法。它能在现场采集温度数据,直接将温度物理量变换为数字信号并以总线方式传送到单片机进行数据处理,并且可根据实际要求通过简单的编程实现9-12位的数字式读数方式,因而使用DS18B20可使系统结构更趋简单,可靠性更高,大大提高系统的抗干扰能力。DS18B20体积小、经济、使用方便灵活,测试精度高,较高的性能价格比,有CRC校验,系统简明直观。适合于恶劣环境的现场温度测试,如:环境控制、设备或过程控制、测温类消费电子产品等。

方案二程序设计稍微复杂一些,但在毕业设计期间我用DS18B20做过温度计,也调试过LCD,并且已经用PROTEUS实现了系统的仿真。因此,该方案完全具有可行性,同时体现了技术的先进性,经济上也有很大的优势。

综上所述,本课题采用方案二对系统进行设计。

3 电路设计

3.1工作原理

基于DS18B20多点温度测量系统以AT89C51为核心器件,以KEIL为系统开发平台,用汇编语言进行程序设计,以PROTEUS作为仿真软件设计而成的。系统主要由传感器电路、液晶显示电路、键盘电路、报警电路、电源电路组成,系统原理图如图3.1所示。

图3.1 系统原理图

DS18B20是数字温度传感器,它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、RAM命令)给DS18B20,转换完成之后读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过4×4键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值,从而实现了对各点温度的实时监控。

每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接收主机的命令,向主机发送转换的温度。采用这种DS18B20寻址技术,使系统硬件电路更加简单。

3.2DS18B20与单片机接口技术

3.2.1 DS18B20的引脚功能

DS18B20的引脚功能描述见表3.1。

表3.1 DS18B20引脚功能描述

3.2.2 DS18B20与单片机接口电路

如图3.2所示,为单片机与DS18B20的接口电路。DS18B20只有三个引脚,一个接地,一个接电源,一个数字输入输出引脚接单片机的P1.7口,电源与数字输入输出脚间需要接一个4.7K的电阻。

图3.2 DS18B20与单片机接口电路

3.2.3 温度寄存器格式和温度/数据对应关系

DS18B20温度寄存器如表3.2所示。其寄存器有16位,高5位为符号位,低13位为数据位。当寄存器高5位为1时,表示温度为负,否则为正。

表3.2 温度寄存器格式

bit7 bit6 bit5 bit4 bit3 bit2 bit1

bit0

LS Byte

表3.3 温度/数据的关系

B bit15 bit14 bit13 bit12 bit11

bit10 bit9 bit8

MS Byte

如果测得的温度大于0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,测得的数值需要取反加1再乘0.0625,即可得到实际的温度值。如表3.3所示,是DS18B20的温度与数据的对应关系。

3.2.4 单片机对DS18B20的控制方法

DS18B20采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲所有

这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节为单位。且低位在前,高位在后。

(1)初始化序列:复位脉冲和应答脉冲

在初始化过程中,主机通过拉低单总线至少480μs,以产生复位脉冲(TX), 然后主机释放总线并进入接收(RX)模式。当总线被释放后,5kΩ的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15μs~60μs,通过拉低总线60μs~240μs 产生应答脉冲。初始化脉冲如图3.3所示。

图3.3 DS18B20初始化时序 (2)DS18B20的读写控制

在写时序期间,主机向DS18B20写入数据;而在读时序期间,主机读入来自DS18B20的数据。在每一个时序,总线只能传输一位数据。读/写时序如图 3.4所示。

① DS18B20写时序

DS18B20存在两种写时序:“写1”和“写0”。主机在写1时序向DS18B20

图3.4 DS18B20读写时序

写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60μs,且在两次写时序之间至少需要1μs 的恢复时间。两种写时序均以主机拉低总线开始。

产生写1时序:主机拉低总线后,必须在15μs 内释放总线,然后由上拉电阻将总线拉至高电平。产生写0时序:主机拉低总线后,必须在整个时序期间保

主机初始化

主机读”0”时序

主机读”1"时序

15us 30us

15us 15us 30us

持低电平(至少60μs)。

在写时序开始后的15μs~60μs期间,DS18B20采样总线的状态。如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。

②读时序

DS18B20只能在主机发出读时序时才能向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。所有读时序至少60μs,且在两次独立的读时序之间至少需要1μs的恢复时间。

每次读时序由主机发起,拉低总线至少1μs。在主机发起读时序之后,DS18B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数据在读时序下降沿起始后的15μs内有效,因此主机必须在读时序开始后的15μs内释放总线,并且采样总线状态。

③ DS18B20的命令序列

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。

ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。DS18B20的ROM如表3.4所示,每个ROM 命令都是8 bit长。

表3.4 DS18B20 ROM命令

复制暂存

48H 将RAM中第3、4字内容复制到E2PROM中

重调E2PROM 0B8H 将E2PROM中内容恢复到RAM中的第3、4字节

读供电方式0B4H 读DS18B20的供电模式,寄生供电时DS18B20发送“0”,

外部供电时DS18B20发送“1”

3.3键盘电路设计

3.3.1 行列式键盘与单片机接口电路

根据本设计需要,本系统采用了4×4键盘实现对温度值和功能键的设定。

行列式键盘与单片机的接口电路如图3.5所示,H0-H3为行线,接单片机P2口的高4位,L0-L3为列线,接单片机P2口的低4位。初始化时键盘行线为高电

平,列线为低电平。键盘的行线接4输入与门,4输入与门的输出接单片机的外部中断0引脚P3.2口。当有键按下时,将产生中断,在中断程序里对按键进行扫描,得到按键的键值。

图3.5 4×4键盘结构

3.3.2 键盘面板

键盘面板如图3.6所示,本系统使用的键盘有10数字键,5个功能按键。在系统启动时,先按“设置”键,然后按相应的数字键,按“左移”或者“右移”键改变其他温度的值。按“确认”键之后系统正式启动。系统在运行过程之中可以通过按“重新设置”键,对温度重新进行设置。

图3.6 键盘面板

3.4显示电路设计

3.4.1 LCD 引脚分布及功能

(1) 12864液晶显示屏共有20个引脚,其引脚名称及引脚编号的对应关系如图3.7所示:

图3.7 12864液晶显示模块引脚分布图

2

1

3

设置

确认

右移

左移

重新设置9

8

7

6

4

5

(2)引脚功能如表3.5所示:

表3.5 12864液晶显示模块引脚功能

引脚符号引脚功能引脚符号引脚功能

1 VSS 电源地15 CS1 CS1=1芯片选择左边64*64点

2 VDD 电源正+5V 16 CS2 CS2=1芯片选择右边64*64点

3 VO 液晶显示驱动电源17 /RST 复位(低电平有效)

4 RS H:数据输入;

L:指令码输入

18 VEE LCD驱动负电源

5 R/W H:数据读取;

L:数据写入

19 A 背光电源(+)

6 E 使能信号。20 K 背光电源(-)7-14 DB0-DB

7 数据线有些型号的模块19、20脚为空脚

3.4.2单片机与图形液晶的接口电路

LCD与单片机的接口电路如图3.8所示:

单片机对LCD的控制方法将在下一章中详细介绍。

图3.8 LCD与单片机的接口电路

相关主题
相关文档
最新文档