基于89C52的温控系统的设计

2013-09-14 08:06徐丽丽
电子测试 2013年6期
关键词:低电平温控温度传感器

徐丽丽 杨 风 李 健

(中北大学信息与通信工程学院,太原 030051)

0 引言

温度是生产过程和科学实验中非常普遍而又十分重要的物理参数。在工业生产过程中,为了高效地进行生产,必须对生产工艺过程中的主要参数,如温度、压力、流量、速度等进行有效的控制,其中温度控制在生产过程中占有相当大的比例。准确地测量和有效地控制温度是优质、高产、低耗和安全生产的重要条件。而且在我们的日常生活中也使用微波炉、电烤箱、电热水器、空调等家用电器,温度与我们息息相。可见温度控制电路广泛应用于社会生活的各个领域,所以对温度进行控制是非常有必要和有意义的。

1 温控系统的硬件设计

1.1 温控系统的设计方案

本文设计的温控系统是以89C52单片机为核心,智能温度传感器DS18B20为控制对象,用七段数码管显示当前室内温度,当当前室内温度高于20摄氏度时,发光二极管就会点亮报警。美国DALLAS半导体公司推出的数字化温度传感器DS18B20采用单线协议,即与单片机接口仅需占用一个I/O端口,无需任何外部元件,直接将环境温度转化成数字信号,以数字码方式串行输出,从而大大简化了传感器与微处理器的接口。鉴于DS18B20比传统的模拟温度传感器有很多优点,本文采用的温度传感器正是DS18B20。

1.2 DS18B20与89C52单片机的硬件连接

DS18B20与89C52单片机的硬件连接图是用仿真工具画的。从图1可以看出,DS18B20和单片机的连接非常简单,单片机只需要一个I/O口就可以控制。Vcc管脚接+5V电压给传感器供电。I/O管脚与89C52单片机的P2.2引脚相连,GND管脚接地。温度传感器DS18B20将被测温度转化为数字信号。显示模块由3个共阴极的七段数码管组成。所有数码管的阴极,即标有a,b,c,d,e,f,g,h的引脚全部连接在一起,然后与U1元件74HC753锁存器的数据输出端相连,锁存器的输入端连接单片机的P0口,P0口同时加上了上拉电阻。数码管中的WE1,WE2,WE3是它们的位选端,每一个数码管对应一个位选端,与U2元件74HC573的数据输出端相连,U2的数据输入端也连接到单片机的P0口。两个锁存器的锁存端与单片机的P2.6和P2.7相。报警模块由一个发光二极管构成。发光二极管一端接电源,并连接1k欧姆的电阻限流,另一端受单片机的P1.0脚控制。当测得的温度高于20时,发光二极管会点亮进行报警。这个系统的工作是在程序的控制下,完成对传感器的读写和对温度的显示。

图1 基于89C52的温度测控系统硬件连接图

1.3控制器对DS18B20的操作流程

1.3.1 初始化

图2 初始化时序图

结合图2的时序图,可以得知,DS18B20的初始化过程:给DS18B20单总线至少480微秒的低电平信号,当接收到此复位信号后,则会在15~60微秒后回发一个芯片的存在脉冲。至此,通信双方已经达成了基本的协议,接下来将会是控制器与DS18B20间的数据通信。

1.3.2 控制器发送ROM命令

ROM指令有5条,每一个工作周期只能发一条,ROM 指令分别是读ROM数据(33H)、指定匹配芯片(55H)、跳跃ROM(CCH)、芯片搜索(F0H)、报警芯片搜索(ECH)。本文设计的温控系统只接了单个DS18B20芯片,因此可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM 指令,而是用特有的一条“跳过指令”)。

1.3.3 控制器发送存储器操作命令

存储器操作指令有6条,分别是写RAM数据(4EH)、读RAM数据(BEH)、将 RAM 数据复制到 EEPROM(48H)、温度转换(44H)、将EEPROM中的报警值复制到 RAM(B8H)、工作方式切换(B4H)。存储器操作指令的功能是命令DS18B20 做什么样的工作,是芯片控制的关键。

1.3.4 控制器处理数据

写时间隙分为写“0”和写“1”,时序如图3。在写数据时间隙的前15微秒,总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在15 ~60 微秒,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将总线拉低则表示写“0”。每一位的发送都应该有一个至少15 微秒的低电平起始位,随后的数据“0”或“1”应该在45 微秒 内完成。整个位的发送时间应该保持在60 ~120 微秒,相邻两个写时隙必须要有至少1微秒的恢复时间,否则不能保证通信的正。

图3 写数据时序图

读时间隙也是必须先由主机产生至少1微秒的低电平,表示读时间的起始。随后在总线被释放后的15微秒中DS18B20 会发送内部数据位,这时控制器如果发现总线为高电平表示读出“1”,如果总线为低电平则表示读出数据“0”。每一位的读取之前都由控制器加一个起始信号。注意:如图4 所示,必须在读间隙开始的15微秒内读取数据位才可以保证通信的正确。

图4 读数据时序图

若要读出当前的温度数据需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500 微秒温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM 的存储器操作指令、读数据。

2 温控系统的软件设计

2.1 系统程序流程图

2.2 温控系统的部分软件设

2.2.1 DS18B20的初始化函数

2.2.2 读写一个字节数据函

2.2.3 读取温度并计算函数

3 结论

图6 实验测试结果

根据图6(1)(2)所示,早晨测得室内的温度是18.8度,旁边的第一个发光二极管没有亮;快接近中午时,测得的温度是20.4度,旁边的发光二极管点亮报警。本设计的目的是当室内温度高于20度时点亮二极管报警。很明显,该设计的方案是成功的。

[1] 农静.单总线数字温度传感器DSl8B20 原理及应用[J].贵州师范大学学报(自然科学版),2007,(25):120-122.

[2] 赵晶.Protel99 高级应用[M].北京:人民邮电出版社,2000,156-160

[3] 柳春锋. Protel99 SE 实用教程[M].北京:高等教育出版社,2007,110-112

[4] 周月霞,孙传友.DSl8820 硬件连接与软件编程[J].传感器世界,2001(12):25-29.

[5] 胡汉才.单片机原理及其接口技术(第二版)[M].北京:清华大学出版社,2004,49-51

[6] 易丽华.基于AT89C51单片机与DS18B20的温度测量系统[J]. 电子与封装,2008,(5),41-42

[7] 谭浩强.C 语言程序设计(第二版)[M].北京:清华大学出版社,1999,

[8] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2011,349-352

猜你喜欢
低电平温控温度传感器
温控/光控片上纳米裂结
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
XTR105电流变送器在温度传感器中的应用
浅谈物理电路与数字电路
遗传算法和神经网络的DFB激光器温控系统
15-MeV电子直线加速器的低电平系统
骨料自动温控技术
基于ARM7 和FPGA的风扇散热系统温控模块设计及实现