基于单片机智能温度检测系统设计报告书Word文件下载.docx
《基于单片机智能温度检测系统设计报告书Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机智能温度检测系统设计报告书Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
涉密论文按学校规定处理。
导师签名:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它
摘要
随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。
本文主要介绍了一个基于液晶1602单片机智能温度检测系统。
详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。
DS18B20与AT89S51结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词:
单片机;
温度检测;
AT89C52;
DS18B20;
abstract
AstheprogressanddevelopmentofTheTimes,temperaturetesthasimpacttoourlife,work,scientificresearch,eachdomain,hasbecomeaveryimportantthing,sothedesignofatemperaturetestingsystemisimperative.
Thispaperintroducesadetectionsystembasedonliquidcrystal1602singlechipmicrocomputerintelligenttemperature.DescribedindetailusingdigitaltemperaturesensorDS18B20temperaturemeasurementandcontrolsysteminthedevelopmentprocess,focusingonsensorunderthesinglechipmicrocomputerhardwareconnection,softwareprogrammingandtheflowdiagramofeachmodulesystemareanalyzedindetail,onthepartofthecircuitareintroducedonebyone,thesystemcaneasilyrealizethecollectionoftemperatureandalarm,andcanaccordingtoneedanyupperandloweralarmtemperature,itisquiteconvenienttouseandhashighprecision,widerange,highsensitivity,smallvolume,lowpowerconsumption,suitableforourdailylifeandthetemperaturemeasurementinindustrialandagriculturalproduction,alsocantreatastemperatureprocessingmoduleintoothersystems,asanaidintheextensionofothermainsystem.DS18B20withAT89S51realizetheminimalisttemperaturealarmsystem,thesystemstructureissimple,stronganti-jammingcapability,suitableforharshenvironmentson-sitetemperaturemeasurement,havebroadapplicationprospects.
Keywords:
singlechipmicrocomputer;
Temperaturedetection;
AT89C52.DS18B20.
基于液晶1602单片机智能温度检测系统
1系统方案
本系统主要由液晶LCD1602模块、DS18B20温度传感器模块、蜂鸣器模块、串口通信模块等模块组成,下面分别论证这几个模块的选择。
1.1液晶LCD1602的选择
如图所示为LCD显示模块:
本模块采用的是LCD1602液晶。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
特性:
1、3.3V或5V工作电压,对比度可调
2、内含复位电路
3、提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能
4、有80字节显示数据存储器DDRAM
5、内建有192个5X7点阵的字型的字符发生器CGROM
6、8个可由用户自定义的5X7的字符发生器CGRAM
特征应用:
微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
LCD1602有16个管脚,下面结合我本人收集的关于LCD1602的数据手册来对引脚做详细的分析:
1602采用标准的16脚接口,其中:
第1脚:
GND为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,
低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳
变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电
源。
15脚背光正极。
16脚背光负极。
LCD1602的时序:
1.2温度传感器DS18B20的选择
DS18B20是Dallas公司继DS1820后推出的一种改进型智能数字温度传感器,与传统的热敏电阻相比,只需一根线就能直接读出被测温度值,并可根据实际需求来编程实现9~12位数字值的读数方式[3]。
1.2.1DS18B20封装形式及引脚功能
图1.1DS18B20封装形式和引脚功能
如图1.1所示,DS18B20的外形如一只三极管,引脚名称及作用如下:
GND:
接地端。
DQ:
数据输入/输出脚,与TTL电平兼容。
VDD:
可接电源,也可接地。
因为每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。
采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成数据测量的时间较长;
采用外部供电方式则VDD接+5V,多用一根导线,但测量速度较快。
1.2.2DS18B20内部结构
图1.2中出示了DS18B20的主要内部部件,下面对DS18B20内部部分进行简单的描述[4]:
(1)64位ROM。
64位ROM是由厂家使用激光刻录的一个64位二进制ROM代码,是该芯片的标识号,如表2.0所示:
表2.064位ROM标识
8位循环冗余检验
48位序列号
8位分类编号(10H)
MSBLSB
第1个8位表示产品分类编号,DS18B20的分类号为10H;
接着为48位序列号。
它是一个大于281*1012的十进制编码,作为该芯片的唯一标示代码;
最后8位为前56位的CRC循环冗余校验码,由于每个芯片的64位ROM代码不同,因此在单总线上能够并接多个DS18B20进行多点温度实习检验。
(2)温度传感器。
温度传感器是DS18B20的核心部分,该功能部件可完成对温度的测量通过软件编程可将-55~125℃范围内的温度值按9位、10位、11位、12位的分辨率进行量化,以上的分辨率都包括一个符号位,因此对应的温度量化值分别为0.5℃、0.25℃、0.125℃、0.0625℃,即最高分辨率为0.0625℃。
芯片出厂时默认为12位的转换精度。
当接收到温度转换命令(44H)后,开始转换,转换完成后的温度以16位带符号扩展的的二进制补码形式表示,存储在高速缓存器RAM的第0,1字节中,二进制数的前5位是符号位。
如果测得的温度大于0,这5位为0,只要将测得的数值乘上0.0625即可得到实际温度;
如果温度小于0,这5位为1,测得的数值需要取反加1再乘上0.0625即可得到实际温度。
(3)高速缓存器。
DS18B20内部的高速缓存器包括一个高速暂存器RAM和一个非易失性可电擦除的EEPROM。
非易失性可点擦除EEPROM用来存放高温触发器TH、低温触发器TL和配置寄存器中的信息。
(4)配置寄存器。
配置寄存器的内容用于确定温度值的数字转换率。
DS18B20工作是按此寄存器的分辨率将温度转换为相应精度的数值,它是高速缓存器的第5个字节,该字节定义如表2.0所示:
表2.1匹配寄存器
TM
R0
R1
1
TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不要去改动;
R1和R0用来设置分辨率;
其余5位均固定为1。
DS18B20分辨率的设置如表2.2所示:
表2.2DS18B20分辨率的设置
分辨率
最大转换时间/ms
9位
93.75
10位
187.5
11位
375
12位
750
DS18B20依靠一个单线端口通讯。
在单线端口条件下,必须先建立ROM操作协议,才能进行存储器和控制操作。
因此,控制器必须首先提供下面5个ROM操作命令之一:
1)读ROM;
2)匹配ROM;
3)搜索ROM;
4)跳过ROM;
5)报警搜索。
这些命令对每个器件的激光ROM部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。
成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。
一条控制操作命令指示DS18B20完成一次温度测量。
测量结果放在DS18B20的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。
温度报警触发器TH和TL各由一个EEPROM字节构成。
如果没有对DS18B20使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。
可以用一条存储器操作命令对TH和TL进行写入,对这些寄存器的读出需要通过暂存器。
所有数据都是以最低有效位在前的方式进行读写。
1.2.3DS18B20供电方式
DS18B20可以采用外部电源供电和寄生电源供电两种模式。
外部电源供电模式是将DS18B20的GND直接接地,DQ与但单总线相连作为信号线,VDD与外部电源正极相连。
如图2.3所示:
图中DS18B20的DQ端口通过接入一个4.7K的上拉电阻到VCC,从而实现外部电源供电方式。
寄生电源供电模式如图2.4所示:
从图中可知,DS18B20的GND和VDD均直接接地,DQ与单总线相连,单片机其中一个I/O口与DS18B20的DQ端相连。
1.2.4DS18B20的测温原理
DS18B20的测温原理如图2.5所示,其主要由斜率累加器、温度系数振荡器、减法计数器、温度存储器等功能部件组成。
图2.5DS18B20的测温原理
DS1820是这样测温的:
用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。
计数器被预置到对应于-55℃的一个值。
如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。
同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。
然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。
斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨率。
这是通过改变计数器对温度每增加一度所需计数的的值来实现的。
因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。
DS18B20内部对此计算的结果可提供0.5℃的分辨率。
温度以16bit带符号位扩展的二进制补码形式读出,表2.4给出了温度值和输出数据的关系。
数据通过单线接口以串行方式传输。
DS18B20测温范围-55℃~+125℃,以0.5℃递增。
表2.4温度数据关系
温度℃
数据输出(二进制)
数据输出(十六进制)
+125
0000000011111010
00FA
+25
0000000000110010
0032
+0.5
0000000000000001
0001
0000000000000000
0000
-0.5
1111111111111111
FFFF
-25
1111111111001110
FFCE
-55
1111111110010010
FF92
S18B20遵循单总线协议,每次测温时都必须有4个过程[6]:
•初始化;
•传送ROM操作命令;
•传送ROM操作命令;
•数据交换;
1.2.5DS18B20的ROM命令
readROM(读ROM).命令代码为33H,允许主设备读出DS18B20的64位二进制ROM代码。
该命令只适用于总线上存在单个DS18B20.
MatchROM(匹配ROM)。
命令代码为55H,若总线上有多个从设备时,适用该命令可选中某一指定的DS18B20,即只有和64位二进制ROM代码完全匹配的DS18B20才能响应其操作。
SkipROM(跳过ROM)。
命令代码为CCH,在启动所有DS18B20转换之前或系统只有一个DS18B20时,该命令将允许主设备不提供64位二进制ROM代码就适用存储器操作命令。
SearchROM(搜索ROM)。
命令代码为F0H,当系统初次启动时,主设备可能不知纵向上有多少个从设备或者它们的ROM代码,适用该命令可确定系统中的从设备个数及其RON代码。
AlarmROM(报警搜索ROM)。
命令代码为ECH,该命令用于鉴别和定位系统中超出程序设定的报警温度值。
Writescratchpad(写暂存器)。
命令代码为4EH,允许主设备向DS18B20的暂存器写入两个字节的数据,其中第一个字节写入TH中,第二个字节写入TL中。
可以在任何时刻发出复位命令终止数据的写入。
Readscratchpad(读暂存器)。
命令代码为BEH,允许主设备读取暂存器中的内容。
从第一个字节开始直到读完第九个字节CRC读完。
也可以在任何时刻发出复位命令中止数据的读取操作。
Copyscratchpad(复制暂存器)。
命令代码为48H,将温度报警触发器TH和TL中的字节复制到非易失性EEPROM。
若主机在该命令之后又发出读操作,而DS18B20又忙于将暂存器中的内容复制到EEPROM时,DS18B20就会输出一个“0”,若复制结束,则DS18B20输出一个“1”。
ConvertT(温度转换)。
命令代码为44H,启动一次温度转换,若主机在该命令之后又发出其它操作,而DS18B20又忙于温度转换,DS18B20就会输出一个“0”,若转换结束,则DS18B20输出一个“1”。
RecallE2(拷回暂存器)。
命令代码为B8H。
将温度报警触发器TH和TL中的字节从EEPROM中拷回到暂存器中。
该操作是在DS18B20上电时自动执行,若执行该命令后又发出读操作,DS18B20会输出温度转换忙标识:
0为忙,1完成。
Readpowersupply(读电源使用模式)。
命令代码为B4H。
主设备将该命令发给DS18B20后发出读操作,DS18B20会返回它的电源使用模式:
0为寄生电源,1为外部电源。
1.3串口通信模块的选择
如图所示为该系统所选择的串口通信模块的基本构成:
串口是计算机上一种非常通用设备通信的协议。
大多数计算机包含两个RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;
很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;
而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:
(1)地线,
(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配。
1.3.1串口收发数据概述:
1.1波特率
这是一个衡量通信速度的参数。
它表示每秒钟传送的bit的特表示每秒钟发送300个bit。
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。
这意味着串口通信在数据线上的采样率为4800Hz。
通常电话线的波特率为14400,28800和36600。
波特率可以远远大于这些值,但是波特率和距离成反比。
高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
1.2数据位
准的值是5、7和8位。
如何设置取决于你想传送的信息。
比如,标准的ASCII码是0~127(7位)。
扩展的ASCII码是0~这是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的数据不会是8位的,标255(8位)。
如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。
每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。
由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
1.3停止位
用于表示单个包的最后一位。
典型的值为1,1.5和2位。
由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。
因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。
适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
1.4奇偶校验位
在串口通信中一种简单的检错方式。
有四种检错方式:
偶、奇、高和低。
当然没有校验位也是可以的。
对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。
例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。
如果是奇校验,校验位位1,这样就有3个逻辑高位。
高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。
这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
用于驱动和连线的改进,实际应用中RS-