基于单片机的温度报警系统的设计.docx

上传人:b****4 文档编号:11863622 上传时间:2023-04-06 格式:DOCX 页数:37 大小:415.99KB
下载 相关 举报
基于单片机的温度报警系统的设计.docx_第1页
第1页 / 共37页
基于单片机的温度报警系统的设计.docx_第2页
第2页 / 共37页
基于单片机的温度报警系统的设计.docx_第3页
第3页 / 共37页
基于单片机的温度报警系统的设计.docx_第4页
第4页 / 共37页
基于单片机的温度报警系统的设计.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

基于单片机的温度报警系统的设计.docx

《基于单片机的温度报警系统的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度报警系统的设计.docx(37页珍藏版)》请在冰豆网上搜索。

基于单片机的温度报警系统的设计.docx

基于单片机的温度报警系统的设计

 

摘要:

温度是与人类的生活和工作关系最密切的物理量之一,也是各门学科与工程研究设计中经常遇到和必须测定的物理量,随着单片机技术的应用和发展,对于温度的检测已经开始向智能化方向发展。

本文以AT89S52单片机为主控元件,通过DS18S20温度传感器测温,以4位共阳极LED数码管为显示电路,实现了一个小型温度智能化报警系统,具有低成本、易使用和制作简单等优点,具有广阔的市场前景。

关键词:

AT89S52;单片机;温度传感器;数字温度计;

ThedesignofTemperaturealarmSystemwhichisbasedonSingleChipMicrocontroller

Abstract:

Thetemperatureisoneofthephysicalquantitieswhicharethemostcloselyrelatedwiththelifeandworkofhuman,andit’sthephysicalquantitiesthateachsubjectandengineeringresearchanddesignfrequentlyencounteredinandmustdetermine.Withthedevelopmentofsingle-chipmicrocontrollertechnology,forthetemperaturetestinghasstartedtointelligentdirection.TheMSC-51singlechipmicrocontrolleristhecore,thoughthetemperaturesensorDS18S20and4bitcommoncathodeLED,weimplementsasmalltemperatureintelligentalarmingsystem.Withlowcost,easytouseandeasyfabricationetc,soithasabroadmarketprospect.

Keywords:

AT89S52;Single-chipmicrocontroller;Temperaturesensor;Digitalthermometer;

 

1单片机在相关领域的应用及其发展

1.1单片机的相关介绍

单片机全名单片微型计算机,是把中央处理器、存储器、定时\计数器、输入\输出接口都集成在一块电路芯片上的微型计算机。

与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。

它的最大优点就是体积小,可放在仪表内部,但存储量小,输入\输出接口简单,功能较低。

随着电子技术的发展,旧的单片机的定义已经不能全面概况目前单片机的状况,所以如今在很多场合被称为范围更广的微控制器,英文名为singlechipmicrocontroller。

1.2单片机的发展趋势

1.2.1低功耗CMOS化

随着当今人们对单片机功耗要求越来越高,现在的各个单片机制造商基本都采用COMS(互补金属氧化物半导体)工艺。

COMS虽然功耗较低,但由于其物理特征决定了其工作速度不够高,而CHOMS则具备了高速和低功耗的特点,这些特点更能适应现代社会的要求,所以这种工艺将是今后一段时间内单片机技术发展的主要途径。

1.2.2微型单片化

现在的电子产品普遍向着小体积、轻重量方向发展,这就要求单片机除了功能强和功耗低外,还要求其体积要小。

现在的许多单片机都具有多种封装形式,其中SMD(表面封装)技术越来越受欢迎,使得单片机向着微型化方向发展。

1.2.3主流与多种品种共存

现在市面上,单片机品种繁多,各具特色,其中以89C51为核心的单片机是主流,而Microchip公司的PIC精简指令集(RISC)单片机,中国台湾HOLTEK公司近年来的单片机产量与日俱增,与其低价质优的优势,占据了一定的市场份额。

在一定的时期内,这种情形将得以延续和发展,将不存在某个品牌的单片机一统天下的垄断局面,现在和未来的趋势必然是依存互补,相辅相成,共同发展。

1.3单片机在相关领域的应用

在信息高速发展的21世纪,科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。

我们进入了高速发展的信息时代,测量技术也成为当今科技的一个主流,广泛地深入研究和应用工程的各个领域。

随着科学技术日益迅速的发展,数字监控系统已经深入到生活的各个方面。

数字温度计作为数字监控系统的重要组成部分发挥着极其重要的作用。

它克服了接触式温度计对传感器的耐热性能要求比较苛刻的缺点,使温度计无论在使用范围还是测量精度上都有了长足的进步。

 

2设计方案

2.1设计方案论证

2.1.1方案一

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

如下图:

图2-1热敏电阻

2.1.2方案二

选定了温度传感器之后,再来考虑它的控制内核,因为数字温度计的设计并不复杂,单片机完全可以处理的了,DSP是比较高端的控制内核应用成本相对较高,所以选用单片机是即经济又实惠的选择。

2.1.3方案三

进而考虑到用温度传感器,在设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

2.2方案的比较与选择

从以上三种方案,很容易看出,采用方案三,电路比较简单,软件设计也比较简单,故采用了方案三。

3系统设计

3.1系统功能简介

本系统利用单片机采集温度,温度值精确到小数点一位,用4位数码管显示温度值,设置三个按键调整报警温度值,当温度超出所设定的上下限范围时,蜂鸣器开始报警。

系统框图如图3-1所示。

 

图3-1总体设计方框图

3.2相关芯片介绍

3.2.1AT89S52单片机的介绍

AT89S52单片机有40个引脚,如图3-2所示,4kbytesflash片内程序存储器,128bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。

AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。

该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。

片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI串行口改写或用同用的非易失性存储器改写。

通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。

它的应用范围广,可用于解决复杂的控制问题,且成本较低。

其结构框图如图3-2所示。

图3-2AT89S52引脚

图3-3AT89S52结构框图

   此外,AT89S52设计和配置了震荡频率可为12MHZ并可通过软件设置省电模式。

空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适应不同产品的需求。

 

(1)AT89S52主要功能特性

a、兼容mcs-51指令系统

b、4k可反复擦写(>1000次)ispflashrom

c、32个双向i/o口

d、4.5-5.5v工作电压

e、2个16位可编程定时/计数器

f、时钟频率0-33mhz

g、全双工uart串行中断口线

h、128x8bit内部ram

i、2个外部中断源

j、低功耗空闲和省电模式

k、中断唤醒省电模式

l、3级加密位

m、看门狗(wdt)电路

n、软件设置空闲和省电功能

o、灵活的isp字节和分页编程

p、双数据寄存器指针

(2)AT89S52各引脚介绍

按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O口、控制和复位等。

a、多功能I/O口

AT89S52共有四个8位的并行I/O口:

P0、P1、P2、P3端口,对应的引脚分别是P0.0~P0.7,P1.0~P1.7,P2.0~P2.7,P3.0~P3.7,共32根I/O线。

每根线可以单独用作输入或输出。

①P0端口,该口是一个8位漏极开路的双向I/O口。

在作为输出口时,每根引脚可以带动8个TTL输入负载。

当把“1”写入P0时,则它的引脚可用作高阻抗输入。

当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。

在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。

②P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。

对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。

P1口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在对Flash编程和程序校验时,P1口接收低8位地址。

另外,P1.0与P1.1可以配置成定时/计数器2的外部计数输入端(P1.0/T2)与定时/计数器2的触发输入端(P1.0/T2EX),如表3-1所示。

端口引脚

复用功能

P1.0

T2(定时器/计算器2的外部输入端)

P1.1

T2EX(定时器/计算器2的外部触发端和双向控制)

P1.5

MOSI(用于在线编程)

P1.6

MISO(用于在线编程)

P1.7

SCK(用于在线编程)

 表3-1P1口管脚复用功能

③P2端口,该口是带有内部上拉电阻的8位双向I/O端口,P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。

对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。

P2口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在访问外部程序存储器或16位的外部数据存储器时,P2口送出高8位地址,在访问8位地址的外部数据存储器时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。

在对Flash编程和程序校验期间,P2口也接收高位地址或一些控制信号。

④P3端口,该口是带有内部上拉电阻的8位双向I/O端口,P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。

对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。

P3口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在AT89S52中,同样P3口还用于一些复用功能,如表3-2所列。

在对Flash编程和程序校验期间,P3口还接收一些控制信号。

端口引脚

复用功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

INT0(外部中断0)

P3.3

INT1(外部中断1)

P3.4

T0(定时器0的外部输入)

P3.5

T1(定时器1的外部输入)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读选通)

表3-2P3端口引脚与复用功能表

b、RST复位输入端

在振荡器运行时,在此脚上出现两个机器周期的高电平将使其单片机复位。

看门狗定时器(Watchdog)溢出后,该引脚会保持98个振荡周期的高电平。

在SFRAUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽这种功能。

DISRTO位的默认状态,是复位高电平输出功能使能。

c、ALE/PROG地址锁存允许信号

在存取外部存储器时,这个输出信号用于锁存低字节地址。

在对Flash存储器编程时,这条引脚用于输入编程脉冲PROG。

一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或时钟。

但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。

在需要时,可以把地址8EH中的SFR寄存器的0位置为“1”,从而屏蔽ALE的工作;而只有在MOVX或MOVC指令执行时ALE才被激活。

在单片机处于外部执行方式时,对ALE屏蔽位置“1”并不起作用。

d、PSEN程序存储器允许信号

它用于读外部程序存储器。

当AT89S52在执行来自外部存储器的指令时,每一个机器周期PSEN被激活2次。

在对外部数据存储器的每次存取中,PSEN的2次激活会被跳过。

e、EA/Vpp外部存取允许信号

为了确保单片机从地址为0000H~FFFFH的外部程序存储器中读取代码,故要把EA接到GND端,即地端。

但是,如果锁定位1被编程,则EA在复位时被锁存。

当执行内部程序时,EA应接到Vcc。

在对Flash存储器编程时,这条引脚接收12V编程电压Vpp。

f、XTAL1振荡器的反相放大器输入,内部时钟工作电路的输入。

g、XTAL2振荡器的反相放大器输出。

3.2.2DS18B20的介绍

(1)DS18B20主要功能特性

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

TO-92封装的DS18B20的引脚排列见图3-4,其引脚功能描述见表3-3。

图3-4DS18B20(底视图)

序号

名称

引脚功能描述

1

GND

地信号

2

DQ

数据输入/输出引脚。

开漏单总线接口引脚。

当被用着在寄生电源下,也可以向器件提供电源。

3

VDD

可选择的VDD引脚。

当工作于寄生电源时,此引脚必须接地。

表3-3DS18B20详细引脚功能描述

DS18B20的性能特点如下:

a、独特的单线接口仅需要一个端口引脚进行通信;

b、多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

c、无须外部器件;

d、可通过数据线供电,电压范围为3.0~5.5V;

e、零待机功耗;

f、温度以9或12位数字;

g、用户可定义报警设置;

h、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

i、负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3-5所示。

 

 

图3-5DS18B20内部结构

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。

温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。

高速暂存RAM的结构为8字节的存储器,结构如图3-5所示。

头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。

第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。

DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。

该字节各位的定义如图3-6所示。

低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

温度LSB

温度MSB

TH用户字节1

TL用户字节2

配置寄存器

保留

保留

保留

CRC

 

图3-6DS18B20字节定义

由表3-2可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数

据转换时间越长。

因此,在实际应用中要将分辨率和转换时间权衡考虑。

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。

第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。

单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。

当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。

表3-4是一部分温度值对应的二进制温度数据。

R1

R0

分辨率/位

温度最大转换时间/ms

0

0

9

93.75

0

1

10

187.5

1

0

11

375

1

1

12

750

表3-4DS18B20温度转换时间表

DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。

计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。

其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

温度/℃

二进制表示

十六进制表示

+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

表3-5 一部分温度对应值表

(2)DS18B20温度传感器与单片机的接口电路

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。

另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。

当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。

采用寄生电源供电方式时VDD端接地。

由于单线制只有一根线,因此发送接口必须是三态的。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:

初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

(3)DS18B20的控制方法

DS18B20有六条控制命令,指令约定代码操作说明。

CCH:

跳过扫描温度传感芯片序列号

44H:

启动DS18B20进行温度转换

BEH:

读度温度值

a、DS18B20的复位时序

图3-7DS18B20复位时序图

①先将数据线置高电平“1”;

②延时(该时间要求的不是很严格,但是尽可能的短一点);

③数据线拉到低电平“0”;

④延时750微秒(该时间的时间范围可以从480到960微秒);

⑤数据线拉到高电平“1”;

⑥延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。

据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制);

⑦若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒;

⑧将数据线再次拉高到高电平“1”后结束。

 

b、DS18B20的读时序

对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。

DS18B20在完成一个读时序过程,至少需要60us才能完成。

图3-8DS18B20读时序过程

①将数据线拉高“1”;

②延时2微秒;

③将数据线拉低“0”;

④延时15微秒;

⑤将数据线拉高“1”;

⑥延时15微秒;

⑦读数据线的状态得到1个状态位,并进行数据处理;

⑧延时30微秒。

c、DS18B20的写时序

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

图3-9DS18B20写时序过程

①数据线先置低电平“0”;

②延时确定的时间为15微秒;

③按从低位到高位的顺序发送字节(一次只发送一位);

④延时时间为45微秒;

⑤将数据线拉到高电平;

⑥重复上①到⑥的操作直到所有的字节全部发送完为止;

⑦最后将数据线拉高。

(4)DS18B20注意事项

DS18B20虽然有测温简单的特点,单在实际应用中应注意一下几点:

a、较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。

在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用C语言实现。

b、在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。

当单总线上所挂DS18B20超过8个时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1