基于DS18B20的驱动2位数码管的数字温度计设计

合集下载

基于ds18b20的数字温度计设计

基于ds18b20的数字温度计设计

《单片机原理及应用》课程设计实验报告学年学期:2014-2015第1学期专业班级:12级自动化B指导教师:徐敏、关健生设计时间:第17周学时周数:每班/周一、设计目的(基于ds18b20的数字温度计设计)课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练,让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,进一步掌握和利用C语言进行单片机程序设计的能力,熟练掌握键盘、显示、单总线,温度传感器DS18B20等知识点。

二、设计任务及要求本课程设计的题目设计内容自选,学生可以根据平时的观察,了解单片机实验的应用系统,弄清其结构和功能,结合单片机课程及其相关的知识,充分发挥自身的想象力和创造力,自行选定设计项目,但总体应达到以下要求:1、用89C51CPU,12M时钟,常规的上电和手动复位电路2、包括3×4矩阵键盘3、LCD显示显示器及接口4、一路蜂鸣器输出5.至少有1路输入信号,可以是模拟量或数字量三、设计项目简介本设计以检测温度并显示温度提供上下限报警为目的,按照系统设计功能的要求,确定系统由5个模块组成:单片机主控器,测温电路,按键电路,显示电路,报警电路。

1.单片机模块:主要实现数据的处理,输出执行,报警设置功能以及矩阵键盘的使用。

通过从DS18b20读取的温度超过上下限的初始值时候,调用报警程序进行报警。

通过按键来改变上下限的初始值;2. 温度传感模块:主要功能是通过DS18B20对温度的采集及将测量的温度值读到单片机内,并在LCD1602上显示出来。

3. 显示模块:可以显示实时的温度值以及设置的上下限。

四、电路原理图(1)仿真电路图(2)实际电路图五、系统功能描述1.运用DS18B20将测量温度值读到单片机内,将其在LCD1602上显示出来。

2.利用3*4矩阵键盘设定温度值的上下限,并在LCD上显示出来。

基于DS18B20的温度测量系统设计

基于DS18B20的温度测量系统设计

基于DS18B20的温度测量系统设计概述:DS18B20是一种数字温度传感器,具有精确度高、稳定性好、尺寸小等特点。

本文将基于DS18B20设计一个温度测量系统,主要包括硬件设计和软件设计两部分内容。

硬件设计:1.传感器模块:DS18B20传感器模块包括一个温度传感器和一个数字转换芯片。

传感器模块通过串行总线与主控设备进行通信,并提供温度数据。

2.单片机:选择一种适合的单片机作为主控设备,负责与传感器模块通信,并实现相关功能。

3.显示模块:通过液晶显示屏或数码管等模块,将测量到的温度实时显示出来。

4.电源模块:为系统提供稳定的直流电源,使系统能够正常工作。

软件设计:1.通信协议:将单片机与传感器模块之间的通信协议设置为1-Wire协议,该协议简单易实现,并且可以同时连接多个传感器。

2.初始化:在系统启动时,初始化单片机与传感器模块之间的通信,并对传感器模块进行必要的设置,如分辨率、精确度等。

3.数据读取:通过1-Wire协议,单片机向传感器模块发送读取温度的指令,传感器模块将温度数据以数字形式返回给单片机。

4.数据处理:单片机接收到温度数据后,进行相应的数据处理,可以进行单位转换、滤波处理等。

5.数据显示:将处理后的温度数据通过显示模块实时显示出来。

系统应用:1.工业自动化:用于监测生产设备的温度,实现设备状态监控和预警功能。

2.室内温控:通过与空调系统或暖气系统的连接,实现室内温度的精确控制。

3.热管理:用于监测电子设备或电路板的温度,保证设备运行时的稳定性和散热效果。

总结:基于DS18B20的温度测量系统设计,通过选用合适的硬件模块和软件设计方案,可以实现精确、稳定的温度测量,并通过通信和显示模块实时反馈温度数据。

该系统具有应用广泛、性能可靠等优点,在工业自动化、室内温控、热管理等领域有着重要意义。

基于DS18B20的数字温度计课程设计

基于DS18B20的数字温度计课程设计

摘要在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。

在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。

温度控制在生产过程中占有相当大的比例。

温度测量是温度控制的基础,技术已经比较成熟。

传统的测温元件有热电偶和二电阻。

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

我们用一种相对比较简单的方式来测量。

本文将介绍一种基于单片机控制的数字温度计,就是用单片机实现温度测量,进而达到数控制的目的。

传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。

本次采用DS18B20数字温度传感器来实现基于AT89C51单片机的数字温度计的设计用LED数码管以串口传送数据,实现温度显示,能准确达到以上要求,可以用于温度等非电信号的测量,主要用于对测温比较准确的场所,或科研实验室使用,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。

关键词温度计;单片机;数字控制;DS18B20ABSTRACTIn daily life and industrial production process, often used in the detection and control of temperature, temperature is the production process and scientific experiments in general and one of the important physical parameter. In the production process, in order to efficiently carry out the production, to be its main parameters, such as temperature, pressure, flow control, etc... Temperature control in the production process of a large proportion. Temperature measurement is the basis of temperature-controlled, more mature technology.Traditional thermocouple and temperature components are the second resistor.The thermocouple and thermal resistance are generally measured voltage, and then replaced by the corresponding temperature, these methods are relatively complex, requiring a relatively large number of external hardware support. We use a relatively simple way to measure.This article will introduce the single-chip microcomputer-based control of a digital thermometer is used to achieve single-chip temperature measurement, the traditional detection of most of the temperature thermistor for temperature sensor, but the poor reliability of thermistors, temperature measurement accuracy of low - , and must go through a special interface circuit to convert the digital signal processed by the single chip. The use of digital temperature sensor DS18B20 to AT89C51 microcontroller-based design of digital thermometer with LED digital control to the serial transmission of data, temperature display, accurate to achieve the above requirements, can be used for temperature measurement and other non-electrical signal, mainly used for more accurate temperature measurement sites, or research laboratory use, can work independently of the single-chip temperature detection, temperature control system has been widely used in many areasKey words Thermometer;Single-chip;Digital Control;DS18B20目录0 引言 (1)1 绪论 (2)2硬件介绍 (3)2.1 AT89C51单片机 (3)2.1.1概述 (3)2.1.2 基本参数 (3)2.1.3 功能特性 (3)2.1.4 引脚说明 (4)2.2 DS18B20 单线数字温度传感器 (5)2.2.1概述 (5)2.2.2 DS1820的应用 (5)2.2.3 DS18B20的结构介绍 (5)2.3 数码管 (6)3 硬件设计 (7)3.1 整体设计 (7)3.2 时钟振荡器 (8)3.3 DS18B20 的供电方式 (8)3.4 数码管的驱动方式 (9)4软件调试 (10)4.1 整体设计 (10)4.2 测温操作 (11)4.3 报警操作 (13)4.4 数码管使用编码 (14)5 设计过程中出现的问题 (16)6 结论 (17)致谢 (18)参考文献 (19)附录 (20)附录 A (20)附录B (28)0 引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

基于DS18B20的数字温度计的设计

基于DS18B20的数字温度计的设计

摘要人们的生活水平在日益提高,实现单片机的控制无疑是人们追求的目标之一,它在人们生活及工作中起到的作用也是不可否定的,其中温度计数字显示就是一个典型的例子。

本课题是研究温度传感器(DS18B20)以及串口通信,用液晶显示温度结果。

本课题所研究的温度传感器有很多优点,比如测温方便,测温准确,其输出可用液晶显示,主要用于对测温度测量要求比较严格的场所。

利用AT89S51单片机控制DS18B20进行数据采集并由LM016L液晶显示模块显示结果,采集结果可由MAX-232送入另外一块单片机显示并存储,利用AT89C51芯片进行存储,实现温度测量存储与再现。

关键字:温度采集串行通信温度传输液晶显示AbstractPeople's living standards in the increasing control of the microcontroller is undoubtedly one of the goals of the people to pursue it play a role in people's lives and work is undeniable, thermometer digital display is a typical example, but people its increasingly high demand, to provide mankind with better facilities will need to start from the microcontroller technology, all toward the digital control, intelligent control direction. This article describes the design based on DS18B20 digital thermometer and how to use the single-chip transmission temperature and display. The design introduced digital thermometer thermometer has a wide temperature range, easy reading, accurate temperature measurement, the output temperature with digital display, is mainly used for measuring temperature measurement requirements more stringent workplace, or scientific experiments scheme of the room. AT89S51 MCU DS18B20 data collection by the the LM016L liquid crystal display module displays the results In addition, the acquisition results by MAX-232 fed to a microcontroller and stored using AT89C51 chip storage, temperature measurement storage and reproduction.1、引言1.1选题目的和意义随着电子科学技术的发展,人们的生活也日趋数字化。

基于DS18B20的数字温度计设计2

基于DS18B20的数字温度计设计2

基于DS18B20的数字温度计设计摘要随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与显示系统应用于诸多领域。

传统的温度检测以热敏电阻为温度敏感元件。

热敏电阻的成本低,需要外加信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。

与传统的温度计相比,这次设计的是基于DS18B20的数字温度计,它具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。

在本设计中选用AT89C51型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过4位共阳极LED数码显示管并行传送数据,实现温度显示。

本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度的采集与显示。

通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。

其系统构成简单,信号采集效果好,数据处理速度快,便于实际检测使用。

关键词:单片机AT89C51;温度传感器DS18B20;LED数码管;数字温度计目录摘要 (I)ABSTRACT ........................................................................................................... 错误!未定义书签。

第一章绪论.. (1)1.1课题背景 (1)1.2课题来源 (2)1.3课题内容及要求 (2)第二章基于DS18B20数字温度计设计的可行性分析 (4)2.1数字温度计设计方案论证 (4)2.1.1方案一 (4)2.1.2方案二 (4)2.2单线技术 (4)第三章系统的硬件选择及设计 (6)3.1核心处理器的设计 (6)3.1.1 AT89C51的简介 (6)3.1.2复位电路的设计 (9)3.1.3晶振电路的设计 (10)3.2温度采集电路的设计 (10)3.2.1 DS18B20的简介 (11)3.2.2 DS18B20内部结构 (13)3.2.3 DS18B20测温原理 (17)3.2.4 温度采集电路 (18)3.3温度显示电路的设计 (18)3.3.1 LED数码管的操作 (18)3.3.2温度显示电路 (20)第四章系统的软件设计 (21)4.1概述 (21)4.2DS18B20的单线协议和命令 (21)4.2.1初始化 (21)4.2.2 ROM操作命令 (21)4.2.3内存操作命令 (22)4.2.4数据处理 (23)4.3温度采集程序的设计 (25)4.3.1程序流程图 (25)4.3.2采集程序 (26)4.4温度显示程序的设计 (31)4.4.1程序流程图 (31)4.4.2显示程序 (31)结论 (33)致谢 (34)参考文献 (35)附录A (36)附录B ............................................................................................................... 错误!未定义书签。

DS18B20数字温度计的设计

DS18B20数字温度计的设计

基于DS18B20室内数字温度计日常生活中人们需要测量各种各样的温度。

环境温度对工业、农业、商业都有很大的影响。

传统的测温仪测量费时,准确度也较低,数字温度计与传统的温度计相比,具有读数速度快,测温范围广,其输出温度采用数字显示,便于用户使用。

随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,本设计所介绍的数字温度计使用单片机stc89C51,测温传感器使用DS18B20,用数码管实现温度显示,利用DS18B20和一片stc89C51单片机即可构成一个简洁但功能强大的低电压温度测量控制系统。

一、设计前言1.1 设计目的1.理论联系实际,单片机应用,尝试设计案例程序2.对主要元件功能有所了解3.学会用C语言编写程序4.培养设计项目程序流程图的思想5.掌握项目中所使用到的元器件的硬件原理,并用Proteus软件仿真,并用protell99se画PCB1.2设计内容1.所设计实验装置以MCS-51系列单片机为核心器件,组成一个数字式温度计。

2.所设计实验装置能够利用数码管直接显示出外界温度及温度变化。

3.所设计实验装置测试外界温度误差范围在±0.5℃之间。

4.手机充电器作稳压电源。

1.3设计要求1.独立设计原理图及相应的硬件电路。

2.独立焊接电路板并对电路板调试。

3.针对选择的设计题目,设计系统软件。

软件要做到:操作方便,实用性强,稳定可靠。

4.设计说明书格式规范,层次合理,重点突出。

并附上设计原理图、电路板图及相应的源程序。

二、设计方案2.1方案论证鉴于此设计题目,以下想到两种可能方案:方案一热敏电阻由于此设计是测温电路,所以想到使用热敏电阻,利用它的感温效应,在实验过程中记录在其温度变化时的电压或电流,进行A/D转换后,就可以用单片机进行数据处理,在显示电路上,就可以将被测温度显示出来。

方案二温度传感器此设计利用温度传感器,采用一只温度传感器DS18B20,控制器单片机AT89S51,用液晶显示器显示温度。

基于DS18B20的数字温度计设计

基于DS18B20的数字温度计设计一、课程设计目的1.培养学生文献检索的能力,如何利用Internet检索需要的文献资料。

2.培养学生综合分析问题、发现问题和解决问题的能力。

3.培养学生综合运用知识的能力和工程设计的能力。

4.培养学生理论联系实际的能力。

5.提高学生课程设计报告撰写水平。

二、设计内容、技术条件和要求1设计内容数字温度计的设计要能实现温度的实时采集与显示,以AT89S51单片机为核心芯片,使用DS18B20数字温度传感器采集环境温度,并通过一组4位共阴极数码管将温度显示出来,也可用LM1602液晶显示屏。

方案一:使用按钮控制温度的采集与显示。

方案二:使用定时控制温度的采集与显示,时间间隔1S。

2 设计要求•设计单片机最小系统(包括复位按钮、晶振电路等);•DS18B20应用电路设计。

•按键电路设计。

•可使用实验室的实验箱实物实现,也可使用仿真软件Proteus实现。

•绘制实现本设计内容的硬件电路(原理图),系统的组成框图。

•编写本课程设计内容的软件设计(包含程序流程图和对程序注释)。

三、总体设计思想本设计以检测温度并显示温度提供上下限报警为目的,按照系统设计功能的要求,确定系统由5个模块组成:主控器[4]、测温电路,报警电路,按键电路及显示电路。

系统以DS18B20为传感器用以将温度模拟量转化为电压数字量以总线传入单片机,以AT89S51为主芯片,在主芯片对DS18B20传入的温度值进行处理,由单片机程序控制,将经处理后的温度由LM1602液晶显示屏显示出来。

图3-1 数字温度计设计总体的原理图四、硬件设计1、硬件设计图见附件。

2、单片机复位电路工作原理及设计。

硬件图如下图一原理是通过使复位端经电阻与Vcc电源接通而产生按键复位电平,保证复位信号高电平持续时间大于2个机器周期。

3、单片机晶振电路工作原理及设计硬件图如下图二晶振电路是提供系统时钟信号。

为了各部分的同步应当引入公用的外部脉冲信号作为振荡脉冲。

基于ds18b20的数字温度计设计

基于ds18b20的数字温度计设计目录(一)设计内容及要求 (2)(二)系统的硬件选择及设计 (3)2.1核心处理器的设计 (3)1、AT89C51引脚图 (3)2、AT89C51引脚功能介绍 (3)2.2温度采集电路的设计 (5)1、单线技术 (5)2、DS18B20的简介 (6)3、DS18B20内部结构 (8)4、DS18B20测温原理 (11)5、温度采集电路 (12)2.3温度显示电路的设计 (13)1、LED数码管的操作 (13)2、温度显示电路 (13)(三)系统的软件设计 (15)3.1概述 (15)3.2 DS18B20的单线协议和命令 (15)(1)初始化 (15)(2)ROM操作命令 (15)(3)内存操作命令 (16)3.3温度采集程序流程图的设计 (18)3.4温度显示程序流程图的设计 (19)(四) 结论 (19)(五)汇编代码 (20)(六)参考文献 (27)基于DS18B20的数字温度计设计摘要:在本设计中选用AT89C51型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过两位共阴极LED数码显示管并行传送数据,实现温度显示。

本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用汇编语言实现温度的采集与显示。

通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。

其系统构成简单,信号采集效果好,数据处理速度快,便于实际检测使用。

关键词:单片机AT89C51;温度传感器DS18B20;LED数码管;数字温度计(一)设计内容及要求本设计主要介绍了用单片机和数字温度传感器DS18B20相结合的方法来实现温度的采集,以单片机AT89C51芯片为核心,辅以温度传感器DS18B20和LED 数码管及必要的外围电路,构成了一个多功能单片机数字温度计。

基于DS18B20设计的数字温度计课程设计报告

阜阳师范学院物理与电子科学学院电子信息科学与技术专业课程设计题目数字温度计设计队员姓名张荣军, 桂乾,闫利平,王凤,王玉成班级08级电子3班指导教师王宪菊完成日期2010 年12 月12日目录课程设计要求………………………………………………………………引言……………………………………………………………………………………………第1章.数字温度计总体设计方案………………………………………………………………………………………………1.1数字温度计设计方案论述………………………………………………………………1.1.1方案一…………………………………………………………………………………1.1.2方案二…………………………………………………………………………………第二章数字温度计总体详细设计2.1主控器……………………………………………………………………………………2.1.1.STC89S51特点及特性………………………………………………………………2.1.2.管脚功能说明…………………………………………………………………………2.1.3.振荡器特性……………………………………………………………………………2.1.4.芯片擦除………………………………………………………………………………2.2 温度采集部分设计……………………………………………………………………2.2.1温度传感器DS18B20…………………………………………………………………2.2.2DS18B20温度传感器与单片机的接口电路…………………………………………2.3LCD显示部分电路设计…………………………………………………………………2.4 报警电路的实现…………………………………………………………………………2.5报警上,下限调整电路实现………………………………………………………………2.6 复位电路的实现…………………………………………………………………………第三章系统软件设计3.1主程序……………………………………………………………………………………3.2读出温度子程序…………………………………………………………………………3.3温度转换命令子程序……………………………………………………………………3.4 计算温度子程序…………………………………………………………………………4总结与体会…………………………………………………………………………………5参考文献……………………………………………………………………………………附件1:Protues仿真截图附件2:程序代码引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

基于DS18B20的温度计设计

前言随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么单片机技术的出现则是给现代工业控制测控领域带来了一次新的革命。

目前,单片机在工业控制系统诸多领域得到了极为广泛的应用。

特别是其中的C51系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的工作和学习。

在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会.而今,空调等家用电器随着生产技术的发展和生活水平的提高越来越普及,一个简单,稳定的温度控制系统能更好的适应市场。

当人们的生活日趋数字化的时候,多功能的数字温度计可以给我们的生活带来很大的方便。

温度测量与控制是工业控制中最常碰到的问题之一,而对于温度的测量可以采用模拟温度传感器加AD的方式获取,也可以通过数字式温度传感器的方式获取。

支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89S52为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器。

本设计就是一个基于DS18B20的温度控制系统的设计。

第1章总体设计1.1方案论证1.1.1温度传感器方案一:采用热敏电阻可满足测温要求,但热敏电阻精度低,重复性和可靠性较差,对于精度要求较高的测温不适用,而且采用热敏电阻要求复杂的电路和算法,增加了设计复杂度。

方案二:采用专用的集成温度传感器(如AD590、LM35/LM45)和数字化温度传感器(DS18B20、DS1620)测温,数字化温度传感器具有接口简单、直接数字量输出、精确度高等优点。

DS18B20是美国DALLAS半导体公司推出的一款智能温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

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

基于DS18B20的驱动2位数码管的数字温度计设计
代码
#include<reg52.h>
#include<math.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int;
/*****************************************************************************/ /**********系统管脚定义说明
DS18B20数据口为P3^7
数码管数据口为P0
********/
sbit DQ=P3^7;//ds18b20 端口
sfr dataled=0x80;//显示数据端口
/**********************************************************************/
uchar temp;
uchar flag_get,count,num,minute,second;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管段码表共阳uchar a,b;
/***********************************************************************/
void delay1(uchar MS);
unsigned char ReadTemperature(void);
void Init_DS18B20(void);
unsigned char ReadOneChar(void);
void WriteOneChar(unsigned char dat);
void delay(unsigned int i);
/************************************************************************/ main()
{
TMOD|=0x01;//定时器设置
TH0=0xef;
TL0=0xf0;
IE=0x82;
TR0=1;//启动定时器
P2=0x00;
count=0;
while(1)
{
a=table[temp/10]; //十位温度
b=table[temp%10]; //个位温度
if(flag_get==1) //定时读取当前温度
{
temp=ReadTemperature()-1;/*********(括号后面的数字为温度校准,根据自己系统的误差,自己调节温度误差即可.现在默认-1)********/
flag_get=0;
}
}
}
void tim(void) interrupt 1 using 1//中断,用于数码管扫描和温度检测间隔
{
TH0=0xef;//定时器重装值
TL0=0xf0;
num++;
if (num==50)
{num=0;
flag_get=1;//标志位有效
second++;
if(second>=60)
{second=0;
minute++;
}
}
count++;
if(count==1)
{P2=0xbf;
dataled=a;}//数码管扫描
if(count==2)
{P2=0x7f;
dataled=b;count=0;}
/*if(count==3)
{ P1=2;
dataled=str[2];
count=0;}*/
}
/****************************************************************************** *******/
void delay(unsigned int i)//延时函数
{
while(i--);
}
/****************************************************************************** *********/
//18b20初始化函数
void Init_DS18B20(void)
{
uchar x=0;
DQ = 1; //DQ复位
delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
delay(80); //精确延时大于480us
DQ = 1; //拉高总线
delay(10);
x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败
delay(5);
}
//读一个字节
uchar ReadOneChar(void)
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay(5);
}
return(dat);
}
//写一个字节
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;
}
delay(5);
}
//读取温度
unsigned char ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned char t=0;
//float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
delay(200);
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();
b=ReadOneChar();
b<<=4;
b+=(a&0xf0)>>4;
t=b;
return(t);
}。

相关文档
最新文档