基于单片机的ds18b20多点测温系统lcd1602显示(完全免费内容摘要:
分辨率时,最多在 750ms内把温度转换为数字,显示速度快。 8) 测量结果直接输出数字温度信号,以“一线总线”串行送给 CPU,同时可 传送 CRC校验码,具有极强的抗干扰纠错能力。 9) 负压特性。 电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 9 1) 冷冻库、粮仓、储罐、电信机房、电力机房、电缆线槽等测温和控制领域。 2) 轴瓦、缸体、纺织、空调等狭小空间工业设备测温和控制。 3) 汽车空调、冰箱、冷柜以及中低纬度干燥箱等。 4) 供热、制冷管道热量计量、中央空调分户热能计量等。 DS18B20实物如图。 图 实物图 DS18B20 有两种封装:三角 TO92直插式(用的最多、最普遍的封装)和八角 SOIC贴 片式,封装引脚见图。 表 DS18B20 的引脚定义。 ( a) DS18B20 To92 (b)DS18B20 八角 SOIC 图 DS18B20 引脚封装图 表 DS18B20 引脚定义 引脚 定义 GND 电源负极 DQ 信号输入输出 VDD 电源正极 NC 空 10 ① DS18B20寄生电源供电方式 如下面图 (a)所示,在寄生电源供电方式下, DS18B20从单线信号线上汲取能量:在信号线 DQ处于高电平期间把 能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。 独特的寄生电源方式有三个好处: 1) 进行远距离测温时,无需本地电源 2) 可以在没有常规电源的条件下读取 ROM 3) 电路更加简洁,仅用一根 I/O口实现测温 要想使 DS18B20进行精确的温度转换, I/O线必须保证在温度转换期间提供足够的能量,由于每个 DS18B20在温度转换期间工作电流达到 1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠 ,会造成无法转换温度或温度误 差极大。 因此, 该 电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。 并且工作电源 VCC必须保证在 5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。 ② DS18B20寄生电源强上拉供电方式 改进的寄生电源供电方式如下面图 (b)所示,为了使 DS18B20 在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到 E2 存储器操作时,用 MOSFET 把 I/O线直接拉到 VCC就可提供足够的电流,在发出任何涉及到拷贝到 E2 存储器或启动温度转换的指令后,必须在最多 10μ S内把 I/O 线转换到强上拉状态。 在强上拉方式下可以解决电流供应不 足 的问题,因此也适合于多点测温应用,缺点就是要多占用一根 I/O 口线进行强上拉切换。 ③ DS18B20 的外部电源供电方式 如下面图 (c)所示, 在外部电源供电方式下, DS18B20工作电源由 VDD引脚接入, 其 VDD端用 3~ , 此时 I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个 DS18B20传感器,组成多点测温系统。 注意:在外部供电的方式下, DS18B20的 GND引脚不 能悬空,否则不能转换温度,读取的温度总是 85℃。 11 (a) 外部电源供电方式 (c) 寄生电源供电方式 (b) 寄生电源强上拉供电 方式 图 硬件电路连接好以后,单片机需要怎么样工作才能将 DS18B20中的温度数据读取出来呢。 下面将给出详细分析。 首先我们来看控制 DS18B20的指令: 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 发温度转换命令,适用于一个12 从机工作。 5) ECH— 告警搜索命令。 执行后只有温度超过设定值上限或下限的芯片才做出响应。 以上这些指令设计的存储器是 64 位光刻 ROM,表 列出了它的含义。 表 64位光刻 ROM各位定义 64位光刻 ROM 中的 序列号是出厂前被光刻好的,它可以看做该 DS18B20 的地址序列码。 其各位排列顺序是:开始 8 位为产品类型标号,接下来 48 位是该 DS18B20 自身的序列号,最后 8位是前面 56位的 CRC 循环冗余校验码( CR=X8+X5+X4+1)。 光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一条总线上挂接多个 DS18B20 的目的。 下面介绍以上几条指令的用法。 当主机需要对众多在线 DS18B20 中的某一个进行操作 时,首先应将主机逐个与 DS18B20 挂接,读出其序列号;然后再将所有的 DS18B20 挂接到总线上, 单片机发出匹配 ROM命令( 55H),紧接着主机提供的 64位序列(包括 DS18B20的 48位序列号)之后的操作就是针对该 DS18B20 的。 如果主机只对一个 DS18B20 进行操作,就不需要读取 ROM 编码以及匹配 ROM 编码了,只要用跳过 ROM( CCH)命令,就可以进行如下温度转换和 读取操作。 1) 44H— 温度转换。 启动 DS18B20 进行温度转换, 12 位转换时最长为 750ms( 9 位为)。 结果存入内部 9 字节的 RAM 中。 2) BEH— 读暂存器。 读内部 RAM 中 9字节的温度数据。 3) 4EH— 写暂存器。 发出向内部 RAM 的 3 字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 4) 48H— 复制暂存器。 将 RAM中第 2,3字节的内容复制到 E2ROM 中。 5) B8H— 重调 E2ROM 中内容回复到 RAM中的第 3, 4字节。 6) B4H— 读供电方式。 读 DS18B20 的供电模式。 寄生供电时, DS18B20 发送 0;外接电源供电时, DS18B20 发送 1。 以上这些指令涉及的存储器为高速暂存器 RAM 和可电擦出 E2ROM,见表。 表 高速暂存器 RAM 寄存器内容 字节地址 温度值低位( LSB) 0 13 温度值高位( MSB) 1 高温限值( TH) 2 低温限值( LT) 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC 校验值 8 高速暂存器 RAM 由 9 个字节的存储器组成。 第 0~ 1 字节是温度的显示位;第 2 和第 3个字节是复制的 TH和 TL,同时第 2 和第 3个字节的数字可以更新;第 4 个字节是配置寄存器,同时第 4 个字节的数字可以更新;第 5,6,7 三个字节的保留的。 可电擦出E2ROM 又包括温度触发器 TH 和 TL,以及一个配置寄存器。 表 列出了温度数据在高速暂存器 RAM 的第 0 和第 1个字节中的存储格式。 表 温度数据存储格式 DS18B20 在出厂时默认配置为 12 位,其中最高位为符号位,即温度值共 11 位,单片机在读取数据时,一次会读 2字节共 16 位,读完后将低 11 位的二进制数转化为十进制数后再乘以 便为所测的实际温度值。 另外,还需要判断温度的正负。 前 5 个数字为符号位,这 5 位同时变化,我们只需要判断 11 位就可以了。 前 5 位为 1 时,读取的温度为负值,且测到的数值需要取反加 1 再乘以 才可得到实际温度值。 前 5位为 0 时,读取的温度为正值 ,且温度 为正值时,只要将测得的数值乘以 即可得到实际温度值。 ① 初始化时序 如图 14 图 初始化时 序 1) 先将数据线置高电平 1。 2) 延时(该时间要求不是很严格,但是要尽可能短一点)。 3) 数据线拉到低电平 0。 4) 延时 750us( 该时间范围可以在 480us~ 960us)。 5) 数据线拉到高电平 1。 6) 延时等待。 如果初始化成功则在 15~ 60us内产生一个有 DS18B20返回的低电平 0,据该状态可以确定它的存在。 但是应注意,不能无限地等待,不然会使程序进入死循环,所以要进行超时 判断。 7) 若 CPU读到数据线上的低电平 0后,还要进行延时,其延时的时间从发出高电平算起(第 5) 步的时间算起)最少要 480us。 8) 将数据线再次拉到高电平 1后结束。 ② DS18B20写数据 时序图 如图 图 写数据时序图 15 1) 数据线先置低电平 0。 2) 延时确定的时间为 15us。 3) 按从低位到高位的顺序发送数据(一次只发送一位)。 4) 延时时间为 45us。 5) 将数据线拉高到高电平 1。 6) 重复 1)~ 5)步骤,直到发送完整个字节。 7) 最后将数据线拉高到 1。 ③ DS18B20 读数据 时序图 如图 图 读数据时序图 1) 将数据线拉高到 1。 2) 延时 2us。 3) 将数据线拉低到 0。 4) 延时 6us。 5) 将数据线拉高到 1。 6) 延时 4us。 7) 读数据线的状态位,并进行数据处理。 8) 延时 30us。 9) 重复 1)~ 7)步骤,直到读取完一个字节。 16 系统电路设计 单片机最小系统如图 如图 所示 图 系统电路图 这部分为单片机 复位电路和时钟电路。 单片机复位后,程序计数器 PC=0000H,即指向程序存储器 0000H 单元,使 CPU 从首地址重新开始执行程 序。 产生单片机复位的条件是:在 RST 引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟震荡周期建立时间再加 2 个机器周期时间 (一般不小于 10ms)。 时钟电路通过单片机的 XTAL1 和 XTAL2 引脚外接定时元件 12M 的晶振,电容 C1 和C2 一般去 30pF 左右,主要作用是帮助振荡器起震。 晶体振荡频率高,则系统的时钟频率也越高,单片机运行速速也就越快。 17 显示电路设计 LCD1602 显示电路原理图 如图 所示 图 LCD1602 显示电路 此部分为 LCD1602 显示电路,通过 10K 可调电阻可以调节 1602 背光显示亮度。 P0口接一个 10K 的上拉排阻。 按键 电路设计 四个独立 按键 电路图 如图 所示 图 按键电路 每个独立按键接一个 I/O 口构成独立按键,前三个按键 S4~ S6分别三个 DS18B20,S7 按下时为全三个 DS18B20 温度全显示。 18 三点 测温电路 三个 DS18B20 接线如图 所示,每个传感器接一个 I/O 口。 图 DS18B20 接口电路 单总线型 DS18B20 温度传感器 采用一个 DS18B20 接一个 I/O 口的形式,大大简化了程 序编写难度,通过排针可外接电源供电。 第四章 软件设计 软件开发工具的选择 要使单片机系统按照人的意图办事,需设法让人与计算机对话,并听从人的指挥。 程序设计语言是实现人机交换信息的最基本工具,可分为机器语言、汇编语言和高级语言。 机器语言用二进制编码表示每一条指令,是计算机能直接识别和执行的语言。 用机器语言编写的程序成为机器语言程序或者指令程序(机器码程序)。 因为机器只能识别和执行这种机器码程序,所以又称它为目标程序。 用机器语言编写程序不易记忆、不易查错、不易修改。 为了克服机器语言的上述缺点,可采 用有一定含义的符号,即指令助记符来表示,一般都采用某些有关的英文单词的缩写。 这样就出现了另一种程序语言 — 汇编语言。 汇编语言是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的。 汇编语言不像高级语言(如 BASIC)那样通用型强,而是属于某种计算机所独有,与计算机的内部硬件结构密切相关。 用汇编语言编写的程序称为19 汇编语言程序。 以上两种语言都是低级语言。 尽管汇编语言有不少优点,但它仍存在着机器语言的某些缺陷:与 CPU的硬件结构密切相关,不同的 CPU其汇编语言是不同的。 这使得 汇编语言程序不能移植,使用不便;其次,要使用汇编语言进行程序设计必须了解所使用 CPU硬件的结构与性能,对程序设计人员有较高的要求。 为此,又出现了对单片机进行编程的高级语言,如 PL\M, C等。 Keil C51是美国 Keil Software公司出品的 51系列兼容单片机 C语言软件开发系统,与汇编相比, C语言在。基于单片机的ds18b20多点测温系统lcd1602显示(完全免费
相关推荐
状态,以便准备接受新的命令。 在输出数据期间,任何“启动状态”和“停止状态”均 被屏蔽掉。 4) 处理数据模式 :这种模式是对 IC 卡芯片做内部处理。 芯片在第一个时钟脉冲的下降沿将 I/O 从 H状态拉为 L状态并开始处理。 此后芯片在内部连续计时计数,直到第 N个时钟脉冲之后的附加时钟脉冲的下降沿 I/O 线被再次置高,完成芯片的处理过程。 在整个处理过程中 I/O 线被锁定成低状态。
文) 第 页 共 29 页 10 图 LCD的管脚 LCD1602 各个管脚说明如表 所示。 表 LCD各管脚说明 编号 引脚 引 脚说明 编号 引脚 引脚说明 1 VSS 接地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 显示偏压 11 D4 数据 4 RS 数据 /命令 12 D5 数据 5 R/W 读 /写 13 D6 数据 6 E 使能信号 14 D7 数据 7
功能将其分为几部分进行设计, 各部分电路结构简单,所以此设计具有很强的可行性。 3. 本课题需要重点研究的、关键的问题及解决的思路 关键问题: 1. IC 卡数据读取电路 IC 卡 的读写电路要求能方便地读取 IC 卡的数据并控制电磁阀和显示器的工作。 2. 单片机通信接口电路 3. 安全保护电路、记忆单元电路 解决思路: 采用 单片机作为控制芯片,用 E2ROM 存储水表的数据;
0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T
29V C C40GND20T L P 5 2 1 4 BT L P 5 2 1 4 C+ 5V+ 5V5 . 1 K Ω 5 . 1 K Ω 470Ω+ 5V3 . 3 K Ω3 . 3 K Ω120Ω20Ω20Ω12V7V12V7VM A X 4 8 55 . 1 K Ω5 . 1 K Ω 图 36 主机通信电路图 ROREDEDI GNDABV C CT L P 5 2 1 4 A5 .
包括新闻宣传、幸福家庭建设、出生人口 性别比综合治理等工作。 我真的很喜欢这些工作,虽然我不是学的这个专业,但兴趣是最好的老师,我去钻研、去请教、多学多看多写,自加压力,自我督促,从宣教工作的门外汉成为业务能手。 而过去宣教工作中的两项内容 — 幸福家庭建设、性别比治理现划归家庭发展科,再加上利益导向组成了现在的家庭发展科全部工作内容。 其中两项工作都是我所从事数年、经验丰富且受到好评的,因此