经典数字温度传感器DS18B20试验

发布者:Joyful222Life最新更新时间:2013-01-15 来源: 21IC 关键字:字温度传感器  DS18B20  S51增强型 手机看文章 扫描二维码
随时随地手机看文章

    在前面,我们学习了DS18B20新型数字温度传感器的基础理论知识,对DS18B20的特性及应用有了较全面的了解,本课我们就结合S51增强型实验板,ISP编程器来学习DS18B20的应用软件编程,做DS18B20测温实验,DIY一个我们自己的数字温度计,通过本实验的学习,熟练掌握DS18B20的开发,相信你也可以自己的智能温控系统!

    首先介绍实验的硬件设备:S51增强型单片机实验板 + ISP编程器 + DS18B20温度传感器

图1: S51增强型单片机实验板 + 配套温度传感器


实验板红外遥控及DS18B20接口


产品配套温度传感器DS18B20

(已焊接好并经过测试,免去初学者因焊接不好损坏DS18B20的风险,采用屏蔽线焊接,热缩管绝缘保护,防插反接头,抗干扰能力强,测温精度更高,插入实验板即可使用)
注:如图中所示,实验板的第5位数码管可以显示温度的符号"℃",做温度实验更加直观。将配套温度传感器插入DS18B20实验接口,完成温度传感器的硬件连接。

注:如图中所示,实验板的第5位数码管可以显示温度的符号"℃",做温度实验更加直观。将配套温度传感器插入DS18B20实验接口,完成温度传感器的硬件连接。

 图2: ISP编程器套件[page]

DS18B20测温实验原理图见下面图3

图3

    新建Keil工程ds18sy.UV2,输入下面的DS18B20测温实验源程序,编译得到HEX格式目标文件ds18sy.hex。

;--------- 下面是DS18B20测温实验源程序 ---------

    ORG  0000H
START: MOV  SP,#60H     ;开机初始化
    MOV  P0,#0FFH
    MOV  P1,#0FEH
    MOV  P2,#0FFH
    MOV  P3,#0FFH

MAIN:  LCALL  GET_TEMPER   ;调用读温度子程序
    LCALL  DISP      ;调用数码管显示子程序
    AJMP  MAIN      ;重复循环

;------ 读DS18B20传感器的温度值 ------
GET_TEMPER:
    SETB  P3.3
    LCALL  RST18B20    ;复位DS18B20
    JB    00H,DSS2
    RET
DSS2:  MOV   A,#0CCH    ;跳过ROM匹配
    LCALL  WR18B20
    MOV   A,#44H     ;向DS18B20发出温度转换命令
    LCALL  WR18B20
    LCALL  RST18B20    ;准备读温度前先复位DS18B20
    MOV   A,#0CCH    ;跳过ROM匹配
    LCALL  WR18B20
    MOV   A,#0BEH    ;向DS18B20发出读温度命令
    LCALL  WR18B20
    LCALL  RE18B20    ;读出温度数据
    RET

;------ DS18B20复位初始化程序 ------
RST18B20:
    SETB  P3.3
    NOP
    CLR   P3.3
    MOV   R0,#06BH    ;主机发出复位低脉冲
    MOV   R1,#03H
DSR1:  DJNZ  R0,DSR1
    MOV   R0,#6BH
    DJNZ  R1,DSR1
    SETB  P3.3      ;拉高数据线
    NOP
    NOP
    NOP
    MOV   R0,#25H
DSR2:  JNB   P3.3,DSR3    ;等待DS18B20回应
    DJNZ  R0,DSR2
    LJMP  DSR4
DSR3:  SETB  00H       ;置标志位,表示DS1820存在
    LJMP  DSR5
DSR4:  CLR   00H        ;清标志位,表示DS1820不存在
    LJMP  DSR7
DSR5:  MOV   R0,#06BH
DSR6:  DJNZ  R0,DSR6     ;延时一段时间
DSR7:  SETB  P3.3
    RET

;------ 写DS18B20的子程序 ------
WR18B20:
    MOV   R2,#8
    CLR   C
WR1:  CLR   P3.3
    MOV   R3,#6
    DJNZ  R3,$
    RRC   A
    MOV   P3.3,C
    MOV   R3,#23
    DJNZ  R3,$
    SETB  P3.3
    NOP
    DJNZ  R2,WR1
    SETB  P3.3
    RET[page]

;------ 从DS18B20中读温度数据程序 ------
RE18B20:
    MOV   R4,#2
    MOV   R1,#2FH
RE00:  MOV   R2,#8
RE01:  CLR   C
    SETB  P3.3
    NOP
    NOP
    CLR   P3.3
    NOP
    NOP
    NOP
    SETB  P3.3
    MOV   R3,#09
RE10:  DJNZ  R3,RE10
    MOV   C,P3.3
    MOV   R3,#23
RE20:  DJNZ  R3,RE20
    RRC   A
    DJNZ  R2,RE01
    MOV   @R1,A
    DEC   R1
    DJNZ  R4,RE00
    RET

;-------- 显示子程序 --------
DISP:  MOV   A,2FH
    MOV   C,70H
    RRC   A
    MOV   C,71H
    RRC   A
    MOV   C,72H
    RRC   A
    MOV   C,73H
    RRC   A
    MOV   2FH,A
    MOV   A,2FH
    MOV   B,#10
    DIV   AB
    MOV   30H,A
    MOV   31H,B
    MOV   A,30H
    MOV   DPTR,#SGTB
    MOVC  A,@A+DPTR
    MOV   P0,A      ;显示温度“十位”值
    CLR   P2.2
    SETB  P2.0
    SETB  P2.1
    SETB  P2.3
    SETB  P2.4
    LCALL  YS4722U
    MOV   A,31H
    MOV   DPTR,#SGTB
    MOVC  A,@A+DPTR
    MOV   P0,A      ;显示温度“个位”值
    CLR   P2.3
    SETB  P2.0
    SETB  P2.1
    SETB  P2.2
    SETB  P2.4
    LCALL  YS4722U
    MOV   A,#01000110B
    MOV   P0,A      ;显示温度符号“ ℃”
    CLR   P2.4
    SETB  P2.0
    SETB  P2.1
    SETB  P2.2
    SETB  P2.3
    LCALL  YS4722U
    RET

;************* 8位共阳数码管显示器字型码表 *****************
SGTB:  DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
    DB 88H,83H,0C6H,0A1H,86H,8EH,89H,0A3H,8CH,0C8H

YS4722U:
    MOV   R4,#10 ;延时子程序
Y3:   MOV   R5,#216
    DJNZ  R5,$
    DJNZ  R4,Y3
    RET

    END


    用ISP编程器将目标文件ds18sy.hex烧写到AT89S51单片机中(见下图)

点击浏览下一页
图4: ISP编程器烧写目标文件
关键字:字温度传感器  DS18B20  S51增强型 引用地址:经典数字温度传感器DS18B20试验

上一篇:RS-232接口与单片机串行通信程序
下一篇:单片机按键程序设计及电路设计

推荐阅读最新更新时间:2024-03-16 13:16

基于MSP430F149的智能火灾报警系统的设计
  0 引言   火灾严重威胁着人类的生命财产安全,每年我国由火灾引起的灾难数不胜数,然而,准确、及时的对火灾进行预测已成为迫在眉睫的事情。目前,火灾探测技术是预防火灾发生的最有效的手段,根据火灾发生初期的迹象来判断并进行预测,从而使人们在第一时间对这些迹象进行处理,有效的减少了火灾的发生。   普通可燃物燃烧的表现形式是:首先产生燃烧气体和烟雾,在氧气供应充足的条件下才能达到完全燃烧,产生火焰并发出一些可见光与不可见光,同时释放大量的热,使得环境温度升高。普通可燃物由初起阴燃阶段开始,到火焰燃烧、火势渐大,最终酿成火灾的起火过程。在该系统中我们以环境温度、烟雾浓度作为判断火灾的依据。   传统火灾报警系统有结构简单、准确度
[单片机]
基于MSP430F149的智能火灾报警系统的设计
AVR单片机测温基于DS18B20
#include iom16v.h #include macros.h #include delay.h #define uint unsigned int #define uchar unsigned char #define dula_set PORTA |=BIT(3) //数码管段选 #define dula_clr PORTA &=~BIT(3) #define wale_set PORTA |=BIT(4)//数码管位选 #define wale_clr PORTA &=~BIT(4) #define DQ_IN DDRA&=~BIT(5) #define DQ_OUT DDRA|=BIT(5) #define
[单片机]
51单片机DS18B20温度传感四位数码管显示报警
仿真原理图如下 全部资料分享,可设置温度报警的上下限,5641四位共阳数码管显示温度,自己曾经做的设计,实测可行,提供给有需要的人 单片机源程序如下: #include AT89X52.h #define uint unsigned int #define uchar unsigned char //宏定义 #define SET P3_1 //定义调整键 #define DEC P3_2 //定义减少键 #define ADD P3_3 //定义增加键 #define BEEP P3_6 //定义蜂
[单片机]
51单片机<font color='red'>DS18B20</font>温度传感四位数码管显示报警
基于DS18B20和AT89C2051设计的分布式温度测量系统
温度监控是工业生产中的一个重要环节,尤其在环境 恶劣和复杂的工业现场,温度监控起着不可替代的作用。但是由于目前许多温度监控系统所采用的温度传感器的输出是一个变化的模拟电压量,不能与计算机采集系统直 接接口,需要进行采集、处理与变换,才能送入基于计算机 的监控系统。这就使得对于多点分布式的温度测量带来 了不便。随着计算机、通信、网络控制等技术的发展,工业测控系统已成为许多工业企业中非常重要的组成部分。加之现场总线技术的日趋成熟及数字温度传感器的出现,使得现场总线技术和数字温度传感器更多的用于工业监控系统中来,从而使得工业监控系统的功能更加强大,监控的范围更加的广泛。同时提高温度的测量的精度也是重要的目标之一。 因此本文设计的系统
[单片机]
基于<font color='red'>DS18B20</font>和AT89C2051设计的分布式温度测量系统
DS18B20 1602液晶显示、DS18B20时序太难调了
注意:无论写时隙,还是读时隙,都以主机驱动数据线(DQ)为低电平开始。数据线的下降沿触发从机内部的延时电路,使之与主机取得同步!!注意主从机采样时间! 复位脉冲 一开始错误出现在复位脉冲。 while(PIND&0x01); //正确!!等待被拉低。。18B20拉低60-240 us 我写出这样子//while((PIND&0x01)==0); XXXXXXXXXXX这样写是错误的XXXXXXXXXXXXXX //读出来的是255(0xff) ///////////////// // 8Mhz晶振 ////////////////// #include iom16v.h #include 1602.c
[单片机]
<font color='red'>DS18B20</font> 1602液晶显示、<font color='red'>DS18B20</font>时序太难调了
多用智能温度测量仪的设计
  随着现代科技的发展,温度测量在各个领域应用越来越广泛,同时温度测量技术也被人们所异常关注。多功能温度测量仪就是一个典型的例子,运用单片机技术,向数字化,智能化方向发展。在此介绍一种多功能温度测量仪,既可以测量环境温度、又能测量人体温度,达到快响应、数字显示温度值,并且具有高温报警的目的。   设计实现了一种多用智能温度测量仪。采用传感器为DALLAS 公司的单总线数字式温度传感器DS18B20 及单片机为8051,通过单片机对传感器采集到的数字信号进行计算处理,实现温度的测量、温度数值的数字显示及高温报警等功能。提供了完整的硬件电路图和软件流程图,并详细介绍了软件设计要点及创新点。经实物测试实验,该测量仪既能测量环境温度,又
[单片机]
多用智能温度测量仪的设计
AT89C52控制温度传感器DS18B20并在LM016L_LCD上显示
//-------------------------------------------------------- //文 件 名:Temperture_Control // //文件简介:AT89C52作为主控,实时获取、处理、发送数据,全局控制; // DS18B20_Sensor温度(-50 ~ 255℃)数据实时输入; // LM016L_LCD温度数据实时显示 // //修改时间:2017.10.24 // //修改人员:Touch //-------------------------------------------------------- #include reg52.h //宏定义、全
[单片机]
基于ARM的育肥棚温度监控系统设计
青海省是青藏高原的重要组成部分,素有“中华水塔”和“动物王国”之称,是我国五大牧区之一,但由于近几年的鼠类肆虐、气温变暖、水土流失、草地沙化、江河源头水资源锐减和人口增加等原因使部分地区的牧民被追离乡谋生,出现“生态难民”现象。为了畜牧业的可持续发展,政府部门引导牧民建起了育肥棚圈养。但调研中发现,多数牧民居住在高寒地区,这里早晚温差很大,育肥棚中牛羊很易得病,过高过低的温度也影响着牛羊的食量,从而影响着牛羊的育肥速度;针对此问题设计了一个温度监控系统,此系统能够把温度监控在最适宜育肥的+10~+21℃之间,如温度低于+7℃或高于+27℃系统会自动地控制GSM模块向指定用户发送短信,实现报警功能。 1 系统硬件电路总体结构
[单片机]
基于ARM的育肥棚温度监控系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved