单片机DS18B20数字温度计设计 - 图文 下载本文

3.2.3DS18B20的指令介绍

对ROM区操作的指令:

(1)33H—读ROM。读DS18B20温度传感器ROM的编码(即64位地址)。

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

(3)F0H—搜索ROM。用于确定挂接在同一总线上DS18B20的个数,识别64位ROM地址,为操作个器件做好准备。

(4)CCH—跳过ROM。忽略64为ROM地址,直接向18B20发温度转换命令,适用于一个从机工作。

(5)ECH—告警搜索命令。执行后只有温度超过设定值上限或下限的芯片才做出响应。 对RAM区操作的指令:

(1)44H—温度转换。启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节的RAM中。

(2)BEH—读暂存器。读内部RAM中9字节的温度数据。

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

(4)48H—复制暂存器。将RAM中第2,3字节的内容复制到E2ROM中。 (5)B8H—重调E2ROM中内容回复到RAM中的第3,4字节。

(6)B4H—读供电方式。读DS18B20的供电模式。寄生供电时,DS18B20发送0;外接电源供电时,DS18B20发送1。

3.2.4DS18B20的工作时序

① 初始化时序如图3.2.3

图3.2.3初始化时序图

1) 2) 3) 4) 5) 6)

先将数据线置高电平1。

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

延时750us(该时间范围可以在480us~960us)。 数据线拉到高电平1。 延时等待。如果初始化成功则在15~60us内产生一个有DS18B20返回的低电平0,据该状态可以确定它的存在。但是应注意,不能无限地等待,不然会使程序进

10

入死循环,所以要进行超时判断。

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

算起(第5)步的时间算起)最少要480us。 8) 将数据线再次拉到高电平1后结束。

② DS18B20写数据时序图如图3.2.4

图3.2.4 写数据时序图

1) 数据线先置低电平0。 2) 延时确定的时间为15us。

3) 按从低位到高位的顺序发送数据(一次只发送一位)。 4) 延时时间为45us。

5) 将数据线拉高到高电平1。

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

③ DS18B20读数据时序图如图3.2.5

图3.2.5 读数据时序图

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

11

3) 4) 5) 6) 7) 8) 9) 将数据线拉低到0。 延时6us。

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

读数据线的状态位,并进行数据处理。 延时30us。

重复1)~7)步骤,直到读取完一个字节。

3.2.5DS18B20电路

图3.2.6 DS18B20电路图

3.3LCD1602显示电路

3.3.1LCD1602概述

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它能显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

特性:

(1)3.3V或5V工作电压,对比度可调 (2)内含复位电路

(3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 (4)有80字节显示数据存储器DDRAM

(5)内建有192个5X7点阵的字型的字符发生器CGROM (6)8个可由用户自定义的5X7的字符发生器CGRAM

12

3.3.2LCD1602管脚及其功能

图3.3.1 1602管脚配置图

1602采用标准的16脚接口,其中: 第1脚:VSS为电源地

第2脚:VCC接5V电源正极

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度 最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调 整对比度)。

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。 第7~14脚:D0~D7为8位双向数据端。

第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。

3.3.3LCD1602指令

表3.3.1LCD1602的指令

指令码 RS 0 R/W 0 D7 0 D6 0 D5 0 D4 0 D3 0 D2 0 D1 0 D0 1 将DDRAM填满\并且设定DDRAM的地址计数器(AC)到\0 光标复位 0 0 0 0 0 0 0 1 0 设定DDRAM的地址计数器(AC)到\并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容 显示开关控制 输入方式设置 光标移位 功能设置 0 0 0 0 0 1 S/C 0 0 0 0 1 DX R/L R13

X X 0 0 0 0 0 0 0 1 I/D X X S 0 0 0 0 0 0 1 D C B D=1: 整体显示 ONC=1: 游标ON B=1:游标位置反白允许 指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位 设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容 DL=0/1:4/8位数据RE=1: 扩充指令操功 能 清屏