毕业设计(论文)基于单片机的水温控制系统1.doc

上传人:土8路 文档编号:10039063 上传时间:2021-04-13 格式:DOC 页数:52 大小:584KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的水温控制系统1.doc_第1页
第1页 / 共52页
毕业设计(论文)基于单片机的水温控制系统1.doc_第2页
第2页 / 共52页
毕业设计(论文)基于单片机的水温控制系统1.doc_第3页
第3页 / 共52页
毕业设计(论文)基于单片机的水温控制系统1.doc_第4页
第4页 / 共52页
毕业设计(论文)基于单片机的水温控制系统1.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的水温控制系统1.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的水温控制系统1.doc(52页珍藏版)》请在三一文库上搜索。

1、电子与信息工程学院本 科 毕 业 论 文论文题目 基于单片机的水温控制系统 学生姓名 学 号 083522026 专 业 电气工程及其自动化 班 级 08电气(2) 指导教师 2012年5月摘 要温度控制系统可以说是无所不在,热水器系统、空调系统、冰箱、电饭煲、电风扇等家电产品以至手持式高速高效的计算机和电子设备,均需要提供温度控制功能。本系统的设计可以用于热水器温度控制系统和饮水机等各种电器电路中。它以单片机AT80S51为核心,通过3个数码管显示温度和4个按键实现人机对话,使用单总线温度转换芯片DS18B20实时采集温度并通过数码管显示,并提供各种运行指示灯用来指示系统现在所处状态,如:温

2、度设置、加热、停止加热等,整个系统通过四个按键来设置加热温度和控制运行模式。该水温控制系统采用单片机进行温度实时采集与控制。温度信号由“一线总线”数字化温度传感器DS18B20提供,DS18B20在-10+85C范围内, 固有测温分辨率为0.5 。水温实时控制采用继电器控制电热丝和风扇进行升温、降温控制。系统具备较高的测量精度和控制精度,能完成升温和降温控制。关键词: 单片机、数码管显示、单总线、DS18B20.ABSTRACT Temperature control system can be said to be ubiquitous, water heaters, air conditi

3、oning systems, refrigerators, rice cookers, electric fans and other home appliances as well as high-speed and efficient hand-held computers and electronic equipment are required to provide temperature control. The system design can be used for drinking water heater temperature control systems and ot

4、her electrical circuits. AT80S51 microcontroller as the core of it, through the three temperature digital display and 4 keys to achieve man-machine dialogue, the use of single-chip bus temperature conversion temperature DS18B20 real-time acquisition and through the digital display and offers a varie

5、ty of operating light to indicate system now live in the state, such as: temperature setting, heating, and stop heating, the entire system through the four buttons to set the heating temperature and control the operating mode. This water temperature control system uses the Single Chip Microcomputer

6、to carry on temperature real-time gathering and controling. DS18B20, digitized temperature sensor, provides the temperature signal by a main line. In -10+85 the scope, DS18B20s inherent measuring accuracy is 0.5 . The water temperature real-time control system uses the electricity nichrome wire carr

7、ing on temperature increiseament and operates the electric fan to realize the temperature decrease control. The system has the higher measuring accuracy and the control precision, it also can complete the elevation of temperature and the temperature decrease control. KEY WORDS: Microcontroller;Digit

8、al display;Single bus;DS18B20目录目录11 绪 论31.1水温控制系统概述41.2本设计任务和主要内容42 课题设计方案论证52.1温度采集模块的选用52.2控制核心的选择62.3加热装置有效功率控制模块的选择62.4键盘与显示模块的选择73 系统的主要器件93.1 AT89S52单片机简介93.2 DS18B20温度传感器简介123.3 LED数码管简介144 硬件的设计与实现174.1系统硬件模块关系174.2温度采集部分设计184.2.1 DS18B20的测温功能的实现:184.2.2 DSl820工作过程中的协议194.2.3 温度转换算法及分析204.3键

9、盘、控制器部分204.4 继电器控制电路214.5 数码管显示电路225 软件设计245.1读取DS18B20温度模块子程序245.2数据处理子程序245.3键盘扫描子程序265.4 主程序流程图276 系统调试286.1 硬件电路调试286.2 软件调试286.3 系统操作说明296.4 数据测试297 总 结318 参考文献329 致 谢3310 附 录34附录A : 系统硬件原理图34附录B:软件程序清单351 绪 论水温控制在工业及日常生活中应用广泛,分类较多,不同水温控制系统的控制方法也不尽相同,其中以PID控制法最为常见。单片机控制部分采用AT89S52单片机为核心,采用软件编程,

10、实现用PID算法来控制PWM波的产生,进而控制电炉的加热来实现温度控制。然而,单纯的PID算法无法适应不同的温度环境,在某个特定场合运行性能非常良好的温度控制器,到了新环境往往无法很好胜任,甚至使系统变得不稳定,需要重新改变 PID 调节参数值以取得佳性能。本文首先用PID算法来控制PWM波的产生,进而控制电炉的加热来实现温度控制。然后在模型参考自适应算法 MRAC基础上,用单片机实现了自适应控制,弥补了传统 PID控制结构在特定场合下性能下降的不足,设计了一套实用的温度测控系统,使它在不同时间常数下均可以达到技术指标。此外还有效减少了输出继电器的开关次数,适用于环境参数经常变化的小型水温控制

11、系统。1.1水温控制系统概述温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。特别是在当前全球水资源极度缺乏的情况下,我们更应该掌握好对水温的控制,把身边的水资源好好地利用起来。在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一。在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准,以单片机为核心设计的炉温控制系统,可以同时采集多个数据,并将数据通过通讯口

12、送至上位机进行显示和控制。那么无论是哪种控制,我们都希望水温控制系统能够有很高的精确度(起码是在满足我们要求的范围内),帮助我们实现我们想要的控制,解决身边的问题。在计算机没有发明之前,这些控制都是我们难以想象的。而当今,随着电 子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现水温控制并提高控制的精确度不仅是可以达到的而且是容易实现的。用高新技术来解决工业生产问题, 排除生活用水问题实施对水温的控制已成为我们电子行业的任务,以此来加强工业化建设,提高人民的生活水平。1.2本设计任务和主要内容1.基本要求一升水由1kW的电炉

13、加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。2.主要性能指标 温度设定范围:,最小区分度为。 控制精度:温度控制的静态误差。 用十进制数码显示实际水温。3.扩展功能 具有通信能力,可接收其他数据设备发来的命令,或将结果传送到其他数据设备。 采用适当的控制方法实现当设定温度或环境温度突变时,减小系统的调节时间和超调量。 温度控制的静态误差。2 课题设计方案论证2.1温度采集模块的选用方案一:选用热敏电阻作为感测温度的核心元件,通过运算放大器放大由于温度变化引起的热敏电阻电阻的变化、进而导致的输出电压变化的微弱电压变化信号,再用AD转换芯片

14、ADC0809将模拟信号转化数字信号输入单片机处理。方案二: 采用数字式集成温度传感器DS18B20作为感测温度的核心元件,直接输出数字温度信号供单片机处理。对于方案一,采用热敏电阻有价格便宜、元件易购的特点,但热敏电阻对温度的细微变化不敏感,在信号采集、放大、转换过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其本身电阻对温度的变化存在较大误差,虽然可以通过一定的电路予以纠正,但不仅将使电路复杂稳定性降低,而且在人体所处环境温度变化中难以检测小的温度变化。故该方案不适合本系统。对于方案二,由于数字式集成温度传感器DS18B20的高度集成化,大大的降低了外接放大转化等电路的误差

15、因数,温度误差变得很小,并且由于其检测温度的原理与热敏电阻检测的原理有着本质的不同,使得其温度分辨率极高。温度值在器件内部转化成数字量直接输出,简化了系统程序设计,又由于该温度传感器采用先进的单总线技术,与单片机接口变得非常简洁,抗干扰能力强,因此该方案适用于本系统。由上述分析、可行性和实用性等因素考虑,本课题选用方案二,即采用温度传感器DS18B20作为感测温度的核心元件。2.2控制核心的选择方案一:采用模拟运算放大器组成PID控制系统。对于水温控制是足够的。但要附加显示、温度设定等功能,要附加许多电路,稍显麻烦。方案二:采用ATMEL公司的AT89C52作为系统控制器。单片机算术运算功能强

16、,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且其功耗低、体积小、技术成熟和成本低等优点。基于以上分析拟订方案二,由AT89S52作为控制核心,对温度采集和实时显示以及加热装置进行控制。2.3加热装置有效功率控制模块的选择根据题目,可以使用电热炉进行加热,控制电热炉的功率即可以控制加热的速度。当水温过高时,关掉电热炉进行降温处理,让其自然冷却。在制作中,我们装设一个小电风扇,当水温超高时关闭电炉开启风扇散热,当需要加热时开启电炉关闭风扇。由于加热的功率较大,考虑到简化电路的设计,我们直接采用220V电源。对加热装置控制模块有以下两种方案:方案一:采用可控硅来控制加热器有效功率

17、。可控硅是一种半控器件,应用于交流电的功率控制有两种形式:控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制交流功率。由交流过零检测电路输出方波经适当延时控制双向可控硅的导通角,延时时间即移相偏移量由温度误差计算得到。可以实现对交流电单个周期有效值周期性控制,保证系统的动态性能指标。该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。但该方案可以实现功率的连续调节,因此响应速度快,控制精度也高。方案二:采用继电器控制。使用继电器可以很容易实现地通过较高的电压和电流,在正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。这种电路无法精确实现电热丝功率控制,电热丝只能

18、工作在最大功率或零功率,对控制精度将造成影响。但可以由多路加热丝组成功率控制,由单片机对温差的处理实现分级功率控制提高系统动态性能。基于以上分析以及现有器件限制选择方案二,采用继电器控制省去光耦和交流过零检测电路,在软件上选用适当的控制算法,同样可以达到较好的效果。2.4键盘与显示模块的选择根据题目要求,水温要由人工设定,并能实时显示温度值。对键盘和显示模块有下面两种方案: 方案一:采用液晶显示屏和通用矩阵键盘。液晶显示屏(LCD)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点。但由于只需显示三位温度值,信息量比较少,且由于液晶是以点

19、阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器资源占用较多,其成本也偏高。方案二:采用三位LED七段数码管分别显示温度的十位、个位和小数位。按键采用单列3按键进行温度设定。数码管具有:低能耗、低损耗、低压、寿命长、耐老化,对外界环境要求较低。同时数码管采用BCD编码显示数字,程序编译容易,资源占用较少。根据以上论述,采用方案二。本系统中,采用了数码管的动态显示,节省单片机的内部资源。3 系统的主要器件根据以上分析,结合器件和设备等因素,确定如下方案: 1. 采用AT89C52单片机作为控制器,分别对温度采集、LED显示、温度设定、加热装置功率控制。2. 温度测量模块采用

20、数字温度传感器DS18B20。此器件经软件设置可以实现高分辨率测量。 3. 电热丝有效功率控制采用继电器控制,实现电路简单实用,加上温度变化缓慢可以满足设计要求。4. 显示用LED数码管显示实时温度值,用ENTER、UP、DOWN三个单键实现温度值的设定。 系统的基本框图如图所示。CPU(AT 89S52)首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过89S52来处理数据。数据处理后的结果就显示到数码管上。另外由键盘设定温度值送到单片机,单片机通过数据处理发出温度控制信息到继电器。DS18B20可以被编程,所以箭头是双向的。OutputLED数码管继电器DS18B20

21、键盘输入H / mH / mH / mH / mH / mH / mH / mH / mH / mH / mH / mH / mH / mH / mH / mH / mAT89C52x =1x =1x =1x =1x =1x =1x =1x =1x =1x =1x =1x =1x =1x =1x =1x =1Inputx = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.8x = 0.83.1 AT89S52单片机简介 主要性能 与MCS-5

22、1单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、 全静态操作:0Hz33Hz 、 三级加密程序存储器 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中断源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。功能特性描述 At89s52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片

23、上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复

24、位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为

25、输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向

26、I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输

27、出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口

28、还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指

29、令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加

30、上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。3.2 DS18B20温度传感器简介DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源,因而使用DS18B20可使系统结构更趋简

31、单可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。DS18B20内部结构主要有四部分:64位ROM温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其管脚有三个,其中DQ为数字信号端,GND为电源地,VDD为电源输入端。DS18B20的引脚介绍 TO92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。(底视图)图2 表1DS18B20详细引脚功能描述 序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的V

32、DD引脚。当工作于寄生电源时,此引脚必须接地。DS18B20性能特点如下:(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+3.0 +5.5 V。(4)测温范围:-55+125 。固有测温分辨率为0.5 。(5)通过编程可实现912位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。单线(1wire)技术:

33、该技术采用单根信号线,既可传输时钟,也能传输数据,而且是双向传输。适用于单主机系统,主机能够控制一个或多个从机设备,通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能释放该线,而让其他设备使用。单线通常要求外接一个5K的上拉电阻,这样当该线空闲时,其状态为高电平。主机和从机之间的通讯分成三个步骤:初始化单线器件、识别单线器件和单线数据传输。单线1wire协议由复位脉冲、应答脉冲、写0、写1、读0、读1,这几种信号类型实现,这些信号中除了应答脉冲其他都由主机发起,并且所有指令和数据字节都是低位在前。DS18B20直接将测量温度值转化为数字量提交给单片机,工作时必须严格遵守单总线器

34、件的工作时序。表2. 部分温度值与DS18B20输出的数字量对照表温度值/ 数字输出(二进制) 数字输出(十六进制)+125 0000 0111 1101 0000 07D0H+85 0000 0101 0101 0000 0550H+25.625 0000 0001 1001 0001 0191H+10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H-10.125 1111 1111 0110 1110 FF

35、5EH-25.625 1111 1111 0110 1111 FF6FH-55 1111 1100 1001 0000 FC90H3.3 LED数码管简介本系统选用三个LED数码管来进行温度显示和定时显示。LED又称为数码管,它主要是由8段发光二级管组成的不同组合,其中ag为数字和字符显示段,dp为小数点的显示,通过ag这7个发光二级管点亮的不同组合,可以显示09和AF共16个数字和字母。LED数码管可以分为共阴极和共阳极两种结构,如下图4(a)和图4(b)所示。共阴极结构把8个发光二级管阴极连接在一起,共阳极结构把8个发光二级管阳极连在一起。通过单片机引脚输出高低电平,可使数码管显示相应的数

36、字和字母,这种使数码管显示字形的数据称字形码,又称段选码。 图4. 七段LED数码管一个共阴极数码管接至单片机的电路,要想显示数字“7”须a、b、c这3个显示段发光(即这3个字段为高电平)只要P0口输入00000111(07H)即可。这里07H即为数字7的段选码。字形与段选码的关系见表3 所示。 表3. 七段数码管段选码表4 硬件的设计与实现4.1系统硬件模块关系本系统的执行方法是循环查询执行的,键盘扫描也是用循环查询的办法,由于本系统对实时性要求不是很高,所以没有用到中断方式来处理。各模块关系图如图所示。单片机初始话模块继电器控制模块键盘扫描模块(扫描有无Enter键按下)DS18B20得到

37、温度值,存放到Buffer中处理温度值,换算成BCD码温度显示模块图 统硬件模块关系图4.2温度采集部分设计本系统采用半导体温度传感器作为敏感元件。传感器我们采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。DS18B20应用广泛,性能可以满足题目的设计要求。DS18B20的的测温电路如图所示。 图 DS18B20测温电路4.2.1 DS18B20的测温功能的实现:其测温电路的实现是依靠单片机软件的编程上。 当DSI8B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码

38、形式存储在高速暂存存储器的0,1字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0062 5LSB形式表示。温度值格式如表2.2.1所示,其中“S”为标志位,对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。DSI8B20完成温度转换后,就把测得的温度值与 TH做比较,若TTH或T RoM操作命令 - 存储器操作命令- 处理数据 初始化 单总线上的所有处理均从初始化开始 ROM操作命令 总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如表2.2.2所示表2.2.2 ROM操作命令表指令代码

39、Read ROM(读ROM)33HMatch ROM(匹配ROM)55HSkip ROM(跳过ROMCCHSearch ROM(搜索ROM)F0HAlarm search(告警搜索)ECH 存储器操作命令如表所示表 存储器操作命令表指令代码Write Scratchpad(写暂存存储器)4EHRead Scratchpad(读暂存存储器)BEHCopy Scratchpad(复制暂存存储器)48HConvert Temperature(温度变换)44HRecall EPROM(重新调出)B8HRead Power supply(读电源)B4H4.2.3 温度转换算法及分析由于DS18B20转换

40、后的代码并不是实际的温度值,所以要进行计算转换。温度高字节(MS Byte)高5位是用来保存温度的正负(标志为S的bit11bit15),高字节(MS Byte)低3位和低字节来保存温度值(bit0 bit10)。其中低字节(LS Byte)的低4位来保存温度的小数位(bit0 bit 3)。由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留一位小数即可。也就说,本系统的温度精确到了0.1度。算法核心:首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LS Byte)取反加一变成原码。处理过后把DS18B20的温度Copy到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD

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

当前位置:首页 > 社会民生


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