完整版基于AT89C51单片机控制的数字温度计毕业设计论文.docx
《完整版基于AT89C51单片机控制的数字温度计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《完整版基于AT89C51单片机控制的数字温度计毕业设计论文.docx(23页珍藏版)》请在冰豆网上搜索。
![完整版基于AT89C51单片机控制的数字温度计毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-2/9/e16bf4ac-f36b-4655-8221-7c78a5a8c8e8/e16bf4ac-f36b-4655-8221-7c78a5a8c8e81.gif)
完整版基于AT89C51单片机控制的数字温度计毕业设计论文
基于AT89C51单片机控制的数字温度计设计
王珍珍
(吉首大学张家界学院,湖南张家界427000)
摘要
数字温度计操作简单,灵活,方便,已经广泛的应用于生活的各个领域。
本课题研究了基于AT89C51单片机控制的数字温度计设计技术。
DS1620芯片是测量温度的器件,能够输出9位二进制的温度值;从DS1620传送温度数据到AT89C51,温度超过设定数值就会报警;AT89C51采集温度数据发送到七段数码管;然后数码管上就有温度显示,可以直接读取温度值。
从键盘输入数据,设定报警温度。
用单片机汇编语言编辑程序,用Protel画出系统的原理图,并对系统的各个模块进行详细的设计与分析。
系统的设计特点是引入了单片机的控制,使其在功能上具有一定智能化,实现一目了然的观察被测物的温度。
关键词:
单片机AT89C51;数字温度计;DS1620;控制
DesignofDigitalThermographBasedonAT89C51Control
WangZhenzhen
(CollegeofZhangJiaJie,JishouUniversity,Zhangjiajie,Hunan427000)
Abstract
Digitalthermographissimple,flexible,convenientandwidelyusedinallareasoflife.TheresearchbasedonthedigitalthermographdesigntechnologyoftheAT89C51control.DS1620chipisthecomponentsthatcanmeasurementthetemperature,whichcanoutputthebinary9temperature;ThetransmissionofthetemperaturedatefromDS1620totheAT89C51,Ifthetemperatureexceedsasetvalueitwillbealarm;AT89C51collectingtemperaturedataandthensenttothedigitalcontrolofparagraph7;Thentherewillbeadigitaltemperatureshow,whichcandirectlyreadthetemperature.Inputthedatafromthekeyandsetthetemperatureofthealarm.UseMCUassemblylanguagetoeditortheprocedures,andusethesoftwareoftheProteltopainthediagramofthesystem,andthendothedesighandanalysistotheeachmoduleofthesystem.ThefeatureoftheSystemdesignisintroductionoftheMCUcontrol,whichmakeitofacertainintelligenceandachievedthatitisverycleartoobservethetemperatureoftheobservation.
Keyword:
MCUAT89C51;Digitalthermograph;DS1620;Control
目录
第一章综述1
1.1引言1
1.2温度计的分类1
1.3课题研究的实际意义2
第二章设计方案选择3
第三章系统硬件设计4
3.1硬件结构框图4
3.2主要器件简介4
3.2.1AT89C51简介4
3.2.2DS1620简介6
3.3系统硬件详细设计8
3.3.1系统时钟模块8
3.3.2温度采集模块9
3.3.3报警模块10
3.3.4.键盘输入10
3.3.5显示模块11
第四章系统软件设计14
4.1程序流程图14
4.2程序详细设计14
4.2.1写读DS1620模块15
4.2.2配置DS1620模块15
4.2.3开始转换模块16
4.2.4读取温度模块16
4.2.5键盘输入程序16
4.2.6显示子程序和温度测量程序17
4.3程序调试运行19
第五章结束语20
参考文献21
致谢22
附录:
总体电路图23
第一章综述
1.1引言
温度测量涉及各行各业,而传统的温度测量仪器有酒精温度计、煤油温度计、水银温度计等,都需人工手动测量。
传统的玻璃柱形温度计结构虽简单,但读数不方便,且容易破碎。
很多场合(有毒、高温、无人等)用传统的温度测量技术就显得比较麻烦。
集成电路的发展,为温度计的更新换代提供了条件,电子技术的飞速发展,单片机的出现,使温度计的自动化、数字化就变得容易实现。
温度是实验室与许多生产一线经常需要测量的参数之一。
传统温度测量记录方式是逐点放置合适的温度传感器,并按时逐点记录后,再送入微机中进行处理。
随着专用集成电路技术的飞速发展,数显测量以其观测直观方便、测量精确等优势在现代测量技术及日常工作和生活中得到了广泛的应用。
1.2温度计的分类
温度计是测温仪器的总称。
根据所用测温物质的不同和测温范围的不同,有煤油温度计、酒精温度计、水银温度计、气体温度计、电阻温度计、温差电偶温度计、辐射温度计和光测温度计等。
随着科学技术的发展和现代工业技术的需要,测温技术也不断地改进和提高。
由于测温范围越来越广,根据不同的要求,又制造出不同需要的测温仪器。
气体温度计多用氢气或氦气作测温物质,因为氢气和氦气的液化温度很低,接近于绝对零度,故它的测温范围很广。
这种温度计精确度很高,多用于精密测量。
电阻温度计分为金属电阻温度计和半导体电阻温度计,都是根据电阻值随温度的变化制成的。
金属温度计主要有用铂、金、铜、镍等纯金属的温度计及铑铁、磷青铜合金的温度计;半导体温度计主要用碳、锗等。
电阻温度计使用方便可靠,在生活中广泛应用,它的测量范围为-260℃至600℃左右。
温差电偶温度计是一种工业上广泛应用的测温仪器。
利用温差电现象制成,两种不同的金属丝焊接在一起形成工作端,另两端与测量仪表连接,形成电路。
把工作端放在被测温度处,工作端与自由端温度不同时,就会出现电动势,因而有电流通过回路。
通过电学量的测量,利用已知处的温度,就可以测定另一处的温度。
它适用于温差较大的两种物质之间,多用于高温和低浊测量。
有的温差电偶能测量高达3000℃的高温,有的能测接近绝对零度的低温。
高温温度计是指专门用来测量500℃以上温度的温度计,有光测温度计、比色温度计和辐射温度计。
高温温度计的原理和构造都比较复杂,这里不再讨论。
其测量范围为500℃至3000℃以上,不适用于测量低温。
1.3课题研究的实际意义
传统的玻璃柱形温度计,结构虽简单,但读数不方便,且容易破碎。
很多场合(有毒、高温、无人等)用传统的温度测量技术就显得比较麻烦,集成电路的发展,为温度计的更新换代提供了条件。
单片机的出现,电子技术的飞速发展,使温度计的自动化、数字化就变得容易实现。
本课题着重研究用单片机控制的数字温度计,采用LED七段数码管显示温度值,实现一目了然的观察被测物的温度。
第二章设计方案选择
数字温度计的设计有很多方法,温度传感器一般有数字式温度传感器和模拟式温度传感器。
本课题可以采用下列方案进行设计。
方案一:
采用数字温度传感器DS1620对环境温度数据进行采集、处理后,把模拟信号转换成数字信号送给CPU。
DS1620是美国DALLAS公司推出的最新型测量温度和调节温度的数字温度传感器,是一片8引脚的片内建有温度测量并转换为数字值的集成电路,它集温度传感、温度数据转换与传输、温度控制等功能于一体。
它本身就是一个数字温度计,能输出9位二进制的温度值。
主要特点:
测温范围为:
-55~+125℃;测量精度高,可达+-0.5℃;转换时间短,只需200ms;使用灵活方便,内部有两个永久性可读写存储器;TH,TL可设温度,断电后寄存器中数据不会丢失。
该芯片非常容易与单片机连接,实现温度的测控应用,单独做温度控制器使用时,可不用外加其他辅助元件,而且DS1620的工作状态都是由外部输入的指令来控制的。
方案二:
采用热敏电阻作为测温元件,然后把测得的温度模拟量送给AD转换器,最后把转换得到的数字量送CPU。
用热敏电阻进行温度测量,因为使用模拟式的温度传感器,还需增加AD转换器。
并且由于采用的模拟式的传感器,受环境的影响比较大,在一定的温度范围内其阻值会随温度呈线性变化,但是超过可以承受的温度范围,其变化就会成为非线性的。
虽然热敏电阻相对数字式的传感器而言其价格较便宜,对温度要求也不是很高,但是在对温度测量精度要求较高的应用场合显得不和适宜。
综上所述,基于以上的详细分析,从性能和设计实际需要考虑,本系统采取了数字式的设计方法。
用DS1620作为本系统的测温元件,这里用AT89C2051来控制DS1620,设计数字温度计。
第三章系统硬件设计
3.1硬件结构框图
系统采用数字式温度传感器DS1620,实现温度的传感,控制等。
利用单片机芯片AT89C51的串口来发送和接收数据。
系统主要以芯片AT89C51为核心实现,由以下几个模块组成:
AT89C51及其外围电路;系统时钟;数据采集模块;显示模块;报警模块;键盘输入,其系统结构框图如图3.1所示:
图3.1系统结构框图
3.2主要器件简介
3.2.1AT89C51简介
1.性能特点
AT89C51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM)。
该器件采用ATMEL高密度,非易失存储技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51内部有40个引脚,32个外部双向输入输出(IO)端口;同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口。
AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
采用单片AT89C51
模块组成的控制电路,它具有可编程,功能强,控制简单,集成度高等诸多优点,
对原来的电路存在的不足进行改进。
AT89C51具有PDIP、PQFPTQFP及PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性如下:
(1)兼容MCS—51指令系统;全静态操作0-24MHz;4k可反复擦写(>1000次)FlashROM;可编程串行通道;1288bit内部RAM;1个串行中断;3级加密位。
(2)32个双向IO口;2个外中断口;2个16位可编程定时计数器;2个全双工串行通信口。
(3)可直接驱动LED;低功耗空闲和掉电模式;软件设置睡眠和唤醒功能。
2.引脚功能
AT89C51有40个引脚,其引脚分布如图3.2所示。
图3.2AT89C51管脚图
引脚功能如下:
VCC:
接+5V。
GND:
接地。
P0口:
P0口为8位漏极开路双向IO口,每引脚可吸收8个TTL门电流。
P1口:
P1口是从内部提供上拉电阻器的8位双向IO口,P1口缓冲器能接收和输出4个TTL门电流。
P2口:
P2口为内部上拉电阻器的8位双向IO口,P2口缓冲器可接收和输出4个TTL门电流。
P3口:
P3口是8个带内部上拉电阻器的双向IO口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口。
RST:
复位输入。
当振荡器复位时,要保持RST引脚2个机器周期的高电平时间。
ALEPROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的16,它可用作对外部输出的脉冲或用于定时目的。
要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲。
PSEN:
外部程序存储器的选通信号。
由外部程序存储器取指期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现。
EAVPP:
当EA保持低电平时,外部程序存储器地址为(0000H-FFFFH)不管是否有内部程序存储器。
FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡器放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.工作原理
AT89C51P0口为三态双向IO口。
对于内部有程序存储器的单片机基本系统,P0口可以为输入输出口使用,直接连外部的输入输出设备;P0口也可以作为系统扩展的地址数据总线口。
P0口的输出驱动器中有两个场效应管T1和T2,上管导通下管截止时输出高电平,下管导通上管截止时输出低电平,上下管都截止时输出引脚浮空。
P0口的输出驱动器中也有一个多路电子开关。
输出驱动器转接至口锁存器的Q端时,P0口作为双响向IO口使用,P0口的锁存器为“1”时,输出驱动器中的两个场效应管均截止,引脚浮空;而写入“0”时,下管道导通输出低电平。
一般情况下,P0作为输入输出口时应外接拉高电阻。
当输出驱动器转换至地址数据时,P0口作为地址数据总线口使用,分时输出外部存储器的低8位地址A0~A7和传送数据D0~D7。
低8位地址由地址允许锁存信号ALE锁存到外部的地址锁存器中,接着P0口便输入输出数据信息。
3.2.2DS1620简介
1.性能特点
DS1620是一片8引脚的片内建有温度测量并转换为数字值的集成电路,他集温度传感、温度数据转换与传输、温度控制等功能于一体。
测温范围:
-55~+125℃,精度为0.5℃,在0~+70℃精确度为0.5℃,-40~0℃和+70℃~+85℃精确度为1℃,-55℃~-40℃和+85℃~+125℃精确度为2℃。
TH和TL寄存器中的温度报警限设定值存放在非易失性存储器中,掉电后不会丢失。
通过三线串行接口,完成温度值的读取和TH,TL的设定。
2.引脚介绍
DS1620有8个引脚,引脚分布如图3.3所示。
图3.3DS1620的引脚图
DS1620是8脚DIP封装式芯片,其引脚功能如下:
DQ:
数据输入、输出端;
CLK:
移位脉冲信号输入端;
RST:
三线串行接口复位端;
GND:
接地;
T:
高低温临界组合触发输出;
T:
低温临界出发输出;
T:
高温临界触发输出;
VDD:
接+5V电源。
其中:
RST,CLK及DQ为三线串行通信线。
DQ为数据输入输出端,当RST保持高电平,对应CLK时钟脉冲的上升沿处,DQ可按位输入各种控制指令及数据,在CLK时钟脉冲的下降沿处开始按位输出9B温度值。
分2个字节输出,最低位在最先输出,先输出的1个字节(8B)除以2就是摄氏温度值,后输出的1个字节(仅1B)为温度的符号位,是0为正,是1为负。
RST为低电平时界束通信。
CLK保持低电平,DQ呈现高阻态,但芯片内部在进行温度的测量与数字转换(即温度值的更新),这需要大约1s的时间。
引脚T为高温临界触发输出端,当所测温度高于高温临界寄存器中设定的温TH时,该引脚由低电平变为高电平,而温度低TH时又回到低电平;T为低温临界触发输出端,其电平变化与T类似;TCOM为高低温临界组合触发输出端;他们都可作为温度调节器的输出端,直接控制加热或冷却设备。
3.寄存器分配及工作原理
DS1620内部有一个工作方式寄存器,如表1所示。
表1工作方式寄存器工分配
B7
B6
B5
B4
B3
B2
B1
B0
DONE
THF
TLF
X
X
C
CPU
1SHOT
其中:
DONE为温度数据转换位,为0时表示正,在转换过程中,为1表示已转换完毕;THF:
高温标志位,当温度高于或等于高温临界寄存器中的设定值TH时,硬件对该位置位,但硬件不能对该位清零;TLF:
低温标志位,当温度低于或等于设定值TL时,硬件对该位置位,同样,硬件不能对该位清零;CPU使用位,通过软件对该位清零时,若RST为低电平,则可由CLK控制温度数据的转换,通过软件对该位置1时,则DS1620可与外部进行三线通信1SHOT:
特定温度转换位,若通过软件对该位置1,则DS1620进行该时刻的温度转换,并等待读取,若该位被置0,则DS1620将不停地进行温度转换。
DS1620的工作原理:
DS1620输出的是9位二进制数码,数据的级差0.5,负数用补码表示,如表2给出了部分温度值对应的数据输出。
表2温度与数据输出的关系
温度
二进制数据
十六进制数据
-55
0192H
-25
01CEH
-0.5
01FFH
0
0000H
0.5
0001H
+25
0032H
+125
00FAH
DS1620有三线串行通信接口,DS1620通信时,RST脚必须输入高电平,而DS1620通过DQ脚输入数据时,每一位数据必须在CLK脉冲的上升沿保持有效;当DS1620输出时,在CLK脉冲的下降沿开始输出,一直保持到脉冲的上升沿。
然后DQ脚呈高阻态直至下降沿。
3脚RST输入低电平时,结束通信,DQ脚成高阻态。
通信时,数据输入输出的程序是先低位后高位。
3.3系统硬件详细设计
3.3.1系统时钟模块
1.复位电路
AT89C52单片机复位是使CPU(CentralProcessingUnit,中央处理器)和系统中其它功能部件都处在一个确定的初始状态,无论在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
单片机的复位条件是RST引脚加上持续两个机器周期(即24个振荡周期)的高电平,复位电路如图3.4所示。
2.时钟电路
在AT89C51单片机内部有一个反向振荡器放大器。
输入端为引脚XTAL2,输出端
为引脚XTAL1。
在单片机外部的XTAL1和XTAL2之间跨接晶体振荡器和微调电容,构成一个稳定的自激振荡器,如图所示。
这里电容C1和C2取22pF左右,晶体的振荡频率范围是1.2-12MHz,这里取12MHZ。
晶体振荡频率越高,则系统的时钟频率越高,单片机运行速度也越快。
一般情况下,AT89C51单片机使用的振荡频率为12MHz。
时钟电路工作原理:
电源经过二极管和电感进入分频器后,分频器开始工作,和晶体一起产生振荡,在晶体的两脚均可以看到波形。
系统的时钟电路如图3.5所示。
图3.4复位电路图3.5系统时钟电路
3.3.2温度采集模块
数据采集模块的功能是采集数据。
接口电路如图3.6所示。
图3.6数据采集模块
本设计用AT89C51单片机作CPU来操作DS1620的。
单片机的P3口连接DS1620的三线通信接口:
P3.0接DQ,P3.1接CLKCONY,P3.2接RST,VDD接+5V电压。
DS1620的温度值为9位数字量,数据用补码表示,最低位表示0.5℃。
通过三线传送数据时,低位在前,高位在后。
DS1620读出或写入的温度数据值可以是9位的字(在第9位后将置为低电平),也可以作为两个8位字节的16位字。
这时高7位为无关位。
DS1620内部有一个工作方式寄存器,工作方式如下:
DONE:
温度转换完标志。
“1”转换完成,“0”转换进行中。
THF:
温度过高标志。
温度高于或等于TH寄存器中的设定值时变为“1”。
当THF为“1”后,即使温度降到TH以下,THF值也仍为“1”。
可以通过写入“0”或断开电源来清除这个标志。
TLF:
温度过低标志。
温度低于或等于TL寄存器中的设定值时变为“1”。
当TLF为“1”后,即使温度升高到TL以上,TLF值也仍为“1”。
可以通过写入“0”或断开电源来清除这个标志。
CPU:
使用标志。
“1”表示使用CPU,DS1620和CPU通过三线制进行数据传输;“0”表示不使用CPU,当不使用CPU时,接低电平,CLK作为转换控制使用。
这一位存放在非易失存储器中,允许至少50000次写操作。
1SHOT:
一次突发模式。
“1”时按转换协议进行一次转换;“0”时连续转换。
这一位存放在非易失性存储器中,允许至少50000次写操作。
三线制由三个信号线组成:
RESET(复位)、CLK(时钟)和DQ(数据)。
数据传输在由低电平变为高电平后开始。
在数据传输过程中,使变为低电平会终止数据传输。
时钟由一序列上升沿和下降沿组成。
DS1620输入、输出数据时,都必须是上升沿数据有效。
读写数据时低位在前,高位在后。
DS1620的三线制操作时序。
从时序图可知,三线制的操作大部分是命令字在前,数据在后(部分命令后不需数据)。
3.3.3报警模块
报警模块的功能是当温度超过设定限度时,发出报警信号。
报警电路如图3.7所示。
图3.7报警电路
该电路由NPN三极管和报警器组成。
这里R6取10千欧,输出接P3.7。
如果被测温度超过设定的温度,则P3.7被置为高,通过NPN后集电极为低,于是由运算放大器构成的单稳多谐振荡器工作,能自动发出超温报警,通知工作人员采取措施。
这里取初始温度为0度,用户开机后可自行设定报警温度。
如果温度没有超过设定的温度,则P3.7为低,传送数据到显示电路,报警器不响。
三级管在电路中起放大与开关的作用。
3.3.4.键盘输入
键盘输入的功能主要包括设定温度、在LED显示中进行显示实际温度和显示工作时间这两者循环显示的时候进行选择。
系统有4个按键,其功能如表3所示。
表3按键功能
键名
功能
S1
数值加1
S2
数值减1
S3
模式选择
S4
确定
1.键盘的工作原理
当键盘上没有键闭合时所有的开关都断开,电路都呈高电平。
当键盘上某一个键闭合时,则该键所对应的电路被短路。
把所有开关接到单片机的输入口,则在单片机的控制下,先使一根开关为低电平,其余3根行线为高电平。
如果行线都为高电平,则这一列上没有键闭合。
由此也可以判别是哪个键被按下。
2.按键的消抖
为确保CPU对一次按键动作只确认一次按键有效,必须消除按键抖动的影响。
消除按键抖动的过程是:
在第一次检测到有键按下时,执行一段延时程序后,再次确认是否低有键按下;当检测到按键松开时,运行一段延时程序之后再次检测按键是否松开。
键盘的实质上是一组按键开关的集合。
通常,键盘的开关利用了机械触点的合、
断作用。
键的闭合与否反映在行线输出电压上就是呈现高电平或低电平,如果高电
平表示键断开,低电平表示键闭合,通过对电平高低状态物检测,便可确认按键按下与否。
图中键盘的按键S1~S4通过电阻接+5V,电阻的取值为10千欧,S1~S4又
分