DS18B20数字温度计设计实验报告

合集下载

温度传感器ds18b20实验报告

温度传感器ds18b20实验报告

温度传感器ds18b20实验报告温度传感器DS18B20实验报告引言温度传感器在现代生活中扮演着重要的角色,它们被广泛应用于各种领域,包括工业、医疗、农业等。

DS18B20是一种数字温度传感器,具有精准的测量能力和数字输出,因此备受青睐。

本实验旨在通过对DS18B20温度传感器的测试和分析,探讨其性能和应用。

实验目的1. 了解DS18B20温度传感器的工作原理和特性。

2. 测试DS18B20温度传感器的测量精度和响应速度。

3. 探讨DS18B20温度传感器在实际应用中的优缺点。

实验器材1. DS18B20温度传感器2. Arduino开发板3. 4.7kΩ电阻4. 连接线5. 电脑实验步骤1. 将DS18B20温度传感器连接到Arduino开发板上,并接入4.7kΩ电阻。

2. 编写Arduino程序,通过串口监视器输出DS18B20传感器的温度数据。

3. 将DS18B20传感器置于不同的温度环境中,记录其输出的温度数据。

4. 分析DS18B20传感器的测量精度和响应速度。

5. 探讨DS18B20传感器在实际应用中的优缺点。

实验结果经过实验测试,DS18B20温度传感器表现出了较高的测量精度和响应速度。

在不同温度环境下,其输出的温度数据与实际温度基本吻合,误差较小。

此外,DS18B20传感器具有数字输出,易于与各种微控制器和单片机进行连接,应用范围广泛。

然而,DS18B20传感器在极端温度环境下可能出现测量误差,且价格较高,需要根据实际需求进行选择。

结论DS18B20温度传感器具有较高的测量精度和响应速度,适用于各种温度测量场景。

然而,在选择和应用时需要考虑其价格和适用范围,以确保满足实际需求。

希望本实验能够为DS18B20温度传感器的应用提供参考和借鉴,推动其在各个领域的发展和应用。

基于DS18B20的温度显示仪实习报告

基于DS18B20的温度显示仪实习报告

基于DS18B20的温度显示仪实习报告实习题目实习时间年月日至年月日共周实习单位或实习地点实习单位评语:(分散实习填)签字:公章:年月日指导教师评语:成绩指导教师签字:年月日注:后附实习总结。

其内容应包括:实习目的、实习内容、实习结果及实习心得等项目目录第一章绪论 (4)第二章系统整体设计 (5)第三章系统的硬件选择及设计 (6)第四章系统的软件设计 (13)第五章系统调试 (18)结论 (19)致谢 (20)参考文献 (21)附录A (22)附录B (23)附录C (24)第一章绪论1.1选题的背景、目的及意义温度控制在工业自动化控制中占有非常重要的地位。

单片机系统的开发给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。

将单片机控制方法运用到温度控制系统中,可以克服温度控制系统存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和精度。

现代自动控制越来越朝着智能化发展,在很多自动控制系统中都用到了主控机,小型机,甚至是巨型机处理机等,当然这些处理机有一个很大的特点,那就是很高的运行速度,很大的内存,大量的数据存储器。

但是随之而来的是巨额的成本。

在很多小型系统中,处理机的成本占系统成本的比例高达20%,而对于这些小型系统来说,配置一个如此高速的处理机没有任何必要,因为这些小系统追求经济效益,而不是在乎系统的快速性,所以用成本低廉的单片机控制小型的,而不是很复杂,不需要大量复杂运算的系统中是非常合适的。

随着电子技术以及应用需求的发展,单片机技术得到了迅速发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。

1.2国内外研究状况和相关领域中已有的研究成果已经研究出了SNB1000T总线式温度显示仪。

SNB1000系列智能显示仪,配合各种传感器构成各种状态显示仪表,本身自带工业通用的MODBUS-RTU通讯协议,是在线监测仓库、机房等环境状态的实用型仪器,也可广泛应用于需要实时温度、湿度、压力、水位等数据采集监测的各种应用场合。

DS18B20的报告(附带程序)..

DS18B20的报告(附带程序)..

DS18B20温度传感器数字温度传感器DS18B20是由Dallas半导体公司生产的,它具有耐磨耐碰,体积小,使用方便,封装形式多样(如图1.1.1),适用于各种狭小空间设备数字测温和控制领域。

图1.1.1引脚说明:GND为接地引脚;DQ为数据输入输出脚。

用于单线操作,漏极开路;VCC接电源正;单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。

如图1.1.2是温度传感器DS18B20的接线图图1.1.2温度传感器DS18B20的参数:●适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电●温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温●在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快●被测温度用符号扩展的16位数字量方式串行输出●有两种供电方式既可以直接加 3.0~5.5V的电源,也可以采用寄生电源方式由数据线供电DS18B20内部结构及功能:DS18B20的内部结构如图1.1.3所示。

主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。

开始8位是产品类型的编号,接着共有48 位是DS18B20 唯一的序列号。

最后8位是前面56 位的CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。

高速暂存存储器:高速暂存存储器由9个字节组成,其分配如图所示。

高速暂存存储器字节0~1 温度寄存器当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。

大三上课设实验(DS18B20)报告

大三上课设实验(DS18B20)报告

简易温度测量仪班级:0120902队员:指导老师:摘要温度测量仪主要有以DS18B20为核心的温度采集电路,以蜂鸣器为核心的报警电路以及学习板电路三部分电路构成。

软件实现方面包括三个模块:温度采集模块、报警模块、按键与显示模块。

本温度测试仪采用数码管显示温度测试范围0~+125℃,可实现两点温度测量、摄氏温度华氏温度相互转换、设置温度显示精度、设置报警温度上下限、蜂鸣器报警等五个功能。

关键词:温度测量仪 DS18B20 蜂鸣器分辨率多点测量目录目录……………………………………………………1第一章设计目的 (3)第二章方案的选取 (3)第三章DS18B20测温电路系统设计要求 (4)第四章DS18B20测温电路系统设计 (5)1.DS18B20测温电路的组成框图 (5)2. DS18B20的简介 (5)2.1 DS18B20的内部结构 (6)2.2 DS18B20的工作过程及时序 (7)3. 系统硬件电路 (10)3.1 DS18B20温度传感器与单片机的接口电路 (10)3.2 蜂鸣器电路 (11)4. 系统软件设计 (11)4.1系统主程序流程图 (11)4.2重点模块程序分析 (12)第五章系统测试和结论 (14)6.1测试条件及方案 (14)6.2测试结果和分析 (15)第六章设计体会 (15)一、设计目的1.进一步熟悉和掌握DS18B20芯片的结构及工作原理。

2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。

4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发单片机应用系统的全过程,为今后从事相应打下基础。

6.了解 DS1820数字温度传感器特性7. 掌握单片机基本功能的运用、简单接口电路如键盘、数码管显示电路设计及其相应驱动软件的编制软、硬件系统的调试二、方案的选取方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

单片机DS18B20数字温度计课程设计报告

单片机DS18B20数字温度计课程设计报告

通信工程学院课程设计任务书题目DS18B20数字温度计设计课程名称单片机原理及应用B专业班级学生姓名学号设计地点指导教师设计起止时间:年月日至年月日目录一、绪论 (2)1.1 设计目的 (2)1.2设计内容 (2)1.3设计要求 (2)二、基本设计 (3)2.1 基本思路 (3)2.2系统设计原理…………………………………………………………………………….,32.3系统组成 (3)三、系统硬件设计 (6)3.1系统电路接线图 (6)3.2 主系统 (6)3.3 显示电路LM016L (9)3.4 蜂鸣器报警 (10)3.5 DS18B20传感器 (10)四、系统软件设计 (14)4.1具体步骤和设计内容 (14)4.1程序流程图................................................................................................. ..1234.2源程序清单.................................................................................................... 16.五、结果验证5.1测试结果 (23)5.2仿真结果 (23)六、学习小结错误!未定义书签。

、参考文献……………………………………………………………绪论1.1 设计目的1.掌握单总线协议的基本特点及通信过程;2. 掌握数字温度传感器DS18B20的基本特点及单总线控制协议;3. 掌握单片机IO端口模拟单总线时序控制程序的编写方法;4.掌握LCD液晶显示器的显示驱动方法。

1.2设计内容(1)基本内容:在nKDE51单片机实验教学系统上,利用DS18B20数字温度传感器连续测试环境温度,对测试数据进行处理计算,在RT-1602字符点阵LCD上实时显示环境温度值;(2)附加内容:实现环境温度越限告警功能。

基于DS18B20数字温度计设计报告正文

基于DS18B20数字温度计设计报告正文

基于DS18B20数字温度计设计报告正文西华大学电气信息学院智能化电子系统设计报告目录1 前言 ................................................ .. (1)设计背景 ................................................ ......... 1 设计目标 ................................................ ......... 1 实施计划 ................................................ ......... 1 2 总体方案设计 ................................................ (2)方案比较 ................................................ (2)方案一基于热敏电阻的温度计设计 .............................. 2 方案二基于SHT71的数字温度计设计 ............................ 2 方案三基于DS18B20的数字温度计设计.......................... 3 方案论证 ................................................ ......... 3 方案选择 ................................................ ......... 4 3 硬件设计 ................................................ . (5)单元模块设计 ................................................ .. (5)时钟和复位电路 (5)报警电路 ................................................ .... 5 数码显示电路 ................................................6 电源电路 ................................................ ....7 按键电路 ................................................ .... 7 串口通信电8 核心器件介绍 ................................................ .. (8)单片机STC89C52介绍 (8)DS18B20介绍 (9)4 软件设计 ................................................ (11)温度采集模块 ................................................ .... 11 温度设定模块 ................................................ .... 14 报警模块 ................................................ ........ 15 5 系统整合调试 ................................................ .. (16)硬件调........ 16 软件调试 ................................................ .. (16)I西华大学电气信息学院智能化电子系统设计报告 6 系统功能、指标参数 ................................................ .. 18系统功能 ................................................ ........ 18 系统指标参数测试 ................................................18 系统功能及指标参数分析.......................................... 19 7 结论 ................................................ ................ 20 8 总结与体会 ................................................ .......... 21 9西华大学电气信息学院智能化电子系统设计报告积极小的芯片当中,实现了温度传感器的数字式输出、且免调试、免标定、免外围电路。

DS18B20数字温度计设计实验报告

DS18B20数字温度计设计实验报告

单片机原理及应用课程设计报告书题目:DS18B20数字温度计姓名:李成学号:0指导教师:周灵彬设计时刻: 2015年1月目录DS18B20数字温度计设计1.引言1.1. 设计意义在日常生活及工农业生产中,常常要用到温度的检测及操纵,传统的测温元件有热电偶和热电阻。

而热电偶和热电阻测出的一样都是电压,再转换成对应的温度,需要比较多的外部硬件支持。

其缺点如下:●硬件电路复杂;●软件调试复杂;●制作本钱高。

本数字温度计设计采纳美国DALLAS半导体公司继DS1820以后推出的一种改良型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达℃。

DS18B20能够直接读出被测温度值,而且采纳三线制与单片机相连,减少了外部的硬件电路,具有低本钱和易利用的热点。

1.2. 系统功能要求设计出的DS18B20数字温度计测温范围在0~125℃,误差在±1℃之内,采纳LED数码管直接读显示。

2.方案设计依照系统设计功能的要求,确信系统由3个模块组成:主操纵器、测温电路和显示电路。

数字温度计整体电路结构框图如下图:图3. 硬件设计温度计电路设计原理图如下图所示,操纵器利用单片机AT89C2051,温度传感器利用DS18B20,利用四位共阳LED数码管以动态扫描法实现温度显示。

主操纵器单片机AT89C51具有低电压供电和小体积等特点,两个端口恰好知足电路系统的设计需要,很适合便携手持式产品的设计利用。

系统可用两节电池供电。

AT89C51的引脚图如右图所示:VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被概念为高阻输入。

P0能够用于外部程序器,它能够被概念为数据/地址的第八位。

在FIASH编程时,P0 口作为输入口,当FIASH进行校验时,P0输出,此刻P0外部必需被拉高。

P1口:P1口是一个内部提供的8位双向I/O口,P1口能接收输出4TTL门电流。

数字温度计DS18B20课程设计报告

数字温度计DS18B20课程设计报告

数字温度计DS18B20课程设计报告专业名称:自动化专业班级:全文结束》》级自动化1班学号:全文结束》》4786 摘要本设计采用的主控芯片是ATMEL公司的AT89C51单片机,数字温度传感器是DALLAS公司的DS18B20。

本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。

所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。

单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。

51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。

本次设计采用的AT89C51是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。

本次设计的数字温度计采用的是DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。

本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。

本设计属于一种多功能温度计,温度测量范围是-55℃到125℃。

温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报警程序报警。

本设计的显示模块是用液晶显示屏1602实现温度显示。

在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。

一、实验设计概述本系统所设计的数字温度计采用的是DS18B20数字温度传感器测温,测温上下限为10°C~40°C。

DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温范围广,测温准确,上下限报警功能。

其输出温度采用LCD1602显示,主要用于对测温比较准确的场所。

该设计控制器使用的是51单片机AT89C51,AT89C51单片机在工控、测量、仪器仪表中应用还是比较广泛的。

温度传感器ds18b20实验报告

温度传感器ds18b20实验报告

温度传感器ds18b20实验报告温度传感器DS18B20实验报告引言:温度传感器是一种用于测量环境温度的设备,它在许多领域都有广泛的应用,如气象学、工业控制、冷链物流等。

本实验报告将介绍DS18B20温度传感器的原理、实验装置和实验结果,并对其性能进行评估。

一、实验原理DS18B20温度传感器是一种数字温度传感器,采用单总线接口进行通信。

它采用了最新的数字温度传感器技术,具有高精度、低功耗、抗干扰等特点。

其工作原理是利用温度对半导体材料电阻值的影响,通过测量电阻值的变化来确定温度。

二、实验装置本实验使用的实验装置包括DS18B20温度传感器、Arduino开发板、杜邦线和计算机。

Arduino开发板用于读取传感器的温度数据,并通过串口将数据传输到计算机上进行处理和显示。

三、实验步骤1. 连接电路:将DS18B20温度传感器的VCC引脚连接到Arduino开发板的5V 引脚,GND引脚连接到GND引脚,DQ引脚连接到Arduino开发板的数字引脚2。

2. 编写代码:使用Arduino开发环境编写代码,通过OneWire库和DallasTemperature库读取DS18B20传感器的温度数据。

3. 上传代码:将编写好的代码上传到Arduino开发板上。

4. 监测温度:打开串口监视器,可以看到DS18B20传感器实时的温度数据。

四、实验结果在实验过程中,我们将DS18B20温度传感器放置在不同的环境中,记录了其测得的温度数据。

实验结果显示,DS18B20温度传感器具有较高的精度和稳定性,能够准确地测量环境温度。

五、实验评估本实验评估了DS18B20温度传感器的性能,包括精度、响应时间和抗干扰能力。

实验结果表明,DS18B20温度传感器具有较高的精度,能够在0.5℃的误差范围内测量温度。

响应时间较快,能够在毫秒级别内完成温度测量。

同时,DS18B20温度传感器具有较好的抗干扰能力,能够在干扰环境下保持稳定的测量结果。

DS18B20温度测控-电子系统设计实践报告范文-图文

DS18B20温度测控-电子系统设计实践报告范文-图文

DS18B20温度测控-电子系统设计实践报告范文-图文电子系统设计实践报告所用仪器、仪表目录实践设计任务实践内容:1、基本功能:1)系统可以读取DS18B20的温度值;2)当测得的温度值超过预设的温度值时,会进行报警显示,蜂鸣器发出声音,1个红色LED 灯以1秒的间隔闪烁。

2、扩展功能:1)可以同时读取2个DS18B20的温度值;2)采用液晶显示屏显示温度值;3)可以分别手动设定2个DS18B20的报警温度值,当实际测得的温度超过报警温度时,会对超限的传感器进行报警显示;1、报警时采用播放音乐的方式。

目的通过基于AT89S51芯片和DS18B20温度传感器控制温度,熟悉芯片的使用,温度传感器的功能,实验电路板的焊接,LCD显示的使用,C51语言的设计。

方案设计与论证单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。

DS18b20温度传感器温度的精确度高达0.1度,可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机可以直接从中读出数据转换成十进制就是温度,使用方便。

单片机从温度传感器读取温度后,把数据进行处理,转换成LCD显示的数据和控制信息,然后传送到LCD上面显示。

整体模块设整体模块设计各模块的设计:电路图设计文件软件设计软件设计流程图程序附在最后测试方法与数据分析(1)时间:10年8月31日20:20地点:18号楼320宿舍测试对象:室内温度设定警报温度:33℃室内温度一直都保持在31℃,这时显示器准确的显示了当前的室内温度,然后自己用手捂热传感器,温度便会慢慢上升,当温度超过33摄氏度时,蜂鸣器会发出报警声,LED灯也会开始一闪一闪。

(2)时间10年9月1日9:20地点:物信楼实验室测试对象:室内温度设定警报温度:28℃实验室的温度为30摄氏度左右,把传感器放在空调的冷风下吹,温度会迅速的降低,然后把传感器远离空调,温度会缓慢上升,当显示温度超过28摄氏度时,LED灯开始闪动,蜂鸣器也开始叫。

基于ds18b20的数字温度计设计报告

基于ds18b20的数字温度计设计报告

基于ds18b20的数字温度计设计报告
一、引言
随着科技的进步,温度的测量和控制变得越来越重要。

DS18B20是一款数字温度传感器,具有测量准确度高、体积小、接口简单等优点,广泛应用于各种温度测量场合。

本报告将介绍基于DS18B20的数字温度计设计。

二、DS18B20简介
DS18B20是一款由美国Dallas公司生产的数字温度传感器,可以通过数据线与微处理器进行通信,实现温度的测量。

DS18B20的测量范围为-55℃~+125℃,精度为±0.5℃。

三、数字温度计设计
1.硬件设计
数字温度计的硬件部分主要包括DS18B20温度传感器、微处理器、显示模块等。

其中,DS18B20负责采集温度数据,微处理器负责处理数据并控制显示模块显示温度。

2.软件设计
软件部分主要实现DS18B20与微处理器的通信和控制显示模块显示。

首先,微处理器通过数据线向DS18B20发送命令,获取温度数据。

然后,微处理器将数据处理后发送给显示模块,实现温度的实时显示。

四、测试结果
经过测试,该数字温度计的测量精度为±0.5℃,符合设计要求。

同时,该温度
计具有测量速度快、体积小、使用方便等优点,可以广泛应用于各种温度测量场合。

五、结论
基于DS18B20的数字温度计具有高精度、低成本、使用方便等优点,可以实现高精度的温度测量和控制。

随着科技的发展,数字温度计的应用将越来越广泛,具有广阔的市场前景。

DS18B20数字温度计设计实验报告

DS18B20数字温度计设计实验报告
读岀温度值
温度计酸处理
显示数据刷新
发温度转换开始命令
读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节。在 读出时须进行CRC校验,校验有错时不进行温度数据的改写。得出温度子程序 流程图如下图所示。
发读取温度指令
4.
系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温 度子程序和显示数据刷新子程序等。
4.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温
度值。温度测量每1s进行一次。主程序流程图如图4.1所示。
4.2读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节。在读出时必须进行CRC校验,校验有错时不能进行温度数据的改写。读出温度子程序流程图如下图所示:
3、P1口:P1口是一个8位双向
I/O口。口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟 比较器的同相输入(ANI0)和反相输入(AIN1)。P1口输出缓冲器可吸收
20mA电流并能直接驱动LED显示。当P1口引脚写入T”时,其可用作输入端, 当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用 作输入端。当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电 阻而流出电流
5、温范围—55C〜+125C,在-10〜+85C时精度为土05C。
6可编程 的分辨率为9〜12位,对应的可分辨温度分别为0.5C、0.25C、
0.125C和0.0625C,可实现高精度测温。
7、在9位分辨率时最多在93.75ms内把温度转 换为数字,12位分辨率时最多在750ms内把温度值转 换为数字,速度更快。

ds18b20实验报告

ds18b20实验报告

机电系统控制电路设计实验实验项目:现场温度测量与显示实验日期:2013年12月21日指导教师:张志安学号:1001500356姓名:周健专业:机电工程实验要求1.实验目的:(1)熟悉atmega128单片机输入输出,数码管的显示等。

(2)掌握DS18B20温度传感器的使用,包括ROM编码读取、温度测量、暂存器读取与写入、复制暂存器内容到EEPEOM的操作。

2.实验器材:(1)带有DS18B20的A Tmega128单片机开发板(2)JTAG仿真器3.实验内容:编写程序控制DS18B20温度传感器,实现64位ROM编码的读取、现场温度测量与显示(利用数码管显示)、暂存器读取与写入、复制暂存器内容到EEPEOM。

4.实验原理图:5.实验步骤:(1)查看开发板原理图,了解连接接口。

(2)GCC下编写源程序,检查无误后编译,生成仿真文件。

(3)打开A VRStdio,导入生成的*.cof仿真文件,软件仿真,调试程序。

(4)程序调试无误后,通过JTEG在线仿真,在开发板上检验程序运行结果,并记录。

(5)按照(1)—(4)步骤,依次实现64位ROM编码的读取、现场温度测量与显示(利用数码管显示)、暂存器读取与写入、复制暂存器内容到EEPEOM。

6.实验现象分析:(1)64位ROM编码的读取:28 13 E4 57 04 00 00 19关键程序:(2)现场温度测量与显示(利用数码管显示):20.5(3)暂存器读取与写入写入TH=0x40 TL=0x04(4)复制暂存器内容到EEPEOM。

DS18B20数字温度计设计实验报告

DS18B20数字温度计设计实验报告

单片机原理及应用课程设计报告书题目:DS18B20数字温度计姓名学号:*********** 赵晓磊20130123096 段石磊20133522028 付成指导老师:**设计时间: 2015年12月电子与信息工程学院目录1.引言 (3)1.1.设计意义 (3)1.2.系统功能要求 (3)2.方案设计 (4)3.硬件设计 (2)4.软件设计 (5)5.系统调试 (7)6.设计总结 (8)7.附录 (9)8.作品展示 (15)9.参考文献 (17)DS18B20数字温度计设计1.引言1.1. 设计意义在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。

其缺点如下:●硬件电路复杂;●软件调试复杂;●制作成本高。

本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达0.0625℃。

DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。

1.2. 系统功能要求设计出的DS18B20数字温度计测温范围在-55~125℃,误差在±0.5℃以内,采用LED数码管直接读显示。

2. 方案设计按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。

数字温度计总体电路结构框图如4.1图所示:图4.13. 硬件设计温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,使用四位共阳LED 数码管以动态扫描法实现温度显示。

主控制器 单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需AT89C2051 主 控制器 DS18B20 显示电路 扫描驱动要,很适合便携手持式产品的设计使用。

实验八 DS18B20数字温度显示实验

实验八    DS18B20数字温度显示实验

D S18B20数字温度显示实验1.实验目的掌握一线式数字温度传感器的使用,了解单总线的工作方式。

掌握数字温度传感器DS18B20的工作原理及温度测量方法。

2.实验原理及内容DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃。

主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。

必须先启动DS18B20开始转换,再读出温度转换值。

本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB 单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。

图118B20封装引脚 图2相关原理接线方法:1.利用S T C89C51实验板上的I R F1插孔和排针,将D S18B20插入I R F1插孔,用一根单条数据线把D S18B20的2脚接到C P U部份的P3.0;2.用一条4P I N的排线,把7474的A B C D接到P0口的P0.0,P0.1,P0.2,0.3四个端口。

(即插入P0口的上半部份)。

3.用一条8P I N的排线。

把数码管译码部份的输出端接到数码管部份的数据口;4.用一条4P I N的排线,把74138的输入端接到P0口的P0.4,P0.5,P0.6,07四个端口。

(即插入P0口的下半部份)。

5.用一条8P I N的排线。

把38译码部份的输出端接到数码管部份的显示位口。

在本系统中,为了简化程序, 采用了74L S47(数码管译码)74L S138(三八译码)。

即P0口的P0.0,P0.1,P0.2,P0.3四个端口接到74L S47进行硬件数码管译码,然后输出到数码管部分的数据口。

P0.4,P0.5,P.0.6三个端口接到74L S138进行38译码,然后输出到数码管的位控制。

基于DS18B20温控实验报告

基于DS18B20温控实验报告

基于DS18B20温控实验报告一、实验目的:温湿度与生产及生活密切相关。

像仓库、农田、生产过程,温度变化会影响品质;精密仪器、半导体器件,过温而导致性能降低,另外,人们的生活质量提高,对室内环境的高要求也需要对温度的适时监控,可见,温度传感器的应用范围是很广的。

而在日常生活中,温度,尤其是水温的测控尤为重要,婴儿奶瓶,热水壶等等一系列产品对温度测控的需求相当的迫切。

虽然市面上已经有许多成品测温仪器,但我们希望,通过自己的努力,能够作出一款功能齐全,制作简单的温度测控仪器。

希望能在在精进学识的同时培养我们的动手能力。

二、设计要求:1.基本要求1)测量温度范围0℃~100℃2)精度△℃0.125℃3)显示测量温度4)自动控制温度2.发挥部分1)能够设定温度上下限,若温度超过预定范围,应能报警2)能自动将温度控制在限定的范围内三、资料准备:2.1 DS18B20简介DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

DS18B20、DS1822 “一线总线”数字化温度传感器同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

DS1822的精度较差为±2°C 。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。

而且新一代产品更便宜,体积更小。

DS18B20数字温度计设计实验报告(1)

DS18B20数字温度计设计实验报告(1)

DS18B20数字温度计设计实验报告(1)目:DS18B20数字温度计姓名:李成学号:133010220指导老师:周灵彬设计时间:全文结束》》年1月目录1、引言31、1、设计意义31、2、系统功能要求32、方案设计33、硬件设计44、软件设计85、系统调试106、设计总结117、附录128、参考文献15DS18B20数字温度计设计1、引言1、1、设计意义在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。

其缺点如下:● 硬件电路复杂;● 软件调试复杂;● 制作成本高。

本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达0、0625℃。

DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。

1、2、系统功能要求设计出的DS18B20数字温度计测温范围在0~125℃,误差在±1℃以内,采用LED数码管直接读显示。

2、方案设计按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。

数字温度计总体电路结构框图如4、1图所示:AT89C51主控制器DS18B20显示电路扫描驱动图4、13、硬件设计温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,使用四位共阳LED数码管以动态扫描法实现温度显示。

主控制器单片机AT89C51具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用。

系统可用两节电池供电。

AT89C51的引脚图如右图所示:VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

数字温度传感器DS18B20报告

数字温度传感器DS18B20报告

DS18B20报告一、DS18B20介绍DS18B20为单总线全双工通信的数字是温度传感器,其温度可以直接转换为9、10、11或12位,具体的位数由使用者通过程序写入指令改变,芯片默认的位数为12位。

芯片的形状如图。

芯片在电路的连接如图:二、读写时序1、复位时序(1)、单片机拉低总线480us~950us,然后释放总线(拉高电平)(2)、这时DS18B20会拉低信号,大约60~240us表示应答(3)、DS18B20拉低电平的60~240us之间,单片机读取总线的电平,如果是低电平,表示复位成功,否则不成功(此时一般要重负操作,直到成功为止,编程是要进行判断)(4)、DS18B20拉低电平60~240us之后,会释放总线。

2.写数据操作(1)、单片机拉低电平大约10~15us.(2)、加入要写入的时高电平,要将电平拉高,否则拉低电平。

此时要维持20~45us的时间(3)、释放总线写‘1’操作时序写‘0’操作时序3、读操作时序(1)、单片机拉低电平大约1us(2)、单片机释放总线,然后读取总线电平(3)、这时候DS18B20如果相应位是’1’会拉高电平,反之会拉低电平(4)、读取电平过后延迟大约40~45us读‘1’操作时序读‘0’操作时序三、温度读取函数步骤DS18B20开始转换:1.DS18B20复位2.写入跳过ROM的字节命令,0XCC.3.写入开始转换的功能命令,0X44.4.延迟大约750~900毫秒DS18B20读暂存数据1.DS18B20复位。

2.写入跳过ROM的字节命令,0XCC.3.写入读暂存功能命令,0XBE.4.读入第0个字节LS Byte,转换结果的低八位。

5.读入第1个字节MS Byte,转换结果的高八位。

6.DS18B20复位,表示读取暂存结束。

程序流程图:。

DS18B20温度测量设计实验报告2

DS18B20温度测量设计实验报告2

信息工程学院成绩课程设计说明书(论文)题目: 温度测量课程名称: 单片机课程设计专业: 电子信息工程班级: 电信0901学生姓名:学号: 31 16 10设计地点: 3#北603指导教师:设计起止时间:2012年5月2日至2012年5月22日目录一、设计功能要求: (3)二、系统总体设计方案: (5)1、基本设计思想: (5)2、实施方案论述: (6)三、系统分析与设计: (6)1、程序流程图及说明 (6)2、温度计的的电路设计 (9)四、源码清单: (12)五、改进意见与收获体会: (18)六、主要参考资料: (19)一、设计功能要求:本次的设计主要是利用了数字温度传感器DS18B20测量温度信号,计算后可以在LCD数码管上显示相应的温度值。

其温度测量范围为-55~125℃,精确到0.5℃。

本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。

数字温度计所测量的温度采用数字显示,控制器使用单片机89C51,测温传感器使用DS18B20,用LCD1602实现温度显示。

从温度传感器DS18B20可以很容易直接读取被测温度值,进行转换即满足设计要求。

本次使用的单片机89C51和MCS-51是完全兼容的,是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器。

其主要特点如下:•8位CPU。

•工作频率最高为24M。

•128B数据存储器。

•4KB程序存储器。

•程序存储器的寻址空间为64KB。

•片外数据存储器的寻址空间为64KB。

•128个用户位寻址空间。

•21个字节特殊功能寄存器。

•4个8位的并行I/O接口:P0、P1、P2、P3。

•两个16位定时/计数器。

•两个优先级别的5个中断源。

•1个全双工的串行I/O接口,可多机通信。

•111条指令,喊乘法指令和除法指令。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机原理及应用课程设计报告书题目:DS18B20数字温度计姓名学号:20133522080 赵晓磊20130123096 段石磊20133522028 付成指导老师:万青设计时间: 2015年12月电子与信息工程学院目录1.引言 (3)1.1.设计意义 (3)1.2.系统功能要求 (3)2.方案设计 (4)3.硬件设计 (2)4.软件设计 (5)5.系统调试 (7)6.设计总结 (8)7.附录 (9)8.作品展示 (15)9.参考文献 (17)DS18B20数字温度计设计1.引言1.1. 设计意义在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。

其缺点如下:●硬件电路复杂;●软件调试复杂;●制作成本高。

本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达0.0625℃。

DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。

1.2. 系统功能要求设计出的DS18B20数字温度计测温范围在-55~125℃,误差在±0.5℃以内,采用LED数码管直接读显示。

2. 方案设计按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。

数字温度计总体电路结构框图如4.1图所示:图4.13. 硬件设计温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,使用四位共阳LED 数码管以动态扫描法实现温度显示。

主控制器 单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需AT89C2051 主 控制器 DS18B20 显示电路 扫描驱动要,很适合便携手持式产品的设计使用。

系统可用两节电池供电。

AT89C2051的引脚图如右图所示:1、VCC:电源电压。

2、GND:地。

3、P1口:P1口是一个8位双向I/O口。

口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。

P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。

P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。

当P1口引脚写入“1”时,其可用作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。

当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。

4、P3口:P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/O 口引脚。

P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。

P3口缓冲器可吸收20mA电流。

当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。

用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。

5、RST:复位输入。

RST一旦变成高电平所有的I/O引脚就复位到“1”。

当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。

每一个机器周期需12个振荡器或时钟周期。

6、XTAL1:作为振荡器反相器的输入和内部时钟发生器的输入。

7、XTAL2:作为振荡器反相放大器的输出。

总线驱动器 74LS24474LS244为3态8位缓冲器,一般用作总线驱动器。

引脚图见上图。

显示电路显示电路采用4位共阳极LED数码管,从P1口输出段码,列扫描用P3.0~P3.3口来实现,列驱动用8055三极管。

温度传感器 DS18B20DS18B20的性能特点:1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电。

2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

3、 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。

4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。

5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。

6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。

7、在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。

8、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。

9、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

DS18B20与单片机的接口电路(引脚图见右图)DS18B20可以采用电源供电方式,此时DS18B20的第1 脚接地,第2脚作为信号线,第3脚接电源。

4. 软件设计系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等。

4.1 主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。

温度测量每1s 进行一次。

主程序流程图如图4.1所示。

4.2 读出温度子程序读出温度子程序的主要功能是读出RAM 中的9字节。

在读出时必须进行CRC校验,校验有错时不能进行温度数据的改写。

读出温度子程序流程图如下图所示:读出温度子程序 读出温度子程序的主要功能是读出RAM 中的9字节。

在读出时须进行CRC 校验,校验有错时不进行温度数据的改写。

得出温度子程序流程图如下图所示。

温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令。

当采用12位分辨率时,转换时间约为750ms 。

在本程序设计中,采用1s 显示程序延时法等待转换的完成。

温度转换命令子程序流程图如下图所示。

计算温度子程序 计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定。

计算温度子程序流程图如下左图所示.现实数据刷新子程序 现实数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。

现实数据刷新子程序流程图如下右图所示.5. 系统调试系统的调试以程序调试为主。

硬件调试比较简单,首先检查电感的焊接是否正确,然后可用万用表测试或通电检测。

软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。

本程序采用单片机汇编或C 语言编写用Wave3.2或Keil C51编译器编程调试。

软件调试到能显示温度值,并且在有温度变化时显示温度能改变,救基本完成。

性能测试可用制作的温度机和已有的成品温度计同时进行测量比较。

由于DS18B20的精度很高,所以误差指标可以限制在0.5℃以内。

另外,-55~+125℃的测温范围使得该温度计完全适合一般的应用场合,其低电压供电特性可做成用电池供电的手持温度计。

DS18B20温度计还可以在高低温报警、远距离多点测温控制等方面进行应用开发,但在实际设计中应注意以下问题;1、DS18B20工作时电流高大1.5mA ,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET 供电。

2、连接DS18B20的总线电缆是有长度限制的,因此在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。

3、在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号。

一旦某个DS18B20接触不好或断线,当程序读DS18B20时,将没有返回信号,程序进入死循环。

这一点在进行DS18B20硬件连接和软件设计时要给予一定的重视。

6.设计总结历时2个星期的单片机课程设计已经结束了,在这两个星期的时间里,我们在老师的指导下完成了基于DS18B20的数字温度计的设计和制作。

在进行实验的过程中,我们了解并熟悉DS18B20、AT89C2051以及74LS244的工作原理和性能。

并且通过温度计的制作,我们将电子技能实训课堂上学到的知识进行运用,并在实际操作中发现问题,解决问题,更加增加对知识的认识和理解。

在课程设计的过程中,也遇到了一些问题。

比如最开始根据课本上的电路图进行合理的设计布局和布线。

有些同学的布局不合理,导致焊接的过程中任务相当繁重,并且不美观。

在之后的烧程序调试的时候,出现问题之后,没有合理布线的同学在查找问题的过程中相当棘手。

在焊接过程中,出现最多的就是虚焊问题。

对于这个问题,在焊接的过程中,我尽量依照书中的指导,尽量将焊点焊成水滴状,最后接电后再根据数码管的显示情况进行逐个排查。

在将程序烧到单片机之后,接上电源,发现数码管没有出现正常的“000.0”,而是出现了“666.6”,在检查线路无误之后,和其他的同学讨论之后得出结论:书中程序是对于单片机、电阻及数码管是直接连接而设计的,而在加入了74LS244之后,要将8个输入输出端口进行掉序。

于是,我便将8个端口进行调换,之后再次接通电源,数码管显示“000.0”,调试成功。

在自己的温度计制作完成之后,我还帮助其他没有完成的同学进行检修,并且成功帮助2位同学找到问题进行解决,最后都调试成功。

总之,在这2个星期中,通过自己在实验室动手制作数字温度计,不仅将课本的知识与实践相结合,而且在实践中更加深入了解书中原本抽象的知识。

这也是整个课程设计中最有收获的地方。

7.附录源程序代码/**************************************************************** *****///// DS18B20温度计C程序// 2005.2.28通过调试/**************************************************************** *****///使用AT89C2051单片机,12MHZ晶振,用共阳LED数码管//P1口输出段码,P3口扫描//#pragma src(d:\aa.asm)#include "reg51.h"#include "intrins.h" //_nop_();延时函数用#define Disdata P1 //段码输出口#define discan P3 //扫描口#define uchar unsigned char#define uint unsigned intsbit DQ=P3^7; //温度输入口sbit DIN=P1^0; //LED小数点控制uint h;//////*******温度小数部分用查表法**********//Uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x0 7,0x08,0x08,0x09,0x09}uchar codedis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xb f};/* 共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; // 列扫描控制字uchar data temp_data[2]={0x00,0x00}; // 读出温度暂放uchar data display[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据,一个运算暂存用///////***********11微秒延时函数**********///void delay(uint t){for(;t>0;t--);}///***********显示扫描函数**********/scan(){char k;for(k=0;k<4;k++) //四位LED扫描控制{Disdata=dis_7[display[k]];if(k==1){DIN=0;}discan=scan_con[k];delay(90);discan=0xff;}}/////***********18B20复位函数**********/ ow_reset(void){char presence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();DQ=0; //delay(50); // 550usDQ=1; //delay(6); // 66uspresence=DQ; // presence=0继续下一步 }delay(45); //延时500uspresence = ~DQ;}DQ=1;}/////**********18B20写命令函数*********/ //向 1-WIRE 总线上写一个字节void write_byte(uchar val){uchar i;for (i=8; i>0; i--) //{DQ=1;_nop_();_nop_();DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();//5us DQ = val&0x01; //最低位移出delay(6); //66usval=val/2; //右移一位}DQ = 1;delay(1);}///*********18B20读1个字节函数********///从总线上读取一个字节uchar read_byte(void){uchar i;uchar value = 0;for (i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ = 0; //_nop_();_nop_();_nop_();_nop_(); //4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); //4usif(DQ)value|=0x80;delay(6); //66us}DQ=1;return(value);}///***********读出温度函数**********///read_temp(){ow_reset(); //总线复位write_byte(0xCC); // 发Skip ROM命令write_byte(0xBE); // 发读命令temp_data[0]=read_byte(); //温度低8位temp_data[1]=read_byte(); //温度高8位ow_reset();write_byte(0xCC); // Skip ROMwrite_byte(0x44); // 发转换命令}///***********温度数据处理函数**********/work_temp(){uchar n=0; //if(temp_data[1]>127){temp_data[1]=(256-temp_data[1]);temp_data[0]=(256-temp_data[0]);n=1; }//负温度求补码display[4]=temp_data[0]&0x0f;display[0]=ditab[display[4]];display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);// display[3]=display[4]/100;display[1]=display[4]%100;display[2]=display[1]/10;display[1]=display[1]%10;if(!display[3]){display[3]=0x0A;if(!display[2]){display[2]=0x0A;} }//最高位为0时都不显示if(n){display[3]=0x0B;}//负温度时最高位显示"-"}/////**************主函数****************/main(){Disdata=0xff; //初始化端口discan=0xff;for(h=0;h<4;h++){display[h]=8;}//开机显示8888ow_reset(); // 开机先转换一次write_byte(0xCC); // Skip ROMwrite_byte(0x44); // 发转换命令for(h=0;h<500;h++){scan();} //开机显示"8888"2秒while(1){read_temp(); //读出18B20温度数据work_temp(); //处理温度数据for(h=0;h<500;h++){scan();} //显示温度值2秒}}////*********************结束**************************//作品展示。

相关文档
最新文档