欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    基于AT89C51单片机的蔬菜大棚温度控制系统设计.docx

    • 资源ID:8619912       资源大小:571.40KB        全文页数:47页
    • 资源格式: DOCX        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于AT89C51单片机的蔬菜大棚温度控制系统设计.docx

    目 录摘要 :3关键词 :. 4引言 :. 5 1系.统方案选择和论证 . 6 1.1任务 . 6 1.2任务要求 . 6 1.3系统基本方案 . 6 1.3.1各模块电路的方案选择及论证61.3.2 系统各模块的最终方案92. 系统硬件设计. 10 2.1单片机型号选择 . . 10 2.2单片机最小系统电路设计 .13 2.3温度采集部分设计 .15 2.4按键电路设计 .24 2.3数码管显示电路设计. . 25 2.4温度控制电路设计 . .29 2.5 报警电路设计 .292.6 电源输入部分303. 系统软件设计32 3.1读取 DS18B20 温度模块子程序33 3.2数据处理子程序.34 3.3键盘扫描子程序 .35 3.4主程序流程图36致谢39参考文献39附录 A : 本设计整体电路图 .40附录 B :程序清单41摘要 :本设计以 AT89C51 单片机为核心的温度控制系统的工作原理和设计方法。温度信 号由温度芯片 DS18B20 采集 , 并以数字信号的方式传送给单片机。 文中介绍了该 控制系统的硬件部分 ,包括 :温度检测电路、温度控制电路、温度显示电路。单片机通过对信号进行相应处理 , 从而实现温度控制的目的。 文中还着重介绍了软 件设计部分 ,在这里采用模块化结构 ,主要模块有 :数码管显示程序、键盘扫描 及按键处理程序、温度信号处理程序、继电器控制程序、超温报警程序。通过对基于单片机的相对温度控制器设计,加深对传感器技术及检测技术的了解 ,巩固对单片机知识的掌握 ,并系统的复习本专业所学过的知识。关键词 :AT89C51 单片机 DS18B20 温度检测芯片 温度控制Abstract :This design as the core of the AT89C51 temperature control system of the working principle and design method. Temperature signal chipDS18B20collection by the temperature, and the way to digital signal transfer to the microcontroller. The paper introduces the hardware part of the control system, including: temperature detection circuit, temperature control circuit, temperature display circuit. SCM through to signal processed, so as to achieve the purpose of temperature control. This paper has mainly introduced the software design part, here the modularized structure, main module has: digital tube show program, keyboard scanning and key processing program, temperature signal processing program, relay control procedures, super temperature alarming program.Through to the relative temperature controller based on single chip design, deepen our understanding of the sensor technology and testing technology of understanding, consolidate the SCM grasp the knowledge and the system review this professional the learned knowledge.Keywords: AT89C51 single-chip microcomputer temperature detection chipDS18B20temperature control基于 AT89C51 单片机的蔬菜大棚温度控制系统设计09 级 机电一体化 田志营指导老师 :马力 崔茂齐引言 :蔬菜的生长与温度息息相关 , 对于蔬菜大棚来说 , 最重要的一个管理因素是温度控制。 温度太低 , 蔬菜就会被冻死或则停止生长 , 所以要将温度始终控制在适合 蔬菜生长的范围内。如果仅靠人工控制既费时费力 , 效率低 ,又容易发生差错 , 为此 , 在现代化的蔬菜大棚管理中通常有温度自动控制系统 , 来监控采集大棚内 各个角落的温度变化情况 , 以控制蔬菜大棚温度 , 适应生产需要。 要时刻对蔬菜 大棚的温度进行测量 ,就离不开温度传感器。传统的继电器调温电路简单实用 ,但由于继电器动作频繁 ,可能会因触点不良而影响正常工作。控制领域还大量采用传统的 PID 控制方式 , 但 PID 控制对象的模型难以建立 , 并且当扰动因素不明确时 , 参数调整不便仍是普遍存在的问题。 而采用数字温度传感器 DS18B20,因其内部集成了 A/D 转换器 ,使得电路结构更加 简单 , 而且减少了温度测量转换时的精度损失 , 使得测量温度更加精确。 数字温 度传感器 DS18B20 只用一个引脚即可与单片机进行通信 ,大大减少了接线的麻 烦, 使得单片机更加具有扩展性。 由于 DS18B20 芯片的小型化 , 更加可以通过单 跳数据线就可以和主电路连接 , 故可以把数字温度传感器 DS18B20 做成探头 , 探 入到狭小的地方 ,增加了实用性。1. 系统方案选择和论证1.1 任务设计一个大棚温度自动控制系统。 系统温度可以在一定范围内由人工设定 , 并能 在环境温度降低时实现自动通风降温 , 在环境温度升高时实现自动加温 , 以保持设定的温度基本不变。1.2 任务要求设计基于 AT89C51 单片机的大棚温度温度控制器, 用于控制温度。 具体要求如下 :大棚温度控制在15 -28之间。控制 10 台 50KW 三相电阻炉为加热设备。采用 5 台单相 100W 通风机作为通风散热设备。易于操作 ,方便人机对话。1.3 系统基本方案根据题目要求系统模块分可以划分为 :键盘模块 , 温度测量模块 , 显示电路模块 , 升温降温模块 , 报警模块。 为实现各模块的功能 , 分别做了几种不同的设计方案 并进行了论证。1.3.1 各模块电路的方案选择及论证(一键盘模块方案一 :采用 4*4 矩阵型按键在键盘中按键数量较多时, 为了减少 I/O 口的占用 , 通常将按键排列成矩阵形式。 矩阵按键对应独立按键 , 可以节约数据线 , 但需要特定的键盘扫描程序, 占用空间较大。通常在按键大于6 个的时候是用矩阵式按键。方案二 :采用独立按键 ,接线简单 ,易于理解 ,不需要特定的键盘扫描程序,占用空间比 较少。在本设计中用到了5 个按键 ,所以选用独立按键比较合适。(二温度测量模块方案一 :利用热电阻传感器作为感温元件 , 热电阻随温度变化而变化 , 用仪表测量出热电阻的阻值变化 , 从而得到与电阻值相应的温度值。 最常用的是铂电阻传感器 , 铂 电阻在氧化介质中 , 甚至在高温的条件下其物理 , 化学性质不变。 由铂电阻阻值 的变化经小信号变送器 XTR101 将铂电阻随温度变化的转换为 420mA 线形变化 电路 , 再将电流信号转化为电压信号 , 送到 A/D 转换器 , 即将模拟信号转换为数 字信号。电路结构复杂 ,误差较大。方案二 :采用数字温度传感器DS18B20。 DS18B20 为数字式温度传感器 ,无需其他外加电 路, 直接输出数字量。可直接与单片机通信 , 读取测温数据 , 电路简单。DS18B20 的测温范围 -55 125, 分辨率最大可达 0.0625 。 DS18B20 是 Dallas 半导 体公司的数字化温度传感器 ,它是一种支持 “一线总线 ”接口的温度传感器。 一线总线独特而且经济的特点 , 使用户可轻松地组建传感器网络 , 为测量系统的 构建引入全新概念。 一线总线将独特的电源和信号复合在一起 , 并仅使用一条线 , 每个芯片都有唯一的编码 , 支持联网寻址 , 简单的网络化的温度感知 , 零功耗等 待等特点。DS18B20 与传统的热敏电阻相比 , 他能够直接读出被测温度并且可根据实际要求 通过简单的编程实现 912 位的数字值读数方式。 并且从 DS18B20 读出的信息或 写入 DS18B20 的信息仅需要一根口线 (单线接口读写 , 因而使用 DS18B20 可使系统结构更趋简单 ,可靠性更高。他在测温精度、转换时间、传输距离、分辨率 等方面带来了令人满意的效果。所以比设计中选用 DS18B20 温度传感器 ,节省了 A/D 转换器 ,同时也节省了 I/O 输出口 ,误差小 ,测量准确。(三显示电路模块方案一 :使用静态显示 ,此方法不用另加外界驱动直接与单片机输出口相连 ,不需 要单独的程序来完成显示。但是占用 I/O 借口多。方案二 :使用动态显示 ,节省了 I/O 输出口 ,但是此方法需加外加外部驱动以此增加输出电流来更好的驱动数码管显示 , 电路简单 , 成本稍高 , 需要特定的编程来 完成动态刷新。本设计中使用的是动态显示 , 因为没有太多的输出口来完成静态显示 , 故选动态显示。(四升温降温模块根据题目 , 可以使用电热炉进行加热, 控制电热炉的功率即可以控制加热的速度。 当温度过高时 , 关掉电热炉打开通风机进行降温处理。当需要加热时开启电炉关 闭通风机。 由于电热炉和通风机的功率较大, 考虑到简化电路的设计 , 我们直接采用 220V 电源。对升温降温模块有以下两种方案:方案一 :采用继电器控制。 使用继电器可以很容易实现地通过较高的电压和电流 , 在正常 条件下 ,工作十分可靠。继电器无需外加光耦 ,自身即可实现电气隔离。这种电 路无法精确实现电热丝功率控制 , 电热丝只能工作在最大功率或零功率 , 对控制 精度将造成影响。方案二 :应用了光耦合器 , 光耦合器一般由三部分组成 :光的发射、 光的接收及信号放大。 输入的电信号驱动发光二极管 (LED , 使之发出一定波长的光 ,被光探测器接 收而产生光电流 , 再经过进一步放大后输出。 这就完成了电 光 电的转换 , 从 而起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离 ,电信号传 输具有单向性等特点 , 因而具有良好的电绝缘能力和抗干扰能力。 又由于光耦合 器的输入端属于电流型工作的低阻元件 ,因而具有很强的共模抑制能力。所以 , 它在长线传输信息中作为终端隔离元件可以大大提高信噪比。 在计算机数字通信 及实时控制中作为信号隔离的接口器件 , 可以大大增加计算机工作的可靠性。 所 以选择光耦合器更安全控制更准确。通过比较 ,我们选择方案二。(五报警模块按照设计要求 , 当温度低于下限或高于上限时 , 应具有报警功能。 这样就可以用 一只蜂鸣器作为三极管 VT1 的集电极负载 , 当 VT1 导通时 , 蜂鸣器发出鸣叫声 ; VT1 截止时 ,蜂鸣器不发声。1.3.2 系统各模块的最终方案根据以上分析 ,结合器件和设备等因素 ,确定如下方案 :1. 采用 AT89C51 单片机作为控制器 , 分别对温度采集、 数码管显示、 温度设定、 升温降温控制。2. 温度测量模块采用数字温度传感器 DS18B20。此器件经软件设置可以实现高 分辨率测量。3. 电热炉和通风机控制采用光耦合器控制。4. 显示用数码管显示实时温度值。系统的基本框图如图1.1 所示。CPU (AT89C51 首先写入命令给DS18B20,然后 DS18B20 开始转换数据 ,转换后通过 AT89C51 来处理数据。 数据处理后的结果就显示到数码管上。另外由键盘设定温度值送到单片机 ,单片机通过数据处理发出温度控制信息到继电器。2. 系统硬件设计2.1 单片机型号选择单片机型号的选择是根据设计的内容而定的 , 并不是什么单片机都可以用。 一方 面要考虑选用的单片机能否在不需要外扩的情况下就可以满足要实现的功能。比 如:单片机的存储器空间的大小、单片机的 I/O 口数等。另一方面还要考虑单 片机的性价比 ,是否容易买到等一些外部因素。由于实现该系统功能的程序不会超过4K,而 AT89C51 单片机内部有 4K 的FlASH 程序存储器和 2K 的数据存储器 , 因而不需要外扩程序存储器和数据存储器。并且该型号单片机程序下载方便、价格便宜的优点,因而被广泛的应用。AT89C51 单片机引脚排列及功能见图2-3 所示。由图可知该单片机共有40 个引脚 ,按其功能类别将他们分为三类:1. 电源和时钟引脚。如 Vcc 、 GND 、 XTAL1 、 XTAL2 。2. 编程控制引脚。如 RST、 PSEN 、 ALE 、 EA/Vpp 。3.I/O 口引脚。如 P0、 P1、 P2、 P3, 4 组 8 位 I/O 口。管脚说明 :VCC :供电电压。GND :接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器 , 它可以被定义为数据 /地址的第八位。在 FIASH 编程时 , P0 口作为原码输入口 , 当 FIASH 进行校验时 , P0 输出原码 ,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的8 位双向 I/O 口 , P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后 ,被内部上拉为高 ,可用作输入 , P1 口被外 部下拉为低电平时 , 将输出电流 , 这是由于内部上拉的缘故。 在 FLASH 编程和校 验时 , P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的8 位双向 I/O 口, P2 口缓冲器可接收 ,输出 4个 TTL 门电流 ,当 P2 口被写 “ 1时”,其管脚被内部上拉电阻拉高 ,且作为输 入。并因此作为输入时 , P2口的管脚被外部拉低 ,将输出电流。这是由于内部 上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取 时 , P2 口输出地址的高八位。在给出地址 “ 1时”,它利用内部上拉优势 ,当对 外部八位地址数据存储器进行读写时 , P2口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向I/O 口,可接收输出电流。 当 P3 口写入 “ 1 后”, 它们被内部上拉为高电平, 并用作输入。于外部下拉为低电平 , P3口将输出电流 (ILL 这是由于上拉的缘故。4 个 TTL 门作为输入 , 由P3 口也可作为 AT89C51 的一些特殊功能口 ,如下所示 :P3.0 RXD(串行输入口P3.1 TXD(串行输出口P3.2 /INT0(外部中断 0P3.3 /INT1(外部中断 1P3.4 T0(记时器 0 外部输入P3.5 T1(记时器 1 外部输入P3.6 /WR(外部数据存储器写选通P3.7 /RD(外部数据存储器读选通P3 口同时为闪烁编程和编程校验接收一些控制信号。RST :复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG: 当访问外部存储器时 , 地址锁存允许的输出电平用于锁存地址的 地位字节。在 FLASH 编程期间 ,此引脚用于输入编程脉冲。在平时 , ALE 端以不 变的频率周期输出正脉冲信号 ,此频率为振荡器频率的 1/6。因此它可用作对外 部输出的脉冲或用于定时目的。然而要注意的是 :每当用作外部数据存储器时 , 将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时 , ALE 只有在执行 MOVX , MOVC 指令是 ALE 才起作用。另外 ,该引脚被略微拉高。如果 微处理器在外部执行状态 ALE 禁止 ,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间 ,每个 机器周期两次 /PSEN 有效。但在访问外部数据存储器时 ,这两次有效的 /PSEN 信 号将不出现。/EA/VPP: 当 /EA 保持低电平时 , 则在此期间外部程序存储器(0000H-FFFFH , 不管是否有内部程序存储器。注意加密方式端保持高电平时 ,此间内部程序存储器。在12V 编程电源 (VPP 。1 时, /EA 将内部锁定为 RESET ;当 /EAFLASH 编程期间 ,此引脚也用于 施加XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2: 来自反向振荡器的输出。2.2 单片机最小系统电路设计单片机最小系统就是保证单片机能够正常工作的最基本的硬件电路。 主要包括时 钟电路、复位电路。单片机工作的时间基准是有时钟电路提供的。在单片机的XTAL1和XTAL2管 脚,按图 2-4 所示接上晶振和电容就够成了单片机的时钟电路。图中电容 C2、 C3 对晶振频率有微调的作用 ,通常的取值范围为 (30+10pf。 石英晶体选择 12MHz, 选择不同的石英晶体 ,其结果只是机器周期不同。单片机的复位方式有上电复位和手动复位两种。 本设计系统采用上电自动复位和 手动复位组合电路 ,如图 2-5 所示复位电路。图 2-4 时钟电路图 2-5 复位电路图中可以看到单片机的 RST 引脚连接 R1(10K 、 C1(10uf ,按键 S2 可以 选择专用的复位按键 ,也可以选择轻触开关。只要 Vcc 上升时间不超过 1ms, 他们都能很好的工作 。2.3 温度采集部分设计本系统采用采用了DS18B20 单总线可编程温度传感器, 来实现对温度的采集和转 换 ,与单片机 P2.6口相连 ,直接与单片机通讯 ,大大简化了电路的复杂度。DS18B20 是美国 DALLAS 半导体公司推出的第一片支持“一线总线 ”接口的温 度传感器 ,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。1.DS18B20 温度传感器特性 适应电压范围宽 , 电压范围在 3.0-5.5V , 再寄生电源方式下可有数据线供电。 独特的单线接口方式 ,它与微处理器连接时仅需一条口线即可实现微处理器与 DS18B20 的双向通信。 支持多点组网功能 ,多个 DS18B20 可以并联在唯一的三线上 ,实现组网多点测温。 在使用中不需要任何外围元件 ,全部传感器元件及转换电路集成在形如一只三极管的集成电路内。 测温范围 -55 -+125,在 -10 -+85时精度为 +0.5。 可编程分辨率为9-12 位 ,对应的可分辨率温度为0.5 ,0.25 ,0.125和0.0625,可实现高精度测温。 在 9 位分辨率时 ,最多在 93.75ms 内把温度转换为数字 ; 12 位分辨率时 ,最 多在 750ms 内把温度值转换为数字 ,显然速度更快。 测量结果直接输出数字温度信号 ,以 “一线总线 ”串行传给 CPU ,同时可传 送 CRC 校验码 ,具有极强的抗干扰纠错能力。 负压特性。电源极性接反时 ,芯片不会因为发热而烧毁 ,但不能正常工作。 2. 应用范围 冷冻库、粮仓、储罐、电信机房、电力机房、电缆线槽等测温和控制领域。 轴瓦、缸体、纺机、空调等狭小空间工业设备测温和控制。 汽车空调、冰箱、冷柜以及中低温干燥箱等。 供热、制冷管道热量计量、中央空调分户热量计量等。3. 引脚介绍DS18B20 有两种封装 :三脚 TO-92 直插式和八脚 SOIC 贴片式 , 封装引脚见图 2-10 所示。列出了引脚定义。图 2-10 DS18B20 引脚封装图DS18B20 引脚定义如下 :(1 DQ 为数字信号输入/输出端 ;(2 GND 为电源地 ;(3 VDD 为外接供电电源输入端(在寄生电源接线方式时接地。4. 总线连接我们首先来了解 “单总线 ”的概念。 目前常用的单片机与外设之间进行数据传输 的串行总线主要有 I2C 总线以同步串行二线方式进行通信 (一条时钟线 , 一条数据线 , SPI 总线则以同步串行三线方式进行通信 (一条时钟线 ,一条数据输入 线 , 一条数据输出线 , 而 SCI 总线是以异步方式进行通信的 (一条数据输入线 , 一条数据输出线。这些总线至少需要两条或两条以上的信号线 ,而 DS18B20 使用的单总线技术与上述总线不同 , 它采用单条信号线 , 即可传输时钟 , 又可传 输数据 , 而且数据传输是双向的 , 因而这只中单总线技术具有线路简单 , 硬件开 销少 ,成本低廉 ,便于总线扩展和维护等优点。单总线实用与单主机系统 ,能够 控制一个或多个从机设备。主机可以是微控制器 , 从机可以是单总线器件 , 他们之间的数据交换只通过一条信号线。当只有一个从机设备时 ,系统可按单节点系统操作 ;当有从机设备时 , 系统则按多节点系统操作。 设备 (主机或从机 通过一个漏极开路或三态端口连 至该数据线 ,以允许设备在不为发送数据时能够释放出总线, 而让其他设备使用总线。4.7k的上拉电阻。本设计系统的温度采集电路图如图单总线要求外接一个约2-12 所示。有图可以看出 , DS18B20 和单片机的连接非常简单 ,单片机只需要一个 I/O 口就可以控制 DS18B20。这个图的接法是单片机于一个 DS18B20 通信 ,如果要控制多个 DS18B20 进行温度采集 , 只要将所有的 DS18B20 的 I/O 口全部连在一起就可以了。 在具体操作时 , 通过读取每个 DS18B20 内部芯片的序列号来识别。 本系统仅操作一个 DS18B20 进行温度采集。5. 工作原理硬件电路连接好后 , 单片机需要怎样工作才能将 DS18B20 中的温度数据读取出来 呢?下面将给出详细的分析。首先我们来看控制DS18B20 的指令 : 33H读 ROM 。读 DS18B20 温度传感器 ROM 中的编码 (即 64 位地址。 55H匹配 ROM 。发出此命令之后 ,接着发出 64 位 ROM 编码 ,访问单总线上 与改编码对应的 DS18B20 并使之做出响应 ,为下一步对该 DS18B20 的读 /写做准 备。 F0H搜索 ROM 。用于确定挂接在同一总线上的DS18B20 的个数 ,识别 64位 ROM 地址 ,为操作各器件做好准备。 CCH 跳过 ROM 。忽略 64 位 ROM 地址 ,直接向 18B20 发送温度变换命令 ,适 用于一个从机工作。 ECH告警搜索命令。执行后只有温度超过设定值上限或下限芯片才做出响 应。以上这些指令涉及的存储器是 64 位光刻录 ROM 。 64 位光刻录 ROM 中的序号是出 厂前被光刻录好的 ,它可以看做该 DS18B20 的地址序列号。其各位排列顺序是 :开始 8 位为产品类型标号 ,接下来 48 位是该 DS18B20 自身的序列号 ,最后 8 位 是前面 56 位的 CRC 循环冗余校验码 (CRC=X8+X5+X4+1 。光刻录 ROM 的作用是 使每一个 DS18B20 都各不相同 ,就这样可以实现一条总线上挂接多个 DS18B20 的目的。下面介绍以上几条指令的用法。 当主机需要对众多在线 DS18B20 中的某一位进行 操作时 ,首先应将主机逐个与 DS18B20 挂接 ,读出其序列号 ;然后再将所有的DS18B20 挂接到总线上 ,单片机发出匹配 ROM 命令 (55H ,紧接着主机提供的64 位序列 (包括该 DS18B20 的 48 位序列号之后的操作就是针对该 DS18B20 的。如果主机只对一个 DS18B20 进行操作 , 就不需要读取 ROM 编码以及匹配 ROM 编码 了,只要用跳过 ROM (CCH 命令 ,就可以进行如下温度转换和读取操作。 44H温度转换。启动 DS18B20 进行温度转换 , 12 位转换时最长为 750ms (9位为 93.75ms 。结果存入内部 9 字节 RAM 中。 BEH度暂存器。读内部RAM 中 9 字节的温度数据。 4EH写暂存器。发出向内部 RAM 的第 2、 3 字节写上、下限温度数据命令 , 紧跟该命令之后 ,是传送两字节的数据。 48H复制暂存器。将 RAM 中第 2、 3 字节的内容复制到 E2PROM 中。 B8H重调 E2PROM。将 E2PROM 中内容恢复到 RAM 中的第 3,4 字节。 B4H读供电方式。读 DS18B20 的供电模式。寄生供电时 , DS18B20 发送 0; 外接电源供电时 , DS18B20 发送 1。以上这些指令涉及的存储器为高速暂存器RAM 和可电擦除 E2PROM, 见表 2-14 所 示。寄存器内容 字节地址温度值低位 (LSB 0温度值高位 (MSB 1高温限值 (TH 2低温限制 (TL 3配置寄存器 4保留 5保留 6保留 7CRC 校验值 8高速暂存器 RAM 由 9 个字节的存储器组成。第 0-1 个字节是温度的显示位 ; 第 2 和第 3 个字节是复制的 TH 和 TL,同时第 2 和第 3 个字节的数字可以 更新 ; 第四个字节是配置寄存器 , 同时第 4 个字节的数字可以更新 ; 第 5,6,7 三 个字节是保留的。可电擦除 E2PROM 又包括温度触发器 TH 和 TL, 以及一个配 置寄存器。表 2-15 列出了温度数据在高速暂存器RAM 的第 0 和第 1 个字节中的存储格式。LS 字节 位 7 位 6 位 5 位 4 位 3 位 2 位 1 位 0 表 2-14 高速寄存器32 22 12 02 12- 22- 32- 42- MS字节位 15位 14 位 13 位 12 位 11 位 10 位 9 位 8 S S S S S 62 52 42 DS18B20在工厂时默认配置为 12 位, 其中最高位为符号位 , 即温度值共 11 位 单片机在读取数据时 , 一共会读两个字节共 16 位 , 读完后将低 11 位的二进制 数转换为十进制数后再乘以0.0625 便为所测的实际温度值。 另外 , 还需要判断 温度正负。前 5 个数字为符号位 , 这 5 位同时变化 ,我们只需要判断 11 为就 可以了。前 5 位为 1 时,读取的温度为负值 ,且测到数值需要取反加 1 再乘 以 0.0625 才可以得到实际值。 前 5 位为 0 时, 读取温度为正值 , 且温度为正 值时 ,只需要将测得数值乘以0.0625 即可得到实际温度值。6. 工作时序图图 2-16 为时序图中各总线状态。(1 初始化 (时序图见图 2-17图 2-16 时序图中各总线状态 先将数据线置高电平 1。 延时 (改时间要求不是很严格 ,但是要尽可能短一点。 数据线拉到低电平 0. 延时 750us(改时间范围可以在480-960us。 数据线拉到高电平1。 延 时 等 待 。 如 果 初 始 化 成 功 则 在 15-60ms 内 产 生 一 个 有 DS18B20 返回的低电平 0,据该状态可以确定它的存在。 但是应注意不能无限 的等待 ,不然会使程序进入死循环 ,所以要进行超时判断。 若 CPU 读到数据线上的低电平 0 后 ,还要进行延时 ,其延时的时间从发出 高电平算起 (第 5 步的时间算起最少要 480us。 将数据线再次拉到高电平1 后结束。(2 DS18B20 写数据 (时序图见图 2-18图 2-17 初始化时序图 数据线先置低电平0。 延时确定的时间为15us。

    注意事项

    本文(基于AT89C51单片机的蔬菜大棚温度控制系统设计.docx)为本站会员(罗晋)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开