整理基于单片机的单总线多点温度测控系统.docx
- 文档编号:30684802
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:39
- 大小:363.67KB
整理基于单片机的单总线多点温度测控系统.docx
《整理基于单片机的单总线多点温度测控系统.docx》由会员分享,可在线阅读,更多相关《整理基于单片机的单总线多点温度测控系统.docx(39页珍藏版)》请在冰豆网上搜索。
整理基于单片机的单总线多点温度测控系统
摘要
本课题主要介绍基于AT89C51单片机和DS18B20数字温度传感器的多点温度测量系统。
该系统利用AT89C51单片机分别采集各个温度点的温度,实现温度显示、报警等功能。
它以AT89C51单片机为主控制芯片,采用数字温度传感器DS18B20实现多路温度的检测,测量精度可以达到0.5℃。
该系统采用了LCD1602A液晶显示模块,LCD1602A作为显示器,形象直观的显示测出的温度值。
本文首先在绪论中介绍了此系统的背景以及功能。
第二章确定设计方案。
在第三章论述了总体的设计过程,确定了技术指标及器件的选择并且描述了系统硬件电路设计、硬件设计框图及所使用的各种芯片功能与特性。
第四章重点剖析了软件设计的过程。
最后一章中具体论述了系统的调试软件及调试中出现的问题。
基于AT89C51单片机的单总线多点温度测控系统具有硬件组成简单、多点温度检测、读数方便、精度高、测温范围广等特点,在实际工程中得到广泛应用。
关键词:
数字温度传感器,AT89C51单片机,单总线
Abstract
TheproblemintroducesAT89C51monolithicmachineandtheDS18B20figuretemperaturesensor-basedmultiplespottemperaturemeasurementsystemmainly.AT89C51singlechipusingthesystemwerecollectedatvarioustemperaturesofthetemperature,temperaturedisplayandalarmfunctions.ItAT89C51MCU-basedcontrolchip,digitaltemperaturesensorDS18B20therealizationofmulti-channeltemperaturedetection,measurementaccuracycanreach0.5℃.ThesystemusesLCD1602Aliquidcrystaldisplaymodules,LCD1602Aasadisplay,thedisplayofvisualimagestomeasurethetemperature.Thisarticlefirstdescribedintheintroductionofthissystem,aswellasbackgroundfeatures.Thesecondchaptertodeterminethedesign.Inthethirdchapterdiscussestheoveralldesignprocesstodeterminethetechnicalspecificationsandthechoiceofdevicesandadescriptionofthehardwarecircuitdesign,hardwaredesignanddiagramusedinavarietyoffeaturesandfunctionsofthechip.ChapterIVanalyzesthekeysoftwaredesignprocess.Thefinalchapterdiscussesthespecificsystemdebugginganddebugsoftwareproblems.AT89C51singlechipbasedonsingle-busmulti-pointtemperaturemeasurementandcontrolsystemwithsimplehardwarecomponents,multi-pointtemperature,easyreading,high-accuracy,widetemperaturerange,andothercharacteristicsoftheactualprojectsarewidelyused
Keywords:
digitaltemperaturesensor,AT89C51singlechip,single-bus
第1章绪论
21世纪,科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。
我们已经进入了高速发展的信息时代,测量技术也成为当今科技的一个主流,广泛地深入到研究和应用工程的各个领域。
温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一。
温度的变化会给我们的生活、工作、生产等带来重大影响,因此对温度的测量至关重要。
其测量控制一般使用各式各样形态的温度传感器。
随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日显突出,已成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。
分布式温度传感器在电力工业、煤矿、森林、火灾、高层建筑、航空、航天飞行器等有着重要的应用前景,引起研究人员的广泛关注。
近年来,已经有不少分布式温度传感器的报道,包括基于光纤非线性效应的拉曼温度传感器等,但由于其昂贵的成本而无法得到广泛的应用。
本设计使用了美国Dallas半导体公司的新一代数字式温度传感器DS18B20,它具有独特的单总线接口方式,即允许在一条信号线上挂接数十甚至上百个数字式传感器,从而使测温装置与各传感器的接口变得十分简单,克服了模拟式传感器与微机接口时需要的A/D转换器及其它复杂外围电路的缺点。
工作时由控制信号进行具体测量点识别,这使得布线工作大大简化,可以方便地构成多传感器测量网络。
此外与传统的热敏电阻传感器相比,DS18B20具有更高的测量精度。
所以,相对于传统温度传感器而言,DS18B20数字温度传感器具有更高的经济性、灵活性、抗干扰性和精确度,在科学研究和生产实际中得到了广泛的应用。
随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。
伴随着科学技术的发展,电子技术有了更高的飞跃,我们现在完全可以运用单片机来代替人工测量,这样既省时又省力。
本设计是心AT89C51为单片机作为控制核心,提出了一种基于DS18B20的单总线多点温度测控系统,多个温度传感节点通过单总线与单片机相联形成分布式系统。
单片机通过实时监控温度的变化,通过LCD1602字符型液晶显示各节点温度的数值,当温度值超出所设定的值时,报警器开始报警,从而远程实现对整个温度系统的管理和控制。
这种分布式温度测量系统具有成本低廉、传感精度高、系统稳定、易于管理等优点。
第2章系统方案设计
2.1方案设计
方案一:
该案由单片机、模拟温度传感器AD590、运算放大器、AD转换器、4×4键盘、LCD显示电路、集成功率放大器、报警器组成。
本方案采用模拟温度传感器AD590作为测温元件,传感器将测量的温度变换转换成电流的变化,再通过电路转换成电压的变化,使用运算放大器交将信号进行适当的放大,最后通过模数转换器将模拟信号转换成数字信号,传给给单片机,单片机将温度值进行处理之后用LCD显示,当温度值超过设置值时,系统开始报警。
如图1-1所示:
图1-1方案一温度测量系统方案框图
方案二:
该方案使用了AT89C51单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,采用多个温度传感器对各点温度进行检测,通过4×4键盘模块对温度进行上、下限设置,超过其温度值就报警。
显示电路采用LCD1602模块,使用8550三极管为中心组成的报警电路。
如图1-2所示
温度传感器
温度传感器
温度传感器
温度传感器
单片机
4×4键盘
LCD液晶
显示电路
报警电路
图1-2方案二温度测量系统方案框
2.2方案论证
方案一采用模拟温度传感器,转换结果需要经过运算放大器和AD转换器传送给处理器。
它控制虽然简单,但电路复杂,不容易实现对多点温度进行测量和监控。
由于采用了多个分立元件和模数转换器,容易出现误差,测量结果不是很准确,因此本方案并不可取。
方案二采用智能温度传感器DS18B20,它直接输出数字量,精度高,电路简单,只需要模拟DS18B20的读写时序,根据DS18B20的协议读取转换的温度。
此方案硬件电路非常简单,但程序设计复杂一些,但是在课外对DS18B20、字符型液晶显示、4×4键盘的程序有所了解,而且曾经在网上看到过此类程序程序设计,并且我们已经使用开发工具KEIL用C语言对系统进行了程序设计,用仿真软件PROTEUS对系统进行了仿真,达到了预期的结果。
由此可见,该方案完成具有可行性,体现了技术的先进性,经济上也没有任何问题。
综上所述,本课题应当采用方案二对系统进行设计。
第3章系统设计
3.1工作原理
基于单片机的单总线多点温度测控系统以AT89C51为中心器件,以KEIL为系统程序开发平台,用C语言进行程序设计,以PROTEUS作为仿真软件设计而成的。
系统主要由温度传感器电路、液晶显示电路、键盘电路、报警电路组成,电路原理图如附录一所示。
DS18B20是智能温度传感器,它的输入/输出采用数字量,通过单总线,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度数值以串口形式发送给主机。
主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、功能命令)给DS18B20,并读取温度值,在内部进行相应的数值处理,用字符型液晶模块显示各点的温度。
在系统启动之时,可以通过4×4键盘设置各点温度的上限值和下限值,当某点温度超过设置值时,报警器开始报警,从而实现了对各点温度的实时监控。
每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接收主机的命令,向主机发送转换的温度。
采用这种DS18B20寻址技术,使系统硬件电路更加简单。
DS18B20虽然有测温简单的特点,但在实际应用中应注意一下几点:
(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写.
(2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。
当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
(4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。
这一点在进行DS1820硬件连接和软件设计时也要给予一的重视.
3.2单元电路设计
3.2.1DS18B20与单片机接口电路设计
(1)DS18B20与单片机的接口技术
如图3-1所示:
DS18B20与单片机的接口电路非常简单。
DS18B20只有三个引脚,一个接地,一个接电源,一个数字输入输出引脚接单片机的I/O口,电源与数字输入输出脚间需要接一个4.7K的电阻。
图3-1DS18B20与单片机接口电路
(2)中央处理器AT89C51简介
①AT89C51的特点
AT89C51具有以下几个特点:
●AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容;
●片内有4k字节在线可重复编程快擦写程序存储器;
●全静态工作,工作范围:
0Hz~24MHz;
●三级程序存储器加密;
●128×8位内部RAM;
●32位双向输入输出线;
●两个十六位定时器/计数器
●五个中断源,两级中断优先级;
●一个全双工的异步串行口;
●间歇和掉电两种工作方式。
②AT89C51的功能描述
AT89C51是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,
数据保存时间为十年。
它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。
只要程序长度小于4K,四个I/O口全部提供给用户。
可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
工作电压范围宽(2.7V~6V),全静态工作,工作频率宽在0Hz~24MHz之间,比8751/87C51等51系列的6MHz~12MHz更具有灵活性,系统能快能慢。
AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
③AT89C51引脚功能
AT89C51单片机40引脚分布如右图所示。
AT89C51是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCA-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。
只要程序长度小于4K,四个I/O口全部提供给用户。
可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
工作电压范围宽(2.7V~6V),全静态工作,工作频率宽在0Hz~24MHz之间,比8751/87C51等51系列的6MHz~12MHz更具有灵活性,系统能快能慢。
AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
表2P3口的第二功能
(3)DS18B20的工作原理
①DS18B20数字温度传感器概述
DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20产品的特点
●只要求一个端口即可实现通信。
●在DS18B20中的每个器件上都有独一无二的序列号。
●实际应用中不需要外部任何元器件即可实现测温。
●测量温度范围在-55.C到+125.C之间。
●数字温度计的分辨率用户可以从9位到12位选择。
●内部有温度上、下限告警设置。
TO-92封装的DS18B20的引脚排列见右图,其引脚功能描述见表
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源
3
VDD
可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地
表3-2 DS18B20详细引脚功能描述
②DS18B20的内部结构
DS18B20的内部框图下图所示。
64位ROM存储器件独一无二的序列号。
暂存器包含两字节(0和1字节)的温度寄存器,用于存储温度传感器的数字输出。
暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2和3字节),和一字节的配置寄存器(4字节),使用者可以通过配置寄存器来设置温度转换的精度。
暂存器的5、6和7字节器件内部保留使用。
第八字节含有循环冗余码(CRC)。
使用寄生电源时,DS18B20不需额外的供电电源;当总线为高电平时,功率由单总线上的上拉电阻通过DQ引脚提供;高电平总线信号同时也向内部电容CPP充电,CPP在总线低电平时为器件供电。
(4)DS18B20的4个主要数据部件:
①光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
②DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
表3-4DS18B20温度数据表
TEMPERATURE
DIGITALOUTPUT
DIGITALOUTPUT
+125℃
0000011111010000
07D0H
+85℃
0000010101010000
0550H
+25.0625℃
0000000110010001
0191H
+10.125℃
0000000010100010
00A2H
+0.5℃
0000000000001000
0008H
0℃
0000000000000000
0000H
-0.5℃
1111111111111000
FFF8H
-10.125℃
1111111101011110
FF5EH
-25.0625℃
1111111001101111
FE6FH
-55℃
1111110010010000
FC90H
③DS18B20温度传感器的存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
④配置寄存器
表3-5配置寄存器
0
R1
R0
1
1
1
1
1
低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表所示:
(DS18B20出厂时被设置为12位)
表3-6R1与R0确定传感器分辨率设置表
R1
R0
传感器精度/bit
转换时间/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
(5)DS18B20的工作过程
●初始化
●ROM命令跟随着需要交换的数据;
●功能命令跟随着需要交换的数据。
访问DS18B20必须严格遵守这一命令序列,如果丢失任何一步或序列混乱,DS18B20都不会响应主机(除了SearchROM和AlarmSearch这两个命令,在这两个命令后,主机都必须返回到第一步)。
a.初始化:
DS18B20所有的数据交换都由一个初始化序列开始。
由主机发出的复位脉冲和跟在其后的由DS18B20发出的应答脉冲构成。
当DS18B20发出响应主机的应答脉冲时,即向主机表明它已处在总线上并且准备工作。
b.ROM命令:
ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。
DS18B20的ROM如表3-4所示,每个ROM命令都是8bit长。
c.功能命令:
主机通过功能命令对DS18B20进行读/写Scratchpad存储器,或者启动温度转换。
DS18B20的功能命令如表3-7所示。
指令
协议
功能
读ROM
33H
读DS18B20中的编码(即64位地址)
符合ROM
55H
发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该DS18B20的读写作准备
搜索ROM
0F0H
用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备
跳过ROM
0CCH
忽略64位ROM地址,直接向DS18B20V温度转换命令,适用于单个DS18B20工作
报警搜索命令
0ECH
执行后,只有温度超过庙宇值上限或下限的片子才做出响应
温度转换
44H
启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果丰入内部9字节RAM中
读暂存器
BEH
读内部RAM中9字节的内容
写暂存器
4EH
发出向内部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据
复制暂存器
48H
将RAM中第3、4字内容复制到E2PROM中
重调E2PROM
0B8H
将E2PROM中内容恢复到RAM中的第3、4字节
读供电方式
0B4H
读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外部供电时DS18B20发送“1”
表3-7
(6)DS18B20的信号方式
DS18B20采用严格的单总线通信协议,以保证数据的完整性。
该协议定义了几种信号类型:
复位脉冲、应答脉冲、写0、写1、读0和读1。
除了应答脉冲所有这些信号都由主机发出同步信号。
总线上传输的所有数据和命令都是以字节的低位在前。
a.初始化序列:
复位脉冲和应答脉冲
在初始化过程中,主机通过拉低单总线至少480µs,以产生复位脉冲(TX)。
然后主机释放总线并进入接收(RX)模式。
当总线被释放后,5kΩ的上拉电阻将单总线拉高。
DS18B20检测到这个上升沿后,延时15µs~60µs,通过拉低总线60µs~240µs产生应答脉冲。
初始化波形如图3-8所示。
图3-8初始化脉冲
b.读和写时序
在写时序期间,主机向DS18B20写入指令;而在读时序期间,主机读入来自DS18B20的指令。
在每一个时序,总线只能传输一位数据。
读/写时序如图3-9所示。
●写时序
存在两种写时序:
“写1”和“写0”。
主机在写1时序向DS18B20写入逻辑1,而在写0时序向DS18B20写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 基于 单片机 总线 多点 温度 测控 系统