DS18B20的数字温度计设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
温度设定、报警子程序:设定报警温度值,当温度超过该值时产生报警,即驱动蜂鸣器鸣叫、1个发光二极管发光
主程序流程图:
图14主程序流程图
5.2
读温度值模块需要调用4个子程序,分别为:
DS18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好操作
DS18B20写字节子程序:对DS18B20发出命令
实际温度=07D0H*0.0625=2000*0.0625=125℃。
例如-55℃的数字输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作运算),
实际温度=370H*0.0625=880*0.0625=55℃。
可见其中低四位为小数位。
图8 DS18B20温度数据表
4.2.6
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,各种数字系统的应用也使人们的生活更加舒适。数字化控制、智能控制为现代人的工作、生活、科研等方面带来方便。其中数字温度计就是一个典型的例子。
数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温精确、功能多样化等优点。其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用AT89C52单片机作控制器,数字温度传感器DS18B20测量温度,单片机接受传感器输出,经处理用LCD1602液晶显示屏实现温度值的显示。
2
2.1
实现实时温度显示,测温范围0~500C,误差0.50C以内。
2.2
温度报警,能任意设定温度范围实现声光报警;
3
3.1
3.1.1
采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成(热电偶的构成如图 3.1),热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D 转换电路,感温电路比较麻烦。
学院课程设计报告
基于51单片机的数字温度计设计
学生姓名
院系名称
专业名称
班 级
学 号
指导教师
完成时间
内容摘要:
随着现代信息化技术的飞速发展和传统工业改造的逐步实现,能独立工作的温度检测系统已广泛应用于各种不同的领域。本文介绍了一个基于AT89C52单片机和数字温度传感器DS18B20的测温系统,并用LCD1602液晶显示器显示温度值,易于读数。系统电路简单、操作简便,系统具有可靠性高、成本低、功耗小等优点。
5.3
中断采用T0方式1,初始值定时为1ms。
中断模块需调用两个子程序:
读温度值子程序:定时读取温度值,实时更新温度值
记录温度值子程序:定时记录温度值,供查询使用
把这两个子程序放在中断的原因是,不会因为调整报警温度而停止更新温度值和记录温度值。
中断模块流程图:
Y
N
图19中断模块流程图
DS18B20读字节子程序:读取DS18B20存储器的数据
延时子程序:对DS18B20操作时的时序控制
1.读温度值模块流程图:
图15 读温度值子程序流程图
2.DS18B20初始化子程序流程图:
N
Y
图16DS18B20初始化子程序流程图
3.DS18B20写字节和读字节子程序流程图:
图17DS18B20写字节子程序流程图图18DS18B20读字节子程序流程图
图3.1热电偶电路图
系统主要包括对A/D0809 的数据采集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处理。此外还有复位电路,晶振电路,启动电路等。故现场输入硬件有手动复位键、A/D 转换芯片,处理芯片为51 芯片,执行机构有4 位数码管、报警器等。
3.1.2
采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100 摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对DS18B20控制工作,还可以与PC 机通信上传数据,另外AT89C52 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用AT89C52芯片控制温度传感器DS18B20进行实时温度检测并利用LCD1602显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。
4.1
1.本设计采用AT89C52单片机作为控制器,完成所有功能的控制,包括:
DS18B20数字温度传感器的初始化和读取温度值
LCD1602液晶显示器显示
按键识别和响应控制
温度设置和报警
2.单片机系统电路原理图:
图2 单片机系统原理图
4.2
4.2.1 DS18B20
独特的单线接口仅需一个端口引脚进行通信
负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正常工作
4.2.2 DS18B20
图3 DS18B20外形及引脚
GND:地
DQ:单线运用的数据输入/输出引脚
VD:可选的电源引脚
4.2.3 DS18B20
单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。
图4 DS18B20接线原理图
4.2.4 DS18B20
主机使用时间隙来读写DS18B20的数据位和写命令字的位。
1.初始化时序如下图:
图5 DS18B20初始化时序
2.DS18B20读写时序:
图6 DS18B20读写时序
4.2.5
高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在 高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。
●在DS18B20测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。
4.3
本设计显示电路采用LCD1602液晶显示屏来显示测量得到的温度值。LCD1602液晶显示屏在低电压下工作,而且体积小、重量轻、使用寿命长,因次本设计选用此LCD1602显示屏作为显示器件。
从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、ຫໍສະໝຸດ Baidu现方便、软件设计也比较简单,故本次设计采用了方案二。
3.2
本方案设计的系统由单片机系统、数字温度传感器、LCD1602显示模块、模块组成,其总体架构如下图1。
图1总体设计方框图
4
简单的多点分布应用
无需外部器件
可通过数据线供电
零待机功耗
测温范围-55~+125℃,以0.5℃递增
可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃
温度数字量转换时间200ms,12位分辨率时最多在750ms内把温度转换为数字
应用包括温度控制、工业系统、消费品、温度计和任何热感测系统
DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
●DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。
●在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得的温度精度降低。
测量温度的关键是温度传感器,温度传感器的发展经历了三个阶段:
①传统的分立式温度传感器
②模拟集成温度传感器
③智能集成温度传感器。
目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,89C51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用ATMEL公司的AT89C52单片机,测温传感器使用DALLAS公司DS18B20,用液晶来实现温度显示。
图7 字节分配
下表为12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125℃的数字输出为07D0H,
关键词:AT89C52单片机、数字温度传感器、温度计、LCD1602液晶显示、误差分析、软件设计
1 引言
随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础技术的发展水平。在三大信息——信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中。传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经应用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
图11 键盘输入电路
4.6
工作电源电压为3V,采用两颗3v纽扣电池并联供电,采用PS3120A升压解决方案将3V电压提升至5V给单片机及整个系统供电。
图12 电源仿真图
4.7
图13总仿真图
5
5.1
主程序需要调用2个子程序,分别为:
实时温度显示子程序:驱动数码管把实时温度值送出在LCD1602液晶屏上显示
图9 LCD1602液晶显示屏显示电路
4.4
当温度超过设定温度值时,实现声光报警,蜂鸣器鸣叫、1个红色发光二极管点亮。蜂鸣器由单片机P2^3口控制,用三极管驱动,发光二极管接单片机P2.3口。
图10 声光报警电路
4.5
四个键分别连接单片机P3^0、P3^1、P3^2、P3^3构成独立式键盘,分别实现加、减、报警温度设定功能键。
●较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。
●在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
相关文档
最新文档