第二章 系统的硬件设计与实现
(7) SPI串行接口
MAX6675采用标准的SPI串行外设总线与MCU接口,且MAX6675只能作为从设备。MAX6675 SO端输出温度数据的格式如表2-1所示,MAX6675 SPI接口时序如图2-7所示。MAX6675从SPI串行接口输出数据的过程如下:MCU使CS变低并提供时钟信号给SCK,由SO读取测量结果。CS变低将停止任何转换过程;CS变高将启动一个新的转换过程。一个完整串行接口读操作需16个时钟周期,在时钟的下降沿读16个输出位,第1位和第15位是一伪标志位,并总为0;第14位到第3位为以MSB到LSB顺序排列的转换温度值;第2位平时为低,当热电偶输入开放时为高,开放热电偶检测电路完全由MAX6675实现,为开放热电偶检测器操作,T-必须接地,并使能地点尽可能接近GND脚;第1位为低以提供MAX6675器件身份码,第0位为三态。
表2-1 MAX6675 SO端 输出数据的格式
位 空标志位 12位温度 热电偶输入 2 设备身份 状态 位 15 0 14 13 12 11 10 9 8 7 6 5 4 3 1 0 0 三态 MSB LSB
图2-7 MAX6675 SPI接口时序
- 12 -
第二章 系统的硬件设计与实现
2.3.6 DS18B20工作原理及说明
(1)DS18B20内部结构
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。另外,下面给出一部分的温度对应值表,表2-2。
64 存储器与控制逻辑 I/O C 位 R O M 和 单 线 接 口 高速缓存 温度传感器 高温触发器TH 低温触发器TL Vdd 配置寄存器 8位CRC发生器 图2-8 DS18B20内部结构 表2-2 一部分温度对应值表
温度/℃ +125 +85 +25.0625 +10.125 +0.5 0 -0.5 -10.125 -25.0625 -55
二进制表示 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0000 0000 0000 1010 0001 0000 0000 0000 0010 0000 0000 0000 1000 1111 1111 1111 0000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 - 13 -
十六进制表示 07D0H 0550H 0191H 00A2H 0008H 0000H FFF8H FF5EH FE6FH FC90H 第二章 系统的硬件设计与实现
(2)DS18B20工作原理
图2-9中低温度系数晶振的震荡频率受温度的影响很小,用于产生固定频率的脉冲送给减法计数器1;高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数震荡器产生的时钟脉冲计数,进而完成温度测量。计数门的开启时间由高温度系数震荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1,温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1所对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将被重新装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图2-8中的斜率累加器用于补偿和修正测温过程中的非线形性,其输出用于减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被预测值。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要,系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20→发ROM功能命令→发存储器操作命令→处理数据。
- 14 -
第二章 系统的硬件设计与实现
斜坡累加器
预置 计数比较器
减数计数器1 低温度系数振荡器 预置
减到零 增加 温度寄存器
停止 高温度系数振荡器 减数计数器2 图2-9 DS18B20 测温原理图
减到零 2.3.7 LCD1602工作原理及说明
(1)寄存器选择控制
1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符,图形寄存器选择控制表如表2-3所示:
表2-3 1602寄存器选择控制表
RS 0 0 1 1 R/W 操作说明 0 1 (DB0-DB6)的值 0 1 写入数据寄存器(显示各字型等) 从数据寄存器读取数据 写入指令寄存器(清屏指令等) 读busy flag,以及读取位址计数器 (2)指令集
- 15 -
相关推荐: