基于DS18B20的温度采集系统设计
- 格式:doc
- 大小:574.00 KB
- 文档页数:25
DS18B20单总线温度采集实验一、实验目的1. 熟悉Keil IDE uVision集成开发环境软件的使用方法。
2. 学习DS18B20 单总线温度传感器的使用。
二、实验内容DS18B20 为单总线12 位(二进制)温度读数。
内部有64 位唯一的ID 编码。
工作电压从 3.0~5.5V。
测量温度范围从-55℃~125℃。
高位±0.0625℃分辨率。
三、实验要求1. 数码管显示温度数据,显示百、十、个位并保留一位小数。
2. 画出程序流程图,并独立编写C51程序。
3. 做好实验前预习,完成proteus仿真和实物搭建。
四、实验硬件电路及芯片特性DS18B20 内部框图:温度寄存器格式:DSl8B20 工作过程中的协议如下:初始化ROM 操作命令存储器操作命令处理数据初始化:单总线上的所有处理均从初始化开始。
单片机将总线拉低至少480μs 然后释放总线,DS18B20 检测到上升沿后在等待15~60μs 后拉低总线,说明器件存在。
拉低持续时间为60~240μs。
读写时序:推荐的读时序:DS18B20 的核心功能是直接数字温度传感器。
温度传感器可以配置成9、10、11 和12 位方式。
相应的精度分别为:0.5℃、0.25℃, 0.125℃和0.0625℃。
默认的分辨率为12 位。
DS18B20 在空闲低功耗状态下加电(寄生电源工作方式)。
主机必须发出Convert T [44h]命令使其对测量温度进行A-D 转换。
接下来进行采集转换,结果存于两字节高速温度寄存器并返回到空闲低功耗状态。
如果DS18B20 在外部VDD 供电方式下,单片机可以在发出Convert T 命令并总线为1 时(总线为0 表示正在转换)发出“read time slots”命令。
温度分辩率配置:五、实验步骤1. 在Keil IDE u Vision集成开发环境下建立工程文件,编辑源文件、编译、链接并生成目标文件,仿真调试验证结果。
基于单片机的温度采集报警系统的设计摘要:设计了一种基于单片机at89s51和ds18b20温度传感器的温度采集报警系统。
该系统性能可靠,结构简单,能实现安全温度内正常显示温度值,超出设定的温度上限则进行声光报警。
关键词:单片机;温度检测;报警中图分类号:tp311.52文献标识码:a文章编号:1007-9599 (2011) 23-0000-03temperature acquisition alarm system design based mcu wang rongrong,liu haixia(inner mongolia technical college of mechanics and electrics,huhhot010070,china)abstract:it designs a microcontroller based on at89s51 and ds18b20 temperature sensor temperature collection and alarm system.the system has reliable performance,simple structure,can achieve safe temperature within a normal display temperature exceeds the set temperature,upper limit,sound and light alarm.keywords:mcu;temperature detection;alarm一、系统设计基本工作原理如图1所示为温度采集报警系统框图。
该设计将以单片机控制的温度采集系统为主,利用单片机完成对温度的检测,实现安全温度内正常显示温度值,超出设定的温度上限则进行声光报警。
系统在温度采集时主要应用了ds18b20芯片,该器件经过初始化后单片机首先进行rom匹配,当受到测温器件发回的信号时证明该器件正常工作,接着单片机发送温度转换命令进行温度采集,测温的精确度很高,可以精确到小数点后四位。
温度控制系统摘要 : 随着微机测量和控制技术的迅速开展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。
本设计论述了一种以STC89C52单片机为主控制单元,以 DS18B20为温度传感器的温度控制系统。
该控制系统可以实时存储相关的温度数据并记录当前的时间。
系统设计了相关的硬件电路和相关应用程序。
硬件电路主要包括STC89C52单片机最小系统,测温电路、实时时钟电路、 LCD 液晶显示电路以及通讯模块电路等。
系统程序主要包括主程序,读出温度子程序,计算温度子程序、 LCD 显示程序以及数据存储程序等。
关键词:STC89C52, DS18B20,LCDAbstract:Along with the computer measurement and control technology of the rapid development and wide application,based on singlechip temperature gathering and control system development and application greatly improve the production of temperature in life level of control. This design STC89C52 describes a kind ofmainly by MCU control unit, for temperature sensor DS18B20 temperature control system. The control system can real-time storage temperature data and recordrelated to the current time. System design related hardware circuit and related applications. STC89C52 microcontroller hardware circuit include temperaturedetection circuit smallest system, and real-time clock circuit, LCD displaycircuit, communication module circuit, etc. System programming mainly includemain program,read temperature subroutine,the calculation of temperature subroutines, LCD display procedures and data storage procedures, etc.Keywords: STC89C52, DS18B20,LCD目录1前言 (1)2总体方案设计 (2)方案设计 (2)方案论证 (3)方案选择 (3)3单元模块的设计 (4)单片机模块 . (4)18B20 温度模块 (5)显示器模块 . (6)4软件设计 (7)系统总框图 (7)温度采集子程序 (8)5系统功能与调试方法介绍 (9)系统功能 (9)系统指标 (9)系统调试 (9)6参考文献 (10)附录 1:相关设计图 (11)附录 2:元器件清单 (13)附录 3:源程序 (14)1前言工业控制是计算机的一个重要应用领域,计算机控制系统正是为了适应这一领域的需要而开展起来的一门专业技术,它主要研究如何将计算机技术、通过信息技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。
基于LabVIEW的实时温度采集系统设计1. 概述实时温度采集系统是一种用于实时监测和记录环境温度变化的设备,可以广泛应用于工业自动化、实验室监测等领域。
本文将介绍一种基于LabVIEW的实时温度采集系统设计方案。
2. 硬件设计2.1 传感器选择在实时温度采集系统中,传感器的选择十分重要。
常用的温度传感器有热电偶和热敏电阻。
在本系统中,我们选择了DS18B20温度传感器,这是一种数字温度传感器,具有精确度高、精度稳定等特点,适合于实时温度采集系统的应用。
2.2 数据采集模块数据采集模块负责将传感器采集到的模拟信号转换为数字信号,并通过接口与上位机进行通信。
在本系统中,我们选择了Arduino Uno 作为数据采集模块,它不仅具有良好的性能和稳定性,而且可以通过串口通信与LabVIEW进行数据交互。
2.3 信号调理电路温度传感器输出的模拟信号需要经过信号调理电路进行放大和滤波处理,以提高系统的稳定性和准确性。
常用的信号调理电路包括放大电路、滤波电路等。
2.4 数据通信模块数据通信模块负责将采集到的温度数据通过网络或串口等方式实时传输给上位机。
在本系统中,我们选择了以太网模块ENC28J60与LabVIEW进行数据通信。
3. 软件设计3.1 LabVIEW界面设计LabVIEW是一种图形化编程环境,可以通过拖拽元件来组装控制面板和数据处理模块。
在本系统中,我们通过LabVIEW来实现人机交互、数据实时显示和数据存储等功能。
3.2 数据处理及算法设计在实时温度采集系统中,数据处理和算法设计是十分重要的部分。
根据采集到的温度数据,我们可以进行实时的数据处理、异常检测和报警等操作。
通过结合LabVIEW的图形化编程特点,我们可以方便地设计和调试各种数据处理算法。
4. 系统实施与测试根据以上的硬件和软件设计方案,我们可以开始进行系统的实施和测试工作。
首先,按照硬件设计要求进行电路的搭建和连接,然后进行LabVIEW程序的开发和调试。
电子综合实践设计报告专业班级:学生姓名:指导教师:设计时间:物理与通信电子学院摘要DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单、体积小、低功耗、高精度、抗干扰能力强等特点的数字温度传感器。
本设计采用多点测温方法,在一个IO口上挂接多个DS18B20测温,在远距离工作时,为了防止信号的衰减,DS18B20用屏蔽双绞线包裹,远端接地的方法工作,并把所测得的温度在LCD上显示出来。
文中简要的介绍了DS18B20的基本特点、引脚功能、测温原理及时序的控制。
给出了DS18B20的使用电路、使用中的注意事项、硬件及软件设计方法。
经过测试,该系统的测量精度及速度等指标均能满足设计要求。
关键词:DS18B20 测温系统数字温度传感器多点测温目录摘要 (2)1 引言 (4)2 设计要求 (4)3 方案设计与原理 (4)3.1 DS18B20 简介 (4)3.1.1 DS18B20特性 (4)3.1.2说明: (5)3.1.3 DS18B20测温原理: (5)3.1.4 DS18B20测温原理图: (6)3.1.5 64位激光刻ROM (7)3.1.6 CRC发生器 (7)3.1.7 单总线系统 (7)3.2 DS18B20指令控制 (7)3.2.1 ROM时序指令控制 (8)3.2.2DS18B20功能指令控制 (8)3.3 18B20时序详解 (9)3.3.1初始化时序 (9)3.3.2读/写时序 (9)3.4二叉树遍历 (11)4 设计程序流程图: (16)5 设计硬件原理图 (17)6 DS18B20使用中应注意事项 (18)7测试中出现的问题及解决办法和说明: (18)8 结束语 (19)9 参考文献: (20)10 附录: (21)1 引言本系统利用DS18B20进行测温,基于单片机AT89S52进行温度控制,具有硬件电路简单,控温精度高、功能强,体积小,简单灵活等优点,可以应用于控制温度在-55℃到+125℃之间的各种场合,可以实现温度的实时采集、显示功能。
基于单片机的温度实时监控系统设计摘要本文主要是针对制冷设备的温度监控而展开的一系列设计研究。
该设计以单片机AT89C51为控制核心,从DS18B20温度检测的数据采集、设定值调整、LED数码管显示电路、报警及输出控制电加热器等几个方面出发,详细研究和设计了基于单片机的温度控制的各个部分内容,设计了单片机及其外围电路,并结合一套经典的程序算法。
给出了一套合理的基于单片机的温度控制器软硬件解决方案。
关键字:温度检测 DS18B20 单片机温度控制Design of a Temperature-Control System based on the single-chipABSTRACTThis article is mainly aimed at monitoring the temperature of refrigeration equipment and launched a series of design studies. The AT89C51 single-chip design for the control of the core, from the temperature detection DS18B20 data acquisition, the adjustment settings, LED digital tube display circuit, alarm and output control several aspects, such as electric heater, the detailed study and design based on single the temperature control machine in all parts of the design of the single-chip microcomputer and its peripheral circuits, and procedures combined with a classic algorithm. Given a reasonable temperature controller based on single-chip hardware and software solutions.Key words:Single-chip Computer Sensor Temperature Measurement目录摘要 (I)ABSTRACT ............................................... I I 1 绪论 .. (1)1.1课题设计背景及意义 (1)1.2 行业技术发展趋势 (1)1.3 课题设计的主要内容 (1)2 系统的总体设计 (3)3 系统的主要硬件介绍 (4)3.1 单片机介绍 (4)3.1.1单片机概述 (4)3.1.2 单片机编程语言介绍 (5)3.1.3 系统选择 (6)3.1.4 AT89C52引脚功能介绍 (8)3.2 温度传感器DS18B20 (14)3.2.1 DS18B20简介 (14)3.2.2 DS18B20的硬件连接 (15)4 温度监控系统的设计 (17)4.1硬件设计 (17)4.1.1 温度检测部分 (17)4.1.2 LED数码管显示电路 (18)4.1.3 报警及控制输出部分 (19)4.1.4 单片机及按键电路设计 (20)4.2 软件系统设计 (22)4.2.1 系统程序流程图 (22)4.2.2 单片机软件开发语言 (24)4.2.3 DS18B20驱动程序 (24)4.2.4 系统的程序源代码 (28)5.系统的调试与仿真 (36)5.1 系统程序的调试 (36)5.2 proteus仿真及调试 (39)5.2.1 proteus的功能简介 (39)5.2.2 proteus的界面简介 (40)5.2.3 温度监控设计的proteus仿真结果 (48)5.2.4 基于开发板的温度监控设计仿真结果 (51)6.温度监控系统设计的硬件成果 (55)6.1模块硬件概论 (55)6.1.1按键调整模块 (55)6.1.2温度显示模块 (56)6.1.3电源模块 (56)6.1.4温度采集、核心控制模块 (57)6.1.5整体硬件系统 (58)参考文献 (59)附录 (60)系统整体硬件电路图 (60)谢辞 (61)1 绪论1.1课题设计背景及意义单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。
2012 ~ 2013 学年第2 学期《单片机原理与应用》课程设计报告题目:基于DS18B20的温度采集系统设计专业: 自动化班级:电气工程系2013年5月3日任务书课题名称基于DS18B20的温度采集系统设计指导教师(职称)林开司摘要通过系统的分析和总结 ,得出温室大气温度信号的采集传感器件所需的测量程小 ,精确度不高 ,抗干扰性较强 ,经济性较好的结论。
并以此为依据 ,选用 DS18B20数字温度传感器为温度采集器件 ,进行了温度采集系统的硬件和软件设计 ,实现了采集系统分布式采集温度信号的功能。
同时 ,通过串行总线完成了采集系统与上位计算机的连接 ,实现了采集系统的网络化监控功能。
关键词温度采集;DS18B20温度传感器;仿真;单片机基于DS18B20的温度采集系统设计目录摘要 (I)第一章 DS18B20温度传感器 (1)1.1DS18B20的工作原理 (1)1.2DS18B20的使用方法 (3)第二章单片机AT89C51 (6)2.1AT89C51简介 (6)2.2AT89C51功能 (6)2.3AT89C51引脚 (6)第三章系统硬件电路设计 (9)3.1测温控制电路原理图 (9)3.2上电复位电路 (9)3.3时钟电路 (9)3.4数码管显示电路 (10)3.5温度报警电路 (11)第四章程序设计 (12)4.1DS18B20复位检测子程序流程图 (12)4.2温度转换子程序图 (12)4.3写DS18B20子程序图 (12)5.4读DS18B20子程序图 (13)4.5温度计算子程序图 (14)第五章调试与仿真 (14)第六章结论与体会 (16)参考文献 (17)附录: (18)答辩记录及评分表 (21)第一章 DS18B20温度传感器1.1 DS18B20的工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。
DS18B20测温原理如图3所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
图1-1DS18B20数字温度传感器内部结构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为符号位。
表1-1: DS18B20温度值格式表这是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。
表1-2: DS18B20温度数据表(3)DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
(4)配置寄存器该字节各位的意义如下:TM R1 R0 1 1 1 1 1表1-3:配置寄存器结构低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)R1 R0 分辨率温度最大转换时间0 0 9位93.75ms0 1 10位187.5ms1 0 11位375ms1 1 12位750ms表1-4:温度分辨率设置表表1-5 引脚功能1.2 DS18B20的使用方法由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的初始化(1)先将数据线置高电平“1”。
(2)延时(该时间要求的不是很严格,但是尽可能的短一点)(3)数据线拉到低电平“0”。
(4)延时750微秒(该时间的时间范围可以从480到960微秒)。
(5)数据线拉到高电平“1”。
(6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。
据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。
(7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。
(8)将数据线再次拉高到高电平“1”后结束。
DS18B20的写操作(1)数据线先置低电平“0”。
(2)延时确定的时间为15微秒。
(3)按从低位到高位的顺序发送字节(一次只发送一位)。
(4)延时时间为45微秒。
(5)将数据线拉到高电平。
(6)重复上(1)到(6)的操作直到所有的字节全部发送完为止。
(7)最后将数据线拉高。
DS18B20的读操作(1)将数据线拉高“1”。
(2)延时2微秒。
(3)将数据线拉低“0”。
(4)延时3微秒。
(5)将数据线拉高“1”。
(6)延时5微秒。
(7)读数据线的状态得到1个状态位,并进行数据处理。
(8)延时60微秒。
ROM指令表1-6 :第二章单片机AT89C512.1 AT89C51简介AT89S51美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。
单片机AT89S51强大的功能可为许多嵌入式控制应用系统提供高性价比的解决方案。
2.2 AT89C51功能AT89S51提供以下标准功能:40个引脚、4K Bytes Flash片内程序存储器、128 Bytes的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。
此外,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲模式,CPU暂停工作,而RAM、定时/计数器、串行通信口、外中断系统可继续工作。
掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
2.3 AT89C51引脚P0口:P0口为一个8位漏级开路双向I/O口,也即地址/数据总线复用口。
作为输出口用时,能驱动8个TTL逻辑门电路。
对端口写“1”时,被定义为高阻输入。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I IL)。
P2口:P2口是一个带有内部上拉电阻的8位双向I/O口, P2口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会)。
输出一个电流(IIL在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据寄存器(例如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
P3口: P3口是一个带有内部上拉电阻的双向8位I/O口, P3口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写“1”时,它们被内部的上拉电阻拉高并可)。
作为输入端口。
作输入口使用时,被外部信号拉低的P3口将用上拉电阻输出电流(IIL RST:复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上的高电平时间将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISRTO位缺省为RESET输出高电平打开状态。
ALE/:当访问外部存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。