2.1DS18B20与单片机的接口电路
DS18B20与8051单片机连接非常简单,只需将DS18B20信号线与单片机一位I/O线相连,且一位I/O线可连接多个DS18B20,以实现单点或多点温度测量。DS18B20可以通过2种方式供电:外加电源方式和寄生电源方式。前者需要外加电源,电源的正负极分别与DS18B20的VDD和GND相连接。后者采用寄生电源,将DS18B20的VDD与GND接在一起,当总线上出现高电平时,上拉电阻提供电源;当总线低电平时,内部电容供电。由于采用外加电源方式更能增强DS18B20的抗干扰性,故本设计采用这种方式。在实际应用中,传感器与单片机的距离往往在几十米到几百米,传输线的寄生电容对DS18B20的操作也有一定的影响,所以往往在接口的地方稍加改动,以增加芯片的驱动能力和减少传输线电容效应带来的影响,达到远距离传输的目的。
2.2键盘及显示
键盘通过编程设置可完成以下功能:对温度值进行标定,定时显示各路的温度值,单独显示某路的温度值,给每一路设定上下限报警值等。LED则可为用户提供直观的视觉信息。在工作现场,用户可通过6位LED的显示数据来确定系统的当前工作状态以及采样的温度值信息等。
2.3报警电路
当被测温度值超过预先设定的上下限时,报警电路作出响应,蜂鸣器发出响声,告知用户温度的异常。具体哪一个传感器温度值超限,可由软件查询各DS18B20内部告警标志而确定,继而调整该现场温度,以达到对温度波动的控制。3.1下位机软件
系统下位测温部分软件采用MCS51汇编语言编写,主要完成对DS18B20的读写操作,实现实时数据的采集,并获取最终温度值送至单片机内存。但需要注意的是,由于DS18B20的单总线方式,数据的读写都占用同一根线,所以每一种操作都必须严格按照时序进行。图2为测温子系统流程图。单片机首先发送复位脉冲,该脉冲使信号线上所有的DS18B20芯片都被复位,接着发送ROM操作命令,使得序列号编码匹配的DS18B20被激活。被激活后的DS18B20进入接收内存访问命令状态,内存访问命令完成温度转换、读取等工作(单总线在ROM命令发送之前存储命令和控制命令不起作用)。
3.2上位机软件
系统上位机的软件采用VC++6.0编写。主要完成的功能包括:与下位单片微机的实时通信;模拟显示各采集点温度曲线;保存各测温点温度数据;统计各采集点平均温度值;打印各点温度统计报表等。