基于单片机的数字温度测量仪的毕业设计论文.docx
- 文档编号:26526342
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:32
- 大小:223.28KB
基于单片机的数字温度测量仪的毕业设计论文.docx
《基于单片机的数字温度测量仪的毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字温度测量仪的毕业设计论文.docx(32页珍藏版)》请在冰豆网上搜索。
基于单片机的数字温度测量仪的毕业设计论文
基于单片机的数字温度测量仪的设计
系部:
学生姓名:
专业班级:
学号:
指导教师:
2012年10月26日
声明
本人所呈交的基于单片机的数字温度测量仪设计,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。
除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:
日期:
摘要………………………………………………………………………………………1
一、引言……………………………………………………………………………………2
(一)课题研究的背景及意义………………………………………………………………2
1.设计背景……………………………………………………………………………2
2.设计意义……………………………………………………………………………2
(2)设计方案论证…………………………………………………………………………2
(三)设计要求及设计思路…………………………………………………………………3
1.设计要求……………………………………………………………………………3
2.设计思路……………………………………………………………………………3
二、硬件设计………………………………………………………………………………4
(一)总设计框图……………………………………………………………………………4
(二)硬件电路设计…………………………………………………………………………4
1.主控制器AT89C51…………………………………………………………………4
2.复位与时钟电路……………………………………………………………………8
3.温度传感电路………………………………………………………………………9
4.液晶显示电路………………………………………………………………………11
5.按键输入电路………………………………………………………………………12
6.报警电路……………………………………………………………………………13
三、软件设计………………………………………………………………………………13
(一)主程序设计……………………………………………………………………………13
(二)子程序的设计…………………………………………………………………………14
1.读出温度子程序……………………………………………………………………14
2.温度转换命令子程序………………………………………………………………15
3.计算温度子程序……………………………………………………………………16
四、仿真与调试……………………………………………………………………………17
五、总结……………………………………………………………………………………19
六、致谢……………………………………………………………………………………20
七、参考文献………………………………………………………………………………20
附录一:
电路仿真图………………………………………………………………………21
附录二:
源程序……………………………………………………………………………21
【摘要】
随着时代的进步和发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,特别适合与控制有关的系统设计。
本文利用单片机AT89C51为核心控制器件,结合DS18B20传感器完成了一种数字温度计的设计,测量结果由液晶具体显示。
当测量温度超过设定的温度上下限时,LED灯闪烁实行报警。
该数字温度测量仪设计具有测量准确、误差小,功能较强等功能。
本文给出了具体的硬件电路,软件流程和主要的程序,并利用PROTUES软件完成性能仿真测试。
【关键词】:
AT89C51;DS18B20;上下限报警;液晶显示;
【ABSTRACT】
WiththeprogressofTheTimesanddevelopmentoftheapplicationofsinglechipmicrocomputer,iscontinuouslytofurther,becauseit,smallvolume,lowpowerconsumption,thepriceischeap,reliablework,useisconvenientwaitforacharacteristic,especiallysuitableforrelatedcontrolandsystemdesign.ThispaperusingthesinglechipmicrocomputerAT89C51asthecorecontroldevice,combiningDS18B20sensorscompletedadigitalthermometerdesign,measuringresultsbytheliquidcrystaldisplayspecific.Whenmeasuringtemperaturemorethansettemperaturefluctuationlimit,LEDlightsflickerthealarm.Thedigitaltemperaturemeasuringinstrumentdesignofmeasurementaccuracy,errorissmall,thefunctionismorestrongfunctions.Thispapergivesthespecificprogram,andusePROTUESsoftwareperformancesimulationtest.
【Keywords】:
AT89C51;DS18B20;UpperLimitAlarm;LCDdisplay;
一、引言
(一)课题研究的背景及意义
1.设计背景
温度是日常生活最常用到的一个物理量。
人民的生活与环境与温度息息相关,在工业生产过程中要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要意义。
测量温度最常用的工具就是温度计。
最常用的温度计有酒精温度计、水银温度计、气体温度计等利用物质的物理特性制作的传统温度计,这类温度计原理简单,价格便宜,但是读数不方便、测温时间长、精度低、测量范围有限,如果使用不当还有一定的危险性,可能造成环境污染等不良后果,其适用范围受到了较大限制。
随着新技术的不断开发与应用,单片机技术在近年来发展十分迅速。
单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,已经被广泛的应用于工业、农业和大众日常生活当中。
利用单片机为核心器件制作的电子温度计,能够快速有效的解决温度的采集和数据处理等一系列问题,很好的克服了传统温度计所带来的各种不便,具有广泛的适用性。
本文将利用单片机为主要控制器件,以温度传感器构建数据采集电路,对温度进行实时检测与控制,将测量结果利用液晶屏显示。
本设计具有读数方便,测温范围广,测温准确安全等优点,具有一定的实用意义。
2.设计意义
1)数字温度计以单片机作为核心控制器件,通过构建数据采集模块、显示模块和报警模块,将所测温度采集、处理后显示。
整个设计电路结构简单、功能清晰、读数方便、显示清晰,可用于工业、农业生产或科研实验室使用。
2)通过整个设计的开展,学习相关文献的检索、专业软件的学习能力,了解现代化仪器仪表的设计流程,将以往所学理论与实践有机结合,熟悉单片机系统开发、研制的过程,软硬件设计的方法、内容及步骤,提高自身专业水平与素养。
(二)设计方案论证
根据设计思路,为了能更好的让数字温度测量仪更加准确的显示数据,进行以下的方案论证。
1.芯片选择
本设计选用美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4KB的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚,并集成了Flash程序存储器,既可在线编程(ISP),也可用传统方法进行编程的AT89C51芯片。
低价位的AT89C51单片机可应用于许多高性价比的场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。
2.传感器选择
传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,其缺点有:
硬件电路复杂;软件调试复杂;制作成本高。
本设计采用温度传感器DS18B20,可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有成本低和易使用的特点。
由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。
3.显示器件选择
显示元件有很多种,其中数码管显示方案简单易行,但所需的元件较多,且不容易进行操作,可读性差,显示格式受限制。
本设计采用液晶显示器件,液晶显示平稳、省电、美观,更容易实现题目要求,可操作性强,也易于读数,采用RT1602两行十六个字符的显示,能同时显示其它的信息如日期、时间、星期、温度。
(三)设计要求及设计思路
1.设计要求
1)能够测量出温度值;
2)能够显示-10℃~100℃的温度;
3)测量误差<1℃;
4)可设定温度的上下限,过限报警;
5)利用PROTUES软件能完成性能仿真测试。
2.设计思路
1)根据设计要求,选择AT89C51单片机作为整个核心控制器件,完成对转换好的数字信号的采集以及计算出被测温度的值并送入显示电路模块;
2)采用DS18B20作为温度传感器,实现对输入的温度值的采集与转换为数字值,直接连接单片机;
3)所测温度结果采用液晶显示;
4)转换后的温度值与设置的温度报警限比较,超过上下限时,控制LED灯闪烁报警。
二、硬件设计
(一)总设计框图
本设计以89C51单片机为核心器件,整体硬件电路包括:
传感器数据采集电路,单片机主控电路、温度显示电路,上下限设定及报警电路。
总设计框图主要由主控制器AT89C51、电源、单片机时钟和复位电路、报警设置、液晶显示、温度传感器组成。
总设计框图见图2-1。
图2-1总设计框图
(二)硬件电路设计
1.主控制器AT89C51
AT89C51是美国ATMEL公司生产的一种高性能、低功耗、带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的8位CMOS单片微型计算机芯片。
AT89C51可靠性高、实时性好、速度快、系统掉电后重要数据和状态信息不会丢失,其性能价格比远高于同类芯片,因此使用也更加广泛。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1)内部结构
AT89C51芯片为40引脚双列直插式封装,其内部结构框图见图2-2。
图2-2AT89C51内部框图
2)主要技术指标和特性
a.与MCS-51指令系统兼容
b.4K字节可编程闪烁存储器
c.寿命:
1000写擦循环
d.数据保留时间:
10年
e.全静态工作:
0Hz-24MHz
f.三级程序存储器锁定
g.128×8位内部RAM
.片内振荡器和时钟
3)引脚排列
AT89C51的引脚排列见图2-3。
图2-3AT89C51的引脚排列
VCC——供电电压。
GND——接地。
P0口——P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口——P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口——P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口——P3口管脚是8个带内部上拉电阻的双向IO口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了一般IO线的功能外,还具有更为重要的第二功能。
RST——复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE——当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
——外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
——当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。
XTAL1——反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2——来自反向振荡器的输出。
单片机的P0口接上排阻与显示屏LM016L的D0~D7相连接,P2.0与P2.2口分别与显示屏LM016L的RS,E脚相连,组成显示模块。
P1.0~P1.3口接按键开关,用来调节上下限,组成按键输入模块。
P2.3口与LED灯和按键开关相连接,组成报警电路。
P2.4口与约4.7K左右的上拉电阻和U2的DQ口相连,组成温度传感模块
与按键相连,RST接电容C3与电容R1,组成复位电路。
XTAL1与XTAL2并联接上电容C1、C2、晶振,组成时钟电路。
2.复位与时钟电路
复位电路:
单片机的复位电路见图2-4。
该复位电路采用手动复位与上电复位相结合的方式。
当按下按键S1时,VCC通过R1电阻给复位输入端口一个高电平,实现复位功能,即手动复位。
上电复位就是VCC通过电阻R1和电容C构成回路,该回路是一个对电容C3充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能。
由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。
图2-4复位电路
时钟电路:
89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路,对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF士10pF,而如果使用陶瓷谐振器,建议选择40pF士l0pF。
时钟电路见图2-5。
图2-5时钟电路
3.温度传感电路
1)DS18B20性能
a.独特的单线接口仅需一个端口引脚进行通信。
b.简单的多点分布应用。
c.无需外部器件。
d.可通过数据线供电。
e.零待机功耗。
f.温度数字量转换时间200ms,12位分辨率时最多在750ms内把温度转换为数字。
g.应用包括温度控制、工业系统、消费品、温度计和任何热感测系统负压特性:
电源极性接反时,传感器不会因发热而烧毁,但不能正常工作。
2)DS18B20外形及内部结构
DS18B20内部结构见图2-6,主要由4部分组成:
64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
图2-6DS18B20的内部结构
DS18B20的外形及管脚排列见图2-7。
图2-7DS18B20的外形及管脚排列
3)DS18B20的测温原理
DS18B20测温原理:
低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2-8DS18B20的测温原理框图
单总线接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。
DS18B20接线原理图见图2-9。
图2-9DS18B20接线原理图
4.液晶显示电路
液晶电路接线原理图见图2-10。
图2-10液晶电路接线原理图
LM016L引脚介绍:
Vss(1脚):
一般接地。
Vdd(2脚):
接电源。
Vee(3脚):
液晶显示器对比度调整端,接电源时对比度最弱,接地时对比度最高
RS(4脚):
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
RW(5脚):
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
E(6脚):
E(或EN)端为使能(enable)端,下降沿使能。
DB0(7脚):
低4位三态、双向数据总线0位(最低位)。
DB1(8脚):
低4位三态、双向数据总线1位。
DB2(9脚):
低4位三态、双向数据总线2位。
DB3(10脚):
低4位三态、双向数据总线3位。
DB4(11脚):
高4位三态、双向数据总线4位。
DB5(12脚):
高4位三态、双向数据总线5位。
DB6(13脚):
高4位三态、双向数据总线6位。
DB7(14脚):
高4位三态、双向数据总线7位(最高位)。
寄存器选择控制见表2.1。
表2.1寄存器选择控制
RS
RW
操作说明
0
0
写入指令寄存器(清除屏等)
0
1
读busyflag(DB7),以及读取位址计数器(DB0~DB6)值
1
0
写入数据寄存器(显示各字型等)
1
1
从数据寄存器读取数据
用89C51的P0口作为数据线,用P2.0、P2.2分别作为LCD的E、RS。
其中E是下降沿触发的片选信号,RS是寄存器选择信号本模块设计要点如下:
显示模块初始化:
首先清屏,再设置接口数据位为8位,显示行数为1行,字型为5×7点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。
向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。
5.按键输入电路
选用四个按键开关,分别与P1.0,P1.1,P1.2,P1.3口相连。
与P1.0口相接的按键表示“上限加1”;与P1.1口相接的按键表示“上限减1”;与P1.2口相接的按键表示“下限加1”;与P1.3口相接的按键表示“下限减1”。
设计中默认上下限为10℃~30℃。
按键输入电路连接图见图2-11。
图2-11按键输入电路
6.报警电路
由LED灯与按键开关与单片机AT89C51的P2.3口相连。
默认上下限为10℃~30℃,显示屏显示的温度不在10℃~30℃内,D1灯闪烁实行报警。
当报警时,可以调节上下限,扩大上下限的范围,使显示的温度在其内,从而停止报警。
也可以通过断开与D1相连的开关,使其断电,停止报警。
报警电路连接图见图2-12。
图2-12报警电路
具体电路仿真图详见附录一。
三、软件设计
(一)主程序的设计
整个设计的软件部分用C语言编写。
主程序的主要功能是负责读出并处理DS18B20的测量的当前温度值,温度的实时显示,并根据设置的上下限判断是否报警。
系统开始运行时,温度传感器测量并计算温度值通过P2.4口传输进单片机里进行处理,经过处理后的数据再通过P0口传输到显示屏显示。
通过按键设置温度报警上下限,当超过报警界限时单片机将相应的数据通过P2.3口传输进行光报警。
其程序流程见图3-1。
图3-1主程序流程图
(二)子程序的设计
1.读出温度子程序
读出温度子程序:
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不进行温度数据的改写。
见图3-2。
图3-2读出温度子程序
2.温度转换命令子程序
温度转换命令子程序:
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辩率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
见图3-3。
图3-3温度转换命令子程序
3.计算温度子程序
计算温度子程序:
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。
见图3-4。
图3-4设计温度子程序
具体源程序详见附录二。
四、仿真与调试
(一)软件调试
软件调试的主要任务是排查错误,其中错误类型主要包括逻辑错误和功能错误,有些错误是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。
Proteus软件可以对以微控制器的设计和所有的周围电子器件一起仿真为基础,用户甚至可以实时采用例如LEDLCD、键盘等动态外设模型来对设计进行交互的仿真。
Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。
Proteus可以完成单片机系统原理图电路绘制,更为显著的特点是可以与keil软件结合进行编程仿真调试。
1.源程序的调试结果
本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真采用Proteus软件,而程序方面,用源程序,用Keil软件将程序写入单片机。
程序无误,并生成.hex文件。
程序写入单片机显示正确结果见图4-1。
图4-1程序写入单片机显示正确结果
2.仿真结果显示
上下限默认为10℃~30℃时显示屏中S代表上限,X代表下限。
当温度为11℃时,灯不闪烁,不报警。
见图4-2。
图4-2显示11℃,不报警
当温度为31℃,超过上下限,灯闪烁报警。
见图4-3。
图4-3超过上限报警
调节按键开关改变上下限,使S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 温度 测量仪 毕业设计 论文