77范文网 - 专业文章范例文档资料分享平台

基于单片机的单总线多点温度测控系统(4)

来源:网络收集 时间:2019-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

为操作各器件作好准备 跳过ROM 0CCH 忽略64位ROM地址,直接向DS18B20V 温度转换命令,适用于单个DS18B20工作 执行后,只有温度超过庙宇值上限或下限的片子才做出响应 启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果丰入内部9字节RAM中 读暂存器 写暂存器 复制暂存器 重调EPROM 读供电方式 2报警搜索命令 0ECH 温度转换 44H BEH 4EH 48H 0B8H 0B4H 读内部RAM中9字节的内容 发出向内部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据 将RAM中第3、4字内容复制到E2PROM中 将EPROM中内容恢复到RAM中的第3、4字节 读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外部供电时DS18B20发送“1” 2 (6)DS18B20的信号方式

DS18B20采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节的低位在前。

a.初始化序列:复位脉冲和应答脉冲

在初始化过程中,主机通过拉低单总线至少480μs,以产生复位脉冲(TX)。然后主机释放总线并进入接收(RX)模式。当总线被释放后,5kΩ的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15μs~60μs,通过拉低总线60μs~240μs产生应答脉冲。初始化波形如图3-8所示。

3-8 初始化脉冲

b.读和写时序

在写时序期间,主机向DS18B20写入指令;而在读时序期间,主机读入来自DS18B20的指令。在每一个时序,总线只能传输一位数据。读/写时序如图3-9所示。

写时序

- 16 -

存在两种写时序:“写1”和“写0”。主机在写1时序向DS18B20写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60μs,且在两次写时序之间至少需要1μs的恢复时间。两种写时序均以主机拉低总线开始。

产生写1时序:主机拉低总线后,必须在15μs内释放总线,然后由上拉电阻将总线拉至高电平。产生写0时序:主机拉低总线后,必须在整个时序期间保持低电平(至少60μs)。

在写时序开始后的15μs~60μs期间,DS18B20采样总线的状态。如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。

读时序

图3-9DS18B20读/写时序图

DS18B20只能在主机发出读时序时才能向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。所有读时序至少60μs,且在两次独立的读时序之间至少需要1μs的恢复时间。

每次读时序由主机发起,拉低总线至少1μs。在主机发起读时序之后,

- 17 -

DS18B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数据在读时序下降沿起始后的15μs内有效,因此主机必须在读时序开始后的15μs内释放总线,并且采样总线状态。

DS18B20 在使用时,一般都采用单片机来实现数据采集。只需将DS18B20 信号线与单片机1 位I/O线相连,且单片机的1 位I/O 线可挂接多个DS18B20 ,就可实现单点或多点温度检测。

(7)DS18B20的温度计算

DS18B20允许通过程序对传感器的分辨率,温度报警的上、下限等参数进行配置。它的内部存储器包括一个高速暂存存储器和一个非易失性可擦除E2PROM。速暂存存储器共有8个字节(byte),每个字节8位(bit)。

根据温度的计算方法如下: S S S S S = 11111 b 温度值:

T = [ (MSB and 7) ×256 + LSB] ×0.0625 ℃ SSSSS = 00000 b 温度值:

T = - [ (256 - MSB) ×256 - LSB] ×0.0625 ℃

如果,存储器高位寄存器MS的S S S S S 均为1 ,则被测温度为正值,用上面第1个公式来计算温度。如果存储器高位寄存器MSB的S S S S S均为0,则被测温度为负值,用上面第2个公式来计算温度。在这里,有两点应当注意:一是公式中中括号内的数值为二进制,在计算口号内计算完成后应转化为十进制;二是这里的7与0.0625是假设传感器的分辨率设置0.0625时的计算值。如果分辨率的设置值不是0.0625,那么就应当作相应的变化。第3和第4个字节分别用来存放温度报警的上限(TH)和下限值(TL)。DS18B20在完成温度变换后,会将所测温度值与贮存在TH和TL内的上下限值相比较,如果测温结果高于TH或低于TL,DS18B20内部的告警标志就会被置位,表示温值超出了测量范围。并且该值在掉电后不会丢失,而是记忆其设定的上下限值。第5字节是配置寄存器,如表2.3所示,该寄存器用于对温度转换值的分辨率进行设置。其中,最高位用于设置传感器是工作模式还是测试模式,是生产厂家为便于检验使用。其出厂时的默认值为0,为工作模式(即用户使用时的模式)。并且在用户使用中,该位总是保持为0。R1与R0确定传感器的分辨率,如表2.4所示,DS18B20有4种分辨率可供选择。

- 18 -

使用时可以根据实际需要来设置,出厂时的默认设置是12位。最后5位总保持1 3.2.2键盘电路设计

根据设计任务书中要求实现的功能,我选择了4X4=16个键盘的矩阵键盘来设置温度的上、下限值,此键盘设计符合系统设置要求,所以我选择此键盘完成本设计。

①矩阵键盘结构:

键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。矩阵键盘又称行列式键盘,这种行列式键盘结构能够有效的提高单片机系统中I/O口的利用率。它的结构和产生的波形如图3-11所示。

图3-11键盘结构及产生的波形图

②矩阵键盘工作原理:

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图3-12所示。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键来连通。利用这种行列矩阵结构只需N条行线和M条列线,即可组成具有N*M个按键的键盘。这样,一个端口就可以构成4X4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,图3-12中,行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

- 19 -

图3-12 键盘电路原理图

③键盘按键的判断:

上面是一个4x4的键盘,公用4+4=8条接口线,如果按下键8,则第一行的线与第一列的线接通,当前第一行如果是低电平则第一列也输出低电平,而其他没有的列输出为高电平,根据行列线的电平,就可以判断按下的键的行位置。

a)判断有无键按下。

b)去除键的机械抖动。方法是判别到有键按下,延时10ms在读,如仍有键按下,再确定为键按下,否则为抖动。

c)判别按下键的键号。

d)CPU对键的一次闭合只作一次处理。方法是等键释放后再把键值作有效处理。

列扫描法识别键号的工作原理如下:

将第0列变为低电平,其余列为高电平,输出编码为1110。然后读取行的电平,辨别第0列是否有键按下。在第0列上若有某一个按键按下,则相应的行被拉到低电平,则表示第0列和此行相交的位置上有键按下。若没有任一条行线为低电平,则说明列上无键按下。

将第1列变为低电平,其余列为高电平,输出编码为本1101。然后通过输入口读取各行的电平。检测其中是否有变为低电平的行线。若有键按下,则进而辨别哪一行有键按下,确定按键位置。

将第2列变为低电平,其余列为低电时平,输出编码为本1011。辨别是否有哪一行按键按下的方法同上。

将第3列边为第电平,其余列为低电平时,输出编码为本0111。辨别是否有哪一行按键按下的方法同上。

- 20 -

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的单总线多点温度测控系统(4)在线全文阅读。

基于单片机的单总线多点温度测控系统(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/613374.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: