单片机温度传感器设计报告
单片机基于stm32的数字温度计设计

单片机基于stm32的数字温度计设计
数字温度计是一种用于测量环境温度的设备。
在这个问题中,我们将使用基于STM32的单片机来设计一个数字温度计。
为了设计这个温度计,我们需要以下组件和步骤:
1. STM32单片机:STM32是一种基于ARM架构的单片机,它具有强大的计算能力和丰富的外设接口,适用于各种应用。
2. 温度传感器:我们需要选择一种适合的温度传感器,常用的有数字式温度传感器,如DS18B20。
3. 连接电路:将温度传感器连接到STM32单片机。
这通常需要使用一些电子元件,如电阻、电容和连接线等来建立电路连接。
4. 编程:使用适合STM32单片机的编程语言,如C语言,来编写程序。
程序将读取温度传感器的数据,并将其转换为数字值。
5. 温度显示:将温度数据显示在合适的显示设备上,如LCD显示屏或七段数码管。
可以使用STM32单片机的GPIO口控制这些显示设备。
6. 数据处理:可以对温度数据进行进一步处理,如计算平均温度、设定警报阈值等。
以上是一个基本的数字温度计设计的流程。
具体的实现细节和代码编写可能需要根据具体的硬件和软件平台进行调整。
基于51单片机的温度检测系统_单片机C语言课题设计报告

单片机C语言课题设计报告设计题目:温度检测电气系2011级通信技术一班级通信技术一班通才达识,信手拈来通才达识,信手拈来1摘要本课题以51单片机为核心实现智能化温度测量。
利用18B20温度传感器获取温度信号,将需要测量的温度信号自动转化为数字信号,利用单总线和单片机交换数据,最终单片机将信号转换成LCD 可以识别的信息显示输出。
基于STC90C516RD+STC90C516RD+的单片机的智能温度检测系统,的单片机的智能温度检测系统,设计采用18B20温度传感器,其分辨率可编程设计。
本课题设计应用于温度变化缓慢的空间,综合考虑,以降低灵敏度来提高显示精度。
设计使用12位分辨率,因其最高4位代表温度极性,故实际使用为11位半,位半,而温度测量范围为而温度测量范围为而温度测量范围为-55-55-55℃~℃~℃~+125+125+125℃,℃,则其分辨力为0.06250.0625℃。
℃。
设计使用LCD1602显示器,可显示16*2个英文字符,显示器显示实时温度和过温警告信息,和过温警告信息,传感器异常信息设。
传感器异常信息设。
传感器异常信息设。
计使用蜂鸣器做警报发生器,计使用蜂鸣器做警报发生器,计使用蜂鸣器做警报发生器,当温度超过当温度超过设定值时播放《卡农》,当传感器异常时播放嘟嘟音。
单片机C 语言课题设计报告语言课题设计报告电动世界,气定乾坤2目录一、设计功能一、设计功能................................. ................................. 3 二、系统设计二、系统设计................................. .................................3 三、器件选择三、器件选择................................. .................................3 3.1温度信号采集模块 (3)3.1.1 DS18B20 3.1.1 DS18B20 数字式温度传感器数字式温度传感器..................... 4 3.1.2 DS18B20特性 .................................. 4 3.1.3 DS18B20结构 .................................. 5 3.1.4 DS18B20测温原理 .............................. 6 3.1.5 DS18B20的读写功能 ............................ 6 3.2 3.2 液晶显示器液晶显示器1602LCD................................. 9 3.2.1引脚功能说明 ................................. 10 3.2.2 1602LCD 的指令说明及时序 ..................... 10 3.2.3 1602LCD 的一般初始化过程 (10)四、软件设计四、软件设计................................ ................................11 4.1 1602LCD 程序设计流程图 ........................... 11 4.2 DS18B20程序设计流程图 ............................ 12 4.3 4.3 主程序设计流程图主程序设计流程图................................. 13 五、设计总结五、设计总结................................. ................................. 2 六、参考文献六、参考文献................................. ................................. 2 七、硬件原理图及仿真七、硬件原理图及仿真......................... .........................3 7.1系统硬件原理图 ..................................... 3 7.2开机滚动显示界面 ................................... 4 7.3临界温度设置界面 ................................... 4 7.4传感器异常警告界面 (4)电气系2011级通信技术一班级通信技术一班通才达识,信手拈来通才达识,信手拈来3温度温度DS18B20 LCD 显示显示过温函数功能模块能模块传感器异常函数功能模块数功能模块D0D1D2D3D4D5D6D7XT XTAL2AL218XT XTAL1AL119ALE 30EA31PSEN29RST 9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115U180C51X1CRYST CRYSTAL ALC122pFC222pFGNDR110kC31uFVCCGND234567891RP1RESPACK-8VCC0.0DQ 2VCC 3GND 1U2DS18B20R24.7K LCD1LM016LLS2SOUNDERMUC八、程序清单八、程序清单................................. .................................5 一、设计功能·由单片机、温度传感器以及液晶显示器等构成高精度温度监测系统。
51单片机数字温度计的设计与实现

51单片机数字温度计的设计与实现温度计是一种广泛使用的电子测量仪器,它能够通过感知温度的变化来提供精准的温度数值。
本文将介绍如何使用51单片机设计并实现一款数字温度计。
一、硬件设计1. 采集温度传感器温度传感器是用来感知环境温度的关键器件。
常见的温度传感器有DS18B20、LM35等。
在本次设计中,我们选择DS18B20温度传感器。
通过电路连接将温度传感器与51单片机相连,使51单片机能够读取温度传感器的数值。
2. 单片机选型与连接选择适合的51单片机型号,并根据其引脚功能图对单片机进行合理的引脚连接。
确保温度传感器与单片机之间的数据传输通畅,同时保证电源和地线的正确连接。
3. 显示模块选型与连接选择合适的数字显示模块,如数码管、液晶显示屏等。
将显示模块与51单片机相连,使温度数值能够通过显示模块展示出来。
4. 电源供应为电路提供稳定的电源,保证整个系统的正常运行。
选择合适的电源模块,并根据其规格连接电路。
二、软件设计1. 温度传感器读取程序编写程序代码,使用单片机GPIO口将温度传感器与单片机连接,并通过相应的通信协议读取温度数值。
例如,DS18B20采用一线制通信协议,需要使用单总线协议来读取温度数值。
2. 数字显示模块驱动程序编写程序代码,通过单片机的GPIO口控制数字显示模块的数码管或液晶显示屏进行温度数值显示。
根据显示模块的规格,编写合适的驱动程序。
3. 温度转换算法将温度传感器读取到的模拟数值转换为实际温度数值。
以DS18B20为例,它输出的温度数值是一个16位带符号的数,需要进行相应的转换操作才能得到实际的温度数值。
4. 系统控制程序整合以上各部分代码,编写系统控制程序。
该程序通过循环读取温度数值并进行数据处理,然后将处理后的数据送到数字显示模块进行实时显示。
三、实现步骤1. 硬件连接按照前文所述的硬件设计,将温度传感器、51单片机和数字显示模块进行正确的连接。
确保连接无误,并进行必要的电源接入。
单片机课程设计报告-基于AT89C51单片机的数显温度传感器设计

蜂鸣器用于当温度传感器的输入的温度数值大于认为设定的上限温度或者小于下限温度时,系统会给出相应的信号使得蜂鸣器发出声音同时让LED灯闪烁显示,从听觉和视觉上同时提出报警信号。电路图如下:
蜂鸣器由一个PNP型的三极管驱动接在单片机的P1.0口,当P1.0口输出低电平是蜂鸣器发出声音;LED灯正极通过1K的电阻上拉接Vcc,负极接在单片机的P1.1口,当系统在P1.1口输出低电平时LED灯亮。
DS18BB20温度传感器模块
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。电路图如下:
接在单片机的P2.3口,DS18B20的DQ端需要接一个4.7K左右的上拉电阻。
1、设计原理
用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。(DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。)
系统的主流程图:
3、系统实现
(详细介绍实物连接图及运行程序时的每种结果,要求有图为证,并对每张图片进行简单的说明)
根据系统的设计框图,查找相关资料,在Proteus8.0中画出原理图,在KEIL 4软件中编写好程序,然后将这两个软件结合,将写好的程序在Proteus 8.0中烧录进单片机,然后开启仿真开关,即可显示设计效果,通过修改硬件电路的同时结合程序,实现实验要求。然后开始焊接硬件电路,在多孔板上焊出相应的电路,用杜邦线将各个模块与单片机最小系统板连接在一起得到最终电路,用烧录软件将程序烧录进单片机,最终以实际电路的形式展现出成果。
单片机数字温度计课程设计报告

单片机数字温度计课程设计报告1.引言2.课程目标3.教学内容4.教学方法5.教学评价6.结论7.参考文献引言:数字温度计是现代生活中常用的一种温度测量工具。
对于学生来说,了解数字温度计的使用原理和正确使用方法是非常必要的。
因此,本课程设计旨在帮助学生掌握数字温度计的基本知识和技能,提高其实际应用能力。
课程目标:1.了解数字温度计的基本原理和结构。
2.掌握数字温度计的使用方法。
3.能够正确进行数字温度计的校准和维护。
4.能够应用数字温度计进行实际温度测量。
教学内容:1.数字温度计的基本原理和结构。
2.数字温度计的使用方法。
3.数字温度计的校准和维护。
4.数字温度计的实际应用。
教学方法:本课程采用讲授、实验和讨论相结合的教学方法。
通过讲解数字温度计的基本原理和结构,让学生了解数字温度计的工作原理;通过实验操作,让学生掌握数字温度计的使用方法和校准方法;通过讨论,让学生了解数字温度计的实际应用场景。
教学评价:本课程的教学评价主要采用考试和实验报告相结合的方式。
考试主要考查学生对数字温度计的理论知识掌握情况;实验报告主要考查学生对数字温度计的实际应用能力和实验操作能力。
结论:通过本课程的研究,学生能够掌握数字温度计的基本知识和技能,提高其实际应用能力,为其未来的研究和工作打下坚实的基础。
参考文献:1.《数字温度计使用手册》2.《数字温度计原理与应用》3.《温度测量技术与应用》1.设计任务1.1 设计目的本设计旨在实现一个温度监测系统,能够实时监测环境温度,并在温度超出预设范围时发出报警信号,同时在液晶显示屏上显示当前温度。
1.2 设计指标本设计的主要指标包括:温度监测精度、报警准确性、系统响应速度、硬件成本、软件复杂度等。
1.3 设计要求本设计要求系统稳定可靠,操作简便,能够满足实际应用需求。
2.设计思路与总体框图本系统采用单片机作为主控芯片,通过温度传感器采集环境温度,并将数据传输到单片机进行处理。
同时,液晶显示屏用于显示当前温度,按键用于对系统进行设置和调整。
基于AT89C51单片机的温度计设计

引言概述:AT89C51单片机是一种常用的单片机型号,广泛应用于各种数字电子设备中。
本文将基于AT89C51单片机,设计一款温度计,用于测量环境温度。
通过该设计,可以实时监测环境温度,并将温度值以数字形式显示在屏幕上,提供给用户参考。
正文内容:1. 硬件设计1.1 传感器选择首先,需要选择适合的传感器来测量环境温度。
常见的温度传感器有热敏电阻、温度传感器模块等。
在本设计中,选择了DS18B20温度传感器模块,该传感器具有精度高、体积小等特点,适合本温度计的设计需求。
1.2 电路连接在硬件设计中,需要将DS18B20温度传感器模块与AT89C51单片机相连。
具体步骤如下:1) 将DS18B20传感器的VCC引脚连接至单片机的VCC引脚,将GND引脚连接至单片机的GND引脚,将DQ引脚连接至单片机的P1口,通过电阻和电容设置硬件复位电路。
2) 设置单片机的相应引脚为输入或输出引脚,使其与传感器的引脚相对应,并根据需要设置引脚的电平状态。
3) 根据DS18B20传感器的通信协议,使用单片机的串口通信功能与传感器进行通信,获取温度值。
2. 软件设计2.1 程序框架在软件设计中,需要设计相应的程序框架,以实现温度的测量与显示。
整体的程序框架如下:1) 初始化单片机的串口通信功能,设置波特率等参数。
2) 初始化DS18B20传感器,包括设定分辨率、温度精度等参数。
3) 循环读取传感器的温度数值,并进行必要的温度转换处理。
4) 将处理好的温度数值通过单片机的数码管显示出来。
2.2 温度转换在软件设计中,需要对从传感器获取的温度数值进行转换处理,以得到真实的温度值。
具体的转换公式如下:1) 首先,读取传感器内部存储器中的原始温度数据。
2) 根据DS18B20传感器的配置,进行温度计算。
3) 最后,将计算得到的温度值转换为摄氏度或华氏度,并存储到相应的变量中,以便后续显示。
3. 测试与调试在进行实际应用之前,需要对设计的温度计进行测试与调试,确保其功能正常。
温度传感器实验报告

温度传感器实验报告篇一:温度传感器实验报告摘要:单片机系统设计是一门实践性和应用性都很强的课程。
为了充分激发学生的创造力,使学生熟悉单片机应用系统的研制和开发过程,掌握单片机的设计原理和开发步骤,我们开设了单片机系统设计综合实践课程。
本文阐述了此综合实践课程的实施方案,给出了典型的设计范例。
经过几年的教学实践,本课程取得了良好的教学效果。
关键词:单片机系统;综合实践课程;实践教学1 前言2 任务与要求利用伟福Lab6000系列单片机仿真实验系统构成简单实用的单片机系统,要求如下:(1)充分应用MCS-51系列微处理器和伟福Lab6000系列单片机仿真实验系统所提供的硬件资源,自由选题实现一个简单实用的单片机系统。
(2)要求具备必需的人机接口。
(3)可以选用汇编或C51语言进行控制程序开发。
设计的系统性能如下:(1)系统运行稳定,具有一定的抗干扰和故障自测能力。
(2)系统设计安全可靠,具有出错报警和应急关闭能力。
(3)系统精度达到一般民用品的基本要求。
(4)人机接口界面友好、直观、操作简单。
另外,我们提供了一些选题供学生拓展思路,主要有:(1)出租车计价器。
(2)温度控制系统。
(3)可编程交通灯系统。
(4)PWM电机调速系统。
(5)数字温度计。
(6)数字频率计。
3 设计范例3.1 PWM电机调速系统PWM电机调速系统如图1所示,系统包含电机驱动电路和测速电路,两者构成闭环系统。
电机驱动采用脉宽PWM调压电路,测速电路的核心部件是霍尔元件。
霍尔元件是一种磁传感器。
用它可以检测磁场及其变化,可在各种与磁场有关的场合中使用。
在外磁场的作用下,当磁感应强度超过霍尔元件导通阈值BOP时,霍尔元件输出管导通,输出低电平。
若外加磁场的B值降低到BRP时,输出管截止,输出高电平。
在直流电机的转盘上粘贴着一枚小磁铁,霍尔元件安装在转盘附近,每当磁铁靠近霍尔元件时霍尔元件导通,输出低电平,远离时霍尔元件截至,输出高电平。
单片机毕业设计 温度传感器设计

引言随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。
传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。
因此,了解并掌握传感器的基本结构、工作原理及特性是非常重要的。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。
本文利用单片机结合传感器技术而开发设计了红外抄表系统。
文中把传感器理论与单片机实际应用有机结合,详细地讲述了利用温度传感器DS18B20测量环境温度,以及实现红外数据传输的过程。
本设计应用性比较强,只要对电路部分稍加改装,就可以实现抄读其它的数字仪表设备:如数字电度表,数字水表等等。
设计后的系统具有操作方便,控制灵活等优点。
其主要功能和指标如下:1、利用温度传感器(DS18B20)测量某一点环境温度;2、测量范围为-55℃~+99℃,精度为±0.5℃;3、用4位数码管进行显示实际温度值显示;4、手持端通过红外发射管发射测温信号;5、测温端通过红外发射管发送到手持端;6、手持端可以随时查看指定待测物体的温度值。
设计的核心是环境温度的测量以及红外数据的发射和接收,和温度的显示。
文中对每个部分功能、实现过程作了详细地介绍。
1 方案选择该系统主要由温度测量和数据采集和发送三部分组成。
下面列举两种实现方案:方案一:温度检测可以使用低温热偶或铂电阻,数据采集部分则使用带有A/D通道的单片机。
考虑到一般的A/D输入通道都只能接收大信号,所以还要设计相应的放大电路。
而模拟信号在长距离传输过程中,抗电磁干扰是令人伤脑筋的问题。
此方案的软件简单,但硬件复杂,且检测点数追加时,各敏感元件参数的不一致性,都将会导致误差的产生,难以完全清除,而且成本会有较大增长幅度。
方案二:使用单片机和数字式单总线温度传感器构成。
其具有下列特点:①具有高的测量精度和分辨率,测量范围大;②抗干扰能力强,稳定性好;③信号易于处理、传送和自动控制;④便于动态及多路测量,读数直观;⑤安装方便,维护简单,工作可靠性高。
基于51单片机的DS18B20温度检测_设计报告

课程名称:微机原理课程设计题目:温度检测课程设计随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的温度检测仪。
本设计使用简便,功能丰富。
可以实现温度采集,温度报警,重设上下限温度值等功能。
在现代化的工业生产中,需要对周围环境的温度进行检测和控制。
本设计对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过数码管显示的系统。
该系统使用STC89C51单片机,同时运用单线数字温度传感器DS18B20,四位共阴数码管显示,按键控制等模块可实现温度的检测与设置。
课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。
本作品使用四位共阴数码管显示,可以清晰地显示当前的报警温度,一定程度避免使用者使用时出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,实用性很高。
关键字:温度报警器 STC89C51单片机数码管 DS18B20一、课程设计目的和要求 (1)1.1 设计目的 (1)1.2 设计要求 (1)二、总体设计方案 (1)三、硬件设计 (2)3.1 DS18B20传感器 (2)3.2 STC89C51功能介绍 (6)3.3 时钟电路 (8)3.4 复位电路 (8)3.5 LED显示系统电路 (9)3.6 按键控制电路 (11)3.7 蜂鸣器电路 (11)3.8 总体电路设计 (12)四、软件设计 (14)4.1 keil软件 (14)4.2 系统主程序设计 (14)4.3 系统子程序设计 (15)五、仿真与实现 (18)5.1 PROTEUS仿真软件 (18)5.2 STC-ISP程序烧录软件 (19)5.3 使用说明 (20)六、总结 (21)一、课程设计目的和要求1.1 设计目的熟悉典型51单片机,加深对51单片机课程的全面认识和掌握,对51单片机及其接口的应用作进一步的了解,掌握基于51单片机的系统设计的一般流程、方法和技巧,为我们解决工程实际问题打下坚实的基础。
(完整word版)基于单片机的DS18B20设计实验报告

第1章引言在日常生活及工农业生产中经常要涉及到温度的检测及控制,传统的测温元件有热点偶,热敏电阻还有一些输出模拟信号得温度传感器,而这些测温元件一般都需要比较多的外部硬件支持。
其硬件电路复杂,软件调试繁琐,制作成本高,阻碍了其使用性。
因此美国DALLAS半导体公司又推出了一款改进型智能温度传感器——DS18B20。
本设计就是用DS18B20数字温度传感器作为测温元件来设计数字温度计。
本设计所介绍的数字温度计与传统温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于测温比较准确得场所,或科研实验室使用。
该设计控制器使用单片机STC89C51,测温传感器使用DS18B20,显示器使用LED.第2章任务与要求2.1测量范围-50~110°C,精确到0.5°C;2.2利用数字温度传感器DS18B20测量温度信号;2.3所测得温度采用数字显示,计算后在液晶显示器上显示相应得温度值;第3章方案设计及论证3.1温度检测模块的设计及论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
3.2显示模块的设计及论证LED是发光二极管Light Emitting Diode 的英文缩写。
LED显示屏是由发光二极管排列组成的一显示器件。
单片机温度传感器设计报告

单片机温度传感器设计报告一、设计目的本设计旨在利用单片机和温度传感器构建一个温度测量系统,实时监测周围环境的温度,并通过显示屏显示出来。
通过这个设计,可以使用户及时了解到室内环境的温度情况,为用户提供一个舒适的居住环境。
二、设计原理1.硬件部分温度传感器:采用数字温度传感器DS18B20,具有高精度、线性度高、抗干扰性好等优点,可以提高温度测量的准确性。
单片机:采用STC89C52单片机,具有丰富的外设资源和强大的计算能力,可以实现温度数据的采集、处理和显示功能。
电源:采用稳压电源,保证系统的稳定性和可靠性。
2.软件部分主程序:通过单片机的AD转换模块,将温度传感器的模拟信号转换为数字信号,然后进行温度计算和数据处理,最后将结果显示在液晶显示屏上。
温度转换算法:根据温度传感器的数据手册,利用公式将采集到的数字信号转换为实际温度值。
实时显示功能:通过控制单片机的定时器和中断,实现对温度数据的实时采集和显示。
三、设计步骤1.硬件连接将温度传感器的VCC接到单片机的5V电源引脚,GND接到单片机的地引脚,DQ接到单片机的P1口。
将液晶显示屏的VCC接到单片机的5V电源引脚,GND接到单片机的地引脚,RS、RW、E分别接到单片机的P2.0、P2.1、P2.2口,D0-D7接到单片机的P0口。
将单片机的P3口接到稳压电源的输出端,作为单片机的电源。
2.软件编程使用Keil C51软件进行编程,编写主程序和温度转换算法。
通过对单片机的中断和定时器的配置,实现对温度数据的实时采集和显示。
通过对液晶显示屏的控制,将温度数值显示在屏幕上。
同时,可以设置温度报警功能,当温度超过设定的范围时,通过蜂鸣器发出警告声。
四、实验结果经过上述设计和调试,实验结果显示良好。
温度传感器能够准确地采集到周围环境的温度值,并通过液晶显示屏实时显示出来。
当温度超过设定范围时,蜂鸣器发出警告声,提醒用户采取相应的措施。
整个系统工作稳定、准确性高、实用性强。
51单片机课程设计数字温度计报告

电子毕业设计数字温度计题目:数显温度计学院:电子信息学院班级:学号::指导老师:日期:数字温度计设计任务书一、课程设计目的1、加强学生理论联系实际的能力,提高学生的动手能力;2、学会基本电子元器件的识别和检测;3、学会应用EDA软件Proteus进行电路的设计和仿真;4、基本掌握单片机的基本原理,并能将其应用于系统的设计。
5、通过实训,提高学生的学习兴趣,激发自主学习能力,培养创新意识。
二、设计任务先焊制一个单片机最小系统,并以制作的单片机最小系统为核心,设计并制作一个数字式温度计应用系统。
三、设计要求具有以下功能:(1)采用DS18B20作为温度传感器进行温度检测;(2)对采集温度进行显示(显示温度分辨率0.1℃);(3)采集温度数值应采用数字滤波措施,保证显示数据稳定;(4)显示数据,无数据位必须消隐。
目录数字温度计设计任务书 (2)1、设计思路(1)设计原理 (4)(2)系统方案及总体设计框图 (4)2、数字温度计应用系统的硬件设计(1)单片机小系统基本组成及硬件图(2)外围电路工作原理及系统硬件图(3)主要芯片及其功能3、系统软件程序的设计软件流程框图4、系统调试(1)仿真器介绍(2)调试结果及其分析(3)系统设计电路的特点和方案的优缺点5、课程设计心得体会参考文献附录程序清单及注释一、 设计思路:设计方案及其总体设计框图温度计设计系统流程图系统设计原理:本次课程设计是基于单片机的数字温度计设计,在开始课程设计的时候我们要理解并掌握对单片机的开发,学会使用KEIL 及Proteus 等仿真软件。
根据设计任务要求选二、数字温度计应用系统的硬件设计1、单片机小系统的基本组成及其选择 (1)单片机 单片机选型参考 • ① AT89S51、AT89S52 :具备ISP 下载功能 ,可以使用USBASP 程序下载线或者并口下载• ② STC89C51、STC89C52:使用串口线+MAX232烧写程序。
单片机原理与应用实验报告——温度测量显示及设定

单片机原理与应用实验报告——温度测量显示及设定实验目的:掌握单片机温度测量的原理和方法,了解温度传感器的工作原理,学会通过单片机控制显示屏显示温度,并可以通过按键设定温度。
实验器材:1.单片机(如STC89C52)2.温度传感器(如DS18B20)3.电阻、电容等基本元件4.1602液晶显示屏5.按键开关6.杜邦线、面包板等实验原理:1.单片机温度测量原理:单片机温度测量原理主要是通过温度传感器将温度转化为电压信号,然后单片机通过模拟口接收信号并进行数字转换得到温度数值。
2.温度传感器工作原理:温度传感器内部有一个温度敏感元件,它能根据温度的变化产生相应的电压信号,然后通过数字转换将电压信号转化为数值。
3.单片机与1602显示屏的连接:将1602显示屏的数据线接到单片机的IO口,通过控制IO口输出不同的信号来控制1602的显示。
实验步骤:1.连接电路:将单片机、温度传感器、1602显示屏等元件连接在一起,确保电路正确连接。
2.编写程序:编写单片机程序,根据单片机型号和编程软件的不同,具体编写方式可能会有所不同,但主要目的是通过单片机读取温度传感器的值,并将其转化为温度,最后通过1602显示屏显示温度。
3.调试程序:4.实验数据:在实验过程中需要记录下实验数据,包括温度传感器的电压值、转化的温度值等。
5.结果分析:根据实验数据和实验结果进行分析,对实验结果进行分析和总结。
实验总结:通过本次实验,我掌握了单片机温度测量的原理和方法,了解了温度传感器的工作原理,并成功通过单片机控制1602显示屏显示温度。
通过实验,我体会到了实验设计和实验过程中的困难和挑战,但我也学到了很多知识和技能,提高了实验能力和动手能力。
在今后的学习和工作中,我会继续努力,不断学习和探索,提高自己的实验能力和创新能力。
温度传感器的设计报告

温度传感器的设计一、设计方案1.1设计要求1)通过DS18B20能够显示坏镜温度2)通过设定的温度能够报警1.2方案比较方案一:用热敏电阻103结合单片机作温度控制系统。
热敏电阻103测温的精度为0.5℃,温度测量范围-200℃~260℃,可与单片机结合,构成测温电路,且性能温定,易测.方案二:用DS18B20结合单片机控制温度。
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO -92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系统。
与方案一相比,方案二的测量范围大,而且价格便宜,而且更适应生活的温度测量要求.固选方案二比较适合.1.3主要技术参数1)DS18B20的封装是SIP32)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
3)测温范围-55℃~+125℃,固有测温分辨率0.5℃。
4)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温5)工作电源: 3~5V/DC6)在使用中不需要任何外围元件7)测量结果以9~12位数字量方式串行传送8)不锈钢保护管直径Φ6二、单元电路分析2.1下载模块2.2电源指示灯模块和报警模块2.3单片机及外围电路STC125410AD系列单片机是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8~12倍。
内部集成MAX810专用复位电路,4路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合. STC12C5410AD具有在系统可编程功能,可以省去价格较高的专门编程器,开发环境的搭建非常容易。
基于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. 功能拓展:- 数据存储:除了实时显示当前温度,我们还可以考虑增加数据存储功能。
《基于单片机的电子温度计的设计》开题报告

内容:初稿撰写完成并接受教师指导
3.第三阶段: 时间:2022年4月底前
内容:毕业论文修改定稿;
4.第四阶段: 时间:2022年5月上旬
内容:准备毕业论文答辩。
四、参考文献:
[1] 孙鹏.红外测温物理模型的建立及论证[C].吉林:吉林大学出版社.2016:15-18.
[2] 晏敏.红外测温原理及误差分析[N].光明日报.2018-11-24(2).
[3] 曹润强.红外测温仪的设计[J].测量学研究.2016.23(6):87-89.
[4] 黄光.易新建热释电红外测温方程的研究[J].红外技术.2019.52(12):48-49.
[5] 柳刚,王双保.非接触式红外研制[J].光电子科技与信息.2018.51(17);45-50.
五、审核意见:
指导教师(签名):
(4)完善论文,准备毕业答辩。
5、方法:在网上搜索资料,回忆在课堂上学到的知识,在不懂得情况下主动请教指导老师。
三、实施计划(设计工作的主要阶段、进度和完成时间等):
1.第一阶段: 时间:2021年12月上旬前
单片机温度传感器设计报告

泰州职业技术学院电子与信息工程系课程名称: 51单片机开发课题名称:用1602LCD与DS18B20设计的温度报警器班级: 10信息课题小组成员:林淑云朱翠竹刘苏慧指导老师:**摘要现代社会是信息社会,随着现代农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度,所以对于温度的测量控制具有十分重要的意义。
随着全球温度的普遍升高,高温火灾更是无处不在:电气线路短路、过载、接触电阻过大等引发高温火灾;静电产生高温火灾;雷电等强电入侵导致高温火灾;最主要是机房内电脑、空调等用电设备长时间工作,导致设备老化,空调发生故障,而不能降温。
因此,机房内所属的电子产品发热快,在短时间内机房温度升高超出设备正常温度,导致系统瘫痪或产生火灾,这时温度报警系统就会发挥应有的功能。
本课题介绍的就是利用温度传感DS18B20制作的温度报警器,自动测量当前环境温度。
由单片机AT89C52控制,并通过1602LCD显示,若当前环境温度超过此温度,系统发出报警。
目录一、系统总体设计要求二、系统硬件设计三、系统程序设计四、调试与性能分析五、源程序清单六、心得体会一、系统总体设计要求1.本设计采用集成温度传感器的的s18b20,设计一个数字显示的温度报警器。
定安全温度值范围为20°C~30°C(可根据具体需要在程序中进行调整),对在这一范围内的温度变化采集后送入A/D转换器,A/D转换器的模拟电压范围为0~5V。
例如传感器采集的温度为25°C,则对应液晶显示器的显示值为25°C。
而温度高出30°C或者低于20°C时,不在安全温度范围之内,喇叭会进行报警、二极管发光显示2 总体设计框图本设计采用AT89C52作为主控芯片,蜂鸣器作为输出设备产生报警声,LCD1602能够实时的显示当前的的温度。
其中P3.3和P3.2外接按键,P0口用作LCD输出数据端口,P2.3接蜂鸣器端口。
单片机设计报告温度传感器

一、设计题目温度传感器二、设计背景温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学实验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。
目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。
现在所使用的温度计通常都是精度为1℃和0.1℃的水银、煤油或酒精温度计,这些温度计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,并且使用非常不方便。
本文所介绍与传统的温度计相比,具有读数方便、测温范围广、测温准确等优点,其输出温度采用数字显示,主要供测温要求准确的场所和科研实验室使用。
二、设计目的利用单片机及其外围电路完成远程温度检测系统设计。
通过本课题设计,学生能够掌握单片机硬件设计及其编程语言,掌握利用protel软件绘制电路图,提高根据实际情况进行单片机开发能力。
在电气工程及其自动化学科的培养方向上,提高针对具体问题的资料收集、自我学习、分析及处理能力。
学习protel软件,并绘制本课题的硬件电路图;熟悉单片机编程语言,并能用单片机C语言进行本课题的编程;通过本课题的设计,学习根据实际情况进行合理设计的方法,并能选择合适的器件实现系统功能。
三、设计原理本设计是以51单片机为核心的温度传感器设计,该系统以STC89C516RD单片机为中心控制单元,由数码管显示模块,蜂鸣器警报模块组成,并预设温度报警上下限,系统启动后可以实时采集环境中的温度,并且当温度超出上下限的值以后蜂鸣器报警.五、设计要求与内容1.用Protel等软件绘制原理图SCH的绘制;2.画出电路原理图,并对元件进行正确的封装、合理布局、布线,完成PCB图。
3.小组成员掌握相关操作,完成各自的演示实验;4.进行单片机仿真实验,按照设计任务书的要求对基础实验进行创新,达到预期目的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
泰州职业技术学院电子与信息工程系课程名称: 51单片机开发课题名称:用1602LCD与DS18B20设计的温度报警器班级: 10信息课题小组成员:林淑云朱翠竹刘苏慧指导老师:**摘要现代社会是信息社会,随着现代农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度,所以对于温度的测量控制具有十分重要的意义。
随着全球温度的普遍升高,高温火灾更是无处不在:电气线路短路、过载、接触电阻过大等引发高温火灾;静电产生高温火灾;雷电等强电入侵导致高温火灾;最主要是机房内电脑、空调等用电设备长时间工作,导致设备老化,空调发生故障,而不能降温。
因此,机房内所属的电子产品发热快,在短时间内机房温度升高超出设备正常温度,导致系统瘫痪或产生火灾,这时温度报警系统就会发挥应有的功能。
本课题介绍的就是利用温度传感DS18B20制作的温度报警器,自动测量当前环境温度。
由单片机AT89C52控制,并通过1602LCD显示,若当前环境温度超过此温度,系统发出报警。
目录一、系统总体设计要求二、系统硬件设计三、系统程序设计四、调试与性能分析五、源程序清单六、心得体会一、系统总体设计要求1.本设计采用集成温度传感器的的s18b20,设计一个数字显示的温度报警器。
定安全温度值范围为20°C~30°C(可根据具体需要在程序中进行调整),对在这一范围内的温度变化采集后送入A/D转换器,A/D转换器的模拟电压范围为0~5V。
例如传感器采集的温度为25°C,则对应液晶显示器的显示值为25°C。
而温度高出30°C或者低于20°C时,不在安全温度范围之内,喇叭会进行报警、二极管发光显示2 总体设计框图本设计采用AT89C52作为主控芯片,蜂鸣器作为输出设备产生报警声,LCD1602能够实时的显示当前的的温度。
其中P3.3和P3.2外接按键,P0口用作LCD输出数据端口,P2.3接蜂鸣器端口。
详细原理图见附件设计框图如图一所示。
按键主控芯片(89C52)LCD显示蜂鸣器二、系统硬件设计1 主控芯片设计中所采用主控芯片为AT89C52。
因其价格便宜,在市场上已经很成熟,各个方面都能够满足设计要求故选择它。
其采用标准双列直插式引脚DIP-40大规模集成电路封装。
它的引脚排列如下图二所示图二AT89C52的引脚排列引脚介绍:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写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口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上2、液晶模块显示原理:在智能控制系统中越来越多的使用了液晶显示屏LCD。
LCD是一种介于液体和固体之间热力学的中间稳定相,它本身不会发光,是利用外部光的反射原理进行显示。
液晶显示功耗小,字形美观,在系统中可用集成电池来供电。
字符型液晶显示模块是一种专门用于字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2,40*行等的模块,下面以1602字符型液晶显示器为例介绍其用法:1.1602LCD 采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表所示:2.1602液晶模块内部的控制器共11条指令:(1).清屏指令功能:<1> 清除液晶显示器,即将DDRAM 的内容全部填入"空白"的ASCII 码20H;<2> 光标归位,即将光标撤回液晶显示屏的左上方; 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0清显示 0 0 0 0 0 0 0 0 0 1<3> 将地址计数器(AC)的值设为0。
(2).光标归位指令功能:<1> 把光标撤回到显示器的左上方;<2> 把地址计数器(AC)的值设置为0;<3> 保持DDRAM的内容不变。
(3).进入模式设置指令功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。
参数设定的情况如下所示:(4).显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标是否闪(5).设定显示屏或光标移动方向指令功(6).功能设定指令功能:设定数据总线位数、显示的行数及字型。
参数设定的情况如下:(7).设定CGRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。
(8).设定DDRAM地址指令能:设定下一个要存入数据的CGRAM的地址。
功能:<1> 读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;<2> 读取地址计数器(AC)的内容。
(10).数据写入DDRAM或CGRAM指令一览功能:<1> 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;<2> 将使用者自己设计的图形存入CGRAM。
(11).从CGRAM或DDRAM读出数据的指令一览功能:读取DDRAM或CGRAM中的内容。
3、DS18B20温度传感器介绍传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。
美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
“一线总线”独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的DS18B20体积更小、更经济、更灵活。
使你可以充分发挥“一线总线”的优点。
同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小[8]。
1. DS18B20的特性 [9](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.DS18B20内部结构及DS18B20的管脚排列64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。
不同的器件地址序列号不同。
DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。
DS18B20的引脚定义:(1)DQ为数字信号输入/输出端(2)GND为电源地(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)(4)NC 空三、系统程序设计//名称:用1602LCD与DS18B20设计的温度报警器(含ROM CODE,温度上下限显示)//说明:本例将报警器温度设为高:70摄氏度,低-20摄氏度,当DS18B20感知温度达到此临界值时,对应的LCD闪烁,且发出报警声音。
//本例还可以单独显示DS18B20的ROM CODE及报警温度上下限。
#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}sbit HI_LED=P2^3;sbit LO_LED=P2^6;sbit DQ=P3^2;sbit BEEP=P1^5;sbit RS=P1^0;sbit RW=P1^1;sbit EN=P1^2;sbit k1=P3^5;sbit k2=P3^4;sbit k3=P3^6;uchar code RomCodeStr[]={" -- ROM CODE -- "};ucharRomCode[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};uchar code Temp_Disp_Title[] = {" Current Temp : "};uchar Current_Temp_Display_Buffer[] = {" TEMP: "};uchar code Temperature_Char[8] = {0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00};uchar code Alarm_Temp[] = {"ALARM TEMP Hi Lo"}; uchar Alarm_HI_LO_STR[] = {"Hi: Lo: "}; uchar temp_data[2] = {0x00,0x00};uchar temp_alarm[2] = {0x00,0x00};uchar display[5] = {0x00,0x00,0x00,0x00,0x00}; uchar display1[3] = {0x00,0x00,0x00};uchar code df_Table[] = {0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};char Alarm_Temp_HL[2] = {20,-20};uchar CurrentT=0;uchar Temp_Value[]={0x00,0x00};uchar Display_Digit[]={0,0,0,0};bit HI_Alarm=0,LO_Alarm=0;bit DS18B20_IS_OK =1;uint Time0_Count = 0;void DelayXue(int x){uchar i;while(x--) for(i=0;i<200;i++);}////uchar Busy_Check(){uchar LCD_Status;RS=0;RW=1;EN=1;DelayXue(1);LCD_Status=P0;EN=0;return LCD_Status;}void Write_LCD_Command(uchar cmd) {while ((Busy_Check()&0x80)==0x80); RS=0;RW=0;EN=0;P0=cmd;EN=1;DelayXue(1);EN=0; }void Write_LCD_Data(uchar dat){while ((Busy_Check()&0x80)==0x80); RS=1;RW=0;EN=0;P0=dat;EN=1;DelayXue(1);EN=0;}void Set_LCD_POS(uchar p){Write_LCD_Command(p |0x80);}void Initialize_LCD (){Write_LCD_Command(0x38); DelayXue(1);Write_LCD_Command(0x01); DelayXue(1);Write_LCD_Command(0x06); DelayXue(1);Write_LCD_Command(0x0c); DelayXue(1);}void Write_NEW_LCD_Char(){uchar i;Write_LCD_Command(0x40);for (i=0;i<8;i++)Write_LCD_Data(Temperature_Char[i]); }void Delay(uint num){while(--num );}//初始化DS18B20uchar Init_DS18B20(){uchar status;DQ=1;Delay(8);DQ=0;Delay(90);DQ=1;Delay(8);status=DQ;Delay(100);DQ=1;return status; //初始化成功时返回0}//读一字节uchar ReadOneByte(){uchar i,dat=0;DQ=1;_nop_();for (i=0;i<8;i++){DQ=0;dat >>=1; DQ=1;_nop_();_nop_();if(DQ) dat |=0x80;Delay(30);DQ=1;}return dat;}//写一字节void WriteOneByte(uchar dat){uchar i;for (i=0;i<8;i++){DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1;}}//读取温度值void Read_Temperature(){if(Init_DS18B20() ==1) //DS18B20故障DS18B20_IS_OK=0;else{WriteOneByte(0xcc); //跳过序列号WriteOneByte(0x44); //启动温度转换Init_DS18B20();WriteOneByte(0xcc); //跳过序列号WriteOneByte(0xbe); //读取温度寄存器Temp_Value[0]=ReadOneByte(); //温度低8位Temp_Value[1]=ReadOneByte(); //温度高8位Alarm_Temp_HL[0]=ReadOneByte(); //报警温度THAlarm_Temp_HL[1]=ReadOneByte(); //报警温度TLDS18B20_IS_OK=1;}}//设置DS18B20的温度报警值void Set_Alarm_Temp_Value(){Init_DS18B20();WriteOneByte(0xcc); //跳过序列号WriteOneByte(0x4e); //将设定的温度报警值写入DS18B20WriteOneByte(Alarm_Temp_HL[0]); //写THWriteOneByte(Alarm_Temp_HL[1]); //写TLWriteOneByte(0x7f); //12位精度Init_DS18B20();WriteOneByte(0xcc); //跳过序列号WriteOneByte(0x48); //温度报警值存入DS18B20}void Display_Temperature(){uchar i;uchar t =150;uchar ng =0;char Signed_Current_Temp;//if((Temp_Value[1]&0xF8)==0xF8){Temp_Value[1]=~Temp_Value[1];Temp_Value[0]=~Temp_Value[0]+1;if (Temp_Value[0]==0x00) Temp_Value[1]++;ng = 1;}Display_Digit[0]=df_Table[ Temp_Value[0] & 0x0F ];CurrentT=((Temp_Value[0] & 0xF0)>>4)|((Temp_Value[1] & 0x07)<<4);Signed_Current_T emp = ng? -CurrentT:CurrentT;HI_Alarm =Signed_Current_T emp >=Alarm_Temp_HL[0]?1:0;LO_Alarm = Signed_Current_Temp <=Alarm_Temp_HL[1]?1:0;Display_Digit[2]=CurrentT/10;Display_Digit[1]=CurrentT%10;Current_Temp_Display_Buffer[10]=Display_Digit[0]+'0';Current_Temp_Display_Buffer[9]='.';Current_Temp_Display_Buffer[8]=Display_Digit[1]+'0';Current_Temp_Display_Buffer[7]=Display_Digit[2]+'0';if (Display_Digit[2]==0)Current_Temp_Display_Buffer[8]=' ';if (ng){if(Current_Temp_Display_Buffer[8] == ' ')Current_Temp_Display_Buffer[8] = '-';else if(Current_Temp_Display_Buffer[7] == ' ')Current_Temp_Display_Buffer[7] = '-';elseCurrent_Temp_Display_Buffer[6] = '-';}Set_LCD_POS(0x00);for(i=0;i<16;i++) Write_LCD_Data( Temp_Disp_Title[i]);Set_LCD_POS(0x40);for(i=0;i<14;i++)Write_LCD_Data( Current_Temp_Display_Buffer[i] );Set_LCD_POS(0x4D);Write_LCD_Data(0xdf);Set_LCD_POS(0x4E);Write_LCD_Data('C');}void TO_INT() interrupt 1{TH0=-1000/256;TL0=-1000%256;BEEP=!BEEP;if(++Time0_Count==400){Time0_Count=0;if(HI_Alarm) HI_LED=~HI_LED;else HI_LED=0;if(LO_Alarm) LO_LED=~LO_LED;else LO_LED=0;TR0=0;}}void Display_Rom_Code(){uchar i,t;Set_LCD_POS(0x40);for(i=0;i<8;i++){t=((RomCode[i]&0xF0)>>4);if(t>9) t += 0x37;else t +='0';Write_LCD_Data(t);t = RomCode[i] &0x0F;if(t>9) t += 0x37;else t +='0';Write_LCD_Data(t);}}void Read_Rom_Code(){uchar i;Init_DS18B20();WriteOneByte(0x33);for (i=0;i<8;i++) RomCode[i] = ReadOneByte();}void Display_RomCode(){uchar i;Set_LCD_POS(0x00);for (i=0;i<16;i++)Write_LCD_Data(RomCodeStr[i]);Read_Rom_Code();Display_Rom_Code();}void Disp_Alarm_T emperature(){uchar i,ng;ng=0;if(Alarm_Temp_HL[0]<0){Alarm_Temp_HL[0]=~Alarm_Temp_HL[0] +1;ng=1;}Alarm_HI_LO_STR[4]=Alarm_Temp_HL[0]/100+'0'; Alarm_HI_LO_STR[5]=Alarm_Temp_HL[0]/10%10+'0'; Alarm_HI_LO_STR[6]=Alarm_Temp_HL[0]%10+'0';if(Alarm_HI_LO_STR[4]=='0') Alarm_HI_LO_STR[4]=' ';if(Alarm_HI_LO_STR[4]==' ' && Alarm_HI_LO_STR[5]=='0')Alarm_HI_LO_STR[5]=' ';if (ng){if(Alarm_HI_LO_STR[5]==' ') Alarm_HI_LO_STR[5]='-';elseif(Alarm_HI_LO_STR[4]==' ') Alarm_HI_LO_STR[4]='-';elseAlarm_HI_LO_STR[3]='-';}ng=0;if(Alarm_Temp_HL[1]<0){Alarm_Temp_HL[1]=~Alarm_Temp_HL[1]+1;ng=1;}Alarm_HI_LO_STR[12]=Alarm_Temp_HL[1]/100+'0';Alarm_HI_LO_STR[13]=Alarm_Temp_HL[1]/10%10+'0';Alarm_HI_LO_STR[14]=Alarm_Temp_HL[1]%10+'0';if(Alarm_HI_LO_STR[12]=='0') Alarm_HI_LO_STR[12]=' ';if(Alarm_HI_LO_STR[12]==' ' && Alarm_HI_LO_STR[13]=='0')Alarm_HI_LO_STR[13]=' ';if (ng){if(Alarm_HI_LO_STR[13]==' ') Alarm_HI_LO_STR[13]='-';elseif(Alarm_HI_LO_STR[12]==' ') Alarm_HI_LO_STR[12]='-';elseAlarm_HI_LO_STR[11]='-';}Set_LCD_POS(0x00);for (i=0;i<16;i++) Write_LCD_Data(Alarm_Temp[i]);Set_LCD_POS(0x40);for (i=0;i<16;i++) Write_LCD_Data(Alarm_HI_LO_STR[i]);}void main(){uchar Current_Operation=1;Initialize_LCD();IE=0x82;TMOD=0x01;TH0=-1000/256;TL0=-1000%256;TR0=0;HI_LED=0;LO_LED=0;Set_Alarm_Temp_Value();Read_Temperature();Delay(50000);Delay(50000);while(1){if(k1==0) Current_Operation =1;if(k2==0) Current_Operation =2;if(k3==0) Current_Operation =3;switch (Current_Operation){case 1:Read_Temperature();if(DS18B20_IS_OK){if(HI_Alarm==1||LO_Alarm==1)TR0=1;else TR0=0;Display_Temperature();}DelayXue(100);break;case 2:Read_Temperature();Disp_Alarm_Temperature();DelayXue(100);break;case 3:Display_RomCode();DelayXue(50);break;}}}四、调试与性能分析1功能说明该温度报警器电路是由但是18B20温度传感器作为温度传感器材,由AT89C2052单片机进行数据处理.,由电脑USB接口供电,也可外接6V~16V的直流电源.温度显示(和控制)的范围为:-55℃到125℃之间,精度为1℃,也就是显示整数。