当前位置:文档之家› 基于ds18b20的多点测温.

基于ds18b20的多点测温.

基于DS18B20的单总线多点测温系统、摘要:本文主要介绍了一个基于DS18B20单片机的测温系统,详细描述了传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感DS18B20的数据采集过程。

对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。

DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。

随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时作出决定。

在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要关键词:DS18B20,AT89c51,多点测温一、任务分工:表1—1 任务分工表二、功能描述:1.使用前程序读取序列号,一次性写入代码中。

此系统写入了三个传感器的序列号。

2.上电,显示“welcome”开机画面。

3.按键1功能选择键,可以选择显示相应的节点,显示所有节点温度,显示平均温度。

4.按键2确认键,按键1选择相应的界面后,按确认键,,同时对传感器进行数据采集,并显示温度。

三、方案选择:一)总线方案:方案一:单端口单总线的多点测温典型应用如图所示,所有DS18B20并联后其数据线连接到处理器的一个端口线上,显著特点是只占用单片机的一个端口。

每个DS18B20内部均有一个唯一的64位序列号,在工作之前先将主系统与DS18B20逐个连接,分别读出序列号并存储在单片机中,根据序列号就可以对同一总线上多个DS18B20进行识别控制,分别读取其温度。

图3—1 DS18B20单总线连接图其主要设计思想是:当单片机需要对众多DS18B20中某一个进行操作,首先发出匹配命令,接着单片机把存储的64位序列号发送到总线,只有此序列号的DS18B20才接收相应的命令,之后的操作就是针对该DS18B20的。

设计优缺点:这种测温连接方法是电路连接简单,硬件开销小。

缺点是该方案是由多个DS18B20并联连接在一起的,他们之间会有一定的相互影响。

最重要的是,在这种方案中,多个器件串接在总线上,对所有器件的查询操作,需要一个一个分别识别,完成一次查询需要花费大量时间,降低了系统效率,对一些实时性要求较高的设计不大适用。

方案二:多端口并行法各个DS18B20数据线分别连接到不同的端口,工作时,单片机同时对各个DS18B20进行统一的并行操作,对所有DS18B20而言,其命令的接收与数据的传送是同步进行的,所花费时间等同于操作单个DS18B20所用时间。

图3—2 DS18B20多端口连接图这种方案最大好处是节省时间,能满足对实时性要求较高的温度测量系统设计需求,同时由于这种方法不涉及序列号问题节省了读取与匹配的操作过程。

而其缺点也显而易见,占用的端口数较多,每个测试点需要一个连接线,硬件资源开销大方案二:I²C总线两线式串行总线,用于连接微控制器及其外围设备。

是微电子通信控制领域广泛采用的一种总线标准。

它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。

通过串行数据(SDA)线和串行时钟(SCL)线在连接到总线的器件间传递信息。

每个器件都有一个唯一的地址识别(无论是微控制器——MCU、LCD 驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。

而DS18B20只有一根数据线,I²C总线需要一根数据线与一根地址线,无法实现。

综上所述:为了更好的节省硬件资源,达到多点测控,我们选择方案二。

二)液晶显示方案:方案一:LCD1602图3—3 LCD引脚图1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。

方案二:LCD12864带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。

两者各自优点:1602是字符型液晶,显示字母和数字比较方便,控制简单,成本较低。

1602采用并口传输,速度比12864串口快。

12864 顾名思义像素是128*64,能显示8*4个汉字,因型号不同,有的带汉字库,有的不带,能显示图像效果,功能比1602强大。

综上所述:1602是字符型液晶,显示字母和数字比较方便,控制简单,成本较低。

1602采用并口传输,速度比12864串口快。

四、硬件设计:一)系统框图:图4—1 多点测温系统框图温度传感器DS18B20检测到环境温度进行转换保存高速缓存RAM中,主控器STC89C51在发出命令后在读取数据进行处理,按键扫描再输出数据到LCD1602控制其显示的具体温度值。

图4—2 系统仿真图:二)各部分硬件介绍:1.STC89C51单片机图4—3 STC STC89C51单片机引脚图①电源引脚Vcc(40脚):典型值+5V。

Vss(20脚):接低电平。

②外部晶振X1、X2分别与晶体两端相连接。

当采用外部时钟信号时,X2接振荡信号,X1接地。

③输入输出口引脚:P0口:I/O双向口。

作输入口时,应先软件置“ 1”。

P1口:I/O双向口。

作输入口时,应先软件置“ 1”。

P2口:I/O双向口。

作输入口时,应先软件置“ 1”。

P3口:I/O双向口。

作输入口时,应先软件置“ 1”。

④控制引脚:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。

RST/Vpd(9脚):复位信号输入端(高电平有效)。

第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。

ALE/-PROG(30脚):地址锁存信号输出端。

第二功能:编程脉冲输入。

-PSEN(29脚):外部程序存储器读选通信号。

-EA/Vpp(31脚):外部程序存储器使能端。

第二功能:编程电压输入端(+21V)。

2.温度传感器DS18B20图4—3 DS18B20引脚图温度传感器电路直接采用DS18B20设计,相比于模拟温度传感器,这种设计方法可以节省电路连接。

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

DS18B20的性能特点如下:1)独特的单线接口仅需一个端口引脚进行通讯2)每个器件有唯一的64 位的序列号存储在内部存储器中3)简单的多点分布式测温应用4)无需外部器件5)可通过数据线供电。

供电范围为3.0V到5.5V6)测温范围为-55~+125℃(-67~+257℉)7)在-10~+85℃范围内精确度为±0.5℃8)温度计分辨率可以被使用者选择为9~12位9)最多在750ms 内将温度转换为12 位数字10)用户可定义的非易失性温度报警设置11)应用包括温度控制、工业系统、消费品、温度计或任何热感测系统64位ROM的位结构如图3所示。

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

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

图4—4 64位ROM结构图DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。

该字节各位的定义热图5所示。

低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。

在DS18B20出厂时该位被设置为0,用户不要改动,R1和R0决定温度转换得精度位数,即用来设置分辨率,定义方法见表1。

图4—6 配置寄存器高速暂存RAM的第6,7,8字节保存未用,表现为逻辑1。

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

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

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

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

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。

主机根据ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到ROM数据是否正确。

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

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

图4—7 DS18B20采用寄生电源的电路图当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。

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

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

3.显示器LCD1602图4—8 LCD尺寸图LCD1602 采用标准的 16 脚接口,其中:第 1 脚:VSS 为地电源第 2 脚:VDD 接 5V 正电源第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K 的电位器调整对比度第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第 5 脚:RW 为读写信号线,高电平时进行读操作,低电平时进行写操作。

当 RS 和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW 为高电平时可以读忙信号,当 RS 为高电平 RW 为低电平时可以写入数据。

相关主题