单总线数字温度计单片机课程设计
- 格式:doc
- 大小:661.50 KB
- 文档页数:12
标题:基于单片机的数字温度计课程设计一、概述在现代电子科技飞速发展的今天,单片机技术已经渗透到各行各业。
而在电子课程设计中,基于单片机的数字温度计课程设计是一项常见而且具有挑战性的任务。
本文将探讨基于单片机的数字温度计课程设计的相关内容。
二、课程设计目标1、理解单片机的工作原理和基本架构;2、掌握温度传感器的工作原理和应用;3、设计并实现一个数字温度计系统;4、对系统进行实验验证并调试。
三、课程设计内容1、单片机基础知识的学习通过学习单片机的基本原理、指令系统、编程语言等内容,理解单片机的工作方式及其在数字温度计设计中的应用。
2、温度传感器的选型和原理学习选择并了解适合数字温度计设计的温度传感器,掌握其工作原理和接口特性,为后续的系统设计奠定基础。
3、数字温度计系统设计根据所学知识,设计数字温度计系统的硬件和软件部分。
硬件设计包括电路连接和元器件选取,软件设计包括程序编写和逻辑控制。
4、系统调试和优化对设计好的数字温度计系统进行实验验证,检查并解决可能存在的问题,优化系统的性能和稳定性。
四、课程设计实施步骤1、学习单片机基础知识可以通过课堂教学、实验操作和参考书籍资料等方式进行学习。
要求学生掌握单片机的基本原理和编程方法。
2、温度传感器的选型和原理学习在实验室或者实际应用中选择适合的温度传感器,并深入了解其工作原理和使用要求。
3、数字温度计系统设计学生按照课程要求,独立或者分组设计数字温度计系统的硬件和软件部分,包括原理图设计、程序编写、电路连接等。
4、系统调试和优化学生在实验室进行系统调试,检查系统的功能是否符合设计要求,发现问题并解决。
优化系统的性能和稳定性。
五、课程设计评价1、设计方案的完整性和可行性对学生提交的设计方案进行评价,要求其具有一定的完整性和可行性,考察学生的设计能力和实际应用能力。
2、实验结果的准确性和稳定性对学生进行实验验证,检查实验结果的准确性和系统的稳定性,考察学生的实验操作能力和问题解决能力。
南京工程学院通信工程学院单片机原理及应用课程设计报告实验学生班级实验学生姓名实验学生学号实验时间实验地点指导教师实验成绩评定指导教师签字年月日目录摘要 (3)方案论证 (3)方案一 (3)方案二 (3)一.芯片介绍 (4)1.1 AT89C51 (4)1.2 DS18B20 (5)二.设计目的 (6)三.设计要求 (6)四.设计思路 (6)4.1硬件设计 (6)4.2 软件设计 (6)4.2.1 主程序 (6)4.2.2 读温度函数 (7)4.2.3 温度转换函数 (7)4.2.4 温度显示函数 (8)五电路设计 (9)5.1 外部振荡源设计 (9)5.2 1602液晶显示电路 (9)5.3 数码管报警次数电路设计 (9)5.4 LED报警闪烁电路 (10)5.5 蜂鸣器电路 (10)5.6 DS18B20与AT89C51连接电路 (10)5.7 报警温度改变电路 (11)六.程序分析 (11)6.1主函数 (11)6.2 读取温度函数 (12)6.3 温度转换函数 (12)6.4 显示函数 (12)6.5软件运行时间函数 (14)6.6改变报警温度 (14)6.7报警计数 (15)七.单片机资源配置 (15)八. 小结 (15)九.参考文献 (16)附录总电路原理图 (17)附录C程序 (18)摘要随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。
采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。
在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。
在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。
温度控制在生产过程中占有相当大的比例。
温度测量是温度控制的基础,技术已经比较成熟。
课程设计(论文)题目名称单片机原理及应用课程名称数字温度计学生姓名***学号06系、专业信息类指导教师刘伟春2009年4月29 日摘要单片计算机即单片微型计算机。
(Single-Chip Microcomputer ),CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是各单片机中最为典型和最有代表性的一种。
这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
本文将介绍一种基于单片机控制的数字温度计,数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所。
关键字:单片机,数字温度计。
目录摘要 (1)1任务及要求 (1)1.1设计任务 (1)1.2设计要求 (1)2设计思想 (1)2.1硬件设计思想 (1)2.2软件设计思想 (2)3电路原理与电路图 (7)3.1电路原理 (7)3.2电路原理图 (7)4流程图与仿真结果 (8)4.1流程图 (8)4.2仿真结果 (10)5程序清单 (12)6设计总结 (20)6.1设计体会 (20)6.2存在问题与建议 (20)参考文献 (21)1 任务及要求1.1设计任务设计一种通过LED、显示电路和单片机相结合的低功耗数字式温度计,同时足以下要求:(1)DS180数字温度计提供9位读数,指示器件的温度。
信息经过单线接口送入DS180或从DS190送出,因此从中央处理器到DS180只需要连一条线。
读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。
(2)对温度的测量范围为-55℃~+125℃, 可以用AT89C51芯片。
1.2设计要求1.用C语言或汇编语言编实现程序设计。
2.利用查表,中断等方式实现目的。
3.系统的各各功能模块要清楚,有序。
4.程序运行时有友好的用户界面2 设计思想2.1 硬件设计思想图2-1DS180主要有三个部件:1)64位激光ROM.2)温度灵敏软件。
单片机课程设计任务书题目:基于Proteus仿真的单片机C程序设计——能显示时间的数字温度计一、设计目的1、掌握单片机定时器的编程方法;2、熟练运用C语言中的程序数组、字符串等知识;3、熟悉单片机C语言体系内容程序设计方法和开发流程;4、综合运用所学的理论知识去解决实际问题;5、培养调查研究、查阅技术文献、资料手册的能力。
二、设计要求1、测量并显示温度值,温度测量误差≤±1℃;2、测量温度范围为-55℃——+128℃;3、显示当前测量时间、星期、温度;4、可调整显示时间、星期;5、显示温度值若百位为0,则灭0,若十位为0,也灭0;6、温度超过设定的报警温度时指示灯报警即红灯亮,否则绿灯亮;7、可调整报警温度;8、显示报警温度时,若百位为0,则灭0,若十位为0,也灭0。
三、设计器材1、计算机一台,需安装keilc及Proteus软件;2、微控制器采用AT89C51单片机;3、温度传感器采用DS18B20;4、LCM1602液晶显示温度及时间。
四、设计内容1、单片机最小应用系统仿真电路设计;2、LM1602液晶与AT89C51连接电路设计及调试要求:连接好电路后,编程测试使LM1602能够按照指令正常显示字符;3、数字钟的设计要求:先在在LM1602液晶的第一行中间位置显示时、分、秒,增加星期显示;4、时钟调整功能的设计要求:增加三个按键开关,分别为功能键、加一调整键、减一调整键,通过控制功能键分别实现星期、小时、分、秒的调整;5、DS18B20温度传感器与以上系统连接电路设计;6、DS18B20温度显示的设计要求:在LM1602第二行左边位置显示“temp:-35.5℃”;7、温度报警电路设计要求:增加红色及绿色两个LED,当温度高于设定报警温度时红灯量,否则绿灯亮,报警温度显示LM1602第一行最右端;8、报警温度调整设计要求:增加两个按键开关,分别控制报警温度的加和减五、设计报告要求1、设计任务书;2、系统总体功能及技术指标描述;3、电路原理及硬件资源分配描述<I/O端口分配表);4、系统电路原理图;5、软件流程图<包括所有子函数及主函数流程图)6、软件清单,程序要求加详细注释;7、设计总结及体会。
基于单片机数字温度计课程设计
基于单片机的数字温度计课程设计是一个非常有趣和实用的项目。
首先,我们需要选择合适的单片机,比如常用的Arduino或者STM32等。
然后,我们需要选择合适的温度传感器,比如LM35或者DS18B20等。
接下来,我们可以按照以下步骤进行课程设计:
1. 硬件设计,首先,我们需要将单片机和温度传感器连接起来,这涉及到电路设计和焊接。
我们需要确保电路连接正确,传感器能
够准确地读取温度,并且单片机能够正确地接收并处理传感器的数据。
2. 软件设计,接下来,我们需要编写单片机的程序,以便能够
读取传感器的数据,并将其转换为数字温度值。
我们可以使用C语
言或者Arduino的编程语言来实现这一步骤。
在程序设计中,需要
考虑到温度的单位转换、数据的精度等问题。
3. 显示设计,我们可以选择合适的显示设备来展示温度数值,
比如数码管、液晶显示屏或者OLED屏幕等。
在设计中,我们需要考
虑到显示的清晰度、易读性以及节能等因素。
4. 功能扩展,除了基本的温度显示功能,我们还可以考虑对数
字温度计进行功能扩展,比如添加报警功能、数据存储功能或者远
程监控功能等,这些功能的添加可以提升数字温度计的实用性和趣
味性。
5. 测试与优化,最后,我们需要对设计的数字温度计进行测试,并不断优化,确保其稳定可靠、准确无误地显示温度。
总的来说,基于单片机的数字温度计课程设计涉及到硬件设计、软件设计、显示设计、功能扩展、测试与优化等多个方面,学生可
以通过这样的课程设计项目,全面提升自己的电子设计和编程能力,同时也能够实现一个实用的数字温度计产品。
数字温度计课程设计报告范文主要采用单片机实现数字温度计功能,其中包含硬件和软件的实现部分1课题说明随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
本设计选用AT89C51型单片机作为主控制器件,DS18B20作为测温传感器,通过LCD1602实现温度显示。
通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.01℃。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
2实现方法采用数字温度芯片DS18B20测量温度,输出信号全数字化。
采用了单总线的数据传输,由数字温度计DS18B20和AT89C51单片机构成的温度测量装置,它直接输出温度的数字信号,也可直接与计算机连接。
采用AT89C51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。
该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限温度。
该系统扩展性非常强。
该测温系统电路简单、精确度较高、实现方便、软件设计也比较简单。
系统框图如图1所示。
图1DS18B20温度测温系统框图主要采用单片机实现数字温度计功能,其中包含硬件和软件的实现部分3硬件设计3.1单片机最小系统设计单片机小系统基本组成:单片机小系统由AT89S51芯片、电源电路、振荡电路和复位电路组成。
3.1.1AT89S51芯片引脚图图2AT89S51主要采用单片机实现数字温度计功能,其中包含硬件和软件的实现部分3.2各单元电路3.2.1电源电路3.2.2振荡电路3.2.3复位电路主要采用单片机实现数字温度计功能,其中包含硬件和软件的实现部分4软件设计4.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1进行一次。
1 课题任务、功能要求说明及总体方案介绍1.1 课题目的随着社会的发展,温度的测量及控制变得越来越重要。
本文采用单片机STC89S52设计了温度实时测量及控制系统。
单片机STC89S52 能够根据温度传感器DS18B20 所采集的温度在数码管上实时显示,通过控制从而把温度控制在设定的范围之内。
所有温度数据均通过4位数码管LED显示出来。
系统可以根据时钟存储相关的数据。
通过该课程的学习使我们对计算机控制系统有一个全面的了解、掌握常规控制算法的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力。
1.2 功能要求说明设计一个具有特定功能的数字温度计。
该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
测量温度范围0℃~99℃,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。
1.3 设计课题总体方案介绍及工作原理说明1.3.1设计课题总体方案(1>根据设计要求,选择AT89C52单片机为核心器件。
(2>温度检测器件采用DS18B20数字式温度传感器。
与单片机的接口为P3.6引脚。
(3>键盘采用独立式按键,由三个按键组成,分别是:设置键<SET),加一建<+1),确认键<RET)。
(4>SET键<上下限温度设置键):当该键按下时,进入上下限温度设置功能。
通过P0.1引脚接入。
(5>+1键<加一调整键):在输入上下限温度时,该键按下一次,被调整位加一。
通过P0.2引脚接入。
(6>RET键<确认键):当该键按下时,指向下一个要调整的位。
通过P0.3引脚接入。
1.3.2 工作原理说明本课题以是80S52单片机为核心设计的一种数字温度控制系统,利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。
单片机课程设计报告数字温度计专业班级机电08—4班姓名李伟学号同组张汉超、张崟辉、李原哈尔滨理工大学荣成学院2010-7—8目录1 总体设计方案(原理) (2)1.1 数字温度计设计方案(原理) (2)1。
2总体设计框图 (2)2 硬件设计以及器件介绍 (2)2.1 AT80C51单片简介 (3)2。
2 数模转换 (4)2.3 显示电路 (7)2.4 温度传感器mf58简介 (8)2。
5实际电路图 (9)3软件设计 (9)3.1程序设计 (9)3。
2 电路程序 (11)4. 设计总结 (13)5. 参考文献 (13)1. 总体设计方案(原理)1.1.数字温度计设计方案(原理)在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器MF58,此传感器,本身就是一种数字温度传感器,他会把温度转换成数字量以后存贮在自身内部,和单片机只需要连接一个IO口,是一种单总线串行接口,然后在数码管或者液晶屏上显示出来可以很容易直接读取被测温度值,进行转换,就可以满足设计要求.电路比较简单,软件设计也比较简单.1.2.总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT80C51,温度传感器采用MF58,用3位LED数码管以串口传送数据实现温度显示。
图1 总体设计方框图2. 硬件设计以及各器件介绍2.1.AT80C51单片机简介单片机AT80C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电.在电路设计中我选择最常见的ATMEL公司的AT80C51单片机。
此单片机由8K字节可重擦写Flash闪速存储器,256*8字节内部RAM,32个可编程I/O口线,2个16位定时/计数器和6个中断源.并且该单片机经济实用,使用广泛。
80C51外部引脚图如图2所示:图2 AT80C51芯片引脚结构图⑴引脚说明:电源引脚Vcc(40脚):典型值+5V。
单片机数字温度计课程设计报告1.引言2.课程目标3.教学内容4.教学方法5.教学评价6.结论7.参考文献引言:数字温度计是现代生活中常用的一种温度测量工具。
对于学生来说,了解数字温度计的使用原理和正确使用方法是非常必要的。
因此,本课程设计旨在帮助学生掌握数字温度计的基本知识和技能,提高其实际应用能力。
课程目标:1.了解数字温度计的基本原理和结构。
2.掌握数字温度计的使用方法。
3.能够正确进行数字温度计的校准和维护。
4.能够应用数字温度计进行实际温度测量。
教学内容:1.数字温度计的基本原理和结构。
2.数字温度计的使用方法。
3.数字温度计的校准和维护。
4.数字温度计的实际应用。
教学方法:本课程采用讲授、实验和讨论相结合的教学方法。
通过讲解数字温度计的基本原理和结构,让学生了解数字温度计的工作原理;通过实验操作,让学生掌握数字温度计的使用方法和校准方法;通过讨论,让学生了解数字温度计的实际应用场景。
教学评价:本课程的教学评价主要采用考试和实验报告相结合的方式。
考试主要考查学生对数字温度计的理论知识掌握情况;实验报告主要考查学生对数字温度计的实际应用能力和实验操作能力。
结论:通过本课程的研究,学生能够掌握数字温度计的基本知识和技能,提高其实际应用能力,为其未来的研究和工作打下坚实的基础。
参考文献:1.《数字温度计使用手册》2.《数字温度计原理与应用》3.《温度测量技术与应用》1.设计任务1.1 设计目的本设计旨在实现一个温度监测系统,能够实时监测环境温度,并在温度超出预设范围时发出报警信号,同时在液晶显示屏上显示当前温度。
1.2 设计指标本设计的主要指标包括:温度监测精度、报警准确性、系统响应速度、硬件成本、软件复杂度等。
1.3 设计要求本设计要求系统稳定可靠,操作简便,能够满足实际应用需求。
2.设计思路与总体框图本系统采用单片机作为主控芯片,通过温度传感器采集环境温度,并将数据传输到单片机进行处理。
同时,液晶显示屏用于显示当前温度,按键用于对系统进行设置和调整。
单片机课程设计报告-数字温度计单片机是一种集成了微处理器核心、存储器、外围接口和定时器等功能模块的微型计算机。
在现代电子科技领域中,单片机被广泛应用于各种嵌入式系统中。
本课程设计主要针对单片机的应用实践,通过设计一个数字温度计来锻炼学生的单片机编程能力,同时加深对数字温度计的原理及应用的理解。
二、设计目标本课程设计旨在使学生掌握以下内容:1. 掌握单片机的基本原理和编程方法;2. 了解数字温度计的原理和应用;3. 熟悉温度传感器的使用和数据处理方法;4. 能够利用单片机开发出一个简单的数字温度计。
三、设计内容本课程设计主要包括以下内容:1. 单片机原理和编程基础;2. 数字温度计的原理和应用介绍;3. 温度传感器的选型及使用方法;4. 单片机数字温度计的设计和实现。
四、设计步骤1. 单片机原理和编程基础学生首先将学习单片机的基本原理和编程方法,包括单片机的体系结构、存储器组成、I/O口的使用、定时器的应用等内容。
2. 数字温度计的原理和应用介绍学生将了解数字温度计的基本原理和应用场景,包括数字温度计的工作原理、常见的数字温度计种类、数字温度计的应用领域等。
3. 温度传感器的选型及使用方法学生将学习温度传感器的选型原则,了解各种温度传感器的特点及使用方法,包括模拟温度传感器和数字温度传感器。
4. 单片机数字温度计的设计和实现学生将利用所学的单片机编程知识和温度传感器的使用方法,设计并实现一个简单的数字温度计。
学生需要考虑温度测量精度、显示方式、数据处理方法等问题。
五、教学方法本课程设计采用理论教学与实践相结合的教学方式,通过理论课堂讲解和实际操作演示相结合,加深学生对单片机和数字温度计知识的理解和掌握。
同时,鼓励学生合作学习,共同解决实际问题,提高实战能力。
六、教学评估学生将根据设计的数字温度计的实际测量情况、数据处理方法以及最终的效果进行评估,教师将根据学生的设计方案和实际操作情况进行评分。
同时,学生对单片机编程的理解和掌握水平也将作为评估的重要内容。
单片机课程设计DS1820单总线数字温度计一统设计目的,用途,功能1,目的:.S1820温度传感器控制温度,熟悉芯片的使用,温度传感器的功能,实验电路板的焊接,数码显示管的使用,汇编语言的设计。
锻炼团队合作能力,动手设计能力以及发现问题并且解决问题的能力。
2,用途:温度是工业控制中主要的被控参数之一。
随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。
单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。
3,功能.:DS1820温度传感器温度的精确度高达0.1度,在许多工业控制中已经足够。
可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。
从用途上讲,该单片机类似于温度计,但用途又不仅仅集限于温度计,由于蜂鸣器的使用,编写程序后,超过预设温度后,蜂鸣器发出蜂鸣声,为工业控制的安全保驾护航。
二试验原原理DS1820单总线数字温度计引脚图DS1820单总线数字温度计一般说明:DS1820数字温度计提供9位温度读数,指示器件的温度信息经过单线接口送入 D S1820或从 DS1820送出因此从中央处理器到 DS1820仅需连接一条线和地读写和完成温度变换所需的电源可以由数据线本身提供而不需要外部电源因为每一个DS1820有唯一的系列号silicon serial number因此多个DS1820可以存在于同一条单线总线上这允许在许多不同的地方放置温度灵敏器件此性的应用范围包括HVAC环境控制建筑物设备或机械内的温度检测以及过程监视控制中的温度检测特性独特的单线接口只需1个接口引脚即可通信多点multidro 能力使分布式温度检测应用得以简化不需要外部元件可用数据线供电不需备份电源图1的方框图表示DS1820的主要部件DS1820有三个主要的数据部件164位激光laseredROM;2温度灵敏元件和3非易失性温度告警触发器TH和TL64位激光ROM每一DS1820包括一个唯一的64位长的ROM编码开绐的8位是单线产品系列编码DS1820编码是10h接着的48位是唯一的系列号最后的8 位是开始56位CRC见图564位 ROM 和 ROM 操作控制部分允许 DS1820作为一个单线器件工作并循单线总线系统一节中所详述的单线协议直到ROM操作协议被满足DS1820控制分的功能是不可访问的此协议在ROM操作协议流程图图6中叙述单线总线主机必须首先操作五种ROM操作命令之一1Read ROM(读ROM),2)Match ROM(匹配ROM),3) Search ROM(搜索ROM),4)Skip ROM(跳过ROM),或5)Alarm Search告警搜索在成功地执行了 ROM 操作序列之后DS1820特定的功能便可访问然后总线上主机可提供六个存贮器和控制功能命令之一DS1820内部结构框图如图1所示。
DS1820测温原理如图2所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1 ,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
在正常测温情况下,DS1820的测温分辩率为0.5℃以9位数据格式表示,其中最低有效位(LSB)由比较器进行0.25℃比较,当计数器1中的余值转化成温度后低于0.25℃时,清除温度寄存器的最低位(LSB),当计数器1中的余值转化成温度后高于0.25℃,置位温度寄存器的最低位(LSB),如-25.5℃对应的9位数据格式如下:2 提高DS1820测温精度的途径2.1 DS1820高精度测温的理论依据DS1820正常使用时的测温分辨率为0.5℃,这对于水轮发电机组轴瓦温度监测来讲略显不足,在对DS1820测温原理详细分析的基础上,我们采取直接读取DS1820内部暂存寄存器的方法,将DS1820的测温分辨率提高到0.1℃~0.01℃.DS1820内部暂存寄存器的分布如表1所示,其中第7字节存放的是当温度寄存器停止增值时计数器1的计数剩余值,第8字节存放的是每度所对应的计数值,这样,我们就可以通过下面的方法获得高分辨率的温度测量结果。
首先用D S1820提供的读暂存寄存器指令(BEH)读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度整数部分T整数,然后再用BEH指令读取计数器1的计数剩余值M剩余和每度计数值M每度,考虑到DS1820测量温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度T实际可用下式计算得到:T实际=(T整数-0.25℃)+(M每度-M剩余)/M每度三温度传感器ds1820的汇编程序这是关于DS18B20的读写程序,数据脚P3.4,晶振12MHZ温度传感器18B20汇编程序,采用器件默认的12位转化,最大转化时间750微秒可以将检测到的温度直接显示到连接到AT89C2051的两个数码管上显示温度00到99度,很准确哦~~无需校正!ORG 0000H;单片机内存分配申明!TEMPER_L EQU 29H ;用于保存读出温度的低8位TEMPER_H EQU 28H ;用于保存读出温度的高8位FLAG1 EQU 38H ;是否检测到DS1820标志位A_BIT EQU 20H ;数码管个位数存放内存位置B_BIT EQU 21H ;数码管十位数存放内存位置MAIN: LCALL GET_TEMPER ;调用读温度子程序;显示范围00到99度,显示精度为1度;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29H的低4位;将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度;这个转化温度的方法非常简洁,无需乘于0.0625系数MOV A,29HMOV C,40 ;将28H中的最低位移入CRRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,ALCALL DISPLAY ;调用数码管显示子程序AJMP MAIN;这是DS18B20复位初始化子程序INIT_1820: SETB P3.4NOPCLR P3.4;主机发出延时537微秒的复位低脉冲MOV R1,#3TSR1: MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB P3.4 ;然后拉高数据线NOPNOPNOPMOV R0,#25HTSR2: JNB P3.4,TSR3 ;等待DS1820回应DJNZ R0,TSR2 ;延时LJMP TSR4TSR3: SETB FLAG1 ;置标志位,表示DS1820存在LJMP TSR5TSR4: CLR FLAG1 ;清标志位,表示DS1820不存在LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6 ;时序要求延时一段时间TSR7: SETB P3.4RET;读出转换后的温度值GET_TEMPER: SETB P3.4LCALL INIT_1820 ;先复位DS1820JB FLAG1,TSS2RET ;判断DS1820是否存在?若DS1820不存在则返回TSS2: MOV A,#0CCH ;跳过ROM匹配LCALL WRITE_1820MOV A,#44H ;发出温度转换命令LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒LCALL DISPLAYLCALL INIT_1820 ;准备读温度前先复位MOV A,#0CCH ;跳过ROM匹配LCALL WRITE_1820MOV A,#0BEH ;发出读温度命令LCALL WRITE_1820LCALL READ_18200 ;将读出的温度数据保存到35H/36HRET;写DS18B20的子程序(有具体的时序要求)WRITE_1820: MOV R2,#8 ;一共8位数据CLR CWR1: CLR P3.4MOV R3,#6DJNZ R3,$RRC AMOV P3.4,CMOV R3,#23DJNZ R3,$SETB P3.4NOPDJNZ R2,WR1SETB P3.4RET;读DS1820的程序,从DS1820中读出两个字节的温度数据READ_18200: MOV R4,#2 ;将温度高位和低位从DS1820中读出MOV R1,#29H ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00: MOV R2,#8 ;数据一共有8位RE01: CLR CSETB P3.4NOPNOPCLR P3.4NOPNOPSETB P3.4MOV R3,#9RE10: DJNZ R3,RE10MOV C,P3.4MOV R3,#23RE20: DJNZ R3,RE20RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RET;显示子程序DISPLAY: MOV A,29H ;将29H中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在aMOV A_BIT,B ;个位在bMOV DPTR,#NUMTAB ;指定查表启始地址MOV R0,#4DPL1: MOV R1,#250 ;显示1000次DPLOP: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P1,A ;送出个位的7段代码CLR P3.7 ;开个位显示ACALL D1MS ;显示1msSETB P3.7MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P1,A ;送出十位的7段代码CLR P3.5 ;开十位显示ACALL D1MS ;显示1msSETB P3.5DJNZ R1,DPLOP ;250次没完循环DJNZ R0,DPL1 ;4个250次没完循环RET;1MS延时(按12MHZ算)D1MS: MOV R7,#80DJNZ R7,$RET;7段数码管0~9数字的共阳显示代码NUMTAB: DB 081H,0CFH,092H,086H,0CCH,0A4H,0A0H,08FH,080H,084H温度控制流程图四:总结及体会在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。