监测控制系统设计报告——基于单片机的温度控制系统的设计.doc_第1页
监测控制系统设计报告——基于单片机的温度控制系统的设计.doc_第2页
监测控制系统设计报告——基于单片机的温度控制系统的设计.doc_第3页
监测控制系统设计报告——基于单片机的温度控制系统的设计.doc_第4页
监测控制系统设计报告——基于单片机的温度控制系统的设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

监测控制系统设计报告 题 目:基于单片机的温度控制系统 作 者: 学 号: 班 级: 目目 录录 摘要:摘要: 1 1 1 引言引言 .2 2 2 设计要求设计要求 .2 3 3 工作原理工作原理 .2 4 4 方案设计方案设计 .3 4.1 温度测量部分方案.3 4.2 主控制部分方案.4 5 5 各单元的设计各单元的设计 5 5.1 温度测试单元.5 5.2 键盘单元.5 5.3 温度控制及超温和超温警报单元.7 5.4 温度控制器件电路.8 5.5 七段数码管显示单元.9 5.6 接口通讯单元.10 5.7 总电路(详见附录 电路图)11 6 6 程序设计程序设计 11 6.1 程序结构分析.11 6.2 主程序.13 6.3 程序代码(详见附录 程序清单).14 7.7.测设分析测设分析 14 8.参参 考考 文文 献献 .15 9.9.小结与体会小结与体会 16 附录附录 A A:电路图:电路图 .17 附录附录 B B:使用说明:使用说明 .18 附录附录 C C:程序清单:程序清单 .18 1 摘要:摘要: 本设计以 AT89S51 单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温 度芯片 DS18B20 采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬 件部分,包括:温度检测电路、温度控制电路、PC 机与单片机串口通讯电路和一些接口 电路 。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了 软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按 键处理程序、温度信号处理程序、继电器控制程序、超温报警程序。 关键词:AT89S51 单片机 DS18B20 温度芯片 温度控制 串口通讯 2 1 1 引言引言 温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常 用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温 度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。这类控 制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导 致控制系统性能不佳,甚至出现控制不稳定、失控现象。传统的继电器调温电路简单实用 ,但 由于继电器动作频繁 ,可能会因触点不良而影响正常工作。控制领域还大量采用传统的 PID 控制方式,但 PID 控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便 仍是普遍存在的问题。而采用数字温度传感器 DS18B20,因其内部集成了 A/D 转换器,使 得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。 数字温度传感器 DS18B20 只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦, 使得单片机更加具有扩展性。由于 DS18B20 芯片的小型化,更加可以通过单跳数据线就 可以和主电路连接,故可以把数字温度传感器 DS18B20 做成探头,探入到狭小的地方, 增加了实用性。更能串接多个数字温度传感器 DS18B20 进行范围的温度检测。 2 2 设计要求设计要求 设计基于单片计算机的温度控制器,用于控制温度。具体要求如下: 1.基于单片机电路实现数据的采集,提取、存储及后期的处理; 2.温度连续可调,范围为 0-40 ; 3.超调量 %20% ; 4.温度误差0.5 ; 5.基于通信端口实现数据的回传,方便人-机对话; 3 工作原理工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机 AT89S51 获取采集 的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上 下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的 上限时,单片机通过三极管驱动继电器开启降温设备 (压缩制冷器) ,当采集的温度经 处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) 。 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障 导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱 动扬声器发出警笛声。 系统中将通过串口通讯连接 PC 机存储温度变化时的历史数据,以便观察整个温度的 控制过程及监控温度的变化全过程。 3 图 3.1 工作原理图 4 方案设计方案设计 4.1 温度测量部分方案温度测量部分方案 DS18B20 是 DALLAS 公司生产的一线式数字温度传感器,它具有微型化、低功耗、高 性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接 将温度转化成串行数字信号(按 9 位二进制数字)给单片机处理,且在同一总线上可以 挂接多个传感器芯片,它具有三引脚 TO-92 小体积封装形式,温度测量范围 55125,可编程为 912 位 A/D 转换精度,测温分辨率可达 0.0625,被测温度 用符号扩展的 16 位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电 源方式产生,多个 DS18B20 可以并联到三根或者两根线上,CPU 只需一根端口线就能与多 个 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。从而可以 看出 DS18B20 可以非常方便的被用于远距离多点温度检测系统。 综上,在本系统中我采用温度芯片 DS18B20 测量温度。该芯片的物理化学性很稳定, 它能用做工业测温元件,且此元件线形较好。在 0100 摄氏度时,最大线形偏差小于 1 AT89S51 8BIT CPU 键盘电路 DS18B20 温度芯片 数据传输 数据显示 继电器 1 N 压缩制冷器 继电器 2加热器 MAX232 电平转 换芯片 片 超温报警 PC 机 4 摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。 图 4.1 温度芯片 DS18B20 4.24.2 主控制部分方案主控制部分方案 AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 8k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的 高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内 集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51 具有如下特点:40 个 引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM) ,32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程 定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。空闲模 式下,CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻 结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯 片还具有 PDIP、TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。 由于系统控制方案简单 ,数据量也不大 ,考虑到电路的简单和成本等因素 ,因此在 本设计中选用 A TMEL 公司的 A T89S51 单片机作为主控芯片。主控模块采用单片机最小 系统是由于 A T89S51 芯片内含有 4 kB 的 E2PROM ,无需外扩存储器 ,电路简单可靠 ,其 时钟频率为 024 MHz ,并且价格低廉 ,批量价在 10 元以内。 5 图 4.2 AT89S51 单片机引脚图 5 5 各单元的设计各单元的设计 5.15.1 温度测试单元温度测试单元 采用温度芯片 DS18B20。使用集成芯片,能够有效的减小外界的干扰,提高测量的精 度,简化电路的结构。 5.25.2 键盘单元键盘单元 单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的 按键或键盘都是以开关状态来设置控制功能或输入数据。 键开关状态的可靠输入 :为了去抖动我采用软件方法,它是在检测到有键按下时, 执行一个 10ms 的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状 态电平则确认为真正键按下状态,从而消除了抖动影响 在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按 键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按 下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的 线反转法。 对照图示的 4*4 键盘,说明线反转法工作原理。首先辨别键盘中有无键按下,有单 6 片机 I/O 口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描 字 00H,把全部列线置为低电平,然后将列线的电平状态读入累加器 A 中。如果有按键按 下,总会有一根行线电平被拉至低电平从而使行线不全为 1。判断键盘中哪一个键被按下 是通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电 平,然后查所有行线状态,如果全为 1,则所按下的键不在此列;如果不全为 1,则所按 下的键必在此列,而且是在与零电平行线相交的交点上的那个键。 键盘共有 16 个按键,用于方便设定温度。 , 数字按键,输入数字 0-9; , 设置的确认,修改设置温度时进行确认; 设置的清除,修改设置温度时进行删除; 开启电源 关闭电源 显示及设置转换到温度点 1,按此按键后,显示预设置温度的数码管 闪烁; 显示及设置转换到温度点 2,按此按键后,显示预设置温度的数码管 闪烁; 表 5.1 键盘的按键分布 P2.00123 P2.14567 P2.289F1F2 P2.3 清除开启关闭确定 P2.4P2.5P2.6P2.7 F1 确认 清除 F2 09 关闭 开启 7 图 5.1 键盘设计图 5.35.3 温度控制及超温和超温警报单元温度控制及超温和超温警报单元 当采集的温度经处理后超过规定温度上限时,单片机通过 P1.4 输出控制信号驱动 三极管 D1 ,使继电器 K1 开启降温设备 ( 压缩制冷设备 ) :当采集的温度经处理后 低于设定温度下限时,单片机通过 P1.5 输出控制信号驱动三极管 D2 ,使继电器 K2 开启升温设备 ( 加热器 1) 。当由于环境温度变化太剧烈或由于加热或降温设备出现故 障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内 的时候,单片机通过三极管驱动扬声器发出警笛声。具体电路连接如图 5.2 所示。 8 图 5.2 温度控制及超温和超温警报单元图 5.45.4 温度控制器件电路温度控制器件电路 单片机通过三极管控制继电器的通断,最后达到控制电热器的目的。 当温度未达到要求时,单片机发送高电平信号使三极管饱和导通,继电器使电源与电 热器接通,电热器加热。温度慢慢升高。 当温度上升到预定温度时,单片机发送低电平信号三极管进入截止状态,继电器的弹 片打到另一侧,使电热器与电源断开,电热器停止加热。 继电器电路中有一个三极管 8050 的保护电路,即将一个二极管反向接到三机管的两 端。连接方法如图 5.3 所示。 图 5.3 单片机控制信号 其原理是:当继电器突然断电时,继电器产生很大的反向电流。二极管的作用是将 反向电流分流,使流过三级管 8050 的电流比较小,达到保护三极管 8050 的作用。 5.55.5 七段数码管显示单元七段数码管显示单元 本部分电路主要使用七段数码管和移位寄存器芯片 74LS164。单片机通过 I2C 总线将 要显示的数据信号传送到移位寄存器芯片 74LS164 寄存,再由移位寄存器控制数码管的 显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率达到 12M,移位寄存器 的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类视觉的角度上 看,就仿佛是全部数码管同时显示的一样。具体见实际连线图如图 5-3。 当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。 串行数据输入端 (A,B)可控制数据。当 A、B 任意一个为低电平,则禁止新数据输入,在时钟端 9 (CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许 输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态,逻辑封装图如图 5.4: 图 5.4 逻辑封装图 引出端符号:CLOCK 时钟输入端;CLEAR 同步清除输入端(低电平有效) ; A,B 串行数据输入端;QAQH 输出端。真值表:表 5-2 表 5.2 真值表 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date:22-Sep-2004Sheet of File:E:Documents and Settings 89s51-.ddbDrawn By: a bf c g d e VCC 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 DS6 a bf c g d e VCC 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 DS7 a bf c g d e VCC 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 DS8 a bf c g d e VCC 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 DS9 a bf c g d e VCC 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 DS13 a bf c g d e VCC 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 DS16 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U16 74LS164 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U13 74LS164 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U12 74LS164 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U14 74LS164 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U15 74LS164 A 1 B 2 QA 3 QB 4 QC 5 QD 6 CLK 8 CLR 9 QE 10 QF 11 QG 12 QH 13 U9 74LS164 +5V+5V+5V+5V+5V+5V R1R2R3R4R5R6 +5V+5V+5V+5V+5V+5V SDA SCL 图 5.5 显示单元图 10 5.65.6 接口通讯单元接口通讯单元 max232 资料简介: 该产品是由德州仪器公司(TI)推出的一款兼容 RS232 标准的芯片。由于电脑串口 rs232 电平是-10v +10v,而一般的单片机应用系统的信号电压是 ttl 电平 0 +5v,max232 就是用来进行电平转换的,该器件包含 2 驱动器、2 接收器和一个电压发生器电路提供 TIA/EIA-232-F 电平。 该器件符合 TIA/EIA-232-F 标准,每一个接收器将 TIA/EIA-232-F 电平转换成 5-V TTL/CMOS 电平。每一个发送器将 TTL/CMOS 电平转换成 TIA/EIA-232-F 电平。 主要特点 : 1、单 5V 电源工作 2、 LinBiCMOSTM 工艺技术 3、 两个驱动器及两个接收器 4、 30V 输入电平 5、低电源电流:典型值是 8mA 6、符合甚至优于 ANSI 标准 EIA/TIA-232-E 及 ITU 推荐标准 V.28 7、ESD 保护大于 MIL-STD-883(方 法 3015)标准的 2000V 5 1 单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口 通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是 RS232 电平的,而单片机 的串口是 TTL 电平的,两者之间必须有一个电平转换电路,我采用了专用芯片 MAX232 进 行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。 在本设计中采用了三线制连接串口,也就是说和电脑的 9 针串口只连接其中的 3 根 线:第 5 脚的 GND、第 2 脚的 RXD、第 3 脚的 TXD。这是最简单的连接方法,但是对我来 说已经足够使用了,电路如下图所示,MAX232 的第 10 脚和单片机的 11 脚连接,第 9 脚 和单片机的 10 脚连接,第 15 脚和单片机的 20 脚连接,串口通讯具体如图 5.6: 11 图5.6 通讯接口图 5.75.7 总电路(详见附录总电路(详见附录 电路图)电路图) 6 6 程序设计程序设计 6.16.1 程序结构分析程序结构分析 主程序调用了 5 个子程序,分别是数码管显示程序、键盘扫描及按键处理程序、温 度信号处理程序、继电器控制程序、单片机与 PC 机串口通讯程序。 键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。 温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。 数码管显示程序:向数码的显示送数,控制系统的显示部分。 继电器控制程序:控制继电器动作 串口通讯程序:实现 PC 机与单片机通讯,将温度数据传送给 PC 机。 12 图 6.1 程序结构图 6.26.2 主程序主程序 图 6.1 主程序流程图 13 程序开始的时候先设置初始化,然后就控制数码管显示当前温度。接着就判断 F1、F2 按键是否被按下。按下 F1 进入温度控制点 1 的程序、按下 F2 进入温度控制点 2 的程序。程序控制设置温度的两个数码管闪烁的,此时键盘输入有效。有按键按下的时 候进入按键处理程序。按下“确定”按键后,程序进入判断程序和继电器控制程序。继 电器动作后,程序回到显示当前程序,并开始循环。 6.36.3 程序代码(详见附录程序代码(详见附录 程序清单)程序清单) 7.7.测设分析测设分析 1测试环境 环境温度 28 摄氏度,室内面积 20 平方米 测试仪器:数字万用表,温度计 0-100 摄氏度 2测试方法 使系统运行,采用温度计同时测量室内度变化情况,得出系统测量的温度。 3测试结果 设定温度由 0 摄氏度到 40 摄氏度 标定温差=1 摄氏度 调节时间 15s(具体视现场情况) 静态误差=0.5 摄氏度 最大超调量 1 摄氏度 4通过测试分析,对于实际室内的温度控制,可以再提出以下 2 点方法 : 增加传感器个数,对各个温度传感器采集的数据进行求算术平均,可得到较为准 确的温度值。 对实际室内的温度控制,可采用功率较大的电炉,并且通过风扇对箱内 温度进行充分搅和,降温设备可采用空气压缩机等制冷设备。 5.通过实验测试和分析,发现虽然传感器的温度采集精度最高可得到 0.06,但测 试得到的数据最小间隔为 0.03 。通过分析,当对浮点数求平均处理时,遇到同一时 刻两个传感头采集的温度相差不大,使 0.06 时求出平均温度变为 0.03 为了解 该数据是否真实,可采用一个高精度的数字温度计测试,发现读出的值与其基本一致, 由此推断如果在同一时间增加采集温度的个数,则可以进一步提高温度的精度。 14 8.参参 考考 文文 献献 (1)曹巧媛主编. 单片机原理及应用(第二版).北京:电子工业出版社,2002 (2)全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选 编(2001), 北京:北京理工大学出版社,2003 (3)何力民编. 单片机高级教程.北京:北京航空大学出版社,2000 (4)金发庆等编. 传感器技术与应用.北京机械工业出版社,2002 (5)邵惠鹤工业过程高级控制上海:上海交通大学出版社,1997 (6)胡寿松自动控制原理北京:国防工业出版社,2000 (7)刘伯春智能 PID 调节器的设计及应用电子自动化,1995 (8)Katsuhiko OgataModen Control EngineeringPublishing house of electronics industry,2000 (9)周润景,张丽娜基于 PROTEUS 的电路及单片机系统设计与仿真M北京:航 空航天大学出版社 ,2006 (10)王忠飞,胥芳MCS-51 单片机原理及嵌入式系统应用M西安:西安电子科 技大学出版社,2007 (11)刘国钧,陈绍业,王凤翥.图书馆目录.第 1 版.北京:高等教育出版社,1957 (12)赵娜,赵刚,于珍珠等.基于 51 单片机的温度测量系统J. 微计算机信息, 2007,1-2:146-148。 (13)Borko H,Bernier C LIndexing concepts and methods .New York:Academic 15 9.9.小结与体会小结与体会 在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范 围内变化,稳定性好,不振荡,对系统的快速性要求不高。在论文中简单分析了单片机 温度控制系统设计过程及实现方法。本系统的测温范围为-1040,温度检测系统根 据用户设定的温度范围完成一定范围的温度控制。 89S51 的时钟最高可达 12M,I/O 口可达 32 个,高的时钟频率和丰富的 I/O,都为我 们实现电路功能提供了非常有利的条件。同时也因为开发环境友好,易用,方便,大大 加快本系统设计开发。 本制作的设计中使用了继电器控制的只是插座电路,因此,该系统的可扩展性很强。 随着插入插座的电器的不同,可以实现许多其它功能的电路。 16 17 附录附录 A A:电路图:电路图 18 附录附录 B B:使用说明:使用说明 1、将温度控制箱上的开关全部打到“关”的位置 2、将温度芯片插到温度控制箱的指定位置 3、用串口线将温度控制箱与计算机相连,打开相应的应用程序 4、将用电器的插头插到温度控制箱的插座 5、接上温度控制箱的电源、并打开开关。在温度控制箱上的数码管显示出当前温度 6、按 F1 键,进入温度点 1 的设置。通过键盘设置所需要的温度,然后按“确定”键。 系统会将设置值与当前值进行比较,通过温度芯片的反馈,单片机控制加热或冷却水的 温度,使水的温度稳定在设置的温度上。从而达到控制温度的作用。 7、按 F2 键则相应进入温度点 2 的设置。与 F1 键的使用方法相同。 8、当要关闭系统时,先关掉开关,然后再拔掉电源。 框图表示: 附录附录 C C:程序清单:程序清单 主程序: ORG 0000H ;DS18B20.ASM DS18SL EQU 41H ;用于保存读出温度的低 8 位 DS18SH EQU 40H ;用于保存读出温度的高 8 位 DS18FIG EQU 8H ;是否检测到 DS18B20 标志位 A_BIT1 EQU 31H ;数码管个位数存放内存位置 B_BIT1 EQU 32H ;数码管十位数存放内存位置 D_BIT1 EQU 35H ;数码管百位数存放内存位置 DS18CD1 EQU 42H ;DS18CD1-DS18CD8 暂存 64 位 ROM DS18CD2 EQU 43H ;从低到高 确认温度控制箱上 的开关全部打到关 的状态 接上温度芯片,连 接好电路,接上电 源,打开开关 按 F1 或 F2 进行 温度点 1 或温度 点 2 的设定 系统开始工作, 直至工作结束, 关闭电源 19 DS18CD3 EQU 44H DS18CD4 EQU 45H DS18CD5 EQU 46H DS18CD6 EQU 47H DS18CD7 EQU 48H DS18CD8 EQU 49H DS1864B EQU 4AH DS18ADS EQU 4BH DS18DQ EQU P1.0 ;30H,31H,32H,33H: X 个位 十位 X MOD7: MOV SP,#60H LCALL GET_TEMPER ;调用读温度子程序 LCALL READCODE AJMP MOD7 INIT_1820: ;DS18B20 初始化 SETB DS18DQ CLR DS18DQ ;延时,500US 低 MC MOV R7,#250 DJNZ R7,$ MOV R7,#150 DJNZ R7,$ SETB DS18DQ ;释放总线 LCALL DELAY60US ;15-60US 的等待时间 MOV R6,#4 SETDSDQ: LCALL DELAY60US JNB DS18DQ,SETDSDQFH ;60-240US 内是否有返回信号,为 0 跳 DJNZ R6,SETDSDQ MOV R7,#250 DJNZ R7,$ 20 CLR DS18FIG RET SETDSDQFH: SETB DS18FIG MOV R7,#250 DJNZ R7,$ MOV R7,#100 DJNZ R7,$ RET; 数据处理程序: TEMP0: INC A AJMP TEMP1 TEMPCOV: MOV A,DS18SL ;数据处理子程序 TEMPCOV MOV B,#16 DIV AB JB B.3,TEMP0 TEMP1: MOV 34H,A ;将 DS18SL 的高四位右移四位,存入 34H 中(温度值) MOV A,B ;将 DS18SL 的低四位 X10/16 得小数后 一位数. MOV B,#10 MUL AB MOV B,#16 DIV AB MOV 30H,A ;将小数后一位数.存入 30H 中 MOV A,DS18SH ;DS18SH 中存放高 8 位数,权 重 16 MOV B,#16 MUL AB 21 ADD A,34H ;34H 中存入温度值的整数部分 MOV B,#10 DIV AB MOV 31H,B ;个位存入 31H 中 MOV B,#10 ; DIV AB ; MOV 32H,B ;十位存入 32H 中 MOV B,#10 ; DIV AB ; MOV 35H,B ;百位存入 33H 中 MOV A,DS18SH MOV 33H,#10H ; JB ACC.7,EXIT7 MOV 33H,#00H EXIT7: RET GET_TEMPER: ;读出转换后的温度值,并显示 SETB DS18DQ LCALL INIT_1820 ;先复位 DS18B20 JB DS18FIG,TSS2 RET ;判断 DS1820 是否存在?若 DS18B20 不存在则返 TSS2: MOV DS18ADS,#0 DS18JX: LCALL DS18CODP MOV A,DS18ADS ADD A,#9 MOV DS18ADS,A CJNE A,#63,DS18JX RET DS18CODP: 22 LCALL MRCOVT ;转换指定的 DS18B20 的温度 LCALL MRRDTEDP ;显示温度 RET TEMP: LCALL INIT_1820 JB DS18FIG,NEXT4 RET NEXT4: MOV DS18ADS,#9 MOV A,#0CCH ;SKIP ROM LCALL WRITE_1820 MOV A,#44H ;温度转换命令 LCALL WRITE_1820 LCALL DELAY1S LCALL MRRDTEDP RET;写 DS18B20 的子程序(有具体的时序要求) WRITE_1820: ;写 DS18B20 MOV R5,#8 DS18JXWE: SETB DS18DQ ;初始化 CLR DS18DQ CLR DS18DQ MOV R7,#5 DJNZ R7,$ ;拉低 15US 内,写入数据 CLR C RRC A MOV DS18DQ,C LCALL DELAY60US ;持续 60US SETB DS18DQ ;写完一个位 DJNZ R5,DS18JXWE 23 RET READ_1820_CODE: ;读取 CODE 64 位 MOV R4,#8 ;读 8 次数 MOV R1,#DS18CD1 ;低位地址存在 R1 DS18JXRD3: MOV R5,#8 ;8 位数据 DS18JXRD2: SETB DS18DQ CLR DS18DQ ;前两句完成初始化 NOP NOP ;延时至少 1US SETB DS18DQ ;上升沿,并在,15US 内读数 MOV R7,#5 DJNZ R7,$ MOV C,DS18DQ RRC A LCALL DELAY60US ;读时序,最少 60US DJNZ R5,DS18JXRD2 MOV R1,A INC R1 DJNZ R4,DS18JXRD3 SETB DS18DQ RET;读 DS18B20 的程序,从 DS18B20 中读出两个字节的温度数 据 READ_18200: MOV R4,#2 ;读两次数 MOV R1,#DS18SL ;低位地址存在 R1 DS18JXRD1: MOV R5,#8 ;8 位数据 DS18JXRD: 24 SETB DS18DQ CLR DS18DQ ;前两句完成初始化 NOP NOP ;延时至少 1US SETB DS18DQ ;上升沿,并在,15US 内读数 MOV R7,#5 DJNZ R7,$ MOV C,DS18DQ RRC A LCALL DELAY60US ;读时序,最少 60US DJNZ R5,DS18JXRD MOV R1,A DEC R1 DJNZ R4,DS18JXRD1 SETB DS18DQ RET READ_1820_1: ;读取 1 位 SETB DS18DQ CLR DS18DQ CLR DS18DQ CLR DS18DQ SETB DS18DQ MOV R7,#5 DJNZ R7,$ JB DS18DQ,WEFH LCALL DELAY10MS WEFH: LCALL DELAY60US RET READCODE: ;读取 64 位 ROM,并显示出来 25 SETB DS18DQ LCALL INIT_1820 JB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论