数字温度计设计毕业设计论文.docx
《数字温度计设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《数字温度计设计毕业设计论文.docx(33页珍藏版)》请在冰豆网上搜索。
![数字温度计设计毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2022-11/16/23b7055e-2f6a-49af-a897-b9f3d3185f3e/23b7055e-2f6a-49af-a897-b9f3d3185f3e1.gif)
数字温度计设计毕业设计论文
数字温度计设计
毕业论文(设计)原创性声明
本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:
日期:
毕业论文(设计)授权使用说明
本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。
有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。
学校可以公布论文(设计)的全部或部分内容。
保密的论文(设计)在解密后适用本规定。
作者签名:
指导教师签名:
日期:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它
基于单片机的DS18B20数字温度计设计
内容摘要:
随着现代信息化技术的飞速发展和传统工业改造的逐步实现,能独立工作的温度检测系统已广泛应用于各种不同的领域。
本文介绍了一个基于STC89C52单片机和数字温度传感器DS18B20的测温系统,并用LED数码管显示温度值,易于读数。
系统电路简单、操作简便,能任意设定报警温度并可查询最近的10个温度值,系统具有可靠性高、成本低、功耗小等优点。
关键词:
单片机数字温度传感器温度计
1引言
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,各种数字系统的应用也使人们的生活更加舒适。
数字化控制、智能控制为现代人的工作、生活、科研等方面带来方便。
其中数字温度计就是一个典型的例子。
数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温精确、功能多样话等优点。
其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用STC89C52单片机作控制器,数字温度传感器DS18B20测量温度,单片机接受传感器输出,经处理用LED数码管实现温度值显示。
2设计要求
2.1基本要求
实现实时温度显示,测温范围0~500C,误差50C以内。
2.2扩展功能
温度报警,能任意设定温度范围实现声光报警;
每隔10分钟记录一次温度数据,至少能查询过去10个时刻的温度情况。
3总体方案设计
3.1方案论证
3.1.1方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件,将随被测温度变化的电压或电流采样,进行A/D转换后就可以用单片机进行数据处理,实现温度显示。
这种设计需要用到A/D转换电路,增大了电路的复杂性,而且要做到高精度也比较困难。
3.1.2方案二
考虑到在单片机属于数字系统,容易想到数字温度传感器,可选用DS18B20数字温度传感器,此传感器为单总线数字温度传感器,起体积小、构成的系统结构简单,它可直接将温度转化成串行数字信号给单片机处理,即可实现温度显示。
另外DS18B20具有3引脚的小体积封装,测温范围为-55~+125摄氏度,测温分辨率可达0.0625摄氏度,其测量范围与精度都能符合设计要求。
以上两种方案相比较,第二种方案的电路、软件设计更简单,此方案设计的系统在功耗、测量精度、范围等方面都能很好地达到要求,故本设计采用方案二。
3.2总体设计框图
本方案设计的系统由单片机系统、数字温度传感器、LED显示模块、按键控制模块、温度报警模块组成,其总体架构如下图1。
图1系统总体方框图
4硬件设计
4.1单片机系统
1.本设计采用STC89C52单片机作为控制器,完成所有功能的控制,包括:
●DS18B20数字温度传感器的初始化和读取温度值
●LED数码管显示驱动与控制
●按键识别和响应控制
●温度设置和报警
●温度值的存储和读取
2.单片机系统电路原理图:
图2单片机系统原理图
4.2数字温度传感器模块
4.2.1DS18B20性能
●独特的单线接口仅需一个端口引脚进行通信
●简单的多点分布应用
●无需外部器件
●可通过数据线供电
●零待机功耗
●测温范围-55~+125℃,以0.5℃递增
●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃
●温度数字量转换时间200ms,12位分辨率时最多在750ms内把温度转换为数字
●应用包括温度控制、工业系统、消费品、温度计和任何热感测系统
●负压特性:
电源极性接反时,传感器不会因发热而烧毁,但不能正常工作
4.2.2DS18B20外形及引脚说明
图3DS18B20外形及引脚
●GND:
地
●DQ:
单线运用的数据输入/输出引脚
●VD:
可选的电源引脚
4.2.3DS18B20接线原理图
单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。
图4DS18B20接线原理图
4.2.4DS18B20时序图
主机使用时间隙来读写DS18B20的数据位和写命令字的位。
1.初始化时序如下图:
图5DS18B20初始化时序
2.DS18B20读写时序:
图6DS18B20读写时序
4.2.5数据处理
高速暂存存储器由9个字节组成,其分配如表5所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后。
图7字节分配
下表为12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,
实际温度=07D0H*0.0625=2000*0.0625=125℃。
例如-55℃的数字输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作运算),
实际温度=370H*0.0625=880*0.0625=55℃。
可见其中低四位为小数位。
图8DS18B20温度数据表
4.3显示电路
LED数码管显示采用动态扫描方式,能简化电路布线,节约单片机I/O端口。
段码和位码由单片机P0送出,分别用74HC673N锁存。
图9数码管驱动显示电路
4.4声光报警电路
当温度超过设定温度值时,实现声光报警,蜂鸣器鸣叫、8个发光二极管点亮。
蜂鸣器由单片机P2^3口控制,用三极管驱动,发光二极管接单片机P1口,由74HC673N锁存。
图10声光报警电路
4.5键盘输入电路
四个键分别连接单片机P3^4、P3^5、P3^6、P3^7构成独立式键盘,分别实现加、减、报警温度设定功能键和温度查询功能键。
图11键盘输入电路
5软件设计
5.1主程序模块
主程序需要调用3个子程序,分别为:
●实时温度显示子程序:
驱动数码管把实时温度值送出在LED数码管显示
●查询记录温度值子程序:
查询过去存储的温度值,最多可查询10个值
●温度设定、报警子程序:
设定报警温度值,当温度超过该值时产生报警,即驱动蜂鸣器鸣叫、8个发光二极管发光
主程序流程图:
图12主程序流程图
5.2读温度值模块
读温度值模块需要调用4个子程序,分别为:
●DS18B20初始化子程序:
让单片机知道DS18B20在总线上且已准备好操作
●DS18B20写字节子程序:
对DS18B20发出命令
●DS18B20读字节子程序:
读取DS18B20存储器的数据
●延时子程序:
对DS18B20操作时的时序控制
1.读温度值模块流程图:
图13读温度值子程序流程图
2.DS18B20初始化子程序流程图:
N
Y
图14DS18B20初始化子程序流程图
3.DS18B20写字节和读字节子程序流程图:
图15DS18B20写字节子程序流程图图16DS18B20读字节子程序流程图
5.3中断模块
中断采用T0方式1,初始值定时为50ms。
中断模块需调用两个子程序:
●读温度值子程序:
定时读取温度值,实时更新温度值
●记录温度值子程序:
定时记录温度值,供查询使用
把这两个子程序放在中断的原因是,不会因为调整报警温度或查询历史温度值而停止更新温度值和记录温度值。
中断模块流程图:
Y
N
图17中断模块流程图
5.4温度查询模块
温度查询模块需要接受按键输入,进入查询界面后,按加减键分别查询上一个和下一个历史温度值,并驱动数码管显示需要查询的温度值。
温度查询模块流程图如下:
N
Y
N
Y
N
Y
Y
N
N
Y
Y
N
N
Y
图18温度查询模块流程图
5.5温度设定、报警模块
此模块跟温度查询模块类似,需要接受按键输入,进入模块界面后,按加减键分别上调和下调设定报警温度值,当实时温度值超过设定值时驱动蜂鸣器发声,并点亮8位发光二极管,实现声光报警。
温度设定、报警模块流程图如下:
N
Y
N
Y
N
Y
Y
N
N
Y
Y
N
Y
N
N
Y
图19温度设定、报警模块流程图
5.6数码管驱动模块
本设计数码管通过锁存器接单片机P0口,采用动态扫描驱动7段LED数码管进行显示,需调用延时子程序以稳定显示。
模块流程图如下:
图20数码管驱动模块流程图
6源程序
#include
#defineucharunsignedchar
#defineuintunsignedint
/*************************变量定义************************************/
sbitDQ=P2^2;//ds18b20端口
sbitbeep=P2^3;//蜂鸣