DS18B20单片机温度控制系统设计

2018-12-07 10:21:04

单片机从上世纪开始,已经有四十多年的发展历史,其中最具有代表性的是8051序列,并且衍生出许多高性能1T时钟单片机。

四川升翔科技有限公司

在温度控制系统中,选用STC89C52单片机设计控制程序,传感器选用新型测温元件SD18B20数字温度传感器。系统总体设计思想是以STC89C52单片机为控制核心,整个系统硬件部分包括温度检测部分、控制执行部分、显示及键盘系统及最小系统基本电路。系统利用单片机获得温度传感器数据并与系统设计值进行比较,根据比较结果分别控制执行系统。


温度控制系统控制框图

四川升翔科技有限公司

2系统硬件设计

2.1控制核心

系统采用STC89C52单片机作为控制核心,进行温度采集、信息显示及执行机构的控制。STC89C52是美国SST公司推出的高可靠、小扇区结构的FLASH单片机,内部嵌入4KB的Super-FLASH,256字节的RAM,通过对其RAM做进一步扩展,可满足嵌入系统操作系统的运行条件。

2.2温度传感器

温度传感器采用DALLAS半导体公司的数字化温度传感器DSl8B20。该传感器支持“一线总线”接口,可方便地进行多点温度测量,还可以程序设定9~12位的分辨率,最高精度为±0.0625℃,分辨率设定及用户设定的报警温度存储在E2PROM中,掉电后依然保存。该产品支持3~5.5V的电压范围,因其体积小使系统设计更灵活、方便。DSl8B20的管脚排列如图3所示,其中DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输人端。


图3DSl8B20

四川升翔科技有限公司

DSl8B20内部结构主要由4部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DSl8B20的地址序列码。光刻ROM的作用是使每一个DSl8B20都各不相同,这样就可以实现1根总线上挂接多个DSl8B20的目的。

DSl8B20温度传感器的内部存储器包括9B高速暂存RAM和1B非易失性的可电擦除的E2PROM,后者存放高温度和低温度触发器TH,TL和结构寄存器,该字节第7位(TM)为0,低5位一直都是1,第6,5位(R1,R0)用来设置分辨率。


根据DSl8B20的通信协议,主机控制DSl8B20完成温度转换必须经过3个步骤:每一次读写之前都要对其进行复位,复位成功后发送1条ROM指令,最后发送RAM指令,这样才能对DSl8B20进行预定的操作。复位要求主CPU将数据线下拉500μs,然后释放,DSl8B20收到信号后等待16~60μs左右,后发出60~240μs的存在低脉冲,主CPU收到此信号表示复位成功。由于DSl8B20采用的是单线进行控制与读取数据,因此对操作的时序要求非常严格,否则由于时序不匹配,将无法完成对器件的正确操作。

2.3控制执行那分

(1)壁挂炉燃烧系统控制。控制电路采用了脉冲继电器器件作为整个系统的总控部分,当所有居室温度均达到设定值时,停止壁挂炉的工作。该继电器的特点是:当线圈收到一个脉冲信号后,线圈通电,电磁铁吸合,带动触头闭合接通需要控制的电路,当下一个信号到来后,电磁铁吸合,触头断开,切断被控制的电源,因此其具有自锁和信号遥控功能。由于磁铁的作用,控制脉冲消失后滑片位置不发生变化,保持稳定状态,所以该器件具有功耗小、具有记忆功能。

(2)居室温度控制。各居室温度控制在燃烧控制系统工作前提下,根据各居室温度测量返回值,采用上海欧凯电磁阀制造有限公司生产的OK6515自保持脉冲电磁阀控制各回路的通断。脉冲电磁阀采用脉冲和永磁技术,只需通过控制器切换脉冲的电极触点来改变电磁阀的开关状态,当控制器发出电脉冲时,驱动阀芯克服永磁力产生上下移,使阀瓣到位后在永磁作用下处于自保持状态。

为了能够提供形象直观的用户显示界面,系统采用图形液晶显示模块LCDl2864,其具有8位标准数据总线、6条控制线及电源线,可与CPU直接接口,显示各种字符及图形。考虑到系统中汉字的使用量少,因此选用不带汉字库的LCD。对于使用的汉字分别提取其字模并以二进制形式保存于内部FLASHROM中。

3系统软件设计

系统软件设计主要依据系统程序流程以及DSl8B20的时序要求进行代码编写。为了降低开发难度,提高开发效率,系统开发中引入了μC/OS一Ⅱ嵌入式操作系统并移植了LCD显示驱动。另一方面,为了确保对DSl8B20操作时序的精确性,对DSl8B20进行初始化和读写代码仍采用汇编语言。

系统数据结构

系统所需数据结构包括各测温元件的序列号表,汉字字模存储、系统运行时间表存储、各温控点的设定值及测量值、系统时间的存放及一些临时数据存储。

为了区别多个温度传感器,在系统初始化时读入传感器中的64位序列号,并将其存入程序存储空间,以便程序运行期间进行比对,共需64B。汉字字模采用16&TImes;16字库进行提取,其中每个汉字需32B,约15个字,为了方便程序功能的升级改进,在程序存储空间中按20个字进行空间分配,需要存储空间640B。系统运行时间表的设计以小时为设置单位,需要保存24个值;为了减少时间比较过程中的数据计算量以及方便编程,对每个值采用一个字节存储,这里共需24B存储空间,这里仍然使用程序存储空间进行存储,以便在系统掉电时设定值不会丢失。

系统程序设计

系统程序设计主要使用KeilC5l进行编写,但由于对DSl8B20器件的读写时序要求比较严格,故采用汇编代码。

微型计算机在智能化电器发展中起着至关重要的作用,而单片机经济实用、开发简便,因而在工业控制、家电智能化等领域占据了广泛的市场。这里针对目前温度控制器现状设计了一种新方案,利用单片机及新型测温器件设计了一种多点温控采暖控制系统,该系统能够同时测量多点温度,并根据温度设定实时控制各回路通断及壁挂炉的燃烧与停止,从而进一步提高居室的舒适性以及采暖系统的经济性。

 


My title