温度检测系统设计方案

合集下载

温湿度监测系统设计

温湿度监测系统设计

温湿度监测系统设计简介温湿度监测系统设计是指设计一种能够实时监测环境温度和湿度的系统。

该系统可以广泛应用于许多领域,如农业、生物实验室、供应链管理和建筑管理等。

系统架构温湿度监测系统的基本架构由以下几个组件组成:传感器传感器是温湿度监测系统的核心组件,用于实时采集环境温度和湿度数据。

常见的传感器类型包括温度传感器和湿度传感器。

这些传感器可以通过多种接口(如模拟接口或数字接口)与系统主控板连接。

主控板主控板是温湿度监测系统的控制中心,负责调度传感器的工作,接收并处理传感器采集的数据。

主控板通常包括一个微处理器和一些I/O端口,用于与传感器和其他外部设备进行通信。

数据存储温湿度监测系统需要一个数据存储设备来存储传感器采集的数据。

这可以是一个本地数据库,也可以是一个云端存储解决方案。

数据存储设备需要提供高可靠性和灵活性,以满足系统运行和数据分析的需求。

用户界面温湿度监测系统需要一个用户界面,以便用户可以实时监测环境的温湿度数据。

用户界面可以是一个网页应用程序或一个移动应用程序,通过与主控板或数据存储设备进行通信,显示和更新温湿度数据。

系统设计考虑因素在设计温湿度监测系统时,需要考虑以下因素:传感器选择选择适合特定应用场景的传感器。

不同的传感器有不同的测量范围、精度和响应时间等特性。

根据具体需求选择合适的传感器以确保系统性能和准确性。

数据采集频率根据应用需求和资源限制,确定数据采集的频率。

如果需要更高的实时性,可以选择更高的采样频率。

然而,较高的采样频率可能会增加系统的数据处理和存储需求。

数据存储和处理选择适当的数据存储和处理方案。

可以选择本地数据库来存储数据,也可以选择将数据上传到云端进行存储和分析。

确保数据存储和处理方案具备良好的可靠性和性能,以满足系统的要求。

用户界面设计设计一个用户友好的界面,使用户能够方便地查看和管理温湿度数据。

用户界面应具备良好的可用性和可扩展性,以支持不同平台和设备。

系统工作流程温湿度监测系统的工作流程通常包括以下几个步骤:1.启动系统:用户启动系统,主控板开始工作。

温度检测系统设计报告模板

温度检测系统设计报告模板

温度检测系统设计报告模板1. 引言温度检测是现代社会中广泛应用于各个领域的一项重要技术。

不论是工业生产中的温控系统,还是医疗领域中的体温监测,都需要可靠准确的温度检测系统来提供数据支持。

本报告旨在介绍一种基于传感器技术的温度检测系统的设计方案。

2. 系统设计2.1 系统概述本温度检测系统主要由以下几个部分组成:- 传感器模块- 数据采集模块- 数据处理模块- 数据显示模块2.2 传感器模块传感器模块是温度检测系统的核心部分,用于实时感知周围的温度信息。

常见的温度传感器有热电偶、热敏电阻和半导体温度传感器等。

在本设计方案中,我们选择了半导体温度传感器作为主要传感器。

2.3 数据采集模块数据采集模块用于将传感器模块采集到的温度数据进行模拟转数字(A/D)转换,并将其转化为计算机可读的数据传输格式,如数字信号或模拟信号。

常用的数据采集芯片有MAX31855 和ADS1115 等。

2.4 数据处理模块数据处理模块接收从数据采集模块传输过来的温度数据,并进行必要的数据处理和分析。

其中包括常见的数据滤波、校准和温度单位转换等操作。

此外,如果需要实现更复杂的功能,如报警、数据存储等,也可在该模块进行相应的逻辑设计。

2.5 数据显示模块数据显示模块将处理后的温度数据以直观的方式进行展示,供用户实时监测和观察。

常见的数据显示方式包括数码管、液晶屏、计算机图形界面等。

3. 系统实现3.1 硬件实现在硬件实现方面,我们选用了Arduino 控制板作为主控制器,并通过相关传感器模块和数据采集模块与之连接。

具体连接方式可参考相关文档和示例。

3.2 软件实现在软件实现方面,我们采用了Arduino 的开发环境进行程序编写和上传。

具体程序设计涉及到传感器的读取和校准、数据传输和处理,以及数据显示等方面。

4. 系统测试为了验证系统的性能和准确性,我们进行了一系列的系统测试。

首先对传感器模块进行了静态和动态的温度测试,并与标准温度计进行了对比。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的温湿度检测系统的设计一、引言温湿度是常见的环境参数,对于很多应用而言,如农业、生物、仓储等,温湿度的监测非常重要。

因此,设计并实现一个基于单片机的温湿度检测系统是非常有实际意义的。

本文将介绍该温湿度检测系统的设计方案,并详细阐述其硬件和软件实现。

二、系统设计方案1.硬件设计(1)传感器选择温湿度传感器的选择非常关键,常用的温湿度传感器包括DHT11、DHT22、SHT11等。

根据不同应用场景的精度和成本要求,选择相应的传感器。

(2)单片机选择单片机是整个系统的核心,需要选择性能稳定、易于编程的单片机。

常用的单片机有51系列、AVR系列等,也可以选择ARM系列的单片机。

(3)电路设计温湿度传感器与单片机的连接电路包括供电电路和数据通信电路。

供电电路通常采用稳压电源,并根据传感器的工作电压进行相应的电压转换。

数据通信电路使用串行通信方式。

2.软件设计(1)数据采集单片机通过串行通信方式从温湿度传感器读取温湿度数据。

根据传感器的通信协议,编写相应的代码实现数据采集功能。

(2)数据处理将采集到的温湿度数据进行处理,可以进行数据滤波、校准等操作,以提高数据的准确性和可靠性。

(3)结果显示设计一个LCD显示屏接口,将处理后的温湿度数据通过串行通信方式发送到LCD显示屏上显示出来。

三、系统实现及测试1.硬件实现按照上述设计方案,进行硬件电路的实现。

连接传感器和单片机,搭建稳定的供电电路,并确保电路连接无误。

2.软件实现根据设计方案,使用相应的开发工具编写单片机的代码。

包括数据采集、数据处理和结果显示等功能的实现。

3.系统测试将温湿度检测系统放置在不同的环境条件下,观察测试结果是否与真实值相符。

同时,进行长时间的测试,以验证系统的稳定性和可靠性。

四、系统优化优化系统的稳定性和功耗,可以采用以下方法:1.优化供电电路,减小电路噪声和干扰,提高电路的稳定性。

2.优化代码,减小程序的存储空间和运行时间,降低功耗。

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

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

基于单片机的温度检测系统的设计一、引言随着科技的发展和社会的进步,温度检测在各个领域中起着至关重要的作用。

为了实现对温度变化的准确监测和控制,本文将介绍一种基于单片机的温度检测系统的设计方案。

二、系统概述本系统通过采集环境温度数据,并通过单片机进行处理和控制,实现对温度的实时监测和报警功能。

三、硬件设计3.1传感器选择在温度检测系统中,传感器是获取环境温度信息的关键部件。

本系统选择了精度高、稳定性好的数字温度传感器DS18B20作为温度采集装置。

3.2单片机选择单片机是系统的核心控制部分,负责采集传感器数据、处理数据并输出相应信号。

为了满足系统的实时性和稳定性要求,本系统选择了常用的S T M32系列单片机作为控制器。

3.3电路设计基于上述选择的传感器和单片机,我们设计了相应的电路接口和连接方式,确保传感器能够正常采集数据,并将数据传输给单片机进行处理。

四、软件设计4.1系统架构本系统采用分层架构设计,包括传感器数据采集层、数据处理层和用户界面层。

每一层都有相应的功能模块,实现温度数据的采集、处理和显示。

4.2数据采集和处理系统通过定时中断方式,周期性地读取传感器数据,并通过计算得到温度值。

采集到的数据经过滤波和校正处理后,传递给用户界面层进行显示。

4.3用户界面为了方便用户操作和监测温度变化,系统设计了简洁直观的用户界面。

用户可以通过L CD显示屏上的菜单操作,查看温度数值和设置相关参数,同时系统还具备温度报警功能。

五、系统测试与结果分析5.1硬件测试在硬件实现完毕后,进行了必要的硬件测试。

通过测量不同环境下的温度,并与实际温度进行比对,验证了系统的准确性和可靠性。

5.2软件测试系统软件的测试主要包括功能测试和性能测试。

通过模拟实际使用场景,测试了系统在不同条件下的温度检测和报警功能是否正常。

六、总结与展望本文介绍了基于单片机的温度检测系统的设计方案。

通过合理的硬件选型和软件设计,实现了对温度数据的实时监测和报警功能。

室内温湿度检测系统设计

室内温湿度检测系统设计

室内温湿度检测系统设计【摘要】本文介绍了室内温湿度检测系统设计的相关内容。

在分别从研究背景、研究目的和研究意义三个方面进行了论述。

在正文部分则详细阐述了传感器选择与布局设计、硬件系统设计、软件系统设计、系统性能测试以及数据处理与分析等内容。

在总结了设计的成果,并展望了未来的发展方向,同时也对系统的局限性进行了讨论。

通过本文的介绍,读者可以了解到室内温湿度检测系统设计的具体过程和关键技术,以及该系统在实际应用中的重要性和潜在的局限性。

【关键词】室内温湿度检测系统设计、传感器、布局设计、硬件系统、软件系统、性能测试、数据处理、设计总结、未来展望、局限性讨论。

1. 引言1.1 研究背景室内温湿度检测系统设计的研究背景对于室内环境的监测与调控起着至关重要的作用。

随着人们对居住环境舒适性的要求不断提高,室内温湿度的监测,实时控制以及数据分析变得愈发重要。

传统的温湿度检测方法主要依靠人工测量或使用简单的仪器进行监测,然而这些方法存在人力成本高、数据采集不精确等问题。

随着物联网技术的快速发展,室内温湿度检测系统的设计与应用变得更加便捷与智能。

通过使用各种传感器技术,可以实时监测室内温湿度数据,并通过硬件系统和软件系统实现数据处理与分析,从而实现智能化的室内环境监测与控制。

这不仅可以提高居住环境的舒适性,还可以节约能源资源,提高生活质量。

设计一套稳定、精准和智能的室内温湿度检测系统对于现代生活具有重要意义。

通过本研究,我们将探讨传感器选择与布局设计、硬件系统设计、软件系统设计、系统性能测试以及数据处理与分析等方面,为室内温湿度检测系统的设计与应用提供一定的参考和指导。

1.2 研究目的研究目的是为了设计一个能够准确监测和控制室内温湿度的系统,以提高室内环境的舒适度和健康性。

通过对室内温湿度的实时监测和分析,可以及时调整空调和加湿器的工作状态,确保室内空气质量达到最佳状态。

研究还旨在探索利用传感器技术和数据处理算法来实现智能化控制系统,从而提高能源利用效率和节约资源。

基于单片机的温湿度监测系统毕业设计

基于单片机的温湿度监测系统毕业设计一、引言在现代社会中,温湿度的监测在许多领域都具有重要意义,例如农业生产、仓储管理、工业制造以及室内环境控制等。

为了实现对温湿度的准确、实时监测,基于单片机的温湿度监测系统应运而生。

本毕业设计旨在设计并实现一种基于单片机的温湿度监测系统,以满足实际应用中的需求。

二、系统总体设计方案(一)系统功能需求分析本系统需要实现对环境温湿度的实时采集、数据处理、显示以及超限报警等功能。

能够在不同的环境中稳定工作,并具有较高的测量精度和可靠性。

(二)系统总体结构设计系统主要由单片机控制模块、温湿度传感器模块、显示模块、报警模块以及电源模块等组成。

单片机作为核心控制器,负责协调各个模块的工作,温湿度传感器用于采集环境温湿度数据,显示模块用于实时显示测量结果,报警模块在温湿度超限时发出警报,电源模块为整个系统提供稳定的电源。

三、硬件设计(一)单片机控制模块选择合适的单片机型号,如 STC89C52 单片机,其具有丰富的资源和良好的性价比。

单片机通过 I/O 口与其他模块进行通信和控制。

(二)温湿度传感器模块选用 DHT11 数字温湿度传感器,该传感器具有体积小、功耗低、测量精度高、响应速度快等优点。

通过单总线方式与单片机进行数据传输。

(三)显示模块采用液晶显示屏(LCD1602)作为显示设备,能够清晰地显示温湿度测量值。

通过并行接口与单片机连接。

(四)报警模块使用蜂鸣器和发光二极管作为报警装置,当温湿度超过设定的阈值时,蜂鸣器发声,发光二极管闪烁。

(五)电源模块设计稳定的电源电路,为整个系统提供 5V 直流电源。

可以采用电池供电或者通过电源适配器接入市电。

四、软件设计(一)系统主程序设计主程序主要负责系统的初始化、各模块的协调控制以及数据处理和显示。

首先对单片机进行初始化,包括设置 I/O 口状态、定时器和中断等。

然后循环读取温湿度传感器的数据,并进行处理和显示,判断是否超过阈值,若超过则启动报警。

多点温度检测系统设计

多点温度检测系统设计一、引言随着科技的不断发展,温度检测技术已经广泛应用于各个领域。

在很多实际应用中,需要对不同位置的温度进行实时监测,以保证系统的正常运行或者提供必要的温控信息。

本文将介绍一种多点温度检测系统的设计,该系统可以同时监测多个温度传感器的温度,并将数据传输到中央控制器进行处理和分析。

二、系统设计1.系统框架该多点温度检测系统由多个温度传感器、信号采集模块、数据传输模块和中央控制器组成。

各个组件之间通过有线或者无线方式连接,将温度数据传输到中央控制器。

2.温度传感器温度传感器是整个系统的核心组件,用于实时监测不同位置的温度。

传感器可以选择常见的热电偶、热敏电阻等类型,根据具体需求选择合适的传感器。

3.信号采集模块信号采集模块负责将温度传感器采集到的模拟信号转换为数字信号,以便于处理和传输。

采集模块应具备多通道输入功能,可以同时采集多个传感器的数据。

4.数据传输模块数据传输模块将信号采集模块采集到的数据传输到中央控制器。

传输方式可以选择有线的方式,如RS485、CAN、以太网等,也可以选择无线方式,如蓝牙、Wi-Fi、LoRa等。

5.中央控制器中央控制器负责接收和处理传输过来的温度数据,并进行分析和判断。

可以通过界面显示温度数据,设置温度报警阈值,并在超过阈值时进行报警。

控制器还可以将温度数据存储到数据库中,以便后续分析和查询。

中央控制器还可以与其他系统进行联动,实现温度控制、远程监控等功能。

三、系统实现1.温度传感器的选择和布置根据具体应用场景和需求选择合适的温度传感器,并合理布置在需要监测的位置。

传感器之间距离适当远离干扰源,以确保准确测量温度。

2.信号采集模块的设计设计适合的信号采集模块,能够满足多个传感器数据的采集和处理需求。

采集模块应具备高精度、低功耗和高稳定性的特点。

3.数据传输模块的选择和配置根据具体需求选择合适的数据传输模块,并进行配置。

有线传输模块的配置需要设置通信参数和地址等信息,无线传输模块需要配置网络参数和安全认证等。

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

基于单片机的温度检测系统设计温度检测系统是一种常见的电子设备,它可以用于监测环境温度并将数据传输到计算机或其他设备上。

基于单片机的温度检测系统是一种常见的设计方案,它可以通过使用单片机来实现温度检测和数据传输的功能。

本文将介绍基于单片机的温度检测系统的设计原理和实现方法。

一、设计原理基于单片机的温度检测系统的设计原理是通过使用温度传感器来检测环境温度,并将检测到的数据传输到单片机上进行处理和存储。

具体的设计流程如下:1.选择温度传感器温度传感器是温度检测系统的核心部件,它可以将环境温度转换为电信号并输出。

常见的温度传感器有热电偶、热敏电阻、半导体温度传感器等。

在选择温度传感器时,需要考虑其精度、响应时间、工作温度范围等因素。

2.连接温度传感器和单片机将温度传感器和单片机连接起来,可以使用模拟输入或数字输入方式。

模拟输入方式需要使用模拟转换器将传感器输出的模拟信号转换为数字信号,而数字输入方式则可以直接将传感器输出的数字信号输入到单片机中。

3.编写程序编写程序来实现温度检测和数据传输的功能。

程序需要包括温度传感器的初始化、数据采集、数据处理和数据传输等模块。

在数据传输模块中,可以选择使用串口通信、蓝牙通信或Wi-Fi通信等方式将数据传输到计算机或其他设备上。

二、实现方法基于单片机的温度检测系统的实现方法可以分为硬件设计和软件设计两个部分。

1.硬件设计硬件设计包括选择温度传感器、连接传感器和单片机、设计电路板等步骤。

在选择温度传感器时,可以选择DS18B20数字温度传感器,它具有精度高、响应速度快、工作温度范围广等优点。

连接传感器和单片机可以使用数字输入方式,将传感器输出的数字信号输入到单片机的GPIO口上。

设计电路板时,需要考虑电源、信号线路、滤波等因素。

2.软件设计软件设计包括编写程序、调试程序等步骤。

编写程序时,可以选择使用C语言或汇编语言等编程语言。

程序需要包括温度传感器的初始化、数据采集、数据处理和数据传输等模块。

温度检测系统设计报告.(DOC)

计算机硬件(嵌入式)综合实践设计报告温度检测系统设计与制作一.系统概述1. 设计内容本设计主要从硬件和软件部分介绍了单片机温度控制系统的设计思路,简单说明如何实现对温度的控制,并对硬件原理图和程序框图作了简洁的描述。

还介绍了在单片机控制系统的软硬件设计中的一些主要技术关键环节,该系统主要以AT89S52单片机为核心, 同时利用DS18B20温度传感器采集温度,采用4位LED 显示管实施信息显示。

AT89S52单片机设计的温度检测电路是本次设计的主要内容,是整个单片机温度控制系统设计中不可缺少的一部分,该系统对温度进行实时采集与检测。

本设计介绍的单片机自动控制系统的主要内容包括:系统概述、元器件选择、系统理论分析、硬件设计、部分软件设计及主要技术性能参数。

2. 元器件选择单片机AT89S52:1个22uF电容:2个4.7K电阻:1个万能板:1个杜邦线:若干单排排针:若干DS18B20温度传感器:2个4位LED显示管:1个二.软件功能设计及程序代码1.总体系统设计思想框图如下:单片机应用软件调试软件编程系统测试和调试系统集成硬件调试选择单片机芯片定义系统性能指标硬件设计2.主程序流程图3.DS18B20数据采集流程图4.程序代码①、温度记录仪#include<reg52.h>#include<intrins.h>#include<SYSTEM.h>#include<LCD1602.h>#include<18B20.h>#include<EEPROM.h>bit rec_flag=0;//记录温度标志uchar autobac_tim=0;//自动跳转延时uchar code logos[]="****NT MUSIC****"; uchar incmin=0;//计分钟数bit overflag=0;//数据溢出标志位uchar mode=1;//系统运行模式uchar tempmode;//模式缓存void init(){lcd_init();eeprom_init();/***********开机效果****************/ display(l1," Starting NT",1);longdelay(10);display(l2," Ver 3.0.1",1);longdelay(20);write_cmd(0x01);//清屏/*************************************/ sys_init();}void comms() //模式公共进程{time2times(); //时间格式转换avtemp=gettemp();//获取温度avtemp2avtemps();//温度格式转换date_counter();//获取当前日期date2dates();//日期格式转换display(l2+1,times,0);display(l2+11,avtemps,0);}void progs(uint i,uint k)//进度条{uint j;write_cmd(0xc0);for(j=0;j<(i*16/k);j++){write_lcddata(0xff);}}void normal_run() //无记录运行模式{comms();if(time[2]%10<5){display(l1,logos,1);}else{display(l1,"***",0);display(l1+13,"***",0);display(l1+3,dates,0);}incmin=0;}void recding_run() //记录模式运行模式{uint WDTPT;//临时写地址指针变量存放comms();recfrq2recfrqs();if(time[2]%10<5){if(mss>50) display(l1," ",0);elsedisplay(l1,"R",0);display(l1+1,"-NUM",0);display(l1+5,datcounts,0);display(l1+9,"**EV",0);display(l1+13,recfrqs,0);}else{display(l1,"***",0);display(l1+13,"***",0);display(l1+3,dates,0);} /***********定时记录*************/if(incmin>=recfrq)//触发记录功能{incmin=0;//1清除进入记录标志if(WDTP>10240) //20个扇区overflag=1;if(overflag==0)//如果数据尚未溢出{if(date_recf==1)//记录年-月-日(格式:'z'+年+月+日)为十制数值{date_recf=0;//清除记录日期标志write_isp(WDTP,'z');//日期起始标志write_isp(WDTP,date[0]);write_isp(WDTP,date[1]);write_isp(WDTP,date[2]);//记录年、月、日}/***********记录时间************/write_isp(WDTP,time[0]);write_isp(WDTP,time[1]);//记录时分/***********记录温度************/write_isp(WDTP,avtemp/100);write_isp(WDTP,avtemp%100);/**********记录加一*********/datcount++;/**********写回数据指针****************/WDTPT=WDTP;if(FDTP==512){del_isp(0);//清空记录表FDTP=0;}write_isp(FDTP,WDTPT/256);write_isp(WDTP,WDTPT%256);write_isp(WDTP,datcount/256);write_isp(WDTP,datcount%256);FDTP=WDTP;WDTP=WDTPT;//交互完成}if(overflag==1)//如果数据溢出{display(l1,"Error!",1);display(l2,"Data Overflow!",1);autobac_tim=0;while(autobac_tim!=3);display(l2," ",1);}}}void data_run() //查看记录模式{uchar i=0;bit bacf=0;uint cou_t=0;//计数缓存变量uchar temp=0;//临时数据缓存uint cd=0;//进度条统计数据autobac_tim=0;while(bacf==0){if(autobac_tim>10)bacf=1;display(l1,"Ready for Export",1);display(l2,"D-Date T-Temp L!",1);if(RI==1){autobac_tim=0;RI=0;ser_rec=SBUF;switch(ser_rec){case 'L': //格式化display(l1,"Format?",1);display(l2," Y-Yes N-No",1);while(1){if(RI==1) {RI=0;ser_rec=SBUF;autobac_tim=0;}if(ser_rec=='Y')//确定格式化{display(l1,"Formatting...",1);display(l2," ",1);eeprom_format();display(l1,"Format Successed",1);longdelay(3);break;}if(ser_rec=='N') break;if(autobac_tim>10)break;}autobac_tim=0;break;case 'D'://输出日期时间display(l1,"Exporting Date..",1);display(l2," ",1);RDTP=512;//将读指针放到首位cou_t=datcount;cd=0;while(cou_t!=0){if(RI==1) RI=0;if(SBUF=='B'){display(l1,"Export stopped",1);cd=0;longdelay(3);break;}temp=read_isp(RDTP);// 预读判断RDTP--;if(temp=='z'){RDTP++;prf_date();//输出年月日}prf_time(); //输出时间RDTP=RDTP+2;cou_t--;cd++;progs(cd,datcount);}if(datcount==0){display(l1,"No Data!",1);longdelay(3);}autobac_tim=0;break;case 'T'://温度输出display(l1,"Exporting Temp..",1);display(l2," ",1);RDTP=516;//将读指针放到首位cd=0;cou_t=datcount;while(cou_t!=0){if(RI==1) RI=0;if(SBUF=='B'){display(l1,"Export stopped",1);cd=0;longdelay(3);break;}temp=read_isp(RDTP);// 预读判断RDTP--;if(temp=='z'){RDTP=RDTP+6;}else{RDTP=RDTP+2;}prf_temp();cou_t--;cd++;progs(cd,datcount);}if(datcount==0){display(l1,"No Data!",1);longdelay(3);}autobac_tim=0;break;case 'B':bacf=1;break;}ser_rec=0;}}mode=tempmode; display(l2," ",1);}void adj_settings() //设置模式{uchar i=0;//Counterbit endadj=0;//调整完毕标志uchar ser_temp=0;//接收缓存write_cmd(0x01);//清屏times[5]=':';//恢复数点display(l1,"Set time- ",1);display(l1+11,"hour",0);display(l2+11,"[ ]",0);display(l2+1,times,0);display(l2+12,recfrqs,0);write_cmd(0xC1+i);write_cmd(0x0f);//显示闪烁光标autobac_tim=0;//初始化自动返回时间常数while(!endadj){if(RI==1) //接收到数据{RI=0;autobac_tim=0;//自动返回清零ser_temp=SBUF;if((ser_temp>47)&&(ser_temp<58))//进行数值判断{if(i<8)times[i]=ser_temp;if(i>8&&i<14)recfrqs[i-11]=ser_temp;if(i>=14)dates[i-13]=ser_temp;i++;}if(ser_temp=='F') i++;//往前一步if(ser_temp=='B') endadj=1;//退出调整switch(i) //显示处理{case 2:i++;display(l1+11,"min ",0);break;case 5:i++;display(l1+11,"sec ",0);break;case 8:i=i+3;display(l1+11,"frq ",0);break;case 14:i++;display(l1+4,"date year ",0);display(l2," ",1);break;case 17:i++;display(l1+11,"moun",0);break;case 20:i++;display(l1+11,"day ",0);break;case 23:endadj=1;break;}if(i<14){display(l2+1,times,0);display(l2+12,recfrqs,0);write_cmd(0xC1+i);}else{display(l2+3,dates,0);write_cmd(0xC1+i-11);}}if(endadj==1)//写回参数{time[0]=(times[0]-48)*10+times[1]-48;time[1]=(times[3]-48)*10+times[4]-48;time[2]=(times[6]-48)*10+times[7]-48;recfrq=(recfrqs[0]-48)*100+(recfrqs[1]-48)*10+recfrqs[2]-48;date[0]=(dates[2]-48)*10+dates[3]-48;date[1]=(dates[5]-48)*10+dates[6]-48;date[2]=(dates[8]-48)*10+dates[9]-48;}if(autobac_tim>10)endadj=1;}display(l2," ",1);write_cmd(0x0c);//正常显示}void main(){init();while(1){switch(mode){case 1:normal_run();break;case 2:recding_run();break;case 3:data_run();break;}if(RI==1){RI=0;ser_rec=SBUF;switch(ser_rec)case 'A':adj_settings();break;case 'R':mode=2;break;case 'N':mode=1;break;case 'H':tempmode=mode;mode=3;break;case 'D':ser_sents(dates);break;case 'T':times[5]=':';ser_sents(times);break;case 'W':ser_sents(avtemps);break;case 'C':ser_sents(datcounts);break;case 'F':ser_sents(recfrqs);break;}ser_rec=0;}}}void miao() interrupt 1 //秒产生中断{TH0=(65535-9200)/256;TL0=(65535-9200)%256;mss++;if(mss==100){mss=0;time[2]++;autobac_tim++;}if(autobac_tim==255)autobac_tim=244;//保持溢出if(time[2]>=60){time[2]=0;time[1]++;incmin++;}if(time[1]>=60){time[1]=0;time[0]++;}if(time[0]>=24){time[0]=0;dayincf=1;//天自增标志置位date_recf=1;//日期需要记录}/*将返回时间[时分秒*/}②、system.h/******系统I/O******//*****LCD I/O*******/sbit RS=P1^2;sbit LCDEN=P1^1;/*****DS18B20*******/sbit DS=P1^0;#define uchar unsigned char#define uint unsigned intuchar code num[]={'0','1','2','3','4','5','6','7','8','9'};/********时间相关变量************/uchar time[]={23,28,00};//时分秒(10进制数)uchar times[]="15:37:00";//时分秒(ASCII码)uchar mss=0;uchar date[]={11,11,11};//年月日(10进制数)uchar dates[]="2011-10-29";//年月日(ASCII码)bit dayincf=0;bit date_recf=0;//日期记录标志/***********记录频率变量*******************/ uchar recfrq=2; //记录频率(10进制数)uchar recfrqs[]="001"; //记录频率(ASCII码)uint datcount=0;//记录总数uchar datcounts[]="0000";/**************串口接收变量****************/ uchar ser_rec;/*************温度相关变量****************/ uint avtemp=0;uchar avtemps[]="00.0";void delay(uchar z){uchar x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void longdelay(uchar z){for(z;z>0;z--)delay(255);}void ser_sent(uchar sendata) //串口发送单字节{SBUF=sendata;while(TI!=1);TI=0;delay(1);}void ser_sents(uchar strings[]) //串口发送字符串{uchar i=0;while(strings[i]!='\0'){ser_sent(strings[i]);delay(20);i++;}ser_sent('\n');}void date_counter() //日期转变{uchar n;//月天数暂存uint year=2000+date[0];//将年转换为标准年if(dayincf==1){dayincf=0;switch(date[1])//根据月份制定月天数{case 1:n=31;break; case 2:if(year%4==0||year%400==0){n=29;} else {n=28;}break;case 3:n=31;break; case 4:n=30;break;case 5:n=31;break; case 6:n=30;break;case 7:n=31;break; case 8:n=31;break;case 9:n=30;break; case 10:n=31;break;case 11:n=30;break; case 12:n=31;break;}date[2]++;if(date[2]>n){date[2]=1;date[1]++;}if(date[1]>12){date[1]=1;date[0]++;}}}void sys_init() //系统初始化{EA=1;TMOD=0x21;TR1=1;REN=1;SM0=0;SM1=1;TH1=0xfA;TL1=0xfA;ET0=1;//允许定时器中断0TH0=(65535-9200)/256;TL0=(65535-9200)%256;// 定时器中断0初值TR0=1;//开中断(秒)ES=0;}void recfrq2recfrqs() //10进制记录频率转字符串{recfrqs[0]=num[recfrq/100];recfrqs[1]=num[recfrq%100/10];recfrqs[2]=num[recfrq%100%10];datcounts[0]=num[datcount/1000];datcounts[1]=num[datcount%1000/100];datcounts[2]=num[datcount%1000%100/10];datcounts[3]=num[datcount%1000%100%10];}void time2times()//10进制时间转字符串{times[0]=num[time[0]/10];times[1]=num[time[0]%10];times[3]=num[time[1]/10];times[4]=num[time[1]%10];if(mss<50) times[5]=':';else times[5]=' ';times[6]=num[time[2]/10];times[7]=num[time[2]%10];}void date2dates()//10进制日期转字符串{dates[2]=num[date[0]/10];dates[3]=num[date[0]%10];dates[5]=num[date[1]/10];dates[6]=num[date[1]%10];dates[8]=num[date[2]/10];dates[9]=num[date[2]%10];}void avtemp2avtemps()//10进制温度转字符串{avtemps[0]=num[avtemp/100];avtemps[1]=num[avtemp%100/10];avtemps[3]=num[avtemp%100%10];}③、LED1602.H#define l1 0x80#define l2 0xc0void write_cmd(uchar con){LCDEN=0;RS=0;P2=con;delay(2);LCDEN=1;delay(2);LCDEN=0;}void write_lcddata(uchar dat){LCDEN=0;RS=1;P2=dat;delay(2);LCDEN=1;delay(2);LCDEN=0;}void display(uchar line,uchar ttb[],bit sign) {uchar i=0;write_cmd(line);//第一行数据起始位while(ttb[i]!='\0'){write_lcddata(ttb[i]);i++;}if(sign==1)//覆盖所有空白{for(i;i<16;i++)write_lcddata(' ');}}void lcd_init(){LCDEN=0;write_cmd(0x38);//置功能write_cmd(0x0c);//显示开启write_cmd(0x06);//显示光标移动设置06右移04左移write_cmd(0x01);//清屏}三.硬件模块设计及原理图设计1.复位电路常见的上电复位和按键复位电路有上电复位、按键脉冲复位、按键电平复位。

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

温度检测系统设计
方案报告
一、芯片选择
1、温度传感器
目前使用接触式比较多,主要有热电式传感器,把温度变化转换为电阻变化的叫热电阻传感器,把温度变化转换为热电势变换的叫热电偶传感器。

热电阻传感器具有高温系数,高电阻率,物理特性稳定,良好的线性输出等优点,常用的有pt100,采用线性度较好的热电阻传感器pt100,该传感器的测温范围是-200到450摄氏度;完全符合要求,而且还可以拓展设计电路的测温范围。

这里我们供选择的有2线制,3线制和4线制,经过比较我们决定使用4线制的pt100传感器,4线制较2线和3线,误差更小,测量效果更好。

2、A/D转换器
在一般的电路中,我们常用a/d将模拟量转换成数字量。

对于a/d而言,最重的无外乎是转化的速度和转换的精度,由于题目的要求是分辨率0.1,因此使用12位以上的ad能很好的达到要求;对于速度,题目的要求并不高,一般的12位ad都能达到要求。

常用的12位串口连接式ad有tlc2543等,串口的连接使其能和单片机的连接更方便,可以节省更多的I/O口。

串口连接的tlc2543作
为数模转换芯片。

该芯片具有11路的输入通道的12位开关电容逐次逼近模数转换器,具有采样——保持功能;在整个的转换过程具有较小的转换误差,而且使用方便,连接线更少。

3.主控电路
目前单片机主要有8位机,16位机,32位机,虽然32位机在目前许多领域有广泛的应用,但是8位机和16位机仍是占据主导地位的,比较价格和性能我们选用了 89c51系列的8位单片机,51单片机对于此温度检查系统的要求完全可以满足。

4.数据显示电路
采用12864液晶显示数据,不仅可以直观的显示各种数据,而且可以使用12864的串口连接方式,加上电源线和地线,总共也就4根线,十分的方便,而且完全可以供拓展其他的显示用。

因此我们选用12864液晶作为显示。

5.语音报温模块
采用isd1420语音芯片,此种芯片可以对不同的声音进行录音播放,录放次数可反复数十万次,方便实用,也方便日后的使用自由选择度比较好,但其录音时间只有20秒,根据使用不同的地址控制脚可以选择播录的起始时间,使用方便,编程也相对简单很多。

isd1420不仅外围电路简单而且录放的音质较好,价格也不贵,20秒的录放时间完全够用了。

二、系统的具体设计与实现
根据设计要求,本系统可由图一所示部分组成。

相关文档
最新文档