数字温度计课程设计报告
- 格式:doc
- 大小:1.80 MB
- 文档页数:21
数字温度计DS18B20课程设计报告1. 课程设计背景数字温度计是一款可以测量温度并输出数字信号的电子设备。
它具有高精度、可编程、低功耗等优点,因此在很多领域都有广泛应用,比如环境温度监测、工业控制、食品加工等。
DS18B20是一款数字温度传感器,它以数字方式输出采集到的温度值,精度高达±0.5℃,提供了多种通信协议,应用灵活。
在本次课程设计中,我们将学习如何使用DS18B20来制作一款数字温度计。
2. 课程设计目标在本次课程设计中,我们的目标是:1.学习数字温度计的工作原理和基本构成;2.掌握DS18B20的使用方法和通信原理;3.制作一款数字温度计,并进行温度测量和数据传输。
3. 课程设计内容3.1 数字温度计的工作原理数字温度计的工作原理是利用温度传感器采集温度信息,然后通过模数转换器(ADC)将模拟信号转换成数字信号,并且通过数字信号处理单元进行处理,并显示在屏幕上。
温度传感器一般分为两种类型,即模拟温度传感器和数字温度传感器。
3.2 DS18B20的使用方法和通信原理DS18B20可以通过多种通信协议与主控板进行通信,如1-wire协议、I2C协议等。
1-wire协议是一种仅使用单个总线的串行协议,利用单总线实现数据传输。
3.3 制作数字温度计我们可以通过编程语言来控制DS18B20进行温度采集,并用LCD屏幕显示温度值。
首先要准备所需的材料和工具,包括Arduino开发板、DS18B20传感器、LCD显示屏、杜邦线、面包板等。
具体步骤如下:•连接DS18B20传感器•连接LCD显示屏•编写程序4. 课程设计成果经过学习和实际操作,我们可以掌握数字温度计的工作原理和基本构成,以及DS18B20的使用方法和通信原理。
同时,我们可以独立制作一款数字温度计,在温度测量和数据传输方面有了实际经验。
这些知识和技能对于我们学习和研究电子技术都非常有帮助。
5.通过本次课程设计,我们学习了数字温度计的工作原理和基本构成,以及DS18B20的使用方法和通信原理。
课程设计报告书---数字温度计一、选题背景本实验课题是基于AT89C51单片机设计一个温度范围为-20-80℃,分辨率<±0.5℃的数字温度计。
设计实验中,考虑到A/D转换以及放大电路等各种因素,我组采用DS18B20温度传感器,在数码管显示方面,我们采用了LCD1602数码管。
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理如图1所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
LCD1602的8根数据线和3根控制线E,RS和R/W与单片机相连后即可正常工作。
一般应用中只须往LCD1602中写入命令和数据,因此,可将LCD1602的R/W读/写选择控制端直接接地,这样可节省1根数据线。
VO引脚是液晶对比度调试端,通常连接一个10kΩ的电位器即可实现对比度的调整;也可采用将一个适当大小的电阻从该引脚接地的方法进行调整,不过电阻的大小应通过调试决定.LCD1602的引脚图见下图2.图1.DS18B20原理图图2.LCD1602引脚图二、方案论证(设计理念)DS18B20温度传感器具有体积小,硬件开销低,抗干扰能力强,精度高的特点,同时,它也具有耐磨耐碰,体积小,使用方便,封装形式多样的特点。
实验要求用到A/D转换,DS18B20正好对应的就是数字信号输出。
因为我们需要显示的内容并不是很多,所以我们决定使用LCD1602显示屏,它是2行每16字符/行的显示屏,规划第一行显示温度,第二行显示温度是否超过阈值。
LCD1602的使用也非常简单方便。
整体来说该实验并不是很复杂,所以我们用到的程序以及设备也不会很麻烦,构思起来也比较清晰。
三、过程论述我们首先着力的是Keil程序编写,主要程序见图3。
数字温度计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单片机在工控、测量、仪器仪表中应用还是比较广泛的。
数字温度计课程设计报告范文主要采用单片机实现数字温度计功能,其中包含硬件和软件的实现部分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进行一次。
数字温度计设计报告数字温度计设计报告课程名称:电⼦课程设计院别:武警⼯程学院专业: 指挥⾃动化班级:⼆队⼀区队姓名:王凯(03) ⽥腾浩 (23)指导教师:邹涛时间: 2010年1⽉12⽇主要内容:设计⼀个数字温度计,测量范围:0~100 O C。
温度的实时LED数字显⽰。
测量温度信号为模拟量。
基本要求:1.画出数字温度计的结构框图。
2.画出系统原理电路图。
3.⽤MULTISIM进⾏仿真实验。
4.按要求完成课程设计报告,交激光打印报告和电⼦⽂档。
主要参考资料:[1] 阎⽯.数字电⼦技术基础[M].北京:⾼等教育出版社,2001.[2] 彭介华.电⼦技术课程设计指导[M].北京:⾼等教育出版社,1997.[3]孙梅⽣.电⼦技术基础课程设计[M].北京:⾼等教育出版社,1998.[4]⾼吉祥.电⼦技术基础实验与课程设计[M].北京:电⼦⼯业出版社,2002.完成期限⼀、任务技术指标主要内容:设计⼀个数字温度计,测量范围:0~100 O C。
温度的实时LED数字显⽰。
测量温度信号为模拟量。
基本要求:1.画出数字温度计的结构框图。
2.画出系统原理电路图。
3.⽤MULTISIM进⾏仿真实验。
4.按要求完成课程设计报告,交激光打印报告和电⼦⽂档⼆、总体设计思想1.基本原理由于温度计的应⽤很⼴,所以温度计的设计也不完全⼀样。
以前⼀般采⽤热电偶、玻璃液体温度计、双⾦属温度计、压⼒式温度计、热电阻和⾮接触式温度计等进⾏温度测量。
其中热电偶的温度测量范围较宽,它⽆需使⽤驱动电源即可直接产⽣电压(温差电势)信号,该信号既可⽤直流测量仪器(如电位差计、数字电压表、毫伏计等)读取,以通过热电偶温度特性分度表查出对应的温度;也可以⽤线性校正电路将⼩信号电压放⼤后,通过显⽰仪表的刻度读数。
在某些输油、输⽓管道应⽤中,往往要求对温度进⾏长时间监测,且要求能够快速准确地读数。
此时,上述各类温度计则难以胜任。
⽽如果将热电偶产⽣的热电动势转换成数字信号后由单⽚机进⾏数据处理,并通过液晶来显⽰其温度结果,这种⽅法反应迅速,测量精度⾼,功耗⼩,显⽰直观。
考试序号:11数字温度计设计报告姓名:刘慧学号:14122502243班级:电子12-1BF指导老师:梅孝安完成时间:2014年12月25日湖南理工学院物理与电子学院目录一、引言 (2)二、设计任务与要求 (2)三、设计方案 (3)四、硬件电路设计 (4)4.1、主控电路 (4)4.2、显示电路 (6)4.3、测温电路 (6)五、设计原理 (7)六、系统软件设计 (8)6.1子程序 (8)6.2读出温度子程序 (9)6.3设计测试 (10)七、设计感言 (11)八、参考文献 (12)九、附录 (13)一、引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用LCD160液晶屏实现温度显示,能准确达到以上要求。
二、设计任务与要求通过课程设计的教学实践,进一步学习、掌握单片机应用系统的有关知识,加深了解单片机的工作原理。
初步掌握PROTEUS软件的使用及简单单片机应用系统的硬件设计、软件编程及基本调试方法。
提高动手实践能力、提高科学的思维能力。
设计基本要求:(1)数字式温度计测温范围在-55℃~+125℃;(2)误差在+0.5℃以内;(3)采用LCD160液晶屏显示;三、设计方案本数字温度计采用DS18B20温度传感器。
DS18B20的内部3脚(或8脚)封装。
使用特有的温度测量技术,将被测温度转换成数值信号。
3.0~5.5V 的电源供电方式和寄生电源供电方式。
ROM 由64位二进制数字组成,共分为八个字节,RAM 由64位二进制数字组成,共分为8个字节,RAM 由9个字节的高速暂存器和非易失性电写ROM 组成。
阜阳师范学院物理与电子科学学院电子信息科学与技术专业课程设计题目数字温度计设计队员姓名张荣军, 桂乾,闫利平,王凤,王玉成班级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:程序代码引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
单片机数字温度计课程设计报告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)二.概要设计 (1)三.硬件电路设计 (3)四.系统软件设计 (5)五.软件仿真 (8)六.实际连接与调试 (9)七.本次课设的收获与感受 (11)附录(程序源代码) (12)一.需求分析功能要求:测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。
设计要求:(一)功能要求(1) 由4位数码管显示当前温度。
(2) 具备报警,报警门限通过键盘设置。
(3) 精度为0.5℃。
(二)画出参考的电路原理图(三)画出主程序及子程序流程图、画出MCS51内部RAM 分配图,并进行适当地解释。
(四)写出实现的程序及实现过程。
并进行适当地解释说明。
二.概要设计(一)方案选择由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
(二)系统框图该系统可分为以下七个模块:(1)控制器:采用单片机STC89C52对采集的温度数据进行处理;(2)温度采集:采用DS18B20直接向控制器传输12位二进制数据;(3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值;(4)门限设置:主要实现模式切换及上下门限温度的调节;(5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光;(6)复位电路:对整个系统进行复位;(7)时钟振荡模块:为整个系统提供统一的时钟周期。
(三)重要器件及其相关参数(1)单片机STC89C52P0.0~P0.7:通用I/O引脚或数据低8位地址总线复用地址;P1.0~P1.7:通用I/O引脚;P2.0~P2.7:通用I/O引脚或高8位地址总线复用地址;P3.0~P3.7:通用I/O引脚或第二功能引脚(RxD、TxD、INT0、INT1、T0、T1、WR、RD);XTAL1、XTAL2:外接晶振输入端;RST/Vpd:复位信号输入引脚/备用电源输入引脚;Vcc:接+5V电源;Vss:地端。
数字温度计课程设计一、引言本文档旨在设计一门名为“数字温度计”的课程,旨在教授学生如何设计并制作一个简单的数字温度计。
通过这门课程,学生将了解温度的概念、温度测量的原理,并通过实践操作来设计、制作和调试一个数字温度计原型。
二、课程大纲1. 课程简介在本节课中,我们将介绍本门课程的内容、目标和教学方法。
2. 温度的概念和单位这一节课中,我们将学习温度的基本概念,温度的不同单位以及它们之间的转换关系。
3. 温度测量的原理在本节课中,我们将讲解温度测量的一些基本原理,包括使用热敏电阻、红外线传感器和半导体温度传感器等。
4. 温度传感器的选择和使用这节课我们将学习如何选择合适的温度传感器,并了解它们的使用方法和注意事项。
5. 数字温度计的设计与制作在本节课中,我们将介绍数字温度计的基本原理和电路设计。
学生们将分组进行设计并制作一个数字温度计原型。
6. 数字温度计的调试和应用这节课中,学生需要将制作好的数字温度计原型进行调试,并学习如何将其应用到实际生活中。
7. 课程总结和展望在最后一节课中,我们将对整个课程进行总结,并展望学生们在将来可以进一步深入研究的方向。
三、教学方法本门课程采用以下教学方法:1.授课:教师将通过讲解的方式,将温度概念、温度测量原理等知识传达给学生。
2.实验:学生将参与到温度计设计与制作的实验中,通过实际操作来理解概念和原理。
3.小组讨论:学生将分组进行温度计设计的讨论和合作,提高团队合作和问题解决能力。
4.实际应用:学生将通过调试和应用数字温度计原型,加深对温度测量的理解和实践能力。
四、课程评估本门课程的评估主要分为以下几个方面:1.实验成果:学生根据实验设计制作的数字温度计原型的质量和完成情况。
2.调试和应用:学生能否成功调试数字温度计原型,并将其应用到实际生活中。
3.报告和展示:学生需要撰写相关实验报告,并进行课程展示,展示他们的学习成果和理解。
五、参考资料以下是一些参考资料,供学生们深入了解和学习:1.电子技术基础教程2.温度传感器原理与应用3.温度计原理与设计以上是对《数字温度计课程设计》的简要说明,希望这门课程能够为学生们提供实践操作和实际应用的机会,帮助他们更深入地理解温度测量的原理与方法,培养他们的实践能力和问题解决能力。
一.数字温度计的总体方案设计根据系统设计的功能,本时钟温度系统的设计必须采用单片机软件系统实现,用单片机的自动控制能力来测量、显示温度数值。
初步确定设计系统由单片机主控模块、测温模块、显示模块共3个模块组成,电路系统框图如图1.1所示。
图1.1 系统基本方框图对于单片机的选择,如果用8051系列,由于它没有内部RAM,系统又需要一定的内存存储数据。
AT89S52是一个低功耗、高性能CMOS 8位的单片机,片内含8k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,兼容标准MCS-51指令系统及80C51引脚结构,功能强大的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
而AT89S52与AT89C51相比,外型管脚完全相同,AT89C51的HEX程序无须任何转换可直接在AT89S52运行,且AT89S52比AT89C51新增了一些功能,相比较后,在本设计中选用AT89S52更能很好的实现温度计控制功能。
测温电路可以使用热敏电阻之类的器件,利用其感温效应,将被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据处理。
但是这种感温电路比较复杂,且采用热敏电阻精度低,重复性、可靠性都比较差。
如果采用温度传感器DS18B20可以减少外部硬件电路,而且可以很容易直接读取被测温度值,进而转换,且成本低、易使用,可以很好的满足设计要求。
所以本文采用传感器DS18B20代替传统的测温电路。
温度的显示可以采用LED数码管来显示,LED亮度高、醒目,但是电路复杂,占用资源多且信息量小。
而采用液晶显示器有明显的优点:工作电流比LED 小几个数量级,功耗低;尺寸小,厚度约为LED的1/3;字迹清晰、美观、使人舒服;寿命长,使用方便,可得性强。
故本设计采用LCD来显示温度。
二、系统器件的具体选择2.1单片机的选择本次设计采用的是单片机AT89C52。
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
图2.1 PDIP封装的AT89C52 引脚图AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。
RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V 电源的正负端。
P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C 总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
2.2 温度传感器的选择2.2.1 DS18B20的简单介绍DS18B20温度传感器是一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:①独特的单线接口仅需要一个端口引脚进行通信;②多个DS18B20可以并联在惟一的三线上,实现多点组网功能;③无须外部器件;④可通过数据线供电,电压范围为3.0~5.5V;⑤零待机功耗;⑥温度以9或12位数字;⑦负电压特性,电极接反时,温度计不会因发热而烧毁,只是不能正常工作。
2.2.2 DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列、各种封装形式如图2.3 所示,DQ 为数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
图2.2 外部封装形式 图2.3 DS18B20的电路DS18B20采用3脚PR -35封装或8脚SOIC 封装,其内部结构框图如图2-4所示。
图2-4 DS18B20内部结构64位ROM 的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC 检验码,这也是多个DS18B20可以采用一线进行通信的原因。
I/O C64位ROM 和 单线接口 高速缓存 存储器与控制逻温度传感器 高温触发器TH低温触发器TL 配置寄存器8位CRC 发生器 VddDS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为9字节的存储器。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
2.2.3 DS18B20的测温原理DS18B20的温度值的位数因分辨率不同而不同,温度转换时的最大延时为750ms。
DS18B20测温原理如图2.5所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
图2.5 DS18B20测温原理2.2.4 DS18B2的外部电路图根据设计要求,传感器的硬件电路图如图2.6所示。
图2.6 DS18B20外部电路图三.程序流程图3.1 DS18B20温度计主程序流程图图3.2 读出温度子程序流程图图3.3计算温度子程序图3.4显示数据刷新子程序流程图四.Proteus仿真调试结果及分析温度计电路设计原理图如图4.1所示,控制器使用单片机AT89C2052,温度计传感器使用DS18B20,用液晶实现温度显示。
本温度计大体分三个工作过程。
首先,由DS18820温度传感器芯片测量当前的温度,并将结果送入单片机。
然后,通过89C2052单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入液晶显示模块。
最后,SMC1602A芯片将送来的值显示于显示屏上。
由图4.1可看到,本电路主要由DSl8820温度传感器芯片、SMCl602A液晶显示模块芯片和89C2052单片机芯片组成。
其中,DSI8B20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。
图3.1 温度计电路设计仿真图五.硬件调试结果及分析5.1软件调试根据流程图编写程序软件。
本次设计系统的调试以程序的调试为主。
程序的调试我们采用Keil C51.Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。
5.2系统调试软硬件分别调试完成以后,将程序下载入单片机中,电路板接上电源,按刷新按钮LCD显示当前温度。
用手去碰触温度传感器,按刷新按钮,温度显示值出现变化,显示当前手的温度值。
完成了我们预期的要求。
六.设计感受与见解本次综合实训是针对MCS-51系列的单片机芯片STC89C52来设计一个数字温度计,该设计充分利用了温度传感器DS18B20功能强大的优点,如DS18B20可以直接读出被测温度值,进行转换;而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,大大简化了硬件电路,也使得该数字温度计不仅具有结构简单、成本低廉、精确度较高、反应速度较快、数字化显示和不易损坏等特点,而且性能稳定,适用范围广,因此特别适用于对测温要求比较准确的场所。
在这次设计中,熟悉了制作一个产品的总体流程,能熟练使用一些必要的设计工具和仿真工具等。
通过选认元件,连线,调试检测等过程,锻炼自己的理论联系实际的能力和实际操作能力,从而综合性地巩固所学的知识,为将来的工作做一次实战演习。
经过将近2周的综合实训,终于完成了我的数字温度计的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次实训中的最大收获。
七.附件一:元器件清单STC89C51 1个温度传感器DS18B20 1个插针1排LCD1602 1个40脚插座1个12MHZ晶振1个电容30PF 2个22UF 1个电阻10K 2个4.7K 1个附件二:源程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P3^7;//ds18b20与单片机连接口sbit RS=P3^0;sbit RW=P3^1;sbit EN=P3^2;unsigned char code str1[]={"temperature: "};unsigned char code str2[]={" "};uchar data disdata[5];uint tvalue;//温度值uchar tflag;//温度正负标志/*************************lcd1602程序**************************/ void delay1ms(unsigned int ms)//延时1毫秒(不够精确的){unsigned int i,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);void wr_com(unsigned char com)//写指令// { delay1ms(1);RS=0;RW=0;EN=0;P2=com;delay1ms(1);EN=1;delay1ms(1);EN=0;}void wr_dat(unsigned char dat)//写数据// { delay1ms(1);;RS=1;RW=0;EN=0;P2=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;void lcd_init()//初始化设置//{delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);}void display(unsigned char *p)//显示// {while(*p!='\0'){wr_dat(*p);p++;delay1ms(1);}}init_play()//初始化显示{ lcd_init();wr_com(0x80);display(str1);wr_com(0xc0);display(str2);}/*****************ds1820程序*********************************/ void delay_18B20(unsigned int i)//延时1微秒{while(i--);}void ds1820rst()/*ds1820复位*/{ unsigned char x=0;DQ = 1; //DQ复位delay_18B20(4); //延时DQ = 0; //DQ拉低delay_18B20(100); //精确延时大于480usDQ = 1; //拉高delay_18B20(40);}uchar ds1820rd()/*读数据*/{ unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){ DQ = 0; //给脉冲信号dat>>=1;DQ = 1; //给脉冲信号if(DQ)dat|=0x80;delay_18B20(10);}return(dat);}void ds1820wr(uchar wdata)/*写数据*/ {unsigned char i=0;for (i=8; i>0; i--){ DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata>>=1;}}read_temp()/*读取温度值并转换*/ {uchar a,b;ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0x44);//*启动温度转换*/ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0xbe);//*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x0fff)tflag=0;else{tvalue=~tvalue+1;tflag=1;}tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数return(tvalue);}/*******************************************************************/ void ds1820disp()//温度值显示{ uchar flagdat;disdata[0]=tvalue/1000+0x30;//百位数disdata[1]=tvalue%1000/100+0x30;//十位数disdata[2]=tvalue%100/10+0x30;//个位数disdata[3]=tvalue%10+0x30;//小数位if(tflag==0)flagdat=0x20;//正温度不显示符号elseflagdat=0x2d;//负温度显示负号:-if(disdata[0]==0x30){disdata[0]=0x20;//如果百位为0,不显示if(disdata[1]==0x30){disdata[1]=0x20;//如果百位为0,十位为0也不显示}}wr_com(0xc0);wr_dat(flagdat);//显示符号位wr_com(0xc1);wr_dat(disdata[0]);//显示百位wr_com(0xc2);wr_dat(disdata[1]);//显示十位wr_com(0xc3);wr_dat(disdata[2]);//显示个位wr_com(0xc4);wr_dat(0x2e);//显示小数点wr_com(0xc5);wr_dat(disdata[3]);//显示小数位}/********************主程序***********************************/ void main(){ init_play();//初始化显示while(1){read_temp();//读取温度ds1820disp();//显示}}九.附录三:实物图及使用说明说明:按键刷新温度。