基于DS18B20温度传感器的显示及报警系统.docx
- 文档编号:29394632
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:44
- 大小:392.43KB
基于DS18B20温度传感器的显示及报警系统.docx
《基于DS18B20温度传感器的显示及报警系统.docx》由会员分享,可在线阅读,更多相关《基于DS18B20温度传感器的显示及报警系统.docx(44页珍藏版)》请在冰豆网上搜索。
基于DS18B20温度传感器的显示及报警系统
综合课程设计报告
报告题目:
基于DS18B20温度传感器的
温度显示及报警系统
作者所在系部:
机械工程系
作者所在专业:
测控技术与仪器
作者所在班级:
B09122
作者姓名:
雷苏力
作者学号:
20094012216
指导教师姓名:
康会峰、赵保亚
完成时间:
2013年1月3日
北华航天工业学院教务处制
基于DS18B20温度传感器的显示及报警系统
摘要
随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,需要外加信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
与传统的温度计相比,这次设计的是基于DS18B20的数字温度计,它具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
在本设计中选用STC89C52型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过4位共阳极LED数码显示管并行传送数据,实现温度显示。
通过按键设置温度上下限报警值,然后用不同颜色的LED灯报警。
本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括串口下载电路、按键输入电路、温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度上下限报警值的设定、温度的采集与显示。
通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成该系统的总体设计。
其系统构成简单,信号采集效果好,数据处理速度快,便于实际监测使用。
关键词:
单片机STC89C52;温度传感器DS18B20;LED数码管;数字温度计
Abstract
Alongwiththepresentinformationtechnology'sswiftdevelopmentandtraditionalindustrytransformation'sgradualrealization,abletoworkindependentlyofthetemperaturedetectionanddisplaysystemusedinmanyotherfields.Traditionaltemperatureexaminationtakesthermistorastemperaturesensitiveunit.Thermistor'scostislow,needsthesignalprocessingelectriccircuit,moreoverthereliabilityisrelativelybad,thetemperaturemeasurementaccuracyislow,theexaminationsystemalsohascertainerror.Compareswiththetraditionalthermometer,whatthisdesignisbasedontheDS18B20digitalthermometer,ithasthereadingtobeconvenient,thetemperaturemeasurementscopeisbroad,thetemperaturemeasurementisprecise,thedigitdemonstratedthatapplicablescopewideandsooncharacteristics.
UsedinthedesignSTC89C52MCUasthemaincontroldevice,digitaltemperaturesensorDS18B20asthetemperaturecomponentsoftheanodethroughthefourLEDdigitaldisplaytubeparalleltransmissionofdata,toachievetemperaturedisplay.Thisdesign'scontentmainlydividesintotwoparts;first,tosystemhardwarepartdesign,includingtemperaturegatheringelectriccircuitanddisplaycircuit;Second,tothesystemsoftwarepart'sdesign,realizestemperaturegatheringandthedemonstrationusingtheClanguage.DS18B20measuredbydirectreadingtemperaturevaluesandtransferDataintoMCUandoutputtoshowhisisthedesignoftheDigitalThermometer.Itssystemconstitutionissimple,theeffectofsignalgatheringisgood,thespeedofdataprocessingisquickatalitisadvantageousfortheactualexaminationuse.
Keywords:
MCUSTC89S52;DS18B20;LED;DigitalThermometer
目录
第一章绪论4
1.1课题背景及来源4
1.2课题内容及要求4
第二章系统整体设计5
2.1系统设计方案论证5
第三章系统的硬件选择及设计6
3.1主控制器的设计6
3.2温度采集电路的设计6
3.3温度显示电路的设计10
第四章系统的软件设计12
4.1概述12
4.2程序流程图12
4.3控制源程序14
第五章系统调试19
结论20
致谢21
参考文献22
第一章绪论
1.1课题背景及来源
单片机自1976年由Intel公司推出MCS-48开始,迄今已有三十多年了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域,对各个行业的技术改造和产品更新换代起着重要的推动作用。
众所周知,环境温度一直是生物能否较适宜生存的一个重要因素,而人们对环境温度的感知也从单纯的身体感官的感受发展到用各种温度计来对环境温度进行准确的测量。
但是受限于技术等原因,温度计通常都有体积较大,精度不高等各种缺陷。
而数字温度测量芯片的出现则解决了这些问题,其中的一款芯片DS18B20是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此,用它来组成一个测温系统,具有线路简单,在一根通信线上可以挂载很多这样的数字温度芯片,十分方便。
目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。
1.2课题内容及要求
本设计主要介绍了用单片机和数字温度传感器DS18B20相结合的方法来实现温度的采集,以单片机STC89C52芯片为核心,辅以温度传感器DS18B20和LED数码管及必要的外围电路,构成了一个多功能单片机数字温度计;并且可以通过按键设置上下限报警值,超过限值是通过LED报警。
该装置适用于人民的日常生活和工、农业生产的温度测量与报警,实现对温度的监测。
其主要研究内容包括两方面,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度的采集与显示。
通过对本课题的设计能够熟悉数字温度计的工作原理及过程,了解各功能器件(单片机、DS18B20、LED)的基本原理与应用,掌握各部分电路的硬件连线与程序编写,最终完成对数字温度计的总体设计。
其具体的要求如下:
1、根据设计要求,选用STC89C52单片机为核心器件;
2、温度检测器件采用DS18B20数字式温度传感器,利用单总线式连接方式与单片机的串行接口P2.2引脚相连;
3、显示电路采用4个LED数码管显示器接P0口并行显示温度值,数码管由P3口(P3.4~P3.7)选通,动态显示。
第二章系统整体设计
2.1系统设计方案论证
2.1.1方案一
由于本设计实现的是测温电路,首先我们可以使用热敏电阻之类的器件,利用其感温效应,将其随被测温度变化的电压或电流值采集过来,进行A/D转换后,就可以用单片机进行数据的处理,通过显示电路就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
因此,我们引出第二种方案。
2.1.2方案二
我们可以采用技术成熟、操作简单、精确度高的温度传感器,在此,可以选用数字温度传感器DS18B20,根据它的特点和测温原理,很容易就能直接读取被测温度值并进行转换,这样就可以满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故在本设计中采用了方案二。
通过方案二设计的温度计总体设计方框图如图2.1所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用4位LED数码管以串口并行输出方式传送数据实现温度显示。
系统硬件电路图见附录A。
主
控
制
器
LED显示
单片机复位
报警装置
温
度
传
感
器
时钟振荡
图2.1 总体设计方框图
第三章系统的硬件选择及设计
3.1主控制器的设计
3.1.1STC89C52的简介
STC89C52是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚,并集成了Flash程序存储器,既可在线编程(ISP),也可用传统方法进行编程,因此,低价位STC89C52单片机可应用于许多高性价比的场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。
单片机STC89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
3.2温度采集电路的设计
由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。
这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。
3.2.1DS18B20的简介
DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:
DS18B20的性能特点如下:
●独特的单线接口仅需一个端口引脚进行通讯
●每个器件有唯一的64位的序列号存储在内部存储器中
●简单的多点分布式测温应用
●无需外部器件
●可通过数据线供电。
供电范围为3.0V到5.5V。
●测温范围为-55~+125℃(-67~+257℉)
●在-10~+85℃范围内精确度为±5℃
●温度计分辨率可以被使用者选择为9~12位
●最多在750ms内将温度转换为12位数字
●用户可定义的非易失性温度报警设置
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
●与DS1822兼容的软件
●应用包括温度控制、工业系统、消费品、温度计或任何热感测系统
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列、各种封装形式如图3.2所示。
其中,DQ为数据输入/输出引脚,也可用作开漏单总线接口引脚,当被用在寄生电源工作方式下,可以向器件提供电源;GND为地信号;VDD为可选择的电源引脚,当工作于寄生电源时,此引脚必须接地。
其电路图3.3所示。
图3.2外部封装形式图3.3传感器电路图
3.2.2DS18B20内部结构
图3.4为DS1820的内部结构框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。
DS18B20采用3脚PR-35封装或8脚SOIC封装。
64
位
Rom
和
单
总
线
接
口
存储器与逻辑控制
低温触发器TL
高温触发器TH
温度传感器
高
速
缓
存
I/O
C
配置寄存器
VDD
8位CRC发生器
图3.4DS18B20内部结构框图
温度传感器DS18B20的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图3.5所示。
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留位(FFh)
保留位(0Ch)
保留位(10h)
CRC
Byte0
Byte1
TH用户字节1
TL用户字节2
配置寄存器
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
Byte8
图3.5高速暂存RAM结构图
其中,前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
暂存存储器的第5个字节是配置寄存器,可以通过相应的写命令进行配置,其内容如下:
0
R1
R0
1
1
1
1
1
bit7bit6bit5bit4bit3bit2bit1bit0
其中R0和R1是温度值分辨率位,可按表3.3进行配置。
表3.3温度值分辨率配置表
R1
R0
分辨率
最大转换时间(ms)
0
0
9位
93.75ms(tconv/8)
0
1
10位
183.50ms(tconv/4)
1
0
11位
375ms(tconv/2)
1
1
12位
750ms(tconv)
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可通过单线接口读到该数据,读取时低位在前、高位在后,数据格式以0.0625℃/LSB形式表示。
温度值格式如下:
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
LSByte
23
22
21
20
2-1
2-2
2-3
2-4
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
MSByte
S
S
S
S
S
26
25
24
这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
格式中,S表示位。
对应的温度计算:
当符号位S=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;当S=1时,表示测得的温度植为负值,先将补码变换为原码,再计算十进制值。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较,若T>TH或T 因此,可用多只DS18B20同时测量温度并进行告警搜索。 在64位ROM的最高有效字节中存储有循环冗余校验码(CRC)。 主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。 3.2.3温度采集电路 设计的温度采集电路如图3.6所示: 图3.6温度采集电路图 3.3温度显示电路的设计 3.3.1LED数码管的操作 LED数码管,也叫LED数码显示器,由于它具有很高的性能价格比、显示清晰、亮度高、使用方便、电路简单、寿命长等诸多优点,长期以来一直在各类电子产品和工程控制中得到非常广泛的应用。 LED数码管的基本组成是半导体发光二极管,它是将若干个发光二极管,按照一定的笔段组合起来构成的一个整体。 LED数码管能显示0~9十个数字及部份英文字母。 常见的八段LED数码管结构如图3.7所示。 图3.7数码管的内部结构 根据8个发光二极管的不同连接形式,可以将LED数码管分成共阳极和共阴极两种。 (如图3.8所示)。 图3.8LED数码管共阳极和共阴极链接 如果加到各笔段对应发光二极管阳极上的代码不同,则就能控制LED数码管显示不同的字符和数字,这个代码称为段码。 通常将这个段码用单片机系统中的一个字节进行存储,正好这个字节中的8个二进制位(D7、D6、D5、D4、D3、D2、D1、D0),依次对应LED数码管的8个笔段dp、g、f、e、d、c、b、a。 3.3.2温度显示电路 显示电路采用4个共阴极LED数码管,从P0口并行输出段码,用P2.1~P2.4四个端口输出选择脉冲,控制数码管的点亮。 图3.8数码管显示电路 第四章系统的软件设计 4.1概述 软件设计关键在于DS18B20的使用。 DS18B20属于单线式器件,它在一根数据线上实现数据的双向传输,这就需要一定的协议,来对读写数据提出严格的时序要求,而STC89C52单片机并不支持单线传输,因此必须采用软件的方法来模拟单线的协议时序。 4.2程序流程图 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。 1、主程序 主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。 这样可以在一秒之内测量一次被测温度,其程序流程见图4.4所示。 N Y YY N N Y N 图4.4主程序流程图图4.5读温度流程图 2、读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。 其程序流程图如图4.5所示。 图4.6温度转换流程图 3、温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。 温度转换命令子程序流程图如上图,图4.6所示。 4、计算温度子程序 计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4.7所示。 图4.7 计算温度流程图 图4.8 显示数据刷新流程图 5、显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。 程序流程图如图4.8所示。 4.3控制源程序 /****************此部分为18B20的驱动程序*****************/ #include #include sbitD18B20=P3^7; #defineNOP()_nop_()/*定义空指令*/ #define_Nop()_nop_()/*定义空指令*/ voidTempDelay(unsignedcharidataus); voidInit18b20(void); voidWriteByte(unsignedcharidatawr);//单字节写入 voidread_bytes(unsignedcharidataj); unsignedcharCRC(unsignedcharj); voidGemTemp(void); voidConfig18b20(void); voidReadID(void); voidTemperatuerResult(void); bitflag; unsignedintidataTemperature; unsignedcharidatatemp_buff[9];//存储读取的字节,readscratchpad为9字节,readromID为8字节 unsignedcharidataid_buff[8]; unsignedcharidata*p,TIM; unsignedcharidatacrc_data; unsignedcharcodeCrcTable[256]={ 0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65,157,195,33,127,252,162,64,30,95,1,227,189,62,96,130,220, 35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,248,166,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DS18B20 温度传感器 显示 报警 系统