单片机多功能温度计毕业设计.docx
- 文档编号:27758767
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:37
- 大小:146.55KB
单片机多功能温度计毕业设计.docx
《单片机多功能温度计毕业设计.docx》由会员分享,可在线阅读,更多相关《单片机多功能温度计毕业设计.docx(37页珍藏版)》请在冰豆网上搜索。
单片机多功能温度计毕业设计
摘要
本论文介绍的是基于AT89S51单片机数字钟和数字温度计设计,体现模块化设计思想。
论文重点阐述了硬件模块——MCU模块、温度的感应模块、时钟模块、控制模块、显示模块的设计。
软件同样采用模块化设计,软件模块——中断模块、温度转化模块、时间调整模块的设计。
温度是生产过程和科学实验中普遍而且重要的物理参数之一。
在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。
温度控制在生产过程中占有相当大的比例。
温度测量是温度控制的基础,技术已经比较成熟。
传统的测温元件有热电偶和二电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。
我们用一种相对比较简单的方式来测量。
我们采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55~125ºC,最高分辨率可达0.0625ºC。
DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
关键字:
微控制器,数字控制;温度计,数字钟,AT89S51,DS18B20。
Abstract
ThispaperintroducedthedesignofdigitalclockanddigitalthermometerbasedonMCUofAT89S51.thespecificprocessofhowthesystemhardwareandsoftwareachievedweredetaileddescriptionthroughthedesignofmultifunctiondigitalclockanddigitalthermometer.Themodulardesignandproduction,whichconsistedofMCUmodule,temperaturesensormodule,clockmoduleandtheassociatedcontrolmodule.Aswellashardwaredesigning,softwaredesignusethesamemethod,consistssuspensionmodule,timeadjustmoduleandtemperatureconersionmodule.temperatureistheproductionprocessandscientificexperimentsingeneralandoneoftheimportantphysicalparameter.Intheproductionprocess,inordertoefficientlycarryouttheproduction,tobeitsmainparameters,suchastemperature,pressure,flowcontrol,etc...Temperaturecontrolintheproductionprocessofalargeproportion.Temperaturemeasurementisthebasisoftemperature-controlled,morematuretechnology.Traditionalthermocoupleandtemperaturecomponentsarethesecondresistor.Thethermocoupleandthermalresistancearegenerallymeasuredvoltage,andthenreplacedbythecorrespondingtemperature,thesemethodsarerelativelycomplex,requiringarelativelylargenumberofexternalhardwaresupport.Weusearelativelysimplewaytomeasure.WeusetheUnitedStatesfollowingDALLASSemiconductorDS1820improvedaftertheintroductionofasmarttemperaturesensorDS18B20asthedetectionelement,atemperaturerangeof-55~125ºC,uptoamaximumresolutionof0.0625ºC.DS18B20canbedirectlyreadoutthetemperatureonthenorthside,andthree-wiresystemwithsingle-chipconnectedtoadecreaseoftheexternalhardwarecircuit,withlow-costandeasyuse.
Key words:
AT89S51microcontroller;digitalcontrol;thermometer;digitalclock;DS18B20.
第一章绪论............................................4
第二章设计任务与要求.................................6
2.1设计任务..........................................6
2.2设计要求..........................................6
第三章总体设计方案...............................7
3.1总体设计方案......................................7
3.1.1方案一.......................................7
3.1.2方案二.......................................7
3.2方案二的总体设计图................................7
3.2.1主控电路设计................................8
3.2.2显示电路设计................................8
3.2.3温度传感器DS18B20介绍.......................8
3.3DS18B20温度传感器与单片机的接口电路..............12
3.4系统整体硬件电路..................................13
第四章系统软件设计...............................15
4.1源程序............................................15
4.2主程序............................................24
4.3读出温度子程序....................................24
4.4温度转换命令子程序................................25
4.5计算温度子程序....................................25
4.6显示数据刷新子程序................................26
4.7时钟显示子程序....................................26
第五章调试过程...................................27
第六章总结与体会.................................28
致谢............................................29
参考文献..........................................30
第一章绪论
随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。
传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。
传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。
因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。
另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。
温度传感器是其中重要的一类传感器。
其发展速度之快,以及其应用之广,并且还有很大潜力。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。
本文利用单片机结合传感器技术而开发设计了这一温度监控系统。
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间。
手表当然是一个好的选择,但是,随着接受皮试的人数增加,到底是哪个人的皮试到时间却难以判断。
所以,要制作一个定时系统。
随时提醒这些容易忘记时间的人。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
第二章设计任务与要求
2.1设计任务
设计基于单片机控制的数字温度计和电子钟,本温度计属于多功能温度计。
2.2设计要求
(1)输出温度和时钟采用4位LED数码管显示。
(2)设计控制器使用MCS-51系列单片机,温度传感受器使用DS18B20,用4位数码管以并行传送数据。
(3)采用数字式温度计传感受器为检测元件,进行单点温度检测。
第三章总体方案设计
3.1总体设计方案
3.1.1方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路感温电路比较麻烦。
在设计时钟电路时,可以用时钟芯片,DS1302是DALLAS公司推出的涓流充电时钟芯片,内部包含实时时钟/日历和31字节的静态RAM。
它可以与微处理器通过简单的串行接口。
实时时钟/日历提供秒,分钟,小时,日期,月份,和一年的信息。
本月底日期会自动调整几个月少于31天,包括更正为闰年。
时钟运行或者在24小时或12小时格式的上午/下午指标。
接口的DS1302与微处理器简化使用同步串行通信。
只有三个电线需要沟通的时钟/内存:
I/O(数据线),以及时钟(串行时钟)。
数据还可以转到和时钟/RAM的1字节的时间或在突发的多达31个字节。
在DS1302的设计操作非常低的功耗和保存数据和时钟信息不到1μW。
在DS1302的前身是在DS1202。
除了基本的报时功能,DS1202,DS1302具有的附加功能的双电源引脚的主要和备用电源,可编程的涓流充电器VCC1,并增设7个字节的暂存记忆。
3.1.2方案二
由于用A/D转换比较麻烦,进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易直接读取温度值,进行转换,就可以满足设计要求。
在设计时钟电路时,由于实现的功能比较少,利用单片机内部资源,定时/计数器,中断系统就可以完成,需要在用时钟芯片,而且会增加外围电路。
3.2方案二的总体设计图
温度计、时钟电路设计总体设计框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用4位LED数码管以并行传送数据实现温度、时钟的显示。
图1
3.2.1主控制器
单片机AT89S51具有低电压供电和体积小等特点,只需要少量I/O口就能满足要求,很适合便携手持式半产品的设计使用系统可用二节电池供电。
3.2.2显示电路
显示电路采用4位共阳LED数码管,P2口控制数码管段选,P0口控制数码管位选,本设计采用三极管驱动。
3.2.3温度传感器
这里我们用到温度芯片DS18B20。
使用集成芯片,能够有效的减小外界的干扰,提高测量的精度,简化电路的结构。
使用集成芯片,已经慢慢的成为设计电路的一种趋势。
本系统使用温度芯片也正是顺应了这一趋势。
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2所示。
图2DS18B20内部结构
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图3所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的定义如图3所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRC
图3DS18B20字节定义
由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表2是一部分温度值对应的二进制温度数据。
表1DS18B20温度转换时间表
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
表2 一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
3.3DS18B20温度传感器与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
图4DS18B20与单片机的接口电路
3.4系统硬件的整体设计
系统整体硬件电路包括,传感器数据采集电路,温度显示电路,时钟显示电路,按键电路,复位电路,晶振电路,驱动电路,主板电路等,如图5所示
电路图中的按键复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重启单片机电源,就可以实现复位。
图5
第四章系统软件设计
4.1源程序
#include
#include"intrins.h"
#defineucharunsignedchar
#defineuintunsignedint
ucharmin,sec,hour,counts,flm,hsec,time[8];
unsignedintj=0;
unsignedchardispbitcode[8]={0xfe,0xfd,0xf7,0xfb};//位扫描
unsignedchardispcode[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xa7,0xFF};//共阳数码管段码
unsignedchardispbuf[4];
sbitP1_3=P1^0;
sbitP1_4=P1^4;
sbitP1_1=P1^5;
sbitDQ=P3^6;
bitflag_P=0,flag_M=0;
voiddelay(uintt)
{for(;t>0;t--);
}
voidtime1(void)interrupt3using0
{
hsec++;
TL1=0xF3;
TH1=0xD8;
TF1=0;
if(hsec==100)
{sec++;
hsec=0;}
if(sec==60)
{min++;
sec=0;}
if(min==60)
{hour++;
min=0;}
if(hour==24)
{hour=0;
}
}
voidadd_time(void)
{switch(counts)
{case1:
min++;
min=min%60;
break;
case2:
hour++;
hour=hour%24;
break;
}
return;}
voidsub_time(void)
{switch(counts)
{case1:
if(min==0){min=60;};
min--;
break;
case2:
if(hour==0){hour=24;};
hour--;
break;}
return;
}
voidcheck_button(void)
{if(P1_1==0&&flag_P==0)
{de
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 多功能 温度计 毕业设计