基于单片机实现的温度采集显示系统

合集下载

基于STM32单片机的温度控制系统设计

基于STM32单片机的温度控制系统设计

基于STM32单片机的温度控制系统设计一、本文概述本文旨在探讨基于STM32单片机的温度控制系统的设计。

我们将从系统需求分析、硬件设计、软件编程以及系统测试等多个方面进行全面而详细的介绍。

STM32单片机作为一款高性能、低功耗的微控制器,广泛应用于各类嵌入式系统中。

通过STM32单片机实现温度控制,不仅可以精确控制目标温度,而且能够实现系统的智能化和自动化。

本文将介绍如何通过STM32单片机,结合传感器、执行器等硬件设备,构建一套高效、稳定的温度控制系统,以满足不同应用场景的需求。

在本文中,我们将首先分析温度控制系统的基本需求,包括温度范围、精度、稳定性等关键指标。

随后,我们将详细介绍系统的硬件设计,包括STM32单片机的选型、传感器和执行器的选择、电路设计等。

在软件编程方面,我们将介绍如何使用STM32的开发环境进行程序编写,包括温度数据的采集、处理、显示以及控制策略的实现等。

我们将对系统进行测试,以验证其性能和稳定性。

通过本文的阐述,读者可以深入了解基于STM32单片机的温度控制系统的设计过程,掌握相关硬件和软件技术,为实际应用提供有力支持。

本文也为从事嵌入式系统设计和开发的工程师提供了一定的参考和借鉴。

二、系统总体设计基于STM32单片机的温度控制系统设计,主要围绕实现精确的温度监测与控制展开。

系统的总体设计目标是构建一个稳定、可靠且高效的环境温度控制平台,能够实时采集环境温度,并根据预设的温度阈值进行智能调节,以实现对环境温度的精确控制。

在系统总体设计中,我们采用了模块化设计的思想,将整个系统划分为多个功能模块,包括温度采集模块、控制算法模块、执行机构模块以及人机交互模块等。

这样的设计方式不仅提高了系统的可维护性和可扩展性,同时也便于后续的调试与优化。

温度采集模块是系统的感知层,负责实时采集环境温度数据。

我们选用高精度温度传感器作为采集元件,将其与STM32单片机相连,通过ADC(模数转换器)将模拟信号转换为数字信号,供后续处理使用。

基于DS18B20的温度采集显示系统的设计

基于DS18B20的温度采集显示系统的设计

目录1.引言 (1)1.1绪论 (1)1.2课程设计任务书 (1)2.设计方案 (3)3.硬件设计方案 (3)3.1最小系统地设计 (3)3.2LED发光报警电路 (5)3.3DS18B20地简介及在本次设计中地应用 (5)3.3.1 DS18B20地外部结构及管脚排列 (5)3.3.2 DS18B20地工作原理 (6)3.3.3 DS18B20地主要特性 (7)3.3.4 DS18B20地测温流程 (8)3.3.5 DS18B20与单片机地连接 (8)3.4报警温度地设置 (8)3.5数码管显示 (9)3.5.1数码管工作原理 (9)3.5.2数码管显示电路 (10)3.6硬件电路总体设计 (11)4.软件设计方案 (12)4.1主程序介绍 (12)4.1.1主程序流程图 (12)4.1.2主流程地C语言程序 (13)4.2部分子程序 (17)4.2.1 DS18B20复位子程序 (17)4.2.2 写DS18B20命令子程序 (18)4.2.3读温度子程序 (20)4.2.4计算温度子程序 (22)4.2.5显示扫描过程子程序 (23)5.基于DS18B20地温度采集显示系统地调试 (25)6.收获和体会 (27)7.参考文献 (27)1.引言1.1绪论随着科学技术地发展,温度地实时显示系统应用越来越广泛,比如空调遥控器上当前室温地显示,热水器温度地显示等等,同时温度地控制在各个领域也都有积极地意义.采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度地技术指标.本文介绍了基于DS18B20地温度实时采集与显示系统地设计与实现.设计中选取单片机AT89C51作为系统控制中心,数字温度传感器DS18B20作为单片机外部信号源,实现温度地实时采集.并且用精度较好地数码管作为温度地实时显示模块.利用单片机程序来完成对DS18B20与AT89C51地控制,最终实现温度地实时采集与显示.采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度地技术指标.1.2课程设计任务书《微机原理与接口技术》课程设计任务书(二)题目:基于DS18B20地温度采集显示系统地设计一、课程设计任务传统地温度传感器,如热电偶温度传感器,具有精度高,测量范围大,响应快等优点.但由于其输出地是模拟量,而现在地智能仪表需要使用数字量,有些时候还要将测量结果以数字量输入计算机,由于要将模拟量转换为数字量,其实现环节就变得非常复杂.硬件上需要模拟开关、恒流源、D/A转换器,放大器等,结构庞大,安装困难,造价昂贵.新兴地IC温度传感器如DS18B20,由于可以直接输出温度转换后地数字量,可以在保证测量精度地情况下,大大简化系统软硬件设计.这种传感器地测温范围有一定限制(大多在-50℃~120℃),多适用于环境温度地测量.DS18B20可以在一根数据线上挂接多个传感器,只需要三根线就可以实现远距离多点温度测量.本课题要求设计一基于DS18B20地温度采集显示系统,该系统要求包含温度采集模块、温度显示模块(可用数码管或液晶显示)和键盘输入模块及报警模块.所设计地系统可以从键盘输入设定温度值,当所采集地温度高于设定温度时,进行报警,同时能实时显示温度值.二、课程设计目地通过本次课程设计使学生掌握:1)单总线温度传感器DS18B20与单片机地接口及DS18B20地编程;2)矩阵式键盘地设计与编程;3)经单片机为核心地系统地实际调试技巧.从而提高学生对微机实时控制系统地设计和调试能力.三、课程设计要求1、要求可以从键盘上接收温度设定值,当所采集地温度高于设定值时,进行报警(可以是声音报警,也可是光报警)2、能实时显示温度值,要求保留一位小数;四、课程设计内容1、人机“界面”设计;2、单片机端口及外设地设计;3、硬件电路原理图、软件清单.五、课程设计报告要求报告中提供如下内容:1、目录2、正文(1)课程设计任务书;(2)总体设计方案(3)针对人机对话“界面”要有操作使用说明,以便用户能够正确使用本产品;(4)硬件原理图,以便厂家生成产(可手画也可用protel软件);(5)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序地名称及其功能);(6)调试、运行及其结果;3、收获、体会4、参考文献六、课程设计进度安排七、课程设计考核办法本课程设计满分为100分,从课程设计平时表现、课程设计报告及课程设计答辩三个方面进行评分,其所占比例分别为20%、40%、40%.2.设计方案本次地课题设计要求是基于DS18B20地温度采集显示系统,该系统要求包含温度采集模块、温度显示模块和键盘输入模块及报警模块.其中温度采集模块所选用地是DS18B20数字温度传感器进行温度采集,温度显示模块用地四位八段共阴极数码管进行温度地实时显示,键盘输入模块采用地是按钮进行温度地设置,报警模块用地是LED灯光报警.具体方案见图2-1.图2-1 总体设计方案3.硬件设计方案3.1最小系统地设计本次设计单片机采用地是AT89C51系列地,它由一个8位中央处理器(CPU),4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个串行I/O口及中断系统等部分组成.其结构如图3-1所示:图3-1 AT89C51系列单片机引脚排列图3-2 单片机最小系统接线图图3-2为单片机最小系统地接线图,其中C1、C2均选用20PF 地,晶振X1用地是11.0592MHZXTAL1XTAL2 RST EA地.晶振电路中外接电容C1,C2地作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率地作用,一般选用10~30pF地瓷片电容.并且电容离晶振越近越好,晶振离单片机越近越好.晶振地取值范围一般为0~24MHz,常用地晶振频率有6MHz、12 MHz、11.0592 MHz、24 MHz 等.晶振地振荡频率直接影响单片机地处理速度,频率越大处理速度越快.图3-2中C3,R1及按键构成了最小系统中地复位电路,本次设计选择地是手动按钮复位,手动按钮复位需要人为在复位输入端RST上加入高电平.一般采用地办法是在RST端和正电源Vcc之间接一个按钮.当人为按下按钮时,则Vcc地+5V电平就会直接加到RST端.由于人地动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位地时间要求.在单片机最小系统中还要将EA地非接高电平,如图3-2也有体现出来.3.2 LED发光报警电路P1.7图3-3 LED发光报警电路图3-3为LED报警电路地接法,其中一根线接单片机地8号P1.7口,另外一根接地.当温度超过预设温度值时LED灯被接通发光报警.3.3 DS18B20地简介及在本次设计中地应用3.3.1 DS18B20地外部结构及管脚排列DS18B20地管脚排列如图3-4所示:DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)图3-4 DS18B20地引脚排列及封装3.3.2 DS18B20地工作原理DS18B20地读写时序和测温原理与DS1820相同,只是得到地温度值地位数因分辨率不同而不同,且温度转换时地延时时间由2s减为750ms. DS18B20测温原理如图3-5所示.图中低温度系数晶振地振荡频率受温度影响很小,用于产生固定频率地脉冲信号送给计数器1.高温度系数晶振随温度变化其振荡率明显改变,所产生地信号作为计数器2地脉冲输入.计数器1和温度寄存器被预置在-55℃所对应地一个基数值.计数器1对低温度系数晶振产生地脉冲信号进行减法计数,当计数器1地预置值减到0时,温度寄存器地值将加1,计数器1地预置将重新被装入,计数器1重新开始对低温度系数晶振产生地脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值地累加,此时温度寄存器中地数值即为所测温度.图中地斜率累加器用于补偿和修正测温过程中地非线性,其输出用于修正计数器1地预置值.图3-5 DS18B20测温原理图3.3.3 DS18B20地主要特性(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电;(2)独特地单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20地双向通讯;(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一地三线上,实现组网多点测温;(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管地集成电路内;(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;(6)可编程地分辨率为9~12位,对应地可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;(8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强地抗干扰纠错能力;(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作.3.3.4 DS18B20地测温流程图3-6 DS18B20地测温流程图3.3.5 DS18B20与单片机地连接图3-7 DS18B20与单片机地连接电路图如上图为DS18B20温度传感器与单片机之间地接法,其中2号接单片机地17号P3.7接口.DS18B20通过P3.7口将采集到地温度实时送入单片机中.3.4 报警温度地设置P2.5 P2.6 P2.7P3.7图3-8 报警温度地设置电路图3-8为报警温度地设置电路,其中K1,K2,K3分别接到单片机地P2.5,P2.6,P2.7口.其中K1用于报警温度设定开关,K2用于报警温度地设置时候地加温度(每次加一),K3用于报警温度地设置时地减温度(每次减一).实现了报警温度地手动设置.3.5 数码管显示3.5.1数码管工作原理图3-9 数码管地引脚排列及结构图3-9为数码管地外形及引脚排列和两种接法(共阴极和共阳极)地结构图.共阳极数码管地8个发光二极管地阳极(二极管正端)连接在一起.通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端.当某段驱动电路地输出端为低电平时,则该端所连接地字段导通并点亮.根据发光字段地不同组合可显示出各种数字或字符.此时,要求段驱动电路能吸收额定地段导通电流,还需根据外接电源及额定段导通电流来确定相应地限流电阻.共阴极数码管地8个发光二极管地阴极(二极管负端)连接在一起.通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端.当某段驱动电路地输出端为高电平时,则该端所连接地字段导通并点亮,根据发光字段地不同组合可显示出各种数字或字符.此时,要求段驱动电路能提供额定地段导通电流,还需根据外接电源及额定段导通电流来确定相应地限流电阻.要使数码管显示出相应地数字或字符,必须使段数据口输出相应地字形编码.字型码各位定义为:数据线D0与a字段对应,D1与b字段对应……,依此类推.如使用共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮.如要显示“0”,共阳极数码管地字型编码应为:11000000B(即C0H);共阴极数码管地字型编码应为:00111111B(即3FH).依此类推,可求得数码管字形编码如表3-5所示.表3-5数码管字符表显示地具体实施是通过编程将需要显示地字型码存放在程序存储器地固定区域中,构成显示字型码表.当要显示某字符时,通过查表指令获取该字符所对应地字型码.3.5.2数码管显示电路图3-10 四位八段数码管动态显示电路图3-10为本次设计所用到地四位八段数码管动态显示,其中段选接到单片机地P0口,位选接到单片机地P2口地低四位.其中P0口也接地有上拉电阻,图中未标示出来,会在下面地总体电路中标示出来.采用地是动态显示方式.3.6 硬件电路总体设计图3-11为本次设计地硬件总体设计图,其中利用K1,K2,K3处进行报警温度地设置,然后有DS18B20进行实时温度采集,并在数码管上同步显示,若采集到地温度达到或者超过预设地报警温度,则LED 灯会发光报警,若低于该报警温度,则不会报警.P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1P2.2 P2.3图3-11 硬件电路总体设计图4.软件设计方案4.1主程序介绍4.1.1主程序流程图本次设计首先对程序进行初始化,然后打开报警温度设定开关,对报警温度进行设定,确认设定值后,DS18B20温度传感器进行温度采集并送入单片机中,单片机将传感器所检测到地温度同步显示在数码管上,并且与设置地报警温度进行比较,若达到或者超过报警温度时,LED灯发光报警,如果没有达到,则继续进行温度采集.图4-1主程序流程图4.1.2主流程地C语言程序main (){ALERT=0。

基于单片机的室内温湿度检测系统的设计

基于单片机的室内温湿度检测系统的设计

基于单片机的室内温湿度检测系统的设计
一、系统简介
本系统基于单片机,能够实时检测室内的温度和湿度,显示在
液晶屏幕上,并可通过串口输出到PC端进行进一步数据处理和存储。

该系统适用于家庭、办公室和实验室等场所的温湿度检测。

二、硬件设计
系统采用了DHT11数字温湿度传感器来实时检测室内温度和湿度,采用STC89C52单片机作为控制器,通过LCD1602液晶屏幕显示
温湿度信息,并通过串口与PC进行数据通信。

三、软件设计
1、采集数据
系统通过DHT11数字温湿度传感器采集室内的温度和湿度数据,通过单片机IO口与DHT11传感器进行通信。

采集到的数据通过计算
得到实际温湿度值,并通过串口发送给PC端进行进一步处理。

2、显示数据
系统将采集到的室内温湿度数据通过LCD1602液晶屏幕进行显示,可以实时观察室内温湿度值。

3、通信数据
系统可以通过串口与PC进行数据通信,将数据发送到PC端进
行存储和进一步数据处理。

四、系统优化
为了提高系统的稳定性和精度,需要进行优化,包括以下几点:
1、添加温湿度校准功能,校准传感器的测量误差。

2、添加系统自检功能,确保系统正常工作。

3、系统可以添加温湿度报警功能,当温湿度超过设定阈值时,系统会自动发送报警信息给PC端。

以上是基于单片机的室内温湿度检测系统的设计。

基于单片机的温度采集与液晶显示

基于单片机的温度采集与液晶显示

1 绪论1.1 本课题研究的背景和意义温度,一个在日常生活和生产过程甚至科学实验中普遍而且重要的物理参数。

近年来,随着社会的发展和科技的进步,温度控制系统以及测温仪器已经广泛应用于社会生活的各个领域,尤其是在工业自动化控制中占有非常重要的地位。

人们通过温度计来采集温度,经过人工操作进行加热、通风和降温。

从而来控制温度,但是对于这些控制对象惯性大,滞后性严重,而且还存在有许多不定的因素,从而根本难以建立精确的数学模型。

这样不仅控制精度低、实时性差,而且操作人员的劳动强度大,并且有许多工业生产环节是人们不能直接介入的。

因此智能化已然成为现代温度控制系统发展的主流方向。

针对这一种实际情况,设计个温度控制系统,具有非常广泛的应用前景和实际意义[1]。

随着电子信息技术和微型计算机技术的飞速发展。

单片机技术也得到了飞速的发展。

尤其是在高集成度、高速度、低功耗还有高性能方面取得了巨大的进展。

使得单片机在电子产品当中的应用越来越广泛。

使用单片机对温度进行控制的技术也油然而生。

它不仅可以克服温度控制系统中存在的严重的滞后现象,同时还可以在提高采样频率的基础上很大程度的提高控制的效果和控制的精度。

并且随着技术日益发展和完善,相信越来越能显现出它的优越性。

1.2 目前国内外研究现状在国内外温度控制成了一门广泛应用于很多领域的技术。

像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等。

温度控制系统虽然在国内各行各业的应用已十分广泛,但是从温度控制器的生产角度来看,总体的发展水平仍不高。

跟美德日等先进国家相比,仍有着较大的差距。

“点位”控制和常规的PID控制器占领了成熟产品的主体份额。

但它只可以适用于一般的温度系统控制,而难于控制复杂、滞后、时变的温度控制系统。

此外,适于较高控制场合的智能化、自适应控制仪表,目前在国内还没有取得较好的研究成果。

并且,在形成商品化和仪表控制参数的自整定方面,一些先进国家虽已经有一批成熟的产品。

基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统随着物联网技术的不断发展,无线传感器网络在各个领域都得到了广泛应用。

基于单片机的多点无线温度监控系统,不仅可以实现对多个温度点的实时监控,还可以通过无线方式传输监测数据,实现远程监控和管理。

本文将介绍基于单片机的多点无线温度监控系统的原理、设计和实现过程。

一、系统概述基于单片机的多点无线温度监控系统主要由传感器节点、信号处理单元、无线通信模块、监控中心等组成。

传感器节点负责采集温度数据,信号处理单元对采集的数据进行处理和存储,无线通信模块实现数据传输,监控中心则负责接收和显示监测数据。

二、系统设计1. 传感器节点设计传感器节点是系统的核心部分,负责采集温度数据。

为了实现多点监控,传感器节点需要设计成多个独立的模块,每个模块负责监测一个特定的温度点。

传感器节点的设计需要考虑传感器的选择、数据采集和处理电路的设计、以及无线通信模块的接口设计。

传感器节点采用数字温度传感器DS18B20进行温度采集,采集到的数据通过单片机进行处理和存储,然后通过无线通信模块进行数据传输。

2. 信号处理单元设计信号处理单元主要负责对传感器采集到的数据进行处理和存储。

传感器采集到的数据需要进行数字化处理,然后存储到单片机的内部存储器中。

传感器节点采用的是单片机AT89S52作为信号处理单元,通过单片机的A/D转换功能对温度数据进行数字化处理,然后存储到单片机的内部EEPROM中。

3. 无线通信模块设计无线通信模块主要负责将传感器节点采集到的数据传输到监控中心。

传感器节点采用的是nRF24L01无线模块,通过SPI接口与单片机进行通信,并实现数据的传输。

4. 监控中心设计三、系统实现传感器节点采用DS18B20数字温度传感器进行温度采集,通过单片机AT89S52进行数据处理和存储,然后通过nRF24L01无线模块实现数据的传输。

传感器节点的设计需要考虑功耗、尺寸和成本等因素,需要尽量减小功耗和尺寸,降低成本。

基于51 单片机的温度采集系统设计

基于51 单片机的温度采集系统设计

1引言温度与人们的生产生活密切相关,传统的温度采集方法不但费时费力,而且精度差,可靠性也得不到保证,早已满足不了现在各行各业对温度测量的要求[1]。

单片机和温度传感器的出现和运用使得人们对温度的采集和处理方式得到了极大的革新,选取和应用合适的单片机和温度传感器能够提高温度的测量精度和可靠性。

本文基于AT89C51单片机设计的温度采集系统可实时采集环境温度,性能稳定可靠,成本低廉,使用便捷。

2温度采集系统的硬件设计本文设计的温度采集系统利用AT89C51单片机作为数据处理和控制单元,整个电路由温度采集系统模块、单片机控制模块、报警警告模块、温度显示模块和键盘输入模块组成。

首先,温度传感器DS18B20[2]将采集到的温度通过控制总线输入单片机,完成对外界温度的采集;其次,51单片机对接收的温度数据进行分析处理,驱动数码管显示温度信息;最后,把当前环境温度值与使用外部输入键盘设置的上限和下限温度值进行比较,在环境温度超过设定值时触发警报装置进行报警。

温度采集系统框图如图1所示。

图1温度采集系统框图3温度采集系统的软件设计温度采集电路开启运行后,系统将执行温度采集、对采集到的温度值进行处理、超限度警报、键盘输入上下限值和温度显示五项功能。

利用DS18B20将环境温度转化为电信号,然后将采集的温度信号送入单片机处理,进而判断温度的正负值并将温度值和用户设置的温度上下限值进行比较,【基金项目】陕西省自然科学基础研究计划资助项目(2019JQ-493)。

【作者简介】吴迎春(1979-),女,河南唐河人,讲师,从事电子技术研究。

基于51单片机的温度采集系统设计Design of the Temperature Acquisition System Based on 51Single Chip Microcomputer吴迎春,曾利霞(咸阳师范学院物理与电子工程学院,陕西咸阳712000)WU Ying-chun,ZENG Li-xia(College of Physics &Electronic Engineering,Xianyang Normal University,Xianyang 712000,China)【摘要】论文利用AT89C51单片机和DS18B20温度传感器设计了一款能够实现对环境温度进行实时采集并当环境温度超过设定值时进行自动报警的温度采集系统。

基于单片机的温度测量系统毕业设计论文

基于单片机的温度测量系统毕业设计论文

基于单片机的温度测量系统毕业设计论文摘要:本文设计了一种基于单片机的温度测量系统。

该系统主要由传感器、单片机、显示屏等组成,通过传感器获取环境温度数据,由单片机进行数据处理和显示,并通过显示屏将温度数据以直观的形式展现出来。

通过与市场上现有的温度测量设备对比,本系统具有体积小、功耗低、精确度高、价格便宜等优点。

该系统在工业生产、科研实验等领域具有广泛应用前景。

关键词:单片机;温度测量;传感器;显示屏第一章引言1.1研究背景温度是工业生产和科学研究中的一个重要参数,对于保证生产质量、保障实验准确性具有至关重要的作用。

在现有的温度测量设备中,电子温度计是一种常见的测量方法。

然而,由于传统电子温度计通常体积较大、功耗较高,不便携,而且价格较高,因此有必要设计一种体积小、功耗低、价格便宜的新型温度测量系统。

1.2研究目的本文的研究目的是设计一种基于单片机的温度测量系统,以提供一种便携、实用的温度测量解决方案。

通过传感器采集环境温度数据,通过单片机进行数据处理和显示,并通过显示屏将温度数据以直观的形式展现出来。

第二章原理与方法2.1系统组成在本系统中,主要使用了DS18B20数字温度传感器、STC89C52单片机、液晶显示屏等元件。

其中DS18B20传感器采用了一线总线通信,可直接与STC89C52单片机进行通信。

单片机通过扫描传感器获取温度数据,并通过液晶显示屏进行显示。

2.2系统设计系统的设计主要分为硬件设计和软件设计两部分。

硬件设计包括传感器和单片机的连接电路设计,以及显示屏的驱动电路设计。

软件设计包括单片机程序的编写和液晶显示屏的显示程序设计。

第三章系统实现3.1传感器连接电路设计通过DS18B20传感器的一线总线接口,将其与STC89C52单片机相连。

传感器的数据线连接到单片机的P2口,同时需要上拉电阻器上拉电平。

3.2显示屏驱动电路设计显示屏使用了基于平行接口的1602型液晶显示屏,根据显示屏的规格书,设计了驱动电路。

基于单片机的多路温度采集控制系统的设计

基于单片机的多路温度采集控制系统的设计

基于单片机的多路温度采集控制系统的设计一、系统设计思路1、系统架构:本系统的所有模块分为两个主要的部分:单片机部分和PC部分。

单片机部分是整个温度控制系统的中心模组,它负责多路温度传感器的信号采集、温度计算和显示,还有一些辅助操作,如温度上下限报警等;PC部分主要实现数据采集、分析、处理、显示等功能,与单片机的交互可通过RS485、USB等接口进行。

2、硬件设计:本系统设计确定采用AT89C52单片机作为系统的处理核心,在系统中应用TLC1543数据采集芯片,采用ADC转换器将多个温度传感器的数据采集,使系统实现多路温度检测同时显示.另外,为了实现数据采集记录,系统可以选用32K字节外部存储封装。

二、系统总控程序设计系统总计程序采用C语言进行编写,根据实际情况,主要分为以下几个主要的模块:(1)初始化模块:初始化包括外设初始化、中断处理程序初始化、定时器初始化、变量初始化等功能。

(2)温度采集模块:主要对多路温度传感器的采集、计算并存储等操作,还可以实现温度的报警功能。

(3)录波模块:提供数据的实时采集、数据的存取、数据的滤波处理等功能。

(4)通信模块:主要是用于实现数据透传,采用RS485接口与PC端的上位机联网,可实现远程调试、远程控制等功能。

(5)用户界面模块:实现数据显示功能,可以根据用户的要求显示多路温度传感器检测到的数据。

三、实验检验(1)检查系统硬件的安装是否良好;(2)采用实测温度值与系统运行的实测温度值进行比对;(3)做出多路温度信号的对比,以确定系统读取的数据是否准确;(4)检查温度报警功能是否可以正常使用,也可以调整报警范围,试验报警功能是否可靠;(5)进行通信数据采集的联网检测,确保上位机和系统可以进行实时、准确的通信。

基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统随着科技的不断进步,无线技术在各个领域的应用也越来越广泛,其中无线温度监控系统在工业、医疗、环境监测等领域起到了至关重要的作用。

本文将介绍一种基于单片机的多点无线温度监控系统,通过该系统可以实现多个温度点的实时监测和数据传输,为各种场景下的温度监控提供了一种有效的解决方案。

一、系统概述基于单片机的多点无线温度监控系统由传感器节点、单片机节点和接收器节点组成。

传感器节点负责采集温度数据,单片机节点负责数据处理和无线传输,接收器节点负责接收和显示温度数据。

系统采用无线通信技术,可以实现远距离的数据传输,同时具有低功耗、高可靠性的特点。

二、系统设计1. 传感器节点设计传感器节点采用数字温度传感器进行温度数据的采集,通过单片机节点进行数据采集、处理和无线传输。

传感器节点具有较小的体积和低功耗的特点,可以方便地布置在不同位置进行温度监测。

2. 单片机节点设计接收器节点负责接收来自单片机节点的温度数据,并进行处理和显示。

接收器节点通过液晶显示屏展示温度数据,同时可以通过网络等方式将数据上传到云端进行存储和分析。

三、系统工作流程1. 传感器节点采集温度数据,将数据发送给单片机节点;2. 单片机节点接收温度数据,进行处理和编码,然后通过无线通信模块将数据传输给接收器节点;3. 接收器节点接收温度数据,进行解码和处理,然后将数据显示在液晶屏上;4. 用户可以通过接收器节点实时监测各个传感器节点的温度数据,同时也可以通过网络等方式实现对数据的存储和分析。

四、系统特点及优势1. 多点监测:系统可以同时监测多个温度点的数据,满足不同场景下的多点温度监测需求;2. 无线传输:系统采用无线通信技术实现数据的传输,方便布置和维护;3. 低功耗设计:系统中的传感器节点和单片机节点采用低功耗设计,可以长时间稳定运行;4. 数据存储和分析:系统可以将数据上传到云端进行存储和分析,帮助用户了解温度变化的规律和趋势。

基于51单片机——Ds18B20温度采集,LCD显示汇编程序(附带proteus仿真图)

基于51单片机——Ds18B20温度采集,LCD显示汇编程序(附带proteus仿真图)

TEMP_ZH EQU 24H ;实测温度值存放单元TEMPL EQU 25HTEMPH EQU 26HTEMP_TH EQU 27H ;高温报警值存放单元TEMP_TL EQU 28H ;低温报警值存放单元TEMPHC EQU 29H ;正、负温度值标记TEMPLC EQU 2AHTEMPFC EQU 2BHK1 EQU P1.4 ;查询按键K2 EQU P1.5 ;设置/调整键K3 EQU P1.6 ;调整键K4 EQU P1.7 ;确定键BEEP EQU P3.7 ;蜂鸣器RELAY EQU P1.3 ;指示灯LCD_X EQU 2FH ;LCD 字符显示位置LCD_RS EQU P2.0 ;LCD 寄存器选择信号 LCD_RW EQU P2.1 ;LCD 读写信号LCD_EN EQU P2.2 ;LCD 允许信号FLAG1 EQU 20H.0 ;DS18B20是否存在标志 KEY_UD EQU 20H.1 ;设定按键的增、减标志 DQ EQU P3.3 ;DS18B20数据信号ORG 0000HLJMP MAINORG 0030HMAIN: MOV SP,#60HMOV A,#00HMOV R0,#20H ;将20H~2FH 单元清零MOV R1,#10HCLEAR: MOV @R0,AINC R0DJNZ R1,CLEARLCALL SET_LCDLCALL RE_18B20START: LCALL RST ;调用18B20复位子程序JNB FLAG1,START1 ;DS1820不存在LCALL MENU_OK ;DS1820存在,调用显示正确信息子程序MOV TEMP_TH,#055H ;设置TH初值85度MOV TEMP_TL,#019H ;设置TL初值25度LCALL RE_18B20A ;调用暂存器操作子程序LCALL WRITE_E2 ;写入DS18B20LCALL TEMP_BJ ;显示温度标记JMP START2START1: LCALL MENU_ERROR ;调用显示出错信息子程序 LCALL TEMP_BJ ;显示温度标记SJMP $START2: LCALL RST ;调用DS18B20复位子程序JNB FLAG1,START1 ;DS18B20不存在MOV A,#0CCH ;跳过ROM匹配命令LCALL WRITEMOV A,#44H ;温度转换命令LCALL WRITELCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#0BEH ;读温度命令LCALL WRITELCALL READ ;调用DS18B20数据读取操作子程序LCALL CONVTEMP ;调用温度数据BCD 码处理子程序LCALL DISPBCD ;调用温度数据显示子程序LCALL CONV ;调用LCD显示处理子程序LCALL TEMP_COMP ;调用实测温度值与设定温度值比较子程序LCALL PROC_KEY ;调用键扫描子程序SJMP START2 ;循环;*************************** 键扫描子程序*****************************PROC_KEY:JB K1,PROC_K1LCALL BEEP_BLJNB K1,$MOV DPTR,#M_ALAX1MOV A,#1LCALL LCD_PRINTLCALL LOOK_ALARMJB K3,$LCALL BEEP_BLJMP PROC_K2PROC_K1: JB K2,PROC_ENDLCALL BEEP_BLJNB K2,$MOV DPTR,#RST_A1MOV A,#1LCALL LCD_PRINTLCALL SET_ALARMLCALL RE_18B20 ;将设定的TH,TL值写入DS18B20LCALL WRITE_E2PROC_K2: LCALL MENU_OKLCALL TEMP_BJPROC_END:RET;*************************** 设定温度报警值TH、TL ***************************SET_ALARM:LCALL LOOK_ALARMAS0: JB K1,AS00LCALL BEEP_BLJNB K1,$CPL 20H.1 ;UP/DOWN 标记AS00: JB 20H.1,ASZ01 ;20H.1=1,增加JMP ASJ01 ;20H.1=0,减小ASZ01: JB K2,ASZ02 ;TH值调整(增加)LCALL BEEP_BLINC TEMP_THMOV A,TEMP_THCJNE A,#120,ASZ011MOV TEMP_TH,#0ASZ011: LCALL LOOK_ALARMLCALL DELAYJMP ASZ01ASZ02: JB K3,ASZ03 ;TL值调整(增加) LCALL BEEP_BLINC TEMP_TLMOV A,TEMP_TLCJNE A,#99,ASZ021MOV TEMP_TL,#00HASZ021: LCALL LOOK_ALARMMOV R5,#10LCALL DELAYJMP ASZ02ASZ03: JB K4,AS0 ;确定调整LCALL BEEP_BLJNB K4,$RETASJ01: JB K2,ASJ02 ;TH值调整(减少) LCALL BEEP_BLDEC TEMP_THMOV A,TEMP_THCJNE A,#0FFH,ASJ011ASJ011: LCALL LOOK_ALARMMOV R5,#10LCALL DELAYJMP AS0ASJ02: JB K3,ASJ03 ;TL值调整(减少)LCALL BEEP_BLDEC TEMP_TLMOV A,TEMP_TLCJNE A,#0FFH,ASJ021JMP ASJ022ASJ021: LCALL LOOK_ALARM ;MOV R5,#10LCALL DELAYJMP AS0ASJ022: CPL 20H.1JMP ASZ01ASJ03: JMP ASZ03RETRST_A1: DB " SET ALERT CODE " ,0;*********************** 实测温度值与设定温度值比较子程序**********************TEMP_COMP:MOV A,TEMP_THSUBB A,TEMP_ZH ;减数>被减数,则JC CHULI1 ;借位标志位C=1,转 MOV A,TEMPFCCJNE A,#0BH,COMPSJMP CHULI2COMP: MOV A,TEMP_ZHSUBB A,TEMP_TL ;减数>被减数,则JC CHULI2 ;借位标志位C=1,转MOV DPTR,#BJ5LCALL TEMP_BJ3CLR RELAY ;点亮指示灯RETCHULI1: MOV DPTR,#BJ3LCALL TEMP_BJ3SETB RELAY ;熄灭指示灯LCALL BEEP_BL ;蜂鸣器响RETCHULI2: MOV DPTR,#BJ4LCALL TEMP_BJ3SETB RELAY ;熄灭指示灯LCALL BEEP_BL ;蜂鸣器响RET;-----------------------------------------TEMP_BJ3: MOV A,#0CEHLCALL WCOMMOV R1,#0MOV R0,#2BBJJ3: MOV A,R1MOVC A,@A+DPTRLCALL WDATAINC R1DJNZ R0,BBJJ3RETBJ3: DB ">H"BJ4: DB "<L"BJ5: DB " !";;**************************** 显示温度标记子程序***************************TEMP_BJ: MOV A,#0CBHLCALL WCOMMOV DPTR,#BJ1 ;指针指到显示消息MOV R1,#0MOV R0,#2BBJJ1: MOV A,R1MOVC A,@A+DPTRLCALL WDATAINC R1DJNZ R0,BBJJ1RETBJ1: DB 00H,"C";******************************** 显示正确信息子程序***************************MENU_OK: MOV DPTR,#M_OK1 ;指针指到显示消息MOV A,#1 ;显示在第一行LCALL LCD_PRINTMOV DPTR,#M_OK2 ;指针指到显示消息MOV A,#2 ;显示在第一行LCALL LCD_PRINTRETM_OK1: DB " DS18B20 OK ",0M_OK2: DB " TEMP: ",0;******************************** 显示出错信息子程序***************************MENU_ERROR:MOV DPTR,#M_ERROR1 ;指针指到显示消息MOV A,#1 ;显示在第一行LCALL LCD_PRINTMOV DPTR,#M_ERROR2 ;指针指到显示消息1MOV A,#2 ;显示在第一行LCALL LCD_PRINTRETM_ERROR1: DB " DS18B20 ERROR ",0M_ERROR2: DB " TEMP: ---- ",0;****************************DS18B20复位子程序*****************************RST: SETB DQNOPCLR DQMOV R0,#6BH ;主机发出延时复位低脉冲MOV R1,#04HTSR1: DJNZ R0,$MOV R0,#6BHDJNZ R1,TSR1SETB DQ ;拉高数据线NOPNOPNOPMOV R0,#32HTSR2: JNB DQ,TSR3 ;等待DS18B20回应DJNZ R0,TSR2JMP TSR4 ; 延时TSR3: SETB FLAG1 ; 置1标志位,表示DS1820存在JMP TSR5TSR4: CLR FLAG1 ; 清0标志位,表示DS1820不存在 JMP TSR7TSR5: MOV R0,#06BHTSR6: DJNZ R0,$ ; 时序要求延时一段时间TSR7: SETB DQRET;************************ DS18B20暂存器操作子程序***************************RE_18B20:JB FLAG1,RE_18B20ARETRE_18B20A:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEWR_SCRAPD:MOV A,#4EH ;写暂器LCALL WRITEMOV A,TEMP_TH ;TH(报警上限)LCALL WRITEMOV A,TEMP_TL ;TL(报警下限)LCALL WRITEMOV A,#7FH ;12位精度LCALL WRITERET;************************ 复制暂存器子程序*******************************WRITE_E2:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#48H ;把暂存器里的温度报警值拷贝到EEROMLCALL WRITERET;*********************** 重读EEROM子程序********************************READ_E2:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#0B8H ;把EEROM里的温度报警值拷贝回暂存器LCALL WRITERET;************************ 将自定义字符写入LCD的CGRAM中*********************STORE_DATA:MOV A,#40HLCALL WCOMMOV R2,#08HMOV DPTR,#D_DATAMOV R3,#00HS_DATA: MOV A,R3MOVC A,@A+DPTRLCALL WDATA ;写入数据INC R3DJNZ R2,S_DATARETD_DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00H;*********************** DS18B20数据写入操作子程序************************WRITE: MOV R2,#8 ;一共8位数据CLR CWR1: CLR DQ ;开始写入DS18B20总线要处于复位(低)状态MOV R3,#07DJNZ R3,$ ;总线复位保持16微妙以上RRC A ;把一个字节DATA 分成8个BIT 环移给CMOV DQ,C ;写入一位MOV R3,#3CHDJNZ R3,$ ;等待100微妙SETB DQ ;重新释放总线NOPDJNZ R2,WR1 ;写入下一位SETB DQRET;********************** DS18B20数据读取操作子程序**************************READ: MOV R4,#4 ;将温度低位、高位、TH、TL从DS18B20中读出MOV R1,#TEMPL ;存入25H、26H、27H、28H单元RE00: MOV R2,#8RE01: CLR CYSETB DQNOPNOPCLR DQ ;读前总线保持为低NOPNOPNOPSETB DQ ;开始读总线释放MOV R3,#09 ;延时18微妙DJNZ R3,$MOV C,DQ ;从DS18B20总线读得一位MOV R3,#3CHDJNZ R3,$ ;等待100微妙RRC A ;把读得的位值环移给ADJNZ R2,RE01 ;读下一位MOV @R1,AINC R1DJNZ R4,RE00RET;************************ 温度值BCD 码处理子程序*************************CONVTEMP: MOV A,TEMPH ;判温度是否零下ANL A,#08HJZ TEMPC1 ;温度零上转CLR CMOV A,TEMPL ;二进制数求补(双字节)CPL A ;取反加1ADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TEMPH,AMOV TEMPHC,#0BH ;负温度标志MOV TEMPFC,#0BHSJMP TEMPC11TEMPC1: MOV TEMPHC,#0AH ;正温度标志MOV TEMPFC,#0AHTEMPC11: MOV A,TEMPHCSWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FH ;乘0.0625MOV DPTR,#TEMPDOTTABMOVC A,@A+DPTRMOV TEMPLC,A ;TEMPLC LOW=小数部分 BCDMOV A,TEMPL ;整数部分ANL A,#0F0H ;取出高四位SWAP AMOV TEMPL,AMOV A,TEMPH ;取出低四位ANL A,#0FHSWAP AORL A,TEMPL ;重新组合MOV TEMP_ZH,ALCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHC ;TEMPHC LOW = 十位数BCDMOV TEMPHC,AMOV A,TEMPLANL A,#0FHSWAP A ;TEMPLC HI = 个位数BCDORL A,TEMPLCMOV TEMPLC,AMOV A,R4JZ TEMPC12ANL A,#0FHSWAP AMOV R4,AMOV A,TEMPHC ;TEMPHC HI = 百位数BCDANL A,#0FHORL A,R4MOV TEMPHC,ATEMPC12: RET;************************ 二-十进制转换子程序*****************************HEX2BCD1: MOV B,#064HDIV ABMOV R4,AMOV A,#0AHXCH A,BDIV ABSWAP AORL A,BRETTEMPDOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H ; 小数部分码表DB 05H,05H,06H,06H,07H,08H,08H,09H;********************** 查询温度报警值子程序***************************LOOK_ALARM: MOV DPTR,#M_ALAX2 ;指针指到显示信息区MOV A,#2 ;显示在第二行LCALL LCD_PRINTMOV A,#0C6HLCALL TEMP_BJ1MOV A,TEMP_TH ;加载TH数据MOV LCD_X,#3 ;设置显示位置LCALL SHOW_DIG2H ;显示数据MOV A,#0CEHLCALL TEMP_BJ1MOV A,TEMP_TL ;加载TL数据MOV LCD_X,#12 ;设置显示位置LCALL SHOW_DIG2L ;显示数据RETM_ALAX1: DB " LOOK ALERT CODE",0M_ALAX2: DB "TH: TL: ",0TEMP_BJ1: LCALL WCOMMOV DPTR,#BJ2 ;指针指到显示信息区 MOV R1,#0MOV R0,#2BBJJ2: MOV A,R1MOVC A,@A+DPTRLCALL WDATADJNZ R0,BBJJ2RETBJ2: DB 00H,"C";************************** LCD显示子程序**********************************SHOW_DIG2H: MOV B,#100DIV ABADD A,#30HPUSH BMOV B,LCD_XLCALL LCDP2POP BMOV A,#0AHXCH A,BDIV ABADD A,#30HINC LCD_XPUSH BMOV B,LCD_XLCALL LCDP2INC LCD_XMOV A,BMOV B,LCD_XADD A,#30HLCALL LCDP2RETSHOW_DIG2L: MOV B,#100DIV ABMOV A,#0AHXCH A,BDIV ABADD A,#30HPUSH BMOV B,LCD_XLCALL LCDP2POP BINC LCD_XMOV A,BMOV B,LCD_XADD A,#30HLCALL LCDP2RET;************************ 显示区BCD 码温度值刷新子程序**********************DISPBCD: MOV A,TEMPLCANL A,#0FHMOV 70H,A ;小数位MOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,A ;个位MOV A,TEMPHCANL A,#0FHMOV 72H,A ;十位MOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,A ;百位DISPBCD2: RET;*************************** LCD 显示数据处理子程序*************************CONV: MOV A,73H ;加载百位数据MOV LCD_X,#6 ;设置位置CJNE A,#1,CONV1JMP CONV2CONV1: CJNE A,#0BH,CONV11MOV A,#"-" ;"-"号显示JMP CONV111CONV11: MOV A,#" " ;"+"号不显示CONV111: MOV B,LCD_XLCALL LCDP2JMP CONV3CONV2: LCALL SHOW_DIG2 ;显示数据CONV3: INC LCD_XMOV A,72H ;十位LCALL SHOW_DIG2INC LCD_XMOV A,71H ;个位LCALL SHOW_DIG2INC LCD_XMOV A,#'.'MOV B,LCD_XLCALL LCDP2MOV A,70H ;加载小数点位INC LCD_X ;设置显示位置LCALL SHOW_DIG2 ;显示数据RET;*************************** 第二行显示数字子程序*************************SHOW_DIG2:ADD A,#30HMOV B,LCD_XLCALL LCDP2RET;*************************** 第二行显示数字子程序*************************LCDP2: PUSH ACCMOV A,B ;设置显示地址ADD A,#0C0H ;设置LCD的第二行地址LCALL WCOM ;写入命令POP ACC ;由堆栈取出ALCALL WDATA ;写入数据RET;*************************** 对LCD 做初始化设置及测试*************************SET_LCD: CLR LCD_ENLCALL INIT_LCD ;初始化 LCDLCALL STORE_DATA ;将自定义字符存入LCD的CGRAM RET;****************************** LCD初始化***********************************INIT_LCD: MOV A,#38H ;2行显示,字形5*7点阵LCALL WCOMLCALL DELAY1MOV A,#38HLCALL WCOMLCALL DELAY1MOV A,#38HLCALL WCOMLCALL DELAY1MOV A,#0CH ;开显示,显示光标,光标不闪烁 LCALL WCOMLCALL DELAY1MOV A,#01H ;清除 LCD 显示屏LCALL WCOMLCALL DELAY1RET;***************************** 清除LCD的第一行字符**************************CLR_LINE1:MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOMMOV R0,#24 ;设置计数值C1: MOV A,#' ' ;载入空格符至LCDLCALL WDATA ;输出字符至LCDDJNZ R0,C1 ;计数结束RET;************************* LCD的第一行或第二行显示字符**********************LCD_PRINT:CJNE A,#1,LINE2 ;判断是否为第一行LINE1: MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOM ;写入命令LCALL CLR_LINE ;清除该行字符数据MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOM ;写入命令JMP FILLLINE2: MOV A,#0C0H ;设置 LCD 的第二行地址LCALL WCOM ;写入命令LCALL CLR_LINE ;清除该行字符数据MOV A,#0C0H ;设置 LCD 的第二行地址LCALL WCOMFILL: CLR A ;填入字符MOVC A,@A+DPTR ;由消息区取出字符CJNE A,#0,LC1 ;判断是否为结束码RETLC1: LCALL WDATA ;写入数据INC DPTR ;指针加1JMP FILL ;继续填入字符RET;*************************** 清除1行LCD 的字符****************************CLR_LINE: MOV R0,#24CL1: MOV A,#' 'LCALL WDATADJNZ R0,CL1RETDE: MOV R7,#250DJNZ R7,$RET;**************************** LCD 间接控制方式命令写入*************************WCOM: MOV P0,A ;写入命令CLR LCD_RS ;RS=L,RW=L,D0-D7=指令码,E=高脉冲 CLR LCD_RWSETB LCD_ENLCALL DELAY1CLR LCD_ENRET;**************************** LCD 间接控制方式数据写入*************************WDATA: MOV P0,A ;写入数据SETB LCD_RSCLR LCD_RWSETB LCD_ENLCALL DELCALL DERET;************************** 在LCD的第一行显示字符**************************LCDP1: PUSH ACCMOV A,B ;设置显示地址ADD A,#80H ;设置LCD的第一行地址LCALL WCOM ;写入命令POP ACC ;由堆栈取出ALCALL WDATA ;写入数据RET;****************************** 声光报警子程序*******************************BEEP_BL: MOV R6,#100BL2: LCALL DEX1CPL BEEPCPL RELAYDJNZ R6,BL2MOV R5,#10RETDEX1: MOV R7,#180DE2: NOPDJNZ R7,DE2RET;****************************** 延时子程序*******************************DELAY: MOV R6,#50DL1: MOV R7,#100DJNZ R7,$DJNZ R6,DL1DJNZ R5,DELAYRETDELAY1: MOV R6,#25 ;延时5毫秒DL2: MOV R7,#100DJNZ R7,$DJNZ R6,DL2RETEND。

单片机(基于AT89C51的温度采集与显示系统设计)

单片机(基于AT89C51的温度采集与显示系统设计)

基于AT89C51的温度采集与显示系统设计摘要:以AT89C51单片机为核心控制元件介绍了与DS18B20和MAX7219显示驱动组成的温度采集系统的设计方案利用单片机空余I/O口以及上述元件的特性,构成该系统。

通过Proteus进行仿真。

关键词:温度采集,AT89C51,DS18B20,MAX7219目录1、系统概述……………………………………………………………….2、硬件介绍……………………………………………………………….3、软件设计……………………………………………………………….4、仿真结果……………………………………………………………….5、小结…………………………………………………………………….6、参考文献……………………………………………………………….1、系统概述温度传感器选用目前常用的数字温度传感器DS18B20,采用数码LED显示,显示驱动为MAX7219,首先设计系统的总体原理图如下:系统可以简单地分为为5个模块,由外部提供8V-24V直流电源供电。

电源模块将输入8-24V的电源电压转换为5V,为系统中的芯片供电,可以使用7805等常用的三端稳压器芯片;温度传感器采集温度信号,温度传感器有模拟输出和数字输出两种形式,这里选择具有数字输出的DS18B20;单片机是系统的核心,选用AT89C51;系统采用LED数码显示器显示温度值,LED显示屏采用独立的显示驱动芯片MAX7219,单片机将待显示的字符写入MAX7219后,MAX7219将会动态的刷新显示内容,无需占用单片机过多的资源。

尽管DS18B20的分辨率可已达到0.0625°C,但测量精确度为0.5°C,因此设计4位数的LED数码显示管就可以了,显示3位整数,1位小数。

2、硬件介绍:1、数字温度传感器DS18B20DS18B20数字温度计提供9位-24位(二进制)温度读数,以指示器件的温度,数据经过单线接口送入DS18B20或从DS18B20送出,因此从主机CPU到DS18B20仅需要一条DQ。

基于51单片机的温度测量系统

基于51单片机的温度测量系统

目录摘要 (I)ABSTRACT (II)1 绪论 (1)1.1选题的背景 (1)1.2课题研究的目的和意义 (1)1.3本文的结构 (1)2 系统总体方案设计 (1)2.1总体方案设计 (2)2.2部分模块方案选择 (3)2.2.1单片机的选择 (3)2.2.2温度检测方式的选择 (3)2.2.3显示部分的选择 (4)2.2.4电源模块的选择 (4)3 硬件电路的设计 (4)3.1 硬件电路设计软件 (4)3.2系统整体原理图 (5)3.3单片机最小系统电路 (6)3.4单片机的选型 (7)3.5温度测量模块 (8)3.5.1 DS18B20概述 (8)3.5.2 DS18B20测温工作原理 (11)3.5.3 DS18B20温度传感器与单片机的接口电路 (12)3.6 显示模块 (13)3.7 按键以及无线遥控模块 (15)3.7.1按键的相关知识 (15)3.7.2 5伏带解码四路无线接收板模块 (16)3.8 报警及指示灯模块 (18)3.9 电源模块 (19)4 系统软件设计及仿真部分 (20)4.1软件设计的工具 (20)4.1.1程序编写软件 (20)4.1.2仿真软件 (21)4.2各模块对应的软件设计 (22)4.2.1显示模块的程序 (22)4.2.2温度测量的程序 (26)4.2.3报警系统程序 (32)4.2.4按键程序 (33)4.2.5总体程序 (35)5 实物制作 (37)5.1电源部分 (37)5.2单片机最小系统部分 (37)5.3 总体实物 (37)6 总结 (38)7 致谢 (39)参考文献 (40)附录一 (41)附录二 (49)基于单片机的温度测量系统摘要随着测温系统的极速的发展,国外的测量系统已经很成熟,产品也比较多。

近几年来,国内也有许多高精度温度测量系统的产品,但是对于用户来说价格较高。

随着市场的竞争越来越激烈,现在企业发展的趋势是如何在降低成本的前提下,有效的提高生产能力。

基于单片机的温度数据采集系统实验报告

基于单片机的温度数据采集系统实验报告

基于单片机的温度数据采集系统实验报告
班级:192202
姓名:张尧
学号:123241
指导老师:
一、实验目的
1、了解温度传感器电路的工作原理;
2、了解闭环控制的基本原理;
3、进一步熟悉A/D变换原理和编程方法;
4、进一步熟悉键盘、显示接口电路使用和编程方法;
5、掌握单片机应用系统硬件及软件的设计方法;
二、实验内容及要求
内容:①根据各自设计方案,选择并连接各小模块电路构成温度采集与控制的实验电路,编写并调试程序,实现对温度的采集、检测、进行控制计算等处理后输出显示。

②控制加热机构,实现温度闭环控制。

(选做)
③采用PID算法控制温度在一定值上,实现恒温控制。

(选做)
要求:实现对温度的采集、检测、进行控制计算处理后输出显示;其温度控制为开环控制,采用发光二极管亮时表示加热状态,灭时为不加热状态。

显示采用7279显示板实时显示温度值。

三、实验设计思路单片机温度采集与控制实验报告。

基于51单片机的温控系统设计

基于51单片机的温控系统设计

基于51单片机的温控系统设计1.引言1.1 概述概述部分的内容可以包括以下几个方面:温控系统是一种广泛应用于各个领域的实时温度控制系统。

随着科技的发展和人们对生活质量的要求提高,温控系统在工业、家居、医疗、农业等领域得到了广泛应用。

温度作为一个重要的物理量,对于许多过程和设备的稳定运行至关重要。

因此,设计一种高效可靠的温控系统对于提高工作效率和产品质量具有重要意义。

本文将基于51单片机设计一个温控系统,通过对系统的整体结构和工作原理的介绍,可以深入了解温控系统在实际应用中的工作机制。

以及本文重点研究的51单片机在温控系统中的应用。

首先,本文将介绍温控系统的原理。

温控系统的核心是温度传感器、控制器和执行器三部分组成。

温度传感器用于实时检测环境温度,通过控制器对温度数据进行处理,并通过执行器对环境温度进行调节。

本文将详细介绍这三个组成部分的工作原理及其在温控系统中的作用。

其次,本文将重点介绍51单片机在温控系统中的应用。

51单片机作为一种经典的微控制器,具有体积小、功耗低、性能稳定等优点,广泛应用于各种嵌入式应用中。

本文将分析51单片机的特点,并介绍其在温控系统中的具体应用,包括温度传感器的数据采集、控制器的数据处理以及执行器的控制等方面。

最后,本文将对设计的可行性进行分析,并总结本文的研究结果。

通过对温控系统的设计和实现,将验证51单片机在温控系统中的应用效果,并对未来的研究方向和发展趋势进行展望。

通过本文的研究,可以为温控系统的设计与应用提供一定的参考和指导,同时也为利用51单片机进行嵌入式系统设计的工程师和研究人员提供一定的技术支持。

1.2文章结构文章结构部分的内容可以包含以下内容:文章结构部分旨在介绍整篇文章的组织结构和各个部分的内容。

本篇文章基于51单片机的温控系统设计,总共分为引言、正文和结论三部分。

引言部分主要包括概述、文章结构和目的三个小节。

首先,概述部分介绍了本文的主题,即基于51单片机的温控系统设计。

基于51单片机的数字温度计设计

基于51单片机的数字温度计设计

基于51单片机的数字温度计设计数字温度计是一种广泛使用的电子测量设备,通过传感器将温度转化为数字信号,并显示出来。

本文将介绍基于51单片机的数字温度计的设计。

该设计将使得使用者能够准确、方便地测量温度,并实时显示在液晶显示屏上。

1. 硬件设计:- 传感器选择:在设计数字温度计时,我们可以选择使用NTC(负温度系数)热敏电阻或者DS18B20数字温度传感器作为温度传感器。

这里我们选择DS18B20。

- 信号转换:DS18B20传感器是一种数字传感器,需要通过单总线协议与51单片机进行通信。

因此,我们需要使用DS18B20专用的驱动电路,将模拟信号转换为数字信号。

- 51单片机的选择:根据设计要求选择合适的51单片机,如STC89C52、AT89S52等型号。

单片机应具备足够的IO口来与传感器和液晶显示屏进行通信,并具备足够的计算和存储能力。

- 显示屏选择:为了实时显示温度,我们可以选择使用1602型字符液晶显示屏。

该显示屏能够显示2行16个字符,足够满足我们的需求。

通过与51单片机的IO口连接,我们可以将温度数据显示在屏幕上。

2. 软件设计:- 采集温度数据:通过51单片机与DS18B20传感器进行通信,采集传感器传输的数字温度数据。

通过解析传感器发送的数据,我们可以获得当前的温度数值。

- 数据处理:获得温度数据后,我们需要对其进行处理。

例如,可以进行单位转换,从摄氏度到华氏度或者开尔文度。

同时,根据用户需求,我们还可以对数据进行滤波、校准等处理。

- 显示数据:通过与液晶显示屏的连接,我们可以将温度数据显示在屏幕上。

可以使用51单片机内部的LCD模块库来控制液晶显示屏,显示温度数据以及相应的单位信息。

- 用户交互:可以设置一些按键,通过与51单片机的IO口连接,来实现用户与数字温度计的交互。

例如,可以设置一个按钮来进行温度单位的切换,或者设置一个按钮来启动数据保存等功能。

3. 功能拓展:- 数据存储:除了实时显示当前温度,我们还可以考虑增加数据存储功能。

基于51单片机的温度数据采集系统

基于51单片机的温度数据采集系统

8 | 电子制作 2018年11月格的,比如:工厂在生产某一种产品时温度要求范围在25到30摄氏度之间,只有在这个温度范围内才可以生产出合格的产品,还有在进行某些科研实验时对温度的要求就会更加严格,有的精确到1摄氏度以内,甚至有的精确到0.5摄氏度以内。

因此我想设计一个“电子温度计”,基本功能是对温度的采集与显示。

在温度采集的设计上必须要A/D 转换,也就是将模拟信号转化为数字信号,因此我选择了DS18B20温度传感器模块,该模块不仅可以对温度进行实时测控,并且具有较高的灵敏度。

在数据的显示方面我选择了LCD1602显示模块,整个系统采用STC89C52单片机控制。

本设计在Altium Designer 上画出原理图,然后通过热转印制作PCB 板,完成硬件部分。

此次设计在大量科学知识的支持下具有较高的可行性和实用性。

1 系统工作原理该系统是在C 语言编程以及51单片机知识为基础上进行设计的,同时采用了DS18B20温度传感器模块以及LCD1602显示模块,利用KEIL 软件进行软件编程,将编写好的程序录入51单片机中,在51单片机的控制下实现温度数据的采集。

图1 系统整体结构框图整个实时数据采集系统满足以下功能指标:线和表格中。

2 硬件系统设计图2 总体系统结构此系统以STC89C52单片机为控制核心,采用了数字温度传感器模块DS18B20,该模块将采集到的温度数据转化为数字信号,并将信号传送给单片机,单片机处理数据后,通过LCD1602液晶显示器将温度显示出来。

在整个作品上首先提到的是硬件系统的设计,然后就是各个模块的工作原理以及工作特点,详细介绍系统的硬件设计,在给出系统的连接图,通过PROTEL 99SE 进行系统电路原理图的绘制,生成相应的PCB 板,并分析系统的工作原理,在软件方面对整体和各个模块的程序进行设计,在KEIL 中进行编写,在编写过程中如果出现理论错误,系统会给与提示,编程结束后也可手动调试来改正错误,或者修改程序功能。

基于STM32单片机的心率计步体温显示系统设计

基于STM32单片机的心率计步体温显示系统设计

基于STM32单片机的心率计步体温显示系统设计设计一个基于STM32单片机的心率计步体温显示系统,主要包括以下几个方面的内容:系统功能设计、硬件设计、软件设计、系统测试等。

一、系统功能设计:1.心率测量功能:通过传感器测量用户心率,将数据显示在液晶屏上。

2.计步功能:通过加速度传感器测量用户的步数,将数据显示在液晶屏上。

3.体温测量功能:通过温度传感器测量用户体温,将数据显示在液晶屏上。

4.数据存储功能:将心率、步数、体温等数据保存在存储设备中,以便后续查询和分析。

二、硬件设计:1.主控芯片:选用STM32单片机作为主控芯片,具有强大的计算和控制能力。

2.传感器:选择专业的心率传感器、加速度传感器和温度传感器,提供准确的测量数据。

3.显示模块:采用液晶屏显示传感器测量的数据和其他相关信息。

4.存储设备:使用闪存芯片或SD卡作为数据的存储设备,保证数据的可靠性和安全性。

5.电源模块:设计适配器和电池两种供电方式,保证系统的持续工作时间。

三、软件设计:1.硬件初始化:对主控芯片和传感器进行初始化设置,配置相关参数。

2.数据采集:通过传感器采集心率、步数和体温等数据,并进行滤波处理。

3.数据显示:将采集到的数据通过液晶屏显示出来,包括心率、步数和体温等信息。

4.数据存储:将采集到的数据存储到闪存芯片或SD卡中,以便后续查询和分析。

5.数据上传:设计数据上传功能,可以通过USB接口或蓝牙等方式将数据上传到电脑或手机。

6.参数设置:设计参数设置功能,用户可以根据需要设置心率、步数和体温的阈值,系统会发出警报。

四、系统测试:1.系统功能测试:逐步测试各个功能模块,验证数据的准确性和功能的稳定性。

2.整体性能测试:对整个系统进行测试,验证系统的性能指标是否符合设计要求。

3.用户体验测试:邀请用户进行测试,收集用户的反馈意见和建议,进行优化和改进。

这个系统可以作为一款便携式的健康监测设备,可以方便用户随时随地监测自己的心率、步数和体温等健康数据,有助于用户及时发现和预防潜在的健康问题。

基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统

基于单片机的多点无线温度监控系统随着现代科技的不断发展,单片机技术在各个领域都得到了广泛的应用。

基于单片机的多点无线温度监控系统是一个非常实用的应用场景。

这种系统可以用于监控各个物理位置的温度变化,并且可以通过无线方式将数据传输到中央控制端,便于实时监控和远程管理。

本文将介绍基于单片机的多点无线温度监控系统的设计原理、硬件搭建和软件编程等方面的内容。

一、系统设计原理该系统的设计原理是通过多个传感器节点采集不同位置的温度数据,然后通过无线通信模块将数据传输到中央控制端,最后通过显示屏或者计算机等设备进行实时监控。

整个系统包括传感器节点、单片机控制模块、无线通信模块和中央控制端。

传感器节点:每个传感器节点都搭载一个温度传感器,用于采集环境温度数据。

一般可以选择DS18B20等数字式温度传感器,其具有高精度、数字输出、抗干扰等特点。

传感器节点还需要有适当的电源和信号处理电路。

单片机控制模块:每个传感器节点都需要配备一个单片机控制模块,用于控制传感器的采集和数据的处理。

可以选择常见的单片机芯片,如STC89C52等。

单片机控制模块负责读取传感器数据、进行数据处理和存储等操作。

无线通信模块:每个传感器节点还需要配备一个无线通信模块,用于将采集到的温度数据传输到中央控制端。

可以选择类似nRF24L01等2.4GHz无线通信模块,其具有低功耗、远距离传输和多节点连接等特点。

中央控制端:中央控制端负责接收各个传感器节点传输过来的数据,并对数据进行汇总和处理。

可以选择单片机、嵌入式开发板或者计算机等设备作为中央控制端,配备合适的无线通信模块用于接收数据。

二、系统硬件搭建传感器节点的硬件搭建主要包括传感器模块、单片机控制模块和无线通信模块三个部分。

传感器模块可以直接连接DS18B20温度传感器,并通过合适的引脚连接到单片机控制模块。

单片机控制模块由单片机芯片、外部晶振、电源管理电路、数据存储器和通信接口等组成,其中通信接口连接无线通信模块。

基于单片机的温度控制系统设计

基于单片机的温度控制系统设计

基于单片机的温度控制系统设计温度控制系统是现代生活中不可或缺的一部分,常见于家庭的的空调、电饭煲、烤箱等家用电器,以及工业生产中的各种自动化设备。

本文基于单片机设计针对室内温度控制系统的实现方法进行说明,包括温度采集、温度控制器的实现和人机交互等方面。

一、温度采集温度采集是温度控制系统的核心部分。

目前比较常见的温度采集器主要有热电偶、热敏电阻和半导体温度传感器。

在本文中我们以半导体温度传感器为例进行说明。

常见的半导体温度传感器有DS18B20、LM35等,本次实验中采用DS18B20进行温度采集。

DS18B20是一种数字温度传感器,可以直接与单片机通信,通常使用仅三根导线连接。

其中VCC为控制器的电源正极,GND为电源负极,DATA为数据传输引脚。

DS18B20通过快速菲涅耳射线(FSR)读取芯片内部的温度数据并将其转换为数字信号。

传感器能够感知的温度范围通常为-55℃至125℃,精度通常为±0.5℃。

为了方便使用,DS18B20可以通过单片机内部的1-Wire总线进行控制和数据传输。

具体实现方法如下:1.首先需要引入相关库文件,如:#include <OneWire.h> //引用1-Wire库#include <DallasTemperature.h> //引用温度传感器库2.创建实例对象,其中参数10代表连接传感器的数字I/O引脚:OneWire oneWire(10); //实例化一个1-Wire示例DallasTemperature sensors(&oneWire); //实例化一个显示温度传感器示例3.在setup中初始化模块:sensors.begin(); // 初始化DS18B204.在主循环中,读取传感器数据并将温度值输出到串口监视器:sensors.requestTemperatures(); //请求温度值float tempC = sensors.getTempCByIndex(0); // 读取温度值Serial.println(tempC); //输出温度值二、温度控制器的实现温度控制器是本次实验的关键部件,主要实现对温度的控制和调节,其基本原理是根据温度变化情况来控制输出电压或模拟脚电平,驱动继电器控制电器设备工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计论文论文题目:温度采集显示系统一、功能和要求:(1)温度测量范围 0 - 99℃。

(2)温度分辨率±1℃。

(3)选择合适的温度传感器。

(4)使用键盘输入温度的最高点和最低点,温度超出范围时候报警。

(报警温度不需要保存)二、系统方案:方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

三、核心元件的功能1、AT89C51AT89S51美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。

单片机AT89S51强大的功能可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C51芯片的引脚结构如图1所示:1.1功能特性概括:AT89S51提供以下标准功能:40个引脚、4K Bytes Flash片内程序存储器、128 Bytes的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编图1 程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。

此外,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲模式,CPU暂停工作,而RAM、定时/计数器、串行通信口、外中断系统可继续工作。

掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求1.2管脚说明:P0口:P0口为一个8位漏级开路双向I/O口,也即地址/数据总线复用口。

作为输出口用时,能驱动8个TTL逻辑门电路。

对端口写“1”时,被定义为高阻输入。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I IL)。

在Flash编程和程序校验期间,P1接收低8位地址。

部分端口还有第二功能,如表1表1 P1口部分引脚第二功能P2口:P2口是一个带有内部上拉电阻的8位双向I/O口, P2口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉)。

电阻,某个引脚被外部信号拉低时会输出一个电流(IIL在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR 指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数据寄存器(例如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。

在Flash编程或校验时,P2亦接收高位地址和其它控制信号。

P3口: P3口是一个带有内部上拉电阻的双向8位I/O口, P3口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写“1”时,它们被内部的上拉电阻拉高并可作为输入端口。

作输入口使用时,被外部信号拉低的P3)。

口将用上拉电阻输出电流(IILP3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2所示:P3表2 P3口引脚第二功能RST:复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上的高电平时间将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

ALE/:当访问外部存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部寄存器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。

值得注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只要一条MOVX和MOVC指令才会激活ALE。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

当访问外部数据存储器时,没有两次有效的PSEN信号。

EA/VPP:外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端保持高电平(接VCC端),CPU则执行内部程序存储器中的指令。

Flash存储器编程期间,该引脚用于施加+12V编程电压(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入端。

XTAL2:反向振荡放大器器的输出端。

2、DS18B20美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。

全部传感元件及转换电路集成在形如一只三极管的集成电路内。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

现在,新一代的DS18B20体积更小、更经济、更灵活。

使你可以充分发挥“一线总线”的优点。

新的"一线器件"DS18B20体积更小、适用电压更宽、更经济。

DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。

DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!继"一线总线"的早期产品后,DS1820开辟了温度传感器技术的新概念。

DS18B20使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

DS18B20也支持"一线总线"接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

与前一代产品不同,新的产品支持3.0V~5.5V的电压范围,使系统设计更灵活、方便。

而且新一代产品更便宜,体积更小。

2.1 DS18B20的主要特性(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃(6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快(8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

2.2 DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20引脚定义:(1) GND为电源地;(2) DQ为数字信号输入/输出端;(3) VDD为外接供电电源输入端(在寄生电源接线方式时接地)2.3 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。

DS18B20测温原理如图3所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

2.4 DS1820使用中注意事项DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:1) 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。

相关文档
最新文档