当前位置:无忧公文网 >范文大全 > 征文 > 多路温度测量系统

多路温度测量系统

时间:2022-03-23 09:27:04 浏览次数:

摘 要:利用89C51单片机作为主控芯片,温度传感器DS18B20组成的多路温度测量系统,具有硬件简单,测量方便,价格低廉等特点。主要设计了多路温度测量系统所需要的硬件设计,并编写了软件设计的部分程序。

关键词:AT89C51单片机;DS18B20;多路温度测量系统

中图分类号:TP311.52 文献标识码:A 文章编号:1672-7800(2011)09-0010-02

1 总体方案设计

利用单片机实现的多路温度测量系统所选用的器件主要有:AT89C51单片机、一线总线数字温度传感器DS18B20、液晶显示器LCD1602以及看门狗芯片X5045。

多点测温系统采用在一根数据线上串接多个DS18B20器件,所形成的电路结构简单,运行可靠。由于每个DS18B20都有其各自的序列号,这样在一条总线上串接多个DS18B20组成的多点测温系统中就不会发生冲突或者是读错温度值。在系统安装及工作之前应将主机逐个与DS18B20挂接,以读出其序列号。但是如果将DS18B20的序列号和程序一起写入ROM中时,那单片机就只识别这几个传感器,那将来在需要增加传感器个数的时候或者传感器出现问题需要更换传感器的时候将会变的很麻烦。所以系统采用了24C02来存储DS18B20的序列号,24C02是一种具有I2C 接口的EEPROM 器件,容量为256字节,由于价格低廉、与单片机的接口简单、占用资源少,这样就可以在现场安装或更换传感器。每个传感器的序列号在24C02中的存放位置为:(传感器编号-1)*8。

每只传感器直接挂接在单总线DQ 上,通过4.7KΩ的电阻上拉。安装/更换传感器时,将SW 拨向“设置”,传感器单独与P1.2 相连,以读取其序列号;正常测温时,SW 拨向“测温”如图1所示。

图1 设计图

系统的总体测温流程是采样各点温度时,先对总线上的所有传感器复位,并跳过ROM,启动温度转换命令,这样所有挂在总线上的DS18S20同时开始转换,750ms后,转换结束,单片机再依次发匹配ROM命令,从24C02中读出的序列号id通过DQ总线送出,选中指定的DS18B20,并将温度值读入。温度值通过液晶显示器LCD1602显示出来,界面简单明了,温度的显示采用的是巡回显示温度。每根总线上所接的传感器的个数最多不超过8个,当系统所要应用的环境所测量的温度点较少时就可以采用这种方法。

2 温度传感器

DS18B20属于数字式温度传感器,由美国DALLAS公司生产,具有接口简单、容易扩展等优点,并且可以多个使用,开发成多点的温度测量系统。在实际应用中也应注意以下问题:

(1)DS18B20从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85℃。

(2)当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题。

(3)连接DS18B20的总线电缆是有长度限制的。

3 硬件电路设计

图2是单片机AT89C51通过单总线控制多个DS18B20的电路图,DS18B20的DQ引脚的I/O为数据输入/输出端(即单线总线),与单片机的P1.2口相连接。通常要在单线总线上外接一个约为4.7kΩ的上拉电阻,这样,当总线闲置时其状态为高电平。LCD1602的数据线DB0~DB7与单片机的P0口连接(即P0.0~P0.7),三个控制引脚RS、R/W、E分别与单片机的P1.7、P3.0、P3.1连接。看门狗芯片X5045有8个引脚,其中WP只有在高电平时才可以向E2PROM写数据,所以WP与VCC引脚都接电源;RST为复位输出引脚,与单片机的RESET相连;SI为串行输入引脚,SO为串行输出引脚,SCK为串行时钟引脚,/CS为片选引脚。SI、SO、SCK和/CS均可以和单片机任何一个I/O引脚相连,这里将其与单片机、P1.3、P1.4、P1.5、P1.6相连。系统所选用的是4×4行列式键盘,与单片机的P2口连接(即P2.0~P2.7)。SCL是存储器24C02的串行时钟线,SDA是数据及地址线,SCL和SDA与单片机的P1.0、P1.1连接; A0、A1、A2、WP引脚都接地,则编程时芯片的地址信息是“000”。系统报警电路主要由蜂鸣器构成,当温度超出限值时,蜂鸣器鸣叫。蜂鸣器由SPCON端控制发声,当SPCON输出低电平时,蜂鸣器响;输出为高电平时,蜂鸣器停止鸣叫,SPCON与单片机的P3.2口连接。

图2 电路图

DS18B20采用了外部电源供电方式进行供电,工作稳定,抗干扰能力较强。单片机的工作时钟周期是12MHz,在软件的设计中要依据这个来进行各种延时。

当主机需要对众多在线DS18B20 的某一个进行操作时首先要发出匹配ROM 命令(55H) ,然后主机提供64 位序列(包括该DS18B20 的48 位序列号), 之后的温度转换操作就是针对该DS18B20 的。先跳过ROM命令 即是启动所有DS18B20 进行温度变换,之后通过匹配ROM 再逐一地读回每个DS18B20 的温度数据。

在DS18B20 组成的多路温度测量系统中主机在发出跳过ROM 令之后再发出统一的温度转换启动码44H 就可以实现所有DS18B20 的统一转换,再经过1s 的延时后就可以用很少的时间去逐一读取各个DS18B20的温度,然后再通过显示电路将温度显示出来。这种方式比较传统的方式更加省时,并且当通道数越多的时候效果就越明显。图5是多路温度测量系统读取温度的流程图。

图5 读取温度的流程图

5 结束语

系统进行多路的温度测量与显示,在显示温度方面采用的是温度的巡回显示和特定温度显示两种方法,通过键盘的设定来选择方式。采用的传感器是DS18B20,其硬件简单、测温方便、价格低廉。温度的显示是通过LCD1602显示出来的,系统还添加了看门狗模块,目的是增加可靠性和抗干扰的能力。下一步的工作就是对系统的实时性进行改进,对单片机的程序进行改进和优化,简化指令,缩短程序执行和等待的时间。

参考文献:

[1] 龙脉工作室,刘坤,宋戈,等.51单片机C语言应用开发技术大全[M].北京:人民邮电出版社,2008.

[2] 求是科技.单片机典型模块设计实例导航(第2版)[M].北京:人民邮电出版社,2008.

[3] 明日科技.51单片机C语言开发实例[M].北京:人民邮电出版社,2008.

[4] 柳淳,徐玮.单片机开发应用技能与技巧[M].北京:中国电力出版社,2007.

[5] 李林功,吴飞青,王兵,等.单片机原理与应用[M].北京:机械工业出版社,2007.

[6] 王为青,邱文勋.51单片机应用开发案例精选[M].北京:人民邮电出版社,2007.

[7] 黄维翼,居平.由DS18B20构成的多路测温系统[J].传感器世界,2004(10).

[8] 张俊生.基于DS18B20多点测温系统的改进[J].科技咨询,2008(34).

[9] 刘红玲,秦敬辉.X5043/X5045及其应用[J].彭城职业大学学报,2003(2).

[10] 姜伟光,郝磊.X5045电路及其应用[J].国外电子元器件,2002(5).

[11] 鲁刚强.基于液晶显示器的单片机系统设计[J].科技咨询,2008(35).

[12] 赵亮.液晶显示模块LCD1602应用[J].电子制作,2007(3).

责任编辑:周晓辉)

推荐访问: 多路 测量 温度 系统