多点温度监测系统
多点温度测量系统的设计

返回
3、显示ROM地址程序
开始 第一行显示提示信息及模块 计算存18B20的ROM地址偏移量 依次取ROM地址显示在第二行 返回
4、读选中DS18B20温度程序
开始
计算存ROM地址存储单元偏移量 DS18B20复位初始化 发跳过ROM命令 启动温度转换 延时等待温度转换 DS18B20复位初始化 发匹配ROM命令 取匹配ROM地址发送 发读温度转换值命令 读转换温度值
总体设计结构
时钟 电路 显示模块
复位 电路
51单 片机
按键
测温模 块1
测温模 块2
测温模 块N
多点温度测量系统的硬件电路
多点温度测量系统的软件程序
1、主程序
开始 LCD初始化
判读ROM,还是读 温度 调用读选中DS18B20温度程序 调用显示温度程序 调用读ROM程序 调用显示ROM程序
2、读ROM地址程序
总体设计
整个系统包含以下几个部分:51单片机、时钟电路、复位电路 组成的51单片机小系统;多块测温模块;显示温度值的显示模 块和按键模块。测温模块由温度传感器组成,温度传感器采用 美国Dallas半导体公司推出的智能温度传感器DS18B20,温度测 量范围为-55 -- +125,可编程为9到12位的A/D转换精度,测温 分辨率可达0.0625C,完全能够满足系统要求。DS18B20采用单 总线结构,只需要一根数据线DQ即可与单片机通信,多个 DS18B20可同时连接在一根数据线上与单片机通信。显示器可采 用LCD液晶显示器,显示信息量大、效果好、使用方便。系统处 理时,由51单片机控制从各个测温模块测量出温度数字量,存 入缓冲区;然后通过按键控制,从缓冲区取出,根据数字量和 温度的关系计算出温度值,依次送LCD显示器显示。
基于LM75A的多点温度监测系统设计

监测 系统。所设计的 多 路 温度监测 系统工作稳定, 测量精度高, 具有宽广的应用领域和应用价值。 关键词 : I c总线; L M 7 5 A; 温度 ; 单片机
中图分 类号 : T P 2 7 4 文献 标志 码 : B 文 章编 号 : 1 0 0 0— 0 6 8 2 ( 2 0 1 3 ) 0 2— 0 0 8 0— 0 2
:
杨新鹏 (
) , 毕业 于哈尔滨工程大学 自动化专业 ,
“ ~ “ 一 J
’ 工…
Ab s t r a c t : T he pa p e r d e s i g ns a mu l t i— — c h a n n e l s t e mpe r a t u r e mo n i t o r i n g s y s t e m ba s e d o n d i g i t a l i n t e l ・ ・ l e c t i v e t e mp e r a t u r e s e ns o r LM7 5 A.T he mo ni t o r i n g s y s t e m h a v e t h e c h a r a c t e r i s t i c s o f h i g h wo r ki n g s t a bi l i - t y a nd me a s u r e p r e c i s i o n. I t p o s s e s s wi d e a p p l i c a t i o n i f e l d s a n d wo r t h i n e s s . Ke y wor ds: 1 2 C b us ;LM75 A ;t e mp e r a t u r e;s i n g l e c h i p
基于LabVIEW的多点温度监测系统的设计

广 傻 号 调 理 卜 _ — — — { 敷 卡 h 圆
L _ — —— —1 v× E 仪繁 x 【 馁嚣卜——一
个点 的温 度 。
图 1 虚 拟仪 器 系统 的 基 本 架 构
1 . 2 系统软硬件组成。虚拟仪器硬件 主要是 由传感器 、 信号调理 部件 、 计算机等组成。 其 中信 号 调 理 部 件 包括 V X I 仪器模块 、 G P I B 仪器模块 、 P X I 仪器模块 、 数据采集卡或 V X I 总线 系统等。 L A B V I E W 软件是 常用 的虚拟仪器系统编程软件 ,同传 统的 编程 语言相 比 , 其提供 了强大 的设 备驱动程序 , 可 以节省大 量的 程序开发时间。工程技术人员 可以方便 的利用 L A B V I E W 程序驱 动各种 I / O接 口, 将信号采集后供计算机处理。其能支持 G P I B总
图 4 大 型轧 机 主 传 动 结 构 图 1 一 轴 承座 ; 2 - 主 电机 ; 3 - 联轴器一 ; 4 一 减速机 ; 5 - 联 轴 器二 ;
6 一 齿轮箱座 ; 7 - 联 轴 器组 ; 8 - 轧机组 ; 9 一 集 中 润滑 液 压 站
度传 感器采集 的温度信号 ,进行调理后转换 成可 处理 的数 字信 4 结论 号, 通过测试 程序加 以显示并能进行报警 、 数据储存等处理。 多点温度监测 系统能够 实现 实时多点温度状态监测 、 数据处 硬件 系统的组成结构 如图 2所示。本系统采用接触法进行温 理 、 状态报警等 功能 , 为操作人员 与管理人员及 时提供运行信 息 度测量 , 采用电阻式温度传感器构建多点温度测试系统。 和预警信 息 , 为设备 的正 常运 行提供可靠 的监 测平 台 , 提 高设 备 运转的可靠度 和设备利用率 。
基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统1. 引言1.1 背景介绍单片机是一种可以完成特定功能的微型计算机芯片,广泛应用于各种智能设备中。
随着物联网技术的不断发展,人们对于无线监控系统的需求也越来越大。
在很多场合中,需要对环境温度进行监控,以确保设备的正常运行和人员的安全。
传统的有线温度监控系统存在布线复杂、安装维护困难等问题,因此基于单片机的无线温度监控系统应运而生。
基于单片机的多点无线温度监控系统可以实现对多个监测点的温度数据实时监控和远程传输,极大地方便了用户对于温度的监测和管理。
通过该系统,用户可以随时随地通过手机或电脑等终端设备查看各监测点的温度情况,及时发现异常情况并进行处理。
这对于工业生产、医疗保健、农业种植等领域都具有重要的意义。
本研究旨在设计并实现一种基于单片机的多点无线温度监控系统,为用户提供便捷、高效的温度监测解决方案。
通过对系统架构设计、硬件设计、软件设计、无线通信协议等方面的研究,探讨系统在温度监控领域的应用前景和发展趋势。
【字数:239】1.2 研究意义温度监控在各种领域中都具有重要意义,例如工业生产、医疗保健、环境监测等。
随着科技的不断发展,人们对温度监控系统的要求也越来越高,希望能够实现实时、精准的温度监测。
基于单片机的多点无线温度监控系统的研究具有重要的实用价值和研究意义。
这种系统可以实现多点温度监测,可以同时监测多个位置的温度数据,实现对整个区域的全面监控。
这对于一些需要对多个点位进行监测的场景非常重要,能够提高监测的效率和准确性。
无线通信技术的应用使得温度数据的传输更加方便快捷。
不再需要通过有线连接来传输数据,可以实现远距离传输温度数据,大大提高了系统的灵活性和便利性。
通过研究基于单片机的多点无线温度监控系统,可以促进单片机技术与无线通信技术的结合,推动传感器网络技术的发展,为实现智能化、自动化的监控系统奠定技术基础。
这对于提高生产效率、降低能耗、改善生活质量等方面都具有重要意义。
基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统1. 引言1.1 研究背景在现代社会,温度监控系统在各个领域中发挥着重要作用,例如工业生产、环境监测、医疗保健等。
随着科技的不断发展,基于单片机的多点无线温度监控系统逐渐成为一种趋势。
研究背景部分将深入探讨这一领域的发展现状,以及存在的问题和挑战。
目前,传统的有线温度监控系统存在布线复杂、安装维护困难等问题,限制了其在一些特定场景下的应用。
而无线温度监控系统以其布线简便、实时监测等优势逐渐被广泛应用。
目前市面上的产品多数存在监测范围有限、数据传输不稳定等问题,迫切需要一种更为稳定、可靠的无线温度监控系统。
本文将基于单片机技术设计一种多点无线温度监控系统,旨在解决现有系统存在的问题,提高监测范围和数据传输稳定性。
通过对单片机、温度传感器、通信模块等关键部件的选择和设计,构建一套高性能的无线温度监控系统,为相关领域的应用提供更好的技术支持和解决方案。
1.2 研究意义无线温度监控系统的研究意义在于提高温度监控的效率和精度,实现对多个点位的远程管理和监控。
通过使用单片机技术,可以实现对多个温度传感器的同时监测和数据传输,使监控过程更加智能化和便捷化。
这对于各种需要严格控制温度的场合如实验室、制造业、医疗行业等具有重要意义。
无线温度监控系统的研究也有助于推动物联网技术的发展,为智能家居、智能城市等领域打下基础。
通过建立稳定、高效的多点无线温度监控系统,不仅可以提高生产效率,降低能耗,提升产品质量,还可以有效预防事故发生,保障人员安全。
研究基于单片机的多点无线温度监控系统具有重要的现实意义和应用前景。
1.3 研究目的本文旨在设计并实现基于单片机的多点无线温度监控系统,通过对温度传感器采集的数据进行处理和传输,实现对多个监测点的实时监控。
具体目的包括:1. 提高温度监控系统的便捷性和灵活性,使监控人员可以随时随地实时获取监测点的温度数据,为及时处理异常情况提供有力支持;2. 降低监控系统的成本,利用单片机和无线通信模块取代传统的有线连接方式,减少线缆布线成本和维护成本;3. 提升监控系统的稳定性和可靠性,通过精心选型与设计,以及合理的系统实现过程,确保系统能够持续稳定地运行,并提供准确可靠的数据;4. 探索未来监控系统的发展方向,从实际应用情况出发,进一步优化系统性能,并为未来无线温度监控系统的研究和应用奠定基础。
基于单片机的多点温度测量系统设计

理工科类大学毕业设计论文南开大学本科生毕业设计中文题目:基于单片机的多点温度测量系统设计英文题目:Design of based on the microprocessor multipoint temperature measurement system学号:****姓名:****年级:****专业:电子信息科学与技术系别:电子科学系指导教师:****完成日期:****摘要通过运用DS18B20数字温度传感器的测温原理和特性,利用它独特的单线总线接口方式,与AT89C51单片机相结合实现多点测温。
并给出了测温系统中对DS18B20操作的C51编程实例。
实现了系统接口简单、精度高、抗干扰能力强、工作稳定等特点。
本文介绍基于AT89C51单片机、C语言和DS18B20传感器的多点温度测量系统设计及其在Proteus平台下的仿真。
利用51单片机的并行口,同步快速读取8支DS18B20温度,实现了在多点温度测量系统中对多个传感器的快速精确识别和处理,并给出了具体的编程实例和仿真结果。
关键词:单片机;DS18B20数字温度传感器;Proteus仿真;C51编程AbstractWith using the measuring principle and characteristics of the numerical temperature sensor of DS18B20,making use of special characteristics of single line as the total line, and combine together with AT89C51 to realize several points temperature measuring. Also this paper gives the example of the C51 program which is used to operate to the DS18B20. Make system have characteristics of simple, high accuracy, strong anti- interference ability, stable work etc.This design introduced AT89C51 monolithic integrated circuit temperature control system design from the hardware and the software two aspects. A multipoint temperature measurement system based on DS18B20 and AT89C51 microcontroller is designed and simulated by Proteus in this paper, including software and hardware design of this system. The system has such advantages as novel circuit design, quick measurement speed, high measurement accuracy, and good practicality.Key words: SCM;DS18B20;Proteus simulation;C51 program目录摘要 (I)Abstract ............................................................................................... I I 第一章绪论 (1)1.1温度智能测控系统的研究背景与现状分析 (1)1.2温度智能测控系统的工作原理 (2)第二章单片机简介 (3)2.1单片机的定义 (3)2.2单片机的基本结构 (4)2.3单片机执行指令的过程 (5)2.4单片机的特点 (6)第三章数字温度传感器DS18B20原理 (7)3.1概述 (7)3.2主要特征 (7)3.3引脚功能 (8)3.4工作原理及应用 (8)3.5单片机对DS18B20的操作流程 (8)3.6 DS18B20与单片机的接口 (9)3.7 DS18B20芯片ROM指令表 (9)3.8 DS18B20芯片存储器操作指令表 (10)3.9 DS18B20复位及应答关系及读写隙 (11)第四章系统硬件设计 (12)4.1系统结构设计思路 (12)4.2系统框图 (13)4.3系统硬件设计 (13)第五章系统软件设计 (16)5.1 系统软件设计思路 (16)5.2系统软件设计 (21)第六章系统运行结果 (27)第七章结束语 (31)参考文献 (32)致谢 (33)第一章绪论1.1温度智能测控系统的研究背景与现状分析温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同时它也是一种最基本的环境参数。
基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统随着物联网技术的不断发展,无线传感器网络在各个领域都得到了广泛应用。
基于单片机的多点无线温度监控系统,不仅可以实现对多个温度点的实时监控,还可以通过无线方式传输监测数据,实现远程监控和管理。
本文将介绍基于单片机的多点无线温度监控系统的原理、设计和实现过程。
一、系统概述基于单片机的多点无线温度监控系统主要由传感器节点、信号处理单元、无线通信模块、监控中心等组成。
传感器节点负责采集温度数据,信号处理单元对采集的数据进行处理和存储,无线通信模块实现数据传输,监控中心则负责接收和显示监测数据。
二、系统设计1. 传感器节点设计传感器节点是系统的核心部分,负责采集温度数据。
为了实现多点监控,传感器节点需要设计成多个独立的模块,每个模块负责监测一个特定的温度点。
传感器节点的设计需要考虑传感器的选择、数据采集和处理电路的设计、以及无线通信模块的接口设计。
传感器节点采用数字温度传感器DS18B20进行温度采集,采集到的数据通过单片机进行处理和存储,然后通过无线通信模块进行数据传输。
2. 信号处理单元设计信号处理单元主要负责对传感器采集到的数据进行处理和存储。
传感器采集到的数据需要进行数字化处理,然后存储到单片机的内部存储器中。
传感器节点采用的是单片机AT89S52作为信号处理单元,通过单片机的A/D转换功能对温度数据进行数字化处理,然后存储到单片机的内部EEPROM中。
3. 无线通信模块设计无线通信模块主要负责将传感器节点采集到的数据传输到监控中心。
传感器节点采用的是nRF24L01无线模块,通过SPI接口与单片机进行通信,并实现数据的传输。
4. 监控中心设计三、系统实现传感器节点采用DS18B20数字温度传感器进行温度采集,通过单片机AT89S52进行数据处理和存储,然后通过nRF24L01无线模块实现数据的传输。
传感器节点的设计需要考虑功耗、尺寸和成本等因素,需要尽量减小功耗和尺寸,降低成本。
基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统随着物联网技术的不断发展,无线传感器网络(WSN)在各个领域中的应用越来越广泛。
温度监控系统作为最基本的传感器网络应用之一,在工业控制、环境监测、医疗保健等领域中发挥着重要作用。
本文将介绍一种基于单片机的多点无线温度监控系统,通过这种系统可以实现对多个点位温度数据的实时监测和远程传输。
一、系统设计方案1. 系统硬件设计该温度监控系统的核心部件是基于单片机的无线温度传感器节点。
每个节点由温度传感器、微控制器(MCU)、无线模块和电源模块组成。
温度传感器选用DS18B20,它是一种数字温度传感器,具有高精度、数字输出和单总线通信等特点。
微控制器采用常见的ARM Cortex-M系列单片机,用于采集温度传感器的数据、控制无线模块进行数据传输等。
无线模块采用低功耗蓝牙(BLE)模块,用于与监控中心进行无线通信。
电源模块采用可充电锂电池,以确保系统的长期稳定运行。
系统的软件设计主要包括传感器数据采集、数据处理和无线通信等部分。
传感器数据采集部分通过单片机的GPIO口读取温度传感器的数据,并进行相应的数字信号处理。
数据处理部分对采集到的数据进行滤波、校正等处理,以保证数据的准确性和稳定性。
无线通信部分则通过BLE模块实现与监控中心的无线数据传输。
二、系统工作原理1. 温度传感器节点工作原理每个温度传感器节点通过温度传感器采集环境温度数据,然后通过单片机将数据处理成符合BLE通信协议的数据格式,最终通过BLE模块进行无线传输。
2. 监控中心工作原理监控中心通过接收来自各个温度传感器节点的温度数据,并进行数据解析和处理,最终在界面上显示出各个点位的温度数据。
监控中心还可以设置温度报警阈值,当某个点位的温度超过预设阈值时,监控中心会发出报警信息。
三、系统特点1. 多点监控:系统可以同时监测多个点位的温度数据,实现对多个点位的实时监控。
2. 无线传输:系统采用BLE无线模块进行数据传输,避免了布线的烦恼,使得系统的安装和维护更加便捷。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子设计自动化实训报告题目:多点温度监测系统****:***学生学号:**********学院:工学院专业:电子信息工程班级:2011级指导教师:林君副教授一、实训目的和意义通过对多点温度检测系统的设计,可以更深入的了解MC5.2单片机的特点以及应用技巧,对单片机的应用可以温习其中的结构以及原理。
而且proteus的强大功能也能通过此次试验反应出来,熟悉其界面的风格以及各种应用,又重新的认识了proteus在单片机方面的强大功能。
二、实训设计内容要求➢ 1.实现4点温度实时采集,温度传感器采用DS18B20➢ 2.采用LCD1602显示4个采集点温度➢ 3.具有温度上下限报警功能:上限90°C,下限20°C➢ 4.声音和光报警2种模式:光报警采用4只发光LED;声音报警采用扬声器,报警音调采用2KHz方波。
三、系统设计1.方案设计2(1)工作原理:(a)通过四个温度采集器采集数字温度输入到单片机的p2.0~p2.3口。
(b)初始化LCD1602使1602能够接受数据,并分配其显示位置,此处采用两行两列式显示。
(c)单片机读取信号。
(d)单片机向LCD1602写信号,并延时。
(e)判断是否有数据高于90度或低于20度,如果有点亮相应的led,并启动蜂鸣器。
(2)硬件系统组成(a)80C52(b)晶振电路(c)复位电路(d)LED灯电路(e)LCD1602(f)温度检测ds18b203. 软件设计(1)时间的设定:从此采用中断T0方式延时,而且是基本单位,无论蜂鸣器还是led,或是显示温度都用到此延时程序。
延时程序如下:void tmpDelay(int num){while(num--) ;}void Time0(void) interrupt 1 using 0{sound=~sound;TH0=(65536-5000)/256;TL0=(65536-5000)%256;}(2)信号的读入与写出:读字节程序如下unsigned char ReadOneChar1()//{unsigned char i=0;unsigned char dat1 = 0;for (i=8;i>0;i--){DQ1 = 0; // 给脉冲信号dat1>>=1;DQ1 = 1; // 给脉冲信号if(DQ1)dat1|=0x80;tmpDelay(4);return(dat1);一共读四个字节,接下来是写字节程序如下void WriteOneChar1(unsigned char dat1)//{unsigned char i=0;for (i=8; i>0; i--){DQ1 = 0;DQ1 = dat1&0x01;tmpDelay(5);DQ1 = 1;dat1>>=1;}注意度字节的返回值。
读取温度unsigned int Readtemp1()//{unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B201();WriteOneChar1(0xCC);WriteOneChar1(0x44);Init_DS18B201();WriteOneChar1(0xCC);WriteOneChar1(0xBE);a=ReadOneChar1();b=ReadOneChar1(); //t<<=8;t=t|a;tt=t*0.0625;t= tt*10;if((t>900)|(t<200)){LED1=0;EA=1;TR0=1;}else{LED1=1;EA=0;TR0=0;}return(t); }(3)蜂鸣器以及led的显示程序如下void delay(uchar z){ uchar x,y;for(x=1000;x>1;x--)for(y=z;y>1;y--);}void write_com(uchar com) //写命令函数{ lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0; }void write_date(uchar date) //写数据函数{ lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0; }void init_lcd() //初始化函数{ lcden=0; //默认开始状态为关使能端,见时序图lcdrw=0; //选择状态为写write_com(0x0f);write_com(0x38); //显示模式设置,默认为0x38,不用变。
write_com(0x01); //显示清屏,将上次的内容清除write_com(0x0c); //显示功能设置0x0f为开显示,显示光标,光标闪烁;0x0c为开显示,不显光标,光标不闪write_com(0x06); //设置光标状态默认0x06,为读一个字符光标加1.write_com(0x80); //设置初始化数据指针for(i=0;i<16;i++){ //显示The temperaturewrite_date(t0[i]);delay(0);}write_com(0x80+0x40);for(i=0;i<16;i++){ //显示is Cwrite_date(t1[i]);delay(0);}}(4)程序流程图如下图所示:四、调试方法及步骤1.用软件调试工具先调试设计好的程序,方法是打开调试工具后新建项目,设计开发环境,选择单片机种类,建立.c,然后加载到环境中,编写程序,生成HEX,把他放虚拟单片机中,调试。
2出现错误,就要修改错误,编译全部通过后再接外围硬件电路,接上仿真头,硬件电路供电后再开启仿真头,然后正确设置好仿真器,最后全速运行,查看硬件电路显示结果是否与原设计思想一致。
3.显示结果正确后结束仿真,先停止运行程序,再关掉仿真头开关,最后断电,撬开仿真器。
五、结果与讨论.查看结果是否与自己想的一样,如果不一样,可以向同学和老师讨教,如果一样就记录下。
六、实训心得通过本次试验学会了如何使用虚拟工具来进行单片机的编辑,通过写c语言又温习了以前的所学,回味看单片机和c语言的魅力。
通过调试程序锻炼了个人的耐心恒,恒心,毅力,和理论联系实际的能力通过学习使得懂得了开发工具的使用,多了一门吃饭的的本领,多了一门学习其他学科的实践基础。
经过这次实训课程设计,我学到了很多书本上没有的,比较实际、实用的东西,学会了怎样将理论知识运用到实际设计当中,对实验设备和设计软件的使用和分析问题解决问题的能力也有了很大的提高。
同时也明白了电路焊接和作品调试时,需要更多的耐心。
通过这次实训课程设计,不仅可以在专业上可以学到更多的知识,同时也对平时的学习和工作中产生了影响,那就是认认真真的去完成每一件事。
附录(程序清单)#include<reg52.h> // 包含52单片机寄存器定义的头文件/**************************************************程序功能:LCD1602 显示温度***************************************************/#define uchar unsigned char#define uint unsigned intsbit lcdrs=P2^6; //数据命令选择控制sbit lcdrw=P2^5; //读/写选择控制sbit lcden=P2^7; //使能信号sbit LED1=P1^0;sbit LED2=P1^1;sbit LED3=P1^2;sbit LED4=P1^3;sbit sound=P1^4;uchar code t0[]="T1: T2: ";uchar code t1[]="T3: T4: ";uchar code digital[]="0123456789";sbit DQ1=P2^0; //定义温度DS18B20接口,详情见原理图sbit DQ2=P2^1; //定义温度DS18B20接口,详情见原理图sbit DQ3=P2^2; //定义温度DS18B20接口,详情见原理图sbit DQ4=P2^3; //定义温度DS18B20接口,详情见原理图uchar i;/*****************************************函数功能:DS18B20相关函数*****************************************/void tmpDelay(int num)//延时函数{while(num--) ;}void Time0(void) interrupt 1 using 0{sound=~sound;TH0=(65536-5000)/256; //定时器T0的高8位重新赋初值TL0=(65536-5000)%256; //定时器T0的高8位重新赋初值}void Init_DS18B201()//初始化ds1820{unsigned char x=0;DQ1 = 1; //DS复位tmpDelay(8); //稍做延时DQ1 = 0; //单片机将DS拉低tmpDelay(80); //精确延时大于480usDQ1 = 1; //拉高总线tmpDelay(14);x=DQ1; //稍做延时后如果x=0则初始化成功x=1则初始化失败tmpDelay(20);}void Init_DS18B202()//初始化ds1820{unsigned char x=0;DQ2 = 1; //DS复位tmpDelay(8); //稍做延时DQ2 = 0; //单片机将DS拉低tmpDelay(80); //精确延时大于480usDQ2 = 1; //拉高总线tmpDelay(14);x=DQ2; //稍做延时后如果x=0则初始化成功x=1则初始化失败tmpDelay(20);}void Init_DS18B203()//初始化ds1820{unsigned char x=0;DQ3 = 1; //DS复位tmpDelay(8); //稍做延时DQ3 = 0; //单片机将DS拉低tmpDelay(80); //精确延时大于480usDQ3 = 1; //拉高总线tmpDelay(14);x=DQ3; //稍做延时后如果x=0则初始化成功x=1则初始化失败tmpDelay(20);}void Init_DS18B204()//初始化ds1820{unsigned char x=0;DQ4 = 1; //DS复位tmpDelay(8); //稍做延时DQ4 = 0; //单片机将DS拉低tmpDelay(80); //精确延时大于480usDQ4 = 1; //拉高总线tmpDelay(14);x=DQ4; //稍做延时后如果x=0则初始化成功x=1则初始化失败tmpDelay(20);}unsigned char ReadOneChar1()//读一个字节{unsigned char i=0;unsigned char dat1 = 0;for (i=8;i>0;i--){DQ1 = 0; // 给脉冲信号dat1>>=1;DQ1 = 1; // 给脉冲信号if(DQ1)dat1|=0x80;tmpDelay(4);}return(dat1);}unsigned char ReadOneChar2()//读一个字节{unsigned char i=0;unsigned char dat2 = 0;for (i=8;i>0;i--){DQ2 = 0; // 给脉冲信号dat2>>=1;DQ2 = 1; // 给脉冲信号if(DQ2)dat2|=0x80;tmpDelay(4);}return(dat2);}unsigned char ReadOneChar3()//读一个字节{unsigned char i=0;unsigned char dat3 = 0;for (i=8;i>0;i--){DQ3 = 0; // 给脉冲信号dat3>>=1;DQ3 = 1; // 给脉冲信号if(DQ3)dat3|=0x80;tmpDelay(4);}return(dat3);}unsigned char ReadOneChar4()//读一个字节{unsigned char i=0;unsigned char dat4 = 0;for (i=8;i>0;i--){DQ4 = 0; // 给脉冲信号dat4>>=1;DQ4 = 1; // 给脉冲信号if(DQ4)dat4|=0x80;tmpDelay(4);}return(dat4);}void WriteOneChar1(unsigned char dat1)//写一个字节{unsigned char i=0;for (i=8; i>0; i--){DQ1 = 0;DQ1 = dat1&0x01;tmpDelay(5);DQ1 = 1;dat1>>=1;}}void WriteOneChar2(unsigned char dat2)//写一个字节{unsigned char i=0;for (i=8; i>0; i--){DQ2 = 0;DQ2 = dat2&0x01;tmpDelay(5);DQ2 = 1;dat2>>=1;}}void WriteOneChar3(unsigned char dat3)//写一个字节{unsigned char i=0;for (i=8; i>0; i--){DQ3 = 0;DQ3 = dat3&0x01;tmpDelay(5);DQ3 = 1;dat3>>=1;}}void WriteOneChar4(unsigned char dat4)//写一个字节{unsigned char i=0;for (i=8; i>0; i--){DQ4 = 0;DQ4 = dat4&0x01;tmpDelay(5);DQ4 = 1;dat4>>=1;}}unsigned int Readtemp1()//读取温度{unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B201();WriteOneChar1(0xCC); // 跳过读序号列号的操作WriteOneChar1(0x44); // 启动温度转换Init_DS18B201();WriteOneChar1(0xCC); //跳过读序号列号的操作WriteOneChar1(0xBE); //读取温度寄存器a=ReadOneChar1(); //连续读两个字节数据//读低8位b=ReadOneChar1(); //读高8位t=b;t<<=8;t=t|a; //两字节合成一个整型变量。