基于AT89C52的数字温度计设计与仿真设计.docx

上传人:b****5 文档编号:8512771 上传时间:2023-01-31 格式:DOCX 页数:28 大小:718.94KB
下载 相关 举报
基于AT89C52的数字温度计设计与仿真设计.docx_第1页
第1页 / 共28页
基于AT89C52的数字温度计设计与仿真设计.docx_第2页
第2页 / 共28页
基于AT89C52的数字温度计设计与仿真设计.docx_第3页
第3页 / 共28页
基于AT89C52的数字温度计设计与仿真设计.docx_第4页
第4页 / 共28页
基于AT89C52的数字温度计设计与仿真设计.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

基于AT89C52的数字温度计设计与仿真设计.docx

《基于AT89C52的数字温度计设计与仿真设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C52的数字温度计设计与仿真设计.docx(28页珍藏版)》请在冰豆网上搜索。

基于AT89C52的数字温度计设计与仿真设计.docx

基于AT89C52的数字温度计设计与仿真设计

基于AT89C52的数字温度计设计与仿真

谭亚平

(吉首大学物理科学与信息工程学院,湖南吉首416000)

摘要

温度采集显示及报警系统是一个应用于需要对温度进行精准控制报警的系统,

实现了对温度进行精准采集显示和越限声光报警的功能。

以方便系统使用者能够更好的了解当前温度安全状况,使相应地区场所的安全得到保证。

本系统以AT89C52单片机为微控制器,采用数字温度传感器DS18B20作为测温元件,温度传感器DS18B20采集温度信号送给单片机处理,单片机再把处理后的温度数据送到LED上显示出来。

能够实现快速、准确的测温功能和越限声光报警功能。

本论文完成了系统硬件电路的设计,给出了软件流程框图,编写了相关的软件程序,并记录了仿真与实现的过程。

关键词:

温度报警;单片机(AT89C52);数字温度传感器(DS18B20);KeilC51

DigitalThermometerDesignandSimulationBasedon

AT89C52

TanYaPing

(CollegeofPhysicsScienceandInformationEngineeringJishouUniversityJishou,Hunan

416000)

Abstract

Thetemperatureacquisitiondisplayandalarmsystemisusedaneedforprecisetemperaturecontrolofthealarmsystemtoachieveaccuratetemperatureacquisitionofthemorelimiteddisplayandsoundandlightalarmfunction.Withconvenientsystemuserstobetterunderstandthecurrenttemperaturesecuritysituation,itmakecorrespondingregionalsitessafetyguaranteed.

ThesystemusesAT89C52-SCMasMicroprogrammedControlUnitand

adoptsdigitaltemperaturesensorDS18B20asthetemperaturecomponent.ThetemperaturesensorDS18B20collectstemperaturesignalsandsendsthemtoSCMfordealingwith,thenSCMtransferstheprocessedtemperaturedatatoLEDfordispalyingwhichcanrealizethefastandaccuratetemperaturemeasurementfunctionandthemorelimitedsoundandlightalarmfunction.Thisthesishas

.学习帮手.

completedthedesignofthesystemhardware,proddedthesoftwareflowdiagram,compiledtherelatedsoftwareprogram,andrecordedthesimulationandrealizationprocess.

Keywords:

TemperatureAlarm;Single-Chipmicrocomputer(AT89C52);digitaltemperaturesensorsapplicationsDS18B20;KeilC51.

第一章绪论错误!

..未定义书签

1.1研究背景错误!

••未定义书签

1.2本课题的研究内容错误!

未定义书签

第二章系统硬件设计.错误!

..未定义书签

2.1总体设计错误...未定义书签

2.2AT89C52简介.错误!

.未定义书签

2.2.1主要性能错误!

.未定义书签

2.2.2引脚介绍错误!

.未定义书签

2.3DS18B20介绍错误!

.未定义书签

2.3.1DS18B20性能特点错误!

未定义书签

2.3.2DS18B20内部结构及功能错误!

未定义书签

2.3.3DS18B20的通信协议错.误!

未定义书签

2.4复位电路设计错误!

..未定义书签

2.5时钟电路设计错误!

..未定义书签

2.6DS18B20与单片机接口电路设计错误!

未定义书签

第三章系统软件设计错误!

..未定义书签

3.1软件设计总体思路及主程序流程图错误!

未定义书签

3.2底层基本操作错误!

..未定义书签

3.3指令操作错误...未定义书签

3.4仿真结果错误...未定义书签

总结错误!

..未定义书签

参考文献错误!

..未定义书签

1.6

附件错误!

..未定义书签

附件1源程序

 

附件2元器件清单

22

第一章绪论

1.1研究背景

现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。

传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。

近百年来,温度传感器的发展大致经历了以下三个阶段;

(1)传统的分立式温度传感器(含

敏感元件);

(2)模拟集成温度传感器/控制器;(3)智能温度传感器。

目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。

智能温度传感器发展的新趋势进入21世纪后正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。

例如:

提高测温精度和分辨力;增加测试功能;总线技术的标准化与规范化;可靠性及安全性设计;单片测温系统等。

1.2本课题的研究内容

采用智能温度传感器DS18B20,它直接输出数字量,精度高,电路简单,只需要模拟DS18B20的读写时序,根据DS18B20的协议读取转换的温度[2]。

本设计使用了美国Dallas半导体公司的新一代数字式温度传感器DS18B20,

它具有独特的单总线接口方式,即允许在一条信号线上挂接数十甚至上百个数字式传感器,从而使测温装置与各传感器的接口变得十分简单,克服了模拟式传感器与

微机接口时需要的A/D转换器及其它复杂外围电路的缺点。

工作时由控制信号进行具体测量点识别,这使得布线工作大大简化,可以方便地构成多传感器测量网络。

此外,与传统的热敏电阻传感器相比QS18B20具有更高的测量精度。

所以,相对于传统温度传感器而言QS18B20数字温度传感器具有更高的经济性、灵活性、抗干扰性和精确度,在科学研究和生产实际中得到了广泛的应用[3]0

第二章系统硬件设计

2.1总体设计

本方案设计的系统模块由单片机系统、温度传感器模块、数码管显示模块和电源模块组成,其总体架构如图2.1o

报警电路

按键输入

图2.1系统结构图

该系统可以实时地显示当前环境的温度。

系统是以AT89C52单片机为核心,在开始运行它时主机先发送初始化命令使设备启动,再发送温度转换命令使数字温度传感器DS18B20把测得的模拟温度转换为串行数字信号供单片机采集。

同时,显示器上显示出目前环境的实际温度,当温度低与或高与设定的温度,系统会通过蜂鸣器发出警报。

2.2AT89C52简介

2.2.1性能特点

与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:

0Hz〜33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符[4]。

片内有4KB可在线重复编程的快闪擦写存储器;存储数据保存时间为10

年;宽工作电压范围:

VCC可为2.7V到6V;全静态工作:

可从0Hz至16MHz;程序存储器具有3级加密保护;128*8位内部RAM;32条可编程I/O线,两个16位定时器/计数器;中断结构具有5个中断源和2个优先级,可编程全双工串行通道,空闲状态维持低功耗和掉电状态保存存储内容。

2.2.2引脚介绍

AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器[5]。

AT89C52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器8K字节在系统可编程FlashAT89S52。

AT89C52引脚如图2.2所示:

图2.2AT89C52引脚图

 

P0口:

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

作为输出口,每位能驱动8

个TTL逻辑电平。

对P0端口写1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,pl输出缓冲器

能驱动4个TTL逻辑电平。

对P1端口写1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的

原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下所示。

在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能

P1.0T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5MOSI(在系统编程用)

P1.6MISO(在系统编程用)

P1.7SCK(在系统编程用)

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,

将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下所示。

在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

INTO(外中断0)

P3.3

INT1(外中断1)

P3.4

TO(定时/计数器0)

P3.5

T1(定时/计数器1)

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

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

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号

2.3DS18B20介绍

2.3.1DS18B20性能特点

采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。

每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。

低压供电,电源范围从3~5V,可以本地供电,也可以直接从数据线上窃取电源(寄生电源方式)。

测温范围为-55C~+125C,在-10C~85C范围内误差为±0.5°C。

可编辑数据为9~12位,转换12位温度时间为750ms(最大)。

用户可自设定报警上下限温度。

报警搜索命令可识别和寻址哪个器件的温度超出预定值。

DS18B20的分辩率由用户通过EEPROM设置为9~12位。

DS18B20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信[7]。

2.3.2DS18B20内部结构及功能

DS18B20的内部结构如下图2.3所示,主要包括:

寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分

图2.3DS18B20内部结构

 

温度和数字量的关系如图2.4所示,ROM\RAM操作命令如表2.1\2.2所示

2-

21

2订

MSb

(unit=°C)

LSb

S

S

S

S

S

24

LSB

MSB

TEMPEKXTURE

DIGITALOUTPUT(Biuarj)

DIGITAL

OUTPIT

Ulex}

+125°C

0000011111010000

07D011

0000010101010000

055011*

十2员062乎C

0000000110010001

0191h

+1O.125°C

0000000010100010

OOA2h

「+o.yc

0000000000001000

OOOSh

o°c

0000000000000000

OOOOh

-0,5°C

mimimilooo

FFFSh

-10.125DC

mimioioimo

FF5Eh—

-25,0625°C

mimooiioiiii

FF6FH

^55°C

111]110010010000

FC9011

图2.4温度和数字量的关系

表2.1ROM操作命令

指令

说明

读ROM命令(33H)

读18B20的序行号

搜索ROM命令(F0H)

识别总线上各器件的编码

匹配ROM命令(55H)

用于多个DS18B20的定位

跳过ROM命令(CCH)

此命令执行后,存储器操作将针对总线上的所有操作

报警搜索ROM命令(ECH)

仅温度超限的器件对此命令做出响应

表2.2RAM操作命令

指令

说明

温度转换(44H)

启动温度转换

读暂存器(BEH)

读全部暂存器内容,包括CRC字节

写暂存器(4EH)

写暂存器第2,3和4个字节的数据

复制暂存器(48EH)

将暂存器中的TH,TL和配置寄存器内容复制到

EEPROM中

读EEPROM(B8H)

将TH,TL和配置寄存器内容从EEPROM中回读至暂存器

各字节在ROM'RAM中的设置如表2.3所示,温度配置寄存器如表2.4所示,

分辨率设置如表2.5所示

表2.3各字节在ROM'RAM中的设置

字节

ROM

RAM

0

产品代号

温度低8位

1

温度咼8位

2

48位

TH

3

器件

TL

4

序列

配置寄存器

5

保留

6

保留

7

CRC

保留

8

CRC

表2.4温度配置寄存器

0

R1

R2

1

1

1

1

1

表2.5分辩率设置

R1

R2

分辩率设置/位

测温精度/C

转换时间/ms

0

0

9

0.5

93.75

0

1

10

0.25

187.5

1

0

11

0.125

375

1

1

12(默认)

0.0625

750

2.3.3DS18B20的通信协议

DS18B20采用严格的单总线通信协议,以保证数据的完整性。

该协议定义了几种信号类型:

复位脉冲、应答脉冲、写0、写1、读0和读1。

除了应答脉冲所有这些信号都由主机发出同步信号。

总线上传输的所有数据和命令都是以字节的低位在刖。

1.初始化序列:

复位脉冲和应答脉冲

在初始化过程中,主机通过拉低单总线至少480卩s,以产生复位脉冲(TX)。

然后主机释放总线并进入接收(RX模式。

当总线被释放后,5kQ的上拉电阻将单总线拉高。

DS18B20检测到这个上升沿后,延时15卩s~60卩s,通过拉低总线60卩s~240产生应答脉冲。

初始化波形如图2.5所示。

MASTERLRESETPJLSE

 

图2.5初始化脉冲

2.读和写时序

在写时序期间,主机向DS18B20写入指令;而在读时序期间,主机读入来自DS18B20的指令。

在每一个时序,总线只能传输一位数据。

读/写时序如图2.6所示。

(1)写时序

存在两种写时序:

写1”和写0”。

主机在写1时序向DS18B20写入逻辑1,而在写0时序向DS18B20写入逻辑0。

所有写时序至少需要60卩s,且在两次写时序之间至少需要1ys的恢复时间。

两种写时序均以主机拉低总线开始。

在写时序开始后的15卩s~60卩期间,DS18B20采样总线的状态。

如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。

⑵读时序

图2.6DS18B20读/写时序图

DS18B20只能在主机发出读时序时才能向主机传送数据。

所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。

所有读时序至少60卩s且在两次独立的读时序之间至少需要1卩的恢复时间。

每次读时序由主机发起,拉低总线至少1卩s。

在主机发起读时序之后,DS18B20开始在总线上传送1或0。

若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。

当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。

DS18B20发出的数据在读时序下降沿起始后的

15卩内有效,因此主机必须在读时序开始后的15卩内释放总线,并且采样总线状

DS18B20在使用时,一般都采用单片机来实现数据采集。

只需将DS18B20信号线与单片机1位I/O线相连,且单片机的1位I/O线可挂接多个DS18B20,就可实现单点或多点温度检测[8]。

2.4复位电路设计

复位电路工作原理:

电容在上接高电平,电阻在下接地,中间为RST。

这种复位电路的工作原理是:

通电时,电容两端相当于是短路,于是RST引脚上为高电

平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作I9】o复位电路如图2.7所示。

图2.7复位电路

2.5时钟电路设计

时钟电路作用:

单片机外部必须接上振荡器(也可以是内部振荡器),其提供的高频脉冲经过分频处理后,成为单片机内部时钟信号,作为片内各部件协调工作的控制信号。

如果没有时钟信号,触发器的状态就不能改变,单片机内部的所有电路在完成一个任务后将最终达到一个稳定状态而不能再继续进行其它任何工作了0时钟电路如图2.8所示:

1

时钟电路

I

b——

XTAL2

1

1

30p

Y1

12M

C:

2

1

J

XTAL1

30p

图2.8时钟电路

2.6DS18B20与单片机接口电路设计

温度计电路设计原理图如下图2.9所示,控制器使用单片机AT89S52,温度传感器使用DS18B20,用4位共阴LED数码管以动态扫描法实现温度显示[10]

图2.9DS18B20与单片机接口电路

第三章系统软件设计

3.1软件设计总体思路及主程序流程图

本系统采用汇编语言编写,主程序主要由三部分构成,系统通电后首先初始化系统,依次完成温度采集、温度处理、数据显示等三项功能。

温度采集部分主要完成温度数据采集任务;温度处理部分主要是将采集到的温度数据转换成十进制数据;数据显示部分主要实现温度数据的显示,显示方式为固定显示。

系统软件主流程图如3.1所示:

读取温度

 

图3.1系统软件总流程图

3.2底层基本操作

初始化:

初始化是DSI8B20的底层基本操作之一。

通过单线总线进行的所有操作都从一个初始化序列开始。

初始化序列包括一个由CPU发出的复位脉冲及其后由DS18B20发出的存在脉冲。

存在脉冲让CPU知道DS18B20在总线上且已做好操作准备。

数据写:

数据写是DS18B20的底层基本操作之一,所有的指令、数据发送均由该操作完成。

DS18B20的写操作都是逐位进行的,因此,采用C5I中的位右移操作来实现。

数据读:

数据读是DS18B20的底层基本操作之一,温度值和其它状态信息的传回均由该操作完成。

3.3指令操作

DSI8B20提供了一系列指令来控制传感器的工作。

下面只简单介绍本系统所用到的最基本的几条。

1.SkipROM[CCH]

用于1条I/O总线上只挂1个DS18B20的情况,使DS18B20跳过多个传感器的识别过程。

如果一条I/O总线上挂了不止1个传感器,总线上就会发生数据冲突。

2.ConvertT[44H]

启动一次温度转换过程。

温度转换命令被执行后,DS18B20保持等待状态。

3.ReadScratchpad[BEH]

用于读取暂存器的内容。

温度转换的结果和其它状态信息均以此命令读出。

读取将从字节0开始,一直进行下去,直到字节8读完。

如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取

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

当前位置:首页 > 表格模板 > 表格类模板

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

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