基于51单片机的电热水器控制系统的设计_毕业设计论文 下载本文

图3.5 DS18B20内部结构图

每只DS18B20都有一个唯一存储在ROM中的64位编码。最前面8位是单线系列编码,接着的49位是唯一的序列号,最后8位是以上56位的CRC编码。当一条总线上皆有多个DS18B20时,就通过序列号对其加以区分。

主机操作ROM的指令有5种:

33H——读ROM。读DS18B20温度传感器ROM中的编码。

55H——匹配ROM。发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20并使之做出响应,为下一步对该DS18B20的读写做准备。

F0H——搜索ROM。用于确定挂接在同一总线上DS18B20的个数,识别64位ROM地址,位操作各期间做好准备。

CCH——跳过ROM。忽略64位ROM地址,直接向18B20发温度变换命令。 ECH——告警搜索命令。执行后只有温度超过设定值上限或下限的芯片才做出响应。

高速暂存器RAM由9个字节组成。其组成如图3.8所示。包括两个温度显示位,两个复制的TH和TL,一个配置寄存器和三个保留位,一个CRC校验值。可电擦E2PROM又包括温度触发器TH和TL,以及一个配置寄存器。

表3.3 高速暂存器RAM组成

寄存器内容 温度值地位(LSB) 温度值高位(MSB) 高温限值(TH) 低温限值(TL) 配置寄存器 保留 保留 保留 CRC校验值

操作RAM的指令主要有:

字节地址 0 1 2 3 4 5 6 7 8 44H——温度转换。启动DS18B20进行温度转换,结果存入RAM。 BEH——读暂存器。读内部RAM中的温度数据。

4EH——写暂存器。发出像内部RAM写上、下限温度数据指令,紧跟该命令之后传送2字节的数据。

48H——复制暂存器。将RAM中的TH、TL复制到E2PROM中。 B8H——重调E2PROM。将E2PROM中内容恢复到中。

B4H——读供电方式。寄生供电时,DS18B20发送0,外界电源供电时,DS18B20发送1。

3.2.3 DS18B20的工作时序

DS18B20需要严格的单总线协议以确保数据的完整性,主要包括初始化系列,读序列,写序列,所有时序都是讲主机作为主设备,单总线设备作为从设备。每一次命令和数据的传输都是从主机启动写时序开始,如果要求单总线器件会送数据,在进行写命令后,主机需启动读时序写完数据将接受。数据和命令的传输都是地位在先。

初始化时序:

1)先将数据线置高电平1。

2)延时(该时间要求不是很严格,但是要尽可能短一点)。 3)数据线拉到低电平0。

4)延时750us(该时间范围可以在480~960us)。 5)数据线拉到高电平。

6)延时等待。如果初始化成功,则在15~60ms内产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。

7)若CPU读到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起至少要480us.

8)将数据线再次拉到高电平1后结束。如图3.6所示。

图3.6 初始化时序图

写时序:

1)数据线先置低电平0。 2)延时确定的时间为15us。 3)按从低位到高位的顺序发送数据。 4)延时时间为45us。 5)将数据线拉到高电平1。

6)重复1)~5)步骤,直到发送完整个字节。 7)最后将数据线拉高到1。如图3.7所示。

图3.7 写数据时序图

读时序:

1)将数据线拉高到1。 2)延时2us。

3)将数据线拉低到0。 4)延时6 us。 5)将数据线拉高到1。 6)延时4 us。

7)读数据线的状态得到一个状态位,并进行数据处理。 8)延时30us。

9)重复1~7步骤,直到读取完一个字节。如图3.8所示。

图3.8 读数据时序图

第四章 硬件模块的设计

在第二章已经提到硬件件模块的设计主要是指以单片机为核心,包括外接的温度采集电路,实时时钟电路,键盘,热水器加热开关,液晶显示电路,报警电路以及复位电路的设计。

图4.1 硬件模块设计框图

4.1 温度采集模块

首先我们选择DS18B20作为本次设计的测温元件。

由第三章有关内容可知DS18B20温度传感器可以将温度这一模拟信号转化为数字信号供处理器进行处理,从而省去了电阻电感式传统温度传感器的信号运放模块与A/D转换模块。

DS18B20只有三根外引线:单线数据传输总线端口DQ (2),外供电源线VDD(3),共用地线GND(1)。DS18B20有两种供电方式:一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。这种情况下,用单片机的一个I/O口来完成对DS18B20总线的上拉。另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。