收藏 分享(赏)

课程设计(论文)-数字温度传感器测温显示系统说明书.doc

上传人:微传9988 文档编号:2541656 上传时间:2018-09-21 格式:DOC 页数:31 大小:718KB
下载 相关 举报
课程设计(论文)-数字温度传感器测温显示系统说明书.doc_第1页
第1页 / 共31页
课程设计(论文)-数字温度传感器测温显示系统说明书.doc_第2页
第2页 / 共31页
课程设计(论文)-数字温度传感器测温显示系统说明书.doc_第3页
第3页 / 共31页
课程设计(论文)-数字温度传感器测温显示系统说明书.doc_第4页
第4页 / 共31页
课程设计(论文)-数字温度传感器测温显示系统说明书.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、数字温度传感器测温显示系统说明书学院:机械与电子控制工程学院班级:组长:组员:2时间:2011-7-1目录任务书-3摘要-4正文-4总体设计方案第 1 章 主控制器1.1AT89C51 特点及特性-41.2 管脚功能说明-51.3 振荡器特性-71.4 芯片擦除-7第 2 章 温度采集部分设计2.1.DS18B20 技术性能描述-72.2.DS18B20 管脚排列及内部结构-82.3.DS18B20 工作原理-82.4.DS18B20 控制原理-112.5.DS18B20 与单片机地接口电路-12第 3 章 硬件电路与系统软件的设计及分析3.1.主板电路-133.2.软件程序分析(流程图)-1

2、4第 4 章 总结与体会-19参考文献-20附录-21北京交通大学机械与电子控制工程学院3任务书扩展数字温度传感器 DS18B20 进行温度检测,显示器采用六位共阴极数码管显示,设计按键 4 个。控制系统能够实现:1、 系统实时检测室内温度并在数码管上显示;2、 采用按键对温度控制的上下限进行设定(用 4 个按键分别对最低限、最高限温度值进行增一减一操作) ;3、 当超过温度上限时,蜂鸣器报警(或绿色发光二极管亮) ;低于下限时,红色发光二极管亮。任务分配:工作分配表软硬件设计及仿真,协调工作焊接电路板,上机调试课程设计论文的编写PPT 制作在设计过程中随时需要查找资料4摘要随着现代社会的发展

3、,单片机在我们的日常生活中扮演了越来越重要的角色。它已逐渐深入到我们生活,工作等各个领域。其中,数字温度传感器就是一个很好的例子。与传统温度计相比,数字温度传感器具有读数方便,测量范围广,测量准确等特点。本次课程设计就为大家详细介绍基于单片机控制的数字温度传感器控制系统。它可以设置温度控制的上下限,当温度高于上限时,蜂鸣器报警,当低于下限时,发光二极管发光。本文介绍了数字温度传感器 DS18B20 的结构特征及控制方法,并对以此传感器和 89C51 单片机为控制器构成的温度控制系统的工作原理及程序设计进行了相关介绍。正文关键词:蜂鸣器、发光二极管、数字温度传感器 DS18B20、AT89C51

4、 单片机第 1 章 主控制器1.1.AT89C51 特点及特性4K 字 节 FLASH 存 储 器 的 低 电 压 、 高 性 能 CMOS 8 位 微 处 理 器 。 它 是带 2K 字 节 闪 存 可 编 程 可 擦 除 只 读 存 储 器 的 单 片 机 。 单 片 机 的 可 擦 除 只 读 存储 器 可 以 反 复 擦 除 1000 次 。 该 器 件 采 用 ATMEL 高 密 度 非 易 失 存 储 器 制 造技 术 制 造 , 与 工 业 标 准 的 MCS-51 指 令 集 和 输 出 管 脚 相 兼 容 。 由 于 将 多 功 能8 位 CPU 和 闪 烁 存 储 器 组

5、合 在 单 个 芯 片 中 , ATMEL 的 AT89C51 是 一 种 高效 微 控 制 器 , AT89C2051 是 它 的 一 种 精 简 版 本 。 AT89C 单 片 机 为 很 多 统 嵌入 式 控 制 系 统 提 供 了 一 种 灵 活 性 高 且 价 廉 的 方 案 。 引 脚 排 列 如 图 所 示 :北京交通大学机械与电子控制工程学院5主 要 特 性 :与 MCS-51 兼 容4K 字 节 可 编 程 FLASH 存 储 器寿 命 : 1000 写 /擦 循 环数 据 保 留 时 间 : 10 年全 静 态 工 作 : 0Hz-24MHz三 级 程 序 存 储 器 锁

6、定1288 位 内 部 RAM32 可 编 程 I/O 线两 个 16 位 定 时 器 /计 数 器5 个 中 断 源可 编 程 串 行 通 道低 功 耗 的 闲 置 和 掉 电 模 式片 内 振 荡 器 和 时 钟 电 路1.2.管脚功能说明VCC: 供 电 电 压 。 GND: 接 地 。 P0 口 : P0 口 为 一 个 8 位 漏 极 开 路 双 向 I/O 口 , 每 脚 可 吸 收 8TTL 门电 流 。 当 P0 口 的 管 脚 第 一 次 写 1 时 , 被 定 义 为 高 阻 输 入 。 P0 能 够 用 于 外部 程 序 数 据 存 储 器 , 它 可 以 被 定 义 为

7、 数 据 /地 址 的 第 八 位 。 在 FIASH 编 程 时 ,P0 口 作 为 原 码 输 入 口 , 当 FIASH 进 行 校 验 时 , P0 输 出 原 码 , 此 时 P0 外 部必 须 被 拉 高 。 6P1 口 : P1 口 是 一 个 内 部 提 供 上 拉 电 阻 的 8 位 双 向 I/O 口 , P1 口 缓冲 器 能 接 收 输 出 4TTL 门 电 流 。 P1 口 管 脚 写 入 1 后 , 被 内 部 上 拉 为 高 , 可用 作 输 入 , P1 口 被 外 部 下 拉 为 低 电 平 时 , 将 输 出 电 流 , 这 是 由 于 内 部 上 拉的 缘

8、 故 。 在 FLASH 编 程 和 校 验 时 , P1 口 作 为 第 八 位 地 址 接 收 。 P2 口 : P2 口 为 一 个 内 部 上 拉 电 阻 的 8 位 双 向 I/O 口 , P2 口 缓 冲 器可 接 收 , 输 出 4 个 TTL 门 电 流 , 当 P2 口 被 写 “1”时 , 其 管 脚 被 内 部 上 拉电 阻 拉 高 , 且 作 为 输 入 。 并 因 此 作 为 输 入 时 , P2 口 的 管 脚 被 外 部 拉 低 , 将输 出 电 流 。 这 是 由 于 内 部 上 拉 的 缘 故 。 P2 口 当 用 于 外 部 程 序 存 储 器 或 16位

9、地 址 外 部 数 据 存 储 器 进 行 存 取 时 , P2 口 输 出 地 址 的 高 八 位 。 在 给 出 地 址“1”时 , 它 利 用 内 部 上 拉 优 势 , 当 对 外 部 八 位 地 址 数 据 存 储 器 进 行 读 写 时 ,P2 口 输 出 其 特 殊 功 能 寄 存 器 的 内 容 。 P2 口 在 FLASH 编 程 和 校 验 时 接 收 高 八位 地 址 信 号 和 控 制 信 号 。 P3 口 : P3 口 管 脚 是 8 个 带 内 部 上 拉 电 阻 的 双 向 I/O 口 , 可 接 收 输出 4 个 TTL 门 电 流 。 当 P3 口 写 入 “

10、1”后 , 它 们 被 内 部 上 拉 为 高 电 平 , 并 用作 输 入 。 作 为 输 入 , 由 于 外 部 下 拉 为 低 电 平 , P3 口 将 输 出 电 流 ( ILL) 这是 由 于 上 拉 的 缘 故 。 P3 口 也 可 作 为 AT89C51 的 一 些 特 殊 功 能 口 , 如 下 表 所 示 : 口 管 脚 备 选 功 能 P3.0 RXD( 串 行 输 入 口 ) P3.1 TXD( 串 行 输 出 口 ) P3.2 /INT0( 外 部 中 断 0) P3.3 /INT1( 外 部 中 断 1) P3.4 T0( 记 时 器 0 外 部 输 入 ) P3.5

11、 T1( 记 时 器 1 外 部 输 入 ) P3.6 /WR( 外 部 数 据 存 储 器 写 选 通 ) P3.7 /RD( 外 部 数 据 存 储 器 读 选 通 ) P3 口 同 时 为 闪 烁 编 程 和 编 程 校 验 接 收 一 些 控 制 信 号 。 RST: 复 位 输 入 。 当 振 荡 器 复 位 器 件 时 , 要 保 持 RST 脚 两 个 机 器 周期 的 高 电 平 时 间 。 ALE/PROG: 当 访 问 外 部 存 储 器 时 , 地 址 锁 存 允 许 的 输 出 电 平 用 于 锁存 地 址 的 地 位 字 节 。 在 FLASH 编 程 期 间 , 此

12、 引 脚 用 于 输 入 编 程 脉 冲 。 在 平 时 ,ALE 端 以 不 变 的 频 率 周 期 输 出 正 脉 冲 信 号 , 此 频 率 为 振 荡 器 频 率 的 1/6。 因此 它 可 用 作 对 外 部 输 出 的 脉 冲 或 用 于 定 时 目 的 。 然 而 要 注 意 的 是 : 每 当 用 作外 部 数 据 存 储 器 时 , 将 跳 过 一 个 ALE 脉 冲 。 如 想 禁 止 ALE 的 输 出 可 在SFR8EH 地 址 上 置 0。 此 时 , ALE 只 有 在 执 行 MOVX, MOVC 指 令 是 ALE 才 起作 用 。 另 外 , 该 引 脚 被

13、略 微 拉 高 。 如 果 微 处 理 器 在 外 部 执 行 状 态 ALE 禁 止 ,置 位 无 效 。 北京交通大学机械与电子控制工程学院7/PSEN: 外 部 程 序 存 储 器 的 选 通 信 号 。 在 由 外 部 程 序 存 储 器 取 指 期 间 ,每 个 机 器 周 期 两 次 /PSEN 有 效 。 但 在 访 问 外 部 数 据 存 储 器 时 , 这 两 次 有 效 的/PSEN 信 号 将 不 出 现 。 /EA/VPP: 当 /EA 保 持 低 电 平 时 , 则 在 此 期 间 外 部 程 序 存 储 器( 0000H-FFFFH) , 不 管 是 否 有 内 部

14、 程 序 存 储 器 。 注 意 加 密 方 式 1 时 , /EA将 内 部 锁 定 为 RESET; 当 /EA 端 保 持 高 电 平 时 , 此 间 内 部 程 序 存 储 器 。 在FLASH 编 程 期 间 , 此 引 脚 也 用 于 施 加 12V 编 程 电 源 ( VPP) 。 XTAL1: 反 向 振 荡 放 大 器 的 输 入 及 内 部 时 钟 工 作 电 路 的 输 入 。 XTAL2: 来 自 反 向 振 荡 器 的 输 出 。1.3.振 荡 器 特 性 : XTAL1 和 XTAL2 分 别 为 反 向 放 大 器 的 输 入 和 输 出 。 该 反 向 放 大

15、器 可 以配 置 为 片 内 振 荡 器 。 石 晶 振 荡 和 陶 瓷 振 荡 均 可 采 用 。 如 采 用 外 部 时 钟 源 驱 动器 件 , XTAL2 应 不 接 。 有 余 输 入 至 内 部 时 钟 信 号 要 通 过 一 个 二 分 频 触 发 器 ,因 此 对 外 部 时 钟 信 号 的 脉 宽 无 任 何 要 求 , 但 必 须 保 证 脉 冲 的 高 低 电 平 要 求 的宽 度 。1.4.芯 片 擦 除 :整 个 PEROM 阵 列 和 三 个 锁 定 位 的 电 擦 除 可 通 过 正 确 的 控 制 信 号 组 合 , 并 保持 ALE 管 脚 处 于 低 电 平

16、 10ms 来 完 成 。 在 芯 片 擦 操 作 中 , 代 码 阵 列 全 被 写“1”且 在 任 何 非 空 存 储 字 节 被 重 复 编 程 以 前 , 该 操 作 必 须 被 执 行 。 此 外 , AT89C51 设 有 稳 态 逻 辑 , 可 以 在 低 到 零 频 率 的 条 件 下 静 态 逻辑 , 支 持 两 种 软 件 可 选 的 掉 电 模 式 。 在 闲 置 模 式 下 , CPU 停 止 工 作 。 但RAM, 定 时 器 , 计 数 器 , 串 口 和 中 断 系 统 仍 在 工 作 。 在 掉 电 模 式 下 , 保 存RAM 的 内 容 并 且 冻 结 振

17、荡 器 , 禁 止 所 用 其 他 芯 片 功 能 , 直 到 下 一 个 硬 件 复 位为 止 。 第 2 章 温度采集部分设计2.1.DS18B20 技术性能描述独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。测温范围为55+125,固有测温分辨率 0.5。支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,最多只能并联 8 个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。工作电源: 35V/DC。 在使用中不需要任何外围元件;测量结果以 912 位数字量方式串行传送;不锈钢保护

18、管直径 6 。适用于 DN1525, DN40DN250 各种介质工业管道和狭小空间设备测温。8PVC 电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为 3.0 V 至 5.5 V 无需备用电源 测量温度范围为-55 C 至+125 。华氏相当于是-67 F 到 257 华氏度 -10 C 至+85 C 范围内精度为0.5 C。DS18B20 可以程序设定 912 位的分辨率,精度为0.5C,温度转换为12

19、 位数字格式最大值为 750 毫秒。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在 EEPROM 中,掉电后依然保存。2.2.DS18B20 管脚排列及内部结构DS18B20 引脚定义:(1)DQ 为数字信号输入 /输出端; (2)GND 为电源地; (3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地) 。DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。该装置信号线高的时候,内部电容器 储存能量通由 1 线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来

20、重新充电。 DS18B20 的电源也可以从外部 3V-5 .5V 的电压得到。2.3.DS18B20 工作原理DS18B20 的读写时序和测温原理与 DS1820 相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为750ms。 北京交通大学机械与电子控制工程学院9DS18B20 测温原理如图 3 所示。 DS18B20 内部结构图图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器

21、1 对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图 3 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。 DS18B20 测温原理框图DS18B20 有 4 个主要的数据部件: (1)光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的地址序列码。 64 位光刻 ROM

22、的排列是:开始 8 位 (28H )是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1) 。光刻 ROM 的作用 是使每一个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。10(2)DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。 DS18B20 温度值格式表这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 R

23、AM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0, 这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际 温度。 例如+125的数字输出为 07D0H,+25.0625的数字输出为 0191H, -25.0625的数字输出为FE6FH,-55 的数字输出为 FC90H 。(3)DS18B20 温度传感器的存储器 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构

24、寄存器。 (4)配置寄存器 该字节各位的意义如下:R1 R0 分辨率 温度最大转换时间0 0 9 位 93.75ms 0 1 10 位 187.5ms 1 0 11 位 375ms 1 1 12 位 750ms 温度分辨率设置表北京交通大学机械与电子控制工程学院11寄存器内容 字节地址温度值低位 (LS Byte) 0温度值高位 (MS Byte) 1高温限值(TH) 2低温限值(TL) 3配置寄存器 4保留 5保留 6保留 7CRC 校验值 8DS18B20 暂存寄存器分布2.4.DS18B20 控制原理根据 DS18B20 的通讯协议,主机(单片机)控制 DS18B20 完成温度转换必须经

25、过三个步骤:每一次读写之前都要对 DS18B20 进行 复位操作,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主 CPU 将数据线下拉 500 微秒,然后 释放,当 DS18B20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 CPU收到此信号表示复位成功。指 令 约定代码 功 能读 ROM 33H读 DS1820 温度传感器 ROM 中的编码(即 64 位地址) 符合 ROM 55H发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一

26、步对该 DS1820 的读写作准备。 搜索 ROM 0FOH用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。 跳过 ROM 0CCH忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。12告警搜索命令0ECH 执行后只有温度超过设定值上限或下限的片子才做出响应。 ROM 指令表指 令 约定代码功 能温度变换 44H启动 DS1820 进行温度转换,12 位转换时最长为 750ms(9 位为 93.75ms)。结果存入内部 9 字节 RAM 中。 读暂存器 0BEH 读内部 RAM 中 9 字节的内容 写暂存器

27、4EH 发出向内部 RAM 的 3、4 字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 复制暂存器 48H 将 RAM 中第 3 、4 字节的内容复制到 EEPROM 中。 重调 EEPROM0B8H 将 EEPROM 中内容恢复到 RAM 中的第 3 、4 字节。 读供电方式 0B4 读 DS1820 的供电模式。寄生供电时 DS1820 发送“ 0 ”,外接电源供电 DS1820 发送“ 1 ”。 RAM 指令表2.5.DS18B20 与单片机的接口电路DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20 的 1 脚接地,2 脚作为信号线,3

28、脚接电源。另一种是寄生电源供电方式,如所示单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET 管来完成对总线的上拉。当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的上拉,上拉开启时间最大为 10us。采用寄生电源供电方式时 VDD 端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于 DS18B20 是在一根I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是

29、将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时北京交通大学机械与电子控制工程学院13序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20 与单片机的接口电路DS18B20 操作时序第 3 章 硬件电路与系统软件的设计及分析硬件设计思路:1.P1.0与 DS18B20的输入 /输出口 DQ连接;142.P1.2、 P1.3、 P1.4、 P1.5分别连接 KEY1、 KEY2、 KEY3、 KEY4,分别控制最低限温度和最高限温度值的增一和减一操作;3.P1.6用来控制蜂鸣器的开闭,

30、 P1.7用来控制红色发光二极管的亮暗。软件的设计思想:1.当对最低限赋得初值大于或等于最高限初值时,系统打开时会显示错误“EROOR”,通过直接更改可以消除错误;2.在更改温度限值的时候,会控制最高限温度值大于最低限温度值,最低限温度值小于最高限温度值;应用 89C51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求: 1、具有上电复位和手动复位功能。 2、使用单片机片内程序存储器。 3、具有基本的人机交互接口。按键输入、LED 显示功能。 4、具有一定的可扩展性,单片机 I/O 口可方便地与其他电路板连接。软件设计的设计思路是:主程序进行键盘扫描,判断采用何种方式进行显示,初始

31、化状态为逐字显示,判断后进入相应额方式显示子程序。设置相应的程序入口,反复调用显示子程序,并在显示过程中反复调用键盘扫描子程序进行延迟,并通过判断是否退出相应的方式显示子程序,进入主程序。设计程序过程中能很好地提高按键响应速度。3.1.主板电路北京交通大学机械与电子控制工程学院153.2.软件程序分析(流程图)程序主要包括主程序、显示子程序、键扫描程序、检测程序等。16主程序流程图北京交通大学机械与电子控制工程学院17显示子程序流程图18键扫描程序流程图北京交通大学机械与电子控制工程学院19检测程序流程图20第 4 章 总结与体会我们小组经过近两周的努力,终于完成了数字温度传感器课程设计的任务

32、。在设计过程中我们遇到许多问题,以前只是单纯的编写一些程序或者说学习一些书本上的知识,但这次我们要将理论付诸于实践,许多意想不到的问题便会接踵而至。 通过反复的调试与小组成员之间的讨论,我们终于将完成了课设中亮灯,蜂鸣,按键等内容的任务,还对 89C51 单片机和 DS18B20 温度传感器有了更加深入的了解。通过这次单片机课程设计,我们有了不少的收获,总结了以下几点:1、培养了我们查阅手册和文献资料的良好习惯2、培养了我们独立分析和解决实际问题的能力。理论必须联系实际才能发挥它真正的作用。学习知识不能只是纸上谈兵,我们应该以运用为目的。3、增强与同组的组员的团结合作的精神团。队合作很重要。在

33、一个小组中,每个人都有自己擅长的模块,如果合理的分配任务,那么整个工作就会事半功倍。4、更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法.总之,我们通过这次课设收获颇多,对于今后这方面的学习我们也会更加的努力!参考文献:1赵嘉蔚. 单片机原理与接口技术.北京:清华大学出版社,2010.22徐爱钧. 单片机原理实用教程:基于 proteus 虚拟仿真 (第 2 版).北京:电子工业出版社,20113刘君华. 传感器技术及应用实例.北京:电子工业出版社,20084侯国章. 测试与传感技术M.哈尔滨:哈尔滨工业大学出版社.2000:122-1245贾振国. DS1820 及高精度

34、测量的实现J.电子技术应用 .2000.6谢维成. 单片机原理与应用D. 北京:清华大学.20037黄贤,郑筱霞,曲波等.传感器实际应用电路设计M.成都:电子科技大学出版社.1997北京交通大学机械与电子控制工程学院21附录源程序KEY1 BIT P1.2KEY2 BIT P1.3KEY3 BIT P1.4KEY4 BIT P1.5MINH DATA 6CHMINL DATA 6DHMAXH DATA 6EHMAXL DATA 6FHDQ BIT P1.0ORG 0000HAJMP MAINORG 0030HMAIN: MOV SP,#60H ;MOV DPTR,#0100H ;赋命令/状态寄

35、存器地址MOV A,#B ;设置 A、B 口为基本输入输出口,并 B 口为输出口,C 口为输出口MOVX DPTR,A MOV 6CH,#09H ;给最低温度限赋初值MOV 6DH,#05H MOV 6EH,#09H ;给最高限温度赋初值MOV 6FH,#09H MOV A,6CH MOV B,#10 MUL AB ADD A,6DH MOV 30H,A MOV A,6EH MOV B,#10 MUL AB ADD A,6FH MOV 31H,A UP: MOV A,31H 22CJNE A,30H,GONOW ;比较最高限温度与最低限温度值UP2: ACALL DISPLAY2 ;两温度相等

36、调用显示错误程序ACALL KEYACALL CHECK SJMP UP ;不断进行比较GONOW: JC UP2 ;判断进位标志是否为 1,如果为1,即最高限温度小于最低限温度,也调用显示错误程序CLR P1.6 ;位清零,灯灭CLR P1.7 ;START: LCALL READT ;调用温度值子程序LCALL PRODATA ;调用数据处理子程序,组合温度数据MOV 24H,#20H ;显示温度值并延时LOOP: ACALL KEYACALL DISPLAY ;调用显示子程序ACALL CHECK ;调用检测温度是否超过范围程序DJNZ 24H,LOOPAJMP START ;转至 st

37、art 循环READT: PUSH ACCPUSH PSWSETB DQLCALL INI ;DS18B20 初始化MOV A,#0CCH ;跳过 ROM 序列码匹配LCALL WR18B20MOV A,#44H ;发送温度转换命令LCALL WR18B20LCALL INI ;DS18B20 初始化MOV A,#0CCH ;跳过 ROM 序列码匹配LCALL WR18B20MOV A,#0BEH ;发送读温度命令LCALL WR18B20LCALL RD18B20 ;读俩字节温度值POP PSWPOP ACC北京交通大学机械与电子控制工程学院23RET;温度转换子程序PRODATA:PUSH

38、 ACCPUSH PSW ;取两字节温度值组合存入 22H 单元MOV A,20HANL A,#0F0H ;取第一字节的高 4 位MOV R5,AMOV A,21HANL A,#0FH ;取第二字节的低 4 位ORL A,R5SWAP AMOV 22H,AMOV A,22H ;温度值存入 22H 单元MOV B,#0AH ;将 22H 单元的温度值转换为 BCD码DIV ABMOV 70H,A ;十位数存入 70H 单元MOV 71H,B ;个位数存入 71H 单元POP PSWPOP ACCRETINI: SETB DQ ;DS18B20 初始化子程序NOPCLR DQMOV R0,#0FB

39、HDJNZ R0,$SETB DQMOV R0,#24HDJNZ R0,$JNB DQ,TSR1 ;DQ 是否为一,有无应答信号LJMP TSR2TSR1: SETB F0 ;置标志位,表示 DS18B20 存在LJMP TSR3TSR2: CLR F0 ;清标志位,表示 DS18B20 不存在LJMP TSR424TSR3: MOV R0,#96HDJNZ R0,$TSR4: SETB DQRETWR18B20: MOV R2,#08H ;编写 18B20 子程序CLR CWR1: CLR DQMOV R3,#06H ;延时 13usDJNZ R3,$RRC AMOV DQ,CMOV R3,

40、#10H ;延时 43usDJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRETRD18B20: MOV R4,#02H ;读 18B20 子程序MOV R1,#20H ;从 18B20 读两字节数据,存入20H 和 21H 单元RD1: MOV R2,#08HRD2: CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#07H ;延时 15usDJNZ R3,$MOV C,DQMOV R3,#16H ;延时 45us北京交通大学机械与电子控制工程学院25DJNZ R3,$RRC ADJNZ R2,RD2MOV R1,AIN

41、C R1DJNZ R4,RD1RET;键扫描程序KEY: JNB KEY1,KKKEY2 ;判断 key1 键是否按下,未按下则查看 key2 键是否按下JB KEY1,$ ;等待 key1 键释放MOV A,30H ;将温度最低限值送入累加器ADD A,#01H ;给累加器值加一CJNE A,#100,NEXT1 ;将累加器值与 100 相比,不相等执行 next1MOV A,#00H ;如果相等,将累加器重置为 0NEXT1: CLR C ;清楚进位标志CJNE A,31H,DPLAY1 ;将累加器内容与温度最高限相比,不相等执行 dplay1SJMP RETURNDPLAY1: JC D

42、PLAY3 ;判断进位标志,为 1 即累加器内容小于最高限温度值,则 dplay3MOV A,30H ;否则,将最低限温度值仍给 aDPLAY3: MOV 30H,ASJMP RETURNKKKEY2: JNB KEY2,KKKEY3 ;判断 key2 键是否按下,未按下则查看 key3 键是否按下JB KEY2,$ ;等待 key2 键释放MOV A,30H ;将温度最低限值送入累加器JZ NEXT3 ;判断累加器内容是否为 0,为 0 执行 next3,即保持原值CLR C ;累加器内容不为 0,进位标志清零SUBB A,#01H ;将累加器内容减一MOV 30H,A ;将减一所得数送回最

43、低限温度单元SJMP RETURN ;26NEXT3: MOV 30H,#00 ;累加器内容为 0,则让最低限温度单元内容继续保持 0SJMP RETURN ;KKKEY3: JNB KEY3,KKKEY4 ;判断 key3 键是否按下,未按下则查看 key4 键是否按下JB KEY3,$ ;等待 key3 键释放MOV A,31H ;将温度最高限值送入累加器ADD A,#01H ;给累加器值加一CJNE A,#100,NEXT2 ;将累加器内容与 100 相比,不相等执行 next2MOV A,#99 ;如果相等,将 99 送给累加器NEXT2: MOV 31H,A ;将累加器内容送给最高限温度单元SJMP RETURN ;KKKEY4: JNB KEY4,RETURN ;判断 key4 键是否按下,未按下则返回JB KEY4,$ ;等待 key4 键释放MOV A,31H ;将温度最高限值送入累加器JZ RETURN ;判断累加器内容是否为 0,如果为 0,则返回,保持原值不变CLR C ;累加器内容不为 0,则将进位标志清零SUBB A,#01H ;将累加器内容减一CLR C ;再清除进位标志,准备比较累加器内容与最低限温度单元内容的大小关系CJNE A,30H,DPLAY2 ;将减一所得数与最低限温度单

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报