0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DS18B20和89C2051组成的温度显示电路

温控电路图 来源:www.elecfans.com 作者:发烧友 2011-01-23 10:47 次阅读

由单总线数字温度传感器DS18B20和89C2051组成的经济型家庭用测温系统。其温度显示为“-XXC”,精度±0.5℃,测温范围-55℃~+125℃。下面详细分析系统构成及汇编语言对DS18B20操作时序的实现方法。图1为本系统电路图,图中DSP为四只数码LED显示器的简化。

1.DS18B20的初始化与读写程序

DS18B20是“一总线”接口温度传感器,测温范围为-55℃~+125℃,在-10℃~+85℃范围内精度为±0.5℃。DS18B20可以程序设定9~12位的分辨率,在出厂时被设置为12位的分辨率。通过和单片机系统的结合,可以构建经济的测温系统。DS18B20的管脚排列如图2所示,DQ为数字信号输入,输出端,与单片机系统接口时可通过5.1kΩ电阻上拉;GND为电源地;VDD为外接供电电源输入端。

DS18B20内含64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器等。可采取直接读取DS18B20内部暂存寄存器的方法,通过四舍五入显示其整数温度值。DS18B20内部暂存寄存器包含九个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。以12位转化为例:温度信息用16位符号扩展的二进制补码形式提供,以0.0625℃/LSB形式表达,其中S为符号位,对应的换算关系参见附表。

由于DS18B20与微处理器间采用单总线数据传送,因此,在对DS18B20进行读写编程时,必须严格遵守读写时序,否则将无法读取测量结果。

DS18820的初始化程序如下。当程序检测到DS18820不存在的时候会设置不存在标志,以防止系统锁死。

INIT_1820:SETBDS18B20;DS18B20数据线设置为P3.4NOPCLRDS18B20;resetDSMOVR0,#250;发延时500μs的复位低脉冲DJNZR0,SSETBDS18B20:拉高数据线MOVR0,#10;等待20μsDJNZR0,SMOVR0,#37TSR2:JNBDS18B20,TSR3;在150μs内等待DS18B20回应DJNZR0,TSR2;延时LJMPTSR4TSR3:SETBFLAG1;置标志位,DS1820存在LJMPTSR5TSR4:CLRFLAG1;清标志位,DS1820不存在AJMPTSR7TSR5:MOVR0,#118DJNZR0,S;时序要求延时240μsTSR7:SETBDS18B20RETDS18B20的读写程序(略)。

2.数据转换与显示程序设计

由于不要求显示小数,所以可以舍弃温度寄存器0(TEMPER_L)的低4位,而将温度寄存器1(TEMPER_H)中的低4位移入TEMPER_L中的高4位,组成的新字节,即实际测得的温度。在实际应用中,因为涉及到零度以下温度的显示,需要进行一定的数据转换。

在显示子程序中,因为百位和负号“-”要区别显示,相应流程如图3所示。

3.系统制作

本系统四位一体的0.5英寸七段显示器是共阳型的。其管脚排列见图4。AT89C2051的P1.0和P1.1口是模拟比较器的输入端,内部无上拉电阻,所以在外部接10kΩ,上拉电阻后,接入CD4069作驱动,每段电流被限制在1mA左右,每段显示时间为1ms,温度刷新周期为1分钟;晶振选择12MHz的,每条指令周期正好为1μs的倍数。装饰面板选用家装剩下的“正泰CHNT”86型单键按钮面板,将按钮拆除,正好成显示窗口。系统采用+5V直流电源。本人正好有现成的三基DC5V微型开关电源,将其嵌入在86开关框中,元件布局及面板效果参见图5、图6。

图5左上端的引出线为外接DS18B20导线,以便于进行高低温调试试验,调试结束后可以直接焊接在申,路板上。焊接完成后,不需要进行调试就能直接显示温度数据。

4.其他

在不改动系统硬件的基础上,通过计算方法的调整,DS18B20的测温分辨率可以提高到±0.1℃以上,由四位LED显示成“×××。×”格式。在本系统中,AT89C2051的P3.5、P3.7口未使用,可以调整程序增加控制继电器或门铃等应用。本人利用P3.5在调试时驱动一个LED发光管。实际可改作它用。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DS18B20
    +关注

    关注

    10

    文章

    778

    浏览量

    80648
  • 89C2051
    +关注

    关注

    1

    文章

    27

    浏览量

    28851
  • 温度显示电路

    关注

    1

    文章

    2

    浏览量

    8964
收藏 人收藏

    评论

    相关推荐

    基于DS18B20的家用温度测量器设计

    本制作采用USB口作为供电端口,用DS18B20温度传感器进行温度信息采集,用AT89C2051单片机进行控制,采用四位共阳数码管显示,从而
    发表于 10-03 13:10 2638次阅读

    如何用STC89C51和DS18B20温度检测和显示

    新手学习求教我用STC89C51和4位数码管和DS18B20怎么做温度检测和显示,求硬件电路图,和实例。
    发表于 09-29 02:27

    基于AT89S51单片机和数字温度传感器DS18B20组成的多路温度检测系统

    提出了基于AT89S51单片机和数字温度传感器DS18B20组成的多路温度检测系统,介绍了主要元器件的工作原理,详细给出了硬件设计过程和软件
    发表于 04-28 07:36

    设计DS18B20温度检测电路的资料大合集

    相应的输入参数;可通过按键改变温度设定值。二、实验内容首先利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT
    发表于 11-30 06:47

    新型温度传感器DS18B20高精度测温的实现

    介绍了一种数字式的温度传感器DS18B20, 提出了一种基于89C2051 的测温电路及软件框图在内的实现方法。关键词 数字式温度传感器 
    发表于 07-03 10:14 62次下载

    ds18b20电路

    ds18b20电路图,C语言源程序,ds18b20温度计.PRJPCB,DS18B20
    发表于 03-03 10:47 624次下载
    <b class='flag-5'>ds18b20</b><b class='flag-5'>电路</b>图

    DS18B20温度显示报警控制设计

    本文设计了一种基于AT89C51 单片机与DS18B20温度控制系统。该设计通过AT89S52 单片机驱动数字温度传感器
    发表于 12-17 00:24 696次下载
    <b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b><b class='flag-5'>显示</b>报警控制设计

    基于DS18B20和AT89C2051的家用温度测量器设计研究

    本制作采用USB口作为供电端口,用DS18B20温度传感器进行温度信息采集,用AT89C2051单片机进行控制,采用四位共阳数码管显示,从而
    发表于 04-24 10:14 1735次阅读
    基于<b class='flag-5'>DS18B20</b>和AT<b class='flag-5'>89C2051</b>的家用<b class='flag-5'>温度</b>测量器设计研究

    DS18B20温度测试实验

    基于单片机STC89C52的DS18B20数字温度计,测量实时温度
    发表于 12-31 14:36 10次下载

    基于STC89C52_ds18B20_DS1302的C语言程序

    温度计时,基于STC89C52 ds18B20 DS1302的C语言程序
    发表于 06-21 16:27 39次下载

    DS18B20程序显示温度

    电子专业单片机相关知识学习教材资料——DS18B20程序显示温度
    发表于 08-23 15:55 43次下载

    ds18b20的特性_ds18b20温度传感器应用

    本文首先介绍了ds18b20的特性,其次介绍了DS18B20工作原理,最后介绍了ds18b20温度传感器应用。
    发表于 04-24 09:10 1.1w次阅读
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>温度</b>传感器应用

    单片机测温系统(AT89C51、DS18B20温度传感器、LCD1602)

    单片机测温系统一、简介此系统主要由AT89C51、DS18B20温度模块和LCD1602组成。大致的原理是DS18B20
    发表于 11-20 14:36 25次下载
    单片机测温系统(AT<b class='flag-5'>89C</b>51、<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>传感器、LCD1602)

    51单片机多路测温报警系统(AT89C51、多个DS18B20、LCD1602)

    51单片机多路测温报警系统(AT89C51、多个DS18B20、LCD1602)一、简介** 此系统主要由AT89C51、多个DS18B20温度
    发表于 11-21 11:06 19次下载
    51单片机多路测温报警系统(AT<b class='flag-5'>89C</b>51、多个<b class='flag-5'>DS18B20</b>、LCD1602)

    51单片机使用LCD1602显示DS18B20温度传感器温度

    的可以留言,看到回复)需要的元件:  AT89C51、LCD1602、DS18B20电路原理图:主函数代码:#include <reg52.h>#include<DS18
    发表于 11-23 17:21 66次下载
    51单片机使用LCD1602<b class='flag-5'>显示</b><b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>传感器<b class='flag-5'>温度</b>