单片机温度检测记录系统

合集下载

基于MEGA16单片机温度检测系统

基于MEGA16单片机温度检测系统

单片机课程设计报告基于MEGA16单片机温度检测系统-------张坤张磊黄大明(作品图)一,系统设计目的,用途,功能1,目的。

通过基于MEGA16芯片和DS18B20温度传感器控制温度,熟悉芯片的使用,温度传感器的功能,实验电路板的焊接,数码显示管的使用,汇编语言的设计。

锻炼团队合作能力,动手设计能力以及发现问题并且解决问题的能力。

2,用途。

温度是工业控制中主要的被控参数之一。

随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的使用。

单片机具有处理能强、运行速度快、功耗低等优点,使用在温度测量和控制方面,控制简单方便,测量范围广,精度较高。

本文设计了一种基于MEGA16单片机的温度测量和控制装置,能对环境温度进行测量,在温度过高时,蜂鸣器发出蜂鸣声,有利于保障工业控制中的安全性。

并且能根据温度给定值给出调节量,控制执行机构,实现调节环境温度的目的。

3,功能.DS18b20温度传感器温度的精确度高达0.1度,在许多工业控制中已经足够。

可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。

从用途上讲,该单片机类似于温度计,但用途又不仅仅集限于温度计,由于蜂鸣器的使用,编写程序后,超过预设温度后,蜂鸣器发出蜂鸣声,为工业控制的安全保驾护航。

二,硬件设计思想和电路原理图下图为温度传感器驱动电路图104电容硬件连接图如上.三,详细说明如何使用硬件单元1,七段数码管型号是LG5641AH(共阴极)的使用。

该显示管总共有12 个引脚,包括a-g和dp以及四个位选g1-g4。

将a-f分别和ATmega芯片的PB1-PB6连接,g1-g4分别和PD0-PD3连接。

2,蜂鸣器的连接。

蜂鸣器的两个引脚分别和ATmega芯片的PC2,PC1连接,其中,前者接负极,后者接正极。

3,DS18B20温度传感器的连接。

基于AT89C2051单片机的大气温度采集和记录系统

基于AT89C2051单片机的大气温度采集和记录系统
第 2期
21 0 0年 4月




No 2 .
MI CROP R0C S0RS ES
Ap ., 01 r 2 0
基 于 A 8 0 片 机 的大气 温 度 采 集 和 记 录 系统 T9 25 C 1单
张 明 杰
( 海盐 湖元通 钾肥 有 限公 司 , 尔木 8 6 0 ) 青 格 1 0 0 摘 要 : 统 以 A 8 C 0 1单 片 机 为 核 心 , 对 大 气 温 度 进 行 定 时 测 量 。测 量 范 围 为 系 T 9 25 能

c n so e 2 6 d t m. I lo pr vd s RS 3 ntra e whc a o a tr 5 a u tas o ie 2 2 i e c ih c n c mmu ia e wih t e PC. f n c t t h Ke wo ds: mo ph r e e a u e; i g e—c p; 23 ntra e y r At s e e tmp r t r S n l hi RS 2 i e c f
A 8 C 0 1 一 款 低 电压 , 性 能 的 C S8 T9 25 是 高 MO
A T 8
竺I
TX D RXD 2 33 通 讯接 口

9 C 0
上 .
ቤተ መጻሕፍቲ ባይዱ位单 片 机 , 内 含 2 ye 片 kbts的 可 反 复 擦 写 的 只 读
F s 程序存储器和 18bt 的随机存取数据存储 lh a 2 y s e 器( A , R M)器件 采 用 A ME T L公 司 的高 密 度 、 非易 失 性 存储 技术 生产 , 容标 准 MC 5 兼 S一 1指令 系统 , 内

基于单片机的智能体温检测系统设计

基于单片机的智能体温检测系统设计

基于单片机的智能体温检测系统设计摘要:由于新冠疫情的爆发给大众的生活带来了巨大变化,为了满足疫情条件下对温度快速测量的需求,采用无接触式测温既有效规避病毒传染风险,又可以第一时间检测疑似病例。

在此基础上添加口罩识别功能极大减轻了工作人员人工识别的负担,为防疫工作提供保障。

目前市场现有系统存在价格高以及不易携带的问题,并且目前市场应用的大部分装置都是单独的口罩识别或是无接触测温系统。

与之相比该系统将两种功能结合在同一系统中,具有体积小、便携、易操作等优点,为操作人员提供了极大便利。

此装置适用于学校、工厂、商场等人流密集场所,可以为进出人员提供检测服务。

人机交互式装置在疫情防控中发挥重要作用,节省人力物力,并且其效率远高于人工检测。

关键词:单片机;智能体温;检测系统;设计引言患新冠肺炎的主要症状是发热,因此体温检测是疫情防控的第一道防线。

以当今人流密集场所疫情防控情况为背景,设计并实现了一款基于STM32单片机的非接触式体温测量与身份识别系统。

该系统利用OPENMV对目标人脸进行快速检测,精准识别目标身份信息和口罩佩戴情况,利用MLX90614准确测量目标体表温度,实时将测量信息通过显示屏直观地展示并通过蓝牙发送到手机App上,实现系统逻辑结构的完整性与任务完成的效率最优解。

1系统的组成及其工作原理1.1系统的组成以单片机作为系统控制基础,利用传感器测量温度,通过通信和控制技术,形成温度测量控制系统。

具体可分为基于MLX90614红外测温传感器的温度检测模块、LCD12864液晶屏显示模块、4X4矩阵键盘模块、电源模块、复位模块、晶振模块、报警模块、继电器控制模块和震动传感器模块。

1.2系统工作原理该系统基于STC12C5A60S2单片机进行设计,包括电源电路、复位电路、晶振电路、红外测温传感器、震动传感器、LCD显示电路、蜂鸣器报警电路、键盘输入电路和继电器控制电路,通过MLX90614红外温度传感器实现温度数据的处理。

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

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

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

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

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

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

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

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

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

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

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

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

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

基于51单片机的温度检测系统_单片机C语言课题设计报告

基于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 一、设计功能·由单片机、温度传感器以及液晶显示器等构成高精度温度监测系统。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于51单片机的温度检测系统程序及仿真概要

基于51单片机的温度检测系统程序及仿真概要

基于51单片机的温度检测系统程序及仿真概要
1. 系统概述
本系统采用51单片机作为控制核心,通过外接温度传感器进行温度检测,并在数码管上显示当前温度值。

同时,当温度超过设定阈值时,通过蜂鸣器进行警示。

2. 系统硬件设计
本系统采用DS18B20温度传感器作为温度检测模块,通过单总线连接到51单片机的
P2.0口,同时将P2.1口连接到蜂鸣器。

数码管采用共阳极数码管,通过P0口进行控制。

系统程序采用C语言编写,在主函数中进行如下操作:
(1) 初始化DS18B20,设置温度传感器工作模式。

(2) 读取温度传感器输出的温度值,进行温度判断。

(3) 将温度值转换为数码管显示的格式并显示在数码管上。

(4) 如果温度超过设定阈值,触发蜂鸣器进行警示。

(5) 循环执行以上操作。

4. 系统仿真
5. 总结
本系统基于51单片机实现了温度检测功能,并且能够进行数码管显示以及蜂鸣器警示,具有一定的实用价值。

本系统的设计和仿真过程对于初学者来说都是一个非常好的练手项目,也有助于掌握单片机的基本编程技能和原理知识。

基于51单片机的万年历与温度检测报警系统

基于51单片机的万年历与温度检测报警系统

基于51单片机的万年历与温度检测报警系统摘要随着社会发展需求的改变,电子万年历是一个应用非常广泛的实用日常计时工具,带有显示世纪,年,月,日,星期,时,分,秒和按键可调时间及其按键设置闹钟的功能,同时具有月末自动更新,闰年补偿功能等多种功能。

温度检测报警系统也是在日常生活和工业应用非常广泛的工具,能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。

此系统是基于STC89C52单片机设计的,包含液晶显示模块,DS12C887实时时钟模块,DS18B20温度采集模块,键盘扫描模块,报警模块,HX1838红外接收头模块。

STC89C52作为控制核心,具有功耗低,功能强等特点,电压可选5VUSB 供电。

显示模块采用12864液晶动态显示,相对数码管而言经济实用,占用空间小,对于显示数字、字母最为合适,而且与单片机连线简单,占用IO口相对较少。

实时时钟芯片DS12C887是一款与DS12C885实时时钟兼容的替代产品,该器件提供RTC/日历、定时闹钟等功能,如果检测到主电源故障,该器件可自动切换到备用电源供电,DS12C887将石英晶体与电池集成在一起,在断电后仍可精确走10年。

温度检测报警模块采用数字式温度传感器DS18B20,该芯片具有精度高,测量范围广等优点,易与单片机连接,模块电路组成简单并同时具有温度报警功能。

关键词:STC89C52,DS12C887,DS18B20,12864液晶显示,电子万年历,采集周围设备温度、温度报警一、设计要求与方案论证1.1设计要求设计一个能够实现世纪,年,月,日,星期,小时,分,秒显示附带温度检测显示的实时时钟电子万年历,同时具有时间调节和闹钟设置功能,以及时间预设报警、温度报警、报警解除等功能。

该产品共设有四个按键,每个按键具有多种功能,充分利用各个按键。

也可利用红外遥控来进行实时调节,体现时尚方便的特性,并且通过编程还可以控制12864液晶显示,随心所欲。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于PT100热电阻的单片机温度检测系统设计

基于PT100热电阻的单片机温度检测系统设计

基于PT100热电阻的单片机温度检测系统设计摘要本文介绍了一种基于PT100热电阻的单片机温度检测系统设计。

该系统采用了Maxim的MAX31865芯片来测量PT100热电阻的电阻值,并通过单片机将电阻值转换为温度值。

该系统可以实现高精度的温度测量,并且具有较低的功耗和较高的稳定性。

背景在许多工业应用中,需要对温度进行精确的测量。

PT100热电阻是一种常用的温度传感器,它的电阻值随着温度的变化而变化。

由于PT100热电阻的电阻值变化很小,因此需要使用高精度的电路来进行测量。

单片机是一种常见的控制器,它可以方便地集成多种功能。

将单片机与PT100热电阻结合使用,可以实现精确的温度测量,并且具有较低的功耗和较高的稳定性。

设计硬件设计硬件设计采用了MAX31865芯片来测量PT100热电阻的电阻值。

MAX31865是一种高精度热电偶转换器,可以方便地测量PT100热电阻的电阻值。

MAX31865还提供了冗余检测和安全防护功能,可以提高系统的可靠性。

MAX31865芯片的引脚与单片机的引脚连接如下:MAX31865引脚单片机引脚SDI MOSISDO MISOSCK SCLKCS SS其中,MOSI、MISO、SCLK和SS是SPI总线的引脚,用于与MAX31865进行通信。

单片机的中断引脚连接到MAX31865的RDY引脚,用于检测MAX31865是否准备好进行测量。

PT100热电阻的引脚连接到MAX31865的RTD+和RTD-引脚。

为了减小测量误差,应尽量将RTD+和RTD-的长度保持一致,并且尽可能靠近MAX31865芯片。

软件设计软件设计采用了Arduino环境,可以方便地进行程序开发和调试。

首先需要初始化SPI总线和MAX31865芯片。

可以使用Arduino的SPI库来初始化SPI总线,使用MAX31865库来初始化MAX31865芯片。

MAX31865库提供了方便的接口来进行温度测量和数据读取。

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

基于单片机的温湿度检测系统硬件设计
ABSTRACT
As people's living and production levels continue to improve,Living environment and production environment for the requirements of most importance to people.Temperature and humidity control is a typical example, the temperature and humidity detection system came into being of modern production and life of a smart, fast, convenient and reliable detection systems, particularly in the industrial production will occur if the test was not precise Many industrial accidents.Such as chemical production in the detection of improper temperature can cause reduced productivity and product quality decline. And now the temperature and humidity detection system used is usually an accuracy of0.1℃or1℃mercury, kerosene or alcohol thermometer for temperature measurement and the use of traditional methods of physical analog humidity testing. The total scale of temperature and humidity testing is usually very close intervals, not easy to accurately distinguish, reading difficulties, and their relatively large heat capacity, the time required to reach thermal equilibrium longer, making it difficult to read accurate, and very inconvenient to use.

基于单片机的智能温度检测控制系统设计

基于单片机的智能温度检测控制系统设计

1 概述在人类的生活环境中,温度扮演着极其重要的角色。

温度是工业生产、现代农业乃至人们日常现实生活中经常会需要测量的一个重要物理量,如石油化工、环境控制、食品加工、实验研究、农业大棚等[1]。

温度的检测与控制是工业生产自动控制系统的重要任务之一,因此,各行各业对温度检测系统的便捷性、精确性、智能化要求越来越高。

由此可见,温度的检测和控制是非常重要的。

测量温度需要使用温度传感器,传统的温度传感器是模拟的,如热敏电阻、热电偶等[2]。

热敏电阻采集温度变化的实质是电阻值,所以在实际使用过程中需要额外的辅助器件将其转化为电压信号并且通过调整后送到模拟-数字转化器件(A/D)才能让单片机处理,数字温度传感器的产生解决了这个问题。

本文采用内部集成了A/D 转换器、电路结构简单的数字化温度传感器DS18B20,与单片机技术相结合实现智能温度检测控制系统的设计。

系统只需要占用单片机的一个I/O 口,就能够实现实时温度检测,这使得系统具有很强的扩展性,并且应用前景广泛、实用价值高。

2 系统总体设计本系统设计的基于单片机的智能温度检测控制系统,总体设计框图如图1所示,主要包括单片机最小系统、温度采集电路、实时时钟电路、独立式按键电路、显示电路、报警电路、加热电路和散热电路,其中主控芯片采用功耗低、性能高的单片机STC89C52,温度采集电路采用数字温度传感器DS18B20,显示电路采用LCD1602液晶显示器,报警电路采用蜂鸣器、一个LED 指示灯设计实现声光报警,独立式按键用来设置当前实时时间(年、月、日、时、分、秒)和设定不同时间段温度报警的上下限阈值。

当实测环境温度值大于设定时间段的温度上限值时,系统自动进入散热模式,直流电机运转带动风扇工作,同时蜂鸣器响、LED 指示灯点亮;若低于设定时间段的温度下限阈值,系统自动进入加热模式,继电器控制加热设备工作,同时蜂鸣器响、LED 指示灯点亮;若当前温度处于设定时间段的温度上下限阈值之间时,关闭散热、加热及报警,从而使温度控制在设定的范围内。

用单片机制作温度计

用单片机制作温度计

引言:单片机作为一种集成电路,可以在温度检测和测量方面提供精确的结果。

在本文中,我们将探讨如何使用单片机制作一个温度计,并进一步深入了解其工作原理和应用。

概述:温度计是测量环境温度的一种常用工具。

传统的温度计通常使用热敏电阻、热电偶或半导体传感器等元件来实现温度测量。

而用单片机制作的温度计具有精度高、反应迅速、可编程性强等优点,因此在许多应用领域得到了广泛的应用。

正文内容:一、单片机温度计的工作原理1.1模拟输入信号处理1.1.1温度传感器的选择1.1.2传感器输出电压的测量1.1.3模拟信号滤波和放大1.2数字输入信号处理1.2.1模数转换器的配置1.2.2采样频率的选择1.2.3数字信号处理算法二、单片机温度计的电路设计2.1单片机的选择和配置2.1.1单片机性能参数考虑2.1.2单片机引脚的分配2.1.3单片机与温度传感器的连接2.2电源系统设计2.2.1电源电压选择2.2.2电源过滤和稳压2.2.3低功耗设计2.3外设设计2.3.1显示屏的选择和接口设计2.3.2按键输入和控制电路设计2.3.3声音提示电路设计三、单片机温度计的软件设计3.1系统初始化3.1.1时钟和定时器配置3.1.2IO口初始化3.1.3中断系统配置3.2温度测量算法3.2.1温度传感器信号处理算法3.2.2温度计算方法选择3.2.3温度显示和存储3.3用户界面设计3.3.1温度显示界面设计3.3.2操作界面设计和控制逻辑四、单片机温度计的功能拓展4.1温度报警功能4.1.1温度报警阈值设定4.1.2报警方式选择4.2温度记录和数据存储4.2.1温度数据存储方式4.2.2数据查询和导出4.3多温度传感器接入4.3.1多传感器引脚分配4.3.2数据采集和处理五、单片机温度计应用实例5.1家用温度监测系统5.2工业温度控制系统5.3医疗设备温度监测总结:本文详细介绍了使用单片机制作温度计的方法。

通过对单片机温度计的工作原理、电路设计、软件设计等方面的讲解,读者可以了解到单片机温度计的制作流程和相应的技术要点。

基于51单片机的温湿度检测系统设计与实现

基于51单片机的温湿度检测系统设计与实现

3、无线通信模块
本系统的无线通信模块采用nRF24L01无线通信芯片。nRF24L01是一款具有 2.4GHz全球开放频率的无线通信芯片,具有低功耗、高速率、高稳定性等特点。 它将主控制器处理后的数据通过无线方式发送给接收器。
4、电源模块
本系统的电源模块采用9V电池供电。我们将9V电池通过稳压器转换为5V电源, 为整个系统提供稳定的电力支持。
三、测试与结果分析
为了验证本系统的可靠性和准确性,我们进行了一系列的测试。测试结果表 明,本系统能够准确快速地采集环境中的温湿度数据,并且能够稳定地将数据上 传至计算机或其他数据采集设备。同时,本系统的按键电路和液晶显示电路也表 现良好,用户可以通过按键调整系统的参数设置,并直观地查看温湿度数据。
2、液晶显示屏
为了方便用户直观地查看温湿度数据,本系统选用了一块16×2字符型液晶 显示屏。液晶屏的驱动电路简单易懂,且具有较低的功耗。
3、按键电路
为了便于用户对温湿度检测系统的参数进行设置,本系统加入了一个按键电 路。用户可以通过按键对系统的采样间隔、数据上传频率等参数进行设置。
4、串口通信电路
图1主程序流程图
2.温湿度采集模块
温湿度采集模块主要负责通过DHT11传感器采集环境中的温湿度数据。该模 块首先对DHT11传感器进行初始化,然后通过单总线接口接收传感器输出的温湿 度数据,最后对数据进行处理并存储。
3、液晶显示模块
液晶显示模块主要负责将温湿度数据显示在液晶屏上。该模块首先对液晶屏 进行初始化,然后根据主程序传递过来的温湿度数据,控制液晶屏的字符输出。
三、软件设计
本系统的软件设计主要分为以下几个步骤:
1、系统初始化:在系统上电后,首先进行各模块的初始化操作,包括DHT11 传感器、AT89C51单片机、nRF24L01无线通信芯片等。

基于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)基于单片机的温度测量系统摘要随着测温系统的极速的发展,国外的测量系统已经很成熟,产品也比较多。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

温度检测系统设计报告.(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)。

3Байду номын сангаас
3.1
本系统以STM32F103ZET6单片机为核心,采用温度传感器DS18B20进行温度检测,将数字温度信息传输到单片机中,在时钟方面采用外部时钟芯片DS1302,DS1302是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时。单片机通过采集温度时间信息后将温度时间数据传送到LCD上显示出来,并将数据通过串口通信通过MAX232传送到电脑中,硬件总体框图如下:
(4)按键触发串口传输存储的温度和时钟信息;
(5)温度测量精度:±1度。
1.3
本设计题我们小组摒弃了常规做法,加入了两项独特的创新实现方法:
(1)对于数据传送储存显示方面我们不使用24C02存储器,I2C存储器等储存器件,而是直接通过串口将数据传输的电脑中通过VB界面显示数据并将数据记录在电脑硬盘中。
2.1.3时间温度数据显示
方案1:采用数码管显示。
方案2:采用LCD显示器显示。
采用数码管显示时间温度数据操作方便,但需要用到的数码管数量甚多,占用I/O口较多,浪费I/O口的利用率,且只能显示数字。而使用LCD显示虽然在编程上有一定程度比数码管显示的复杂性高,但其占用的I/O资源较少,且能显示的内容比数码管丰富的多,不仅能显示数值还能显示英文。所以使用方案2.
方案3:新型可编程温度传感器DS18B20,精度高,成本低,易于采集信号。
利用热电偶或热敏电阻作为温度传感器,这类传感器至仪表之间通常都要用专用的温度补偿导线,而温度补偿导线的价格很高,并且线路太长,会影响测量精度,这是直接以模拟量形式进行采集的不可避免的问题。采用新型可编程温度传感器DS18B20进行温度检测可以避免热电偶或热敏电阻作为温度传感器所造成的测量精度误差过大等问题,同时DS18B20只需要一个I/O口便可以进行通信,它可以以更低的成本和更高的精确度实现温度检测。所以选择方案3。
图3-4 各寄存器详情
DS1302的控制字如图3-5所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
2
2.1
2.1.1温度传感器
目前使用接触式比较多,主要有热电式传感器,把温度变化转换为电阻变化的叫热电阻传感器,把温度变化转换为热电势变换的叫热电偶传感器。
方案1:热电阻传感器具有高温系数,高电阻率,物理特性稳定,良好的线性输出等优点,常用的有pt100等。
方案2:热电偶传感器具有结构简单,测量范围广,热惯性小,准确度高,输出信号远的优点,但价格较高。
物理与电子信息学院
题目:单片机温度检测记录系统
行政班级:
成员分组名单
学号:姓名:
选课班级:任课教师:成绩:
1
1.1
设计制作一台可检测和记录温度的系统。
1.2
(1) LCD显示实时时钟:年、月、日、时、分、秒;
(2)每30秒采样温度,LCD更新显示温度值;
(3)按键触发存储当前温度和时钟信息(年、月、日、时、分);
2.1.4数据的串口传送与储存显示
方案1:通过串口将数据传送到另一个单片机系统上显示,采用24C02存储器对数据进行储存。
方案2:通过串口将数据传送到PC机上并用VB程序编写的界面显示,采用PC机上的“D盘”对数据进行储存。
通过串口将数据从一个单片机传送到另一个单片机上设置较为简单,将数据存储到24C02存储器上,不易于对任意时间温度数据进行提取,而将数据传送到PC机上并用VB界面显示出来不仅美观而且信息量丰富,将数据储存在“D:\温度.TXT”目录下不仅存储量大,而且便于直观查看。所以使用方案2。
图3-1 硬件总体框图
3.2
3.2.1 时钟显示模块
时钟模块采用外部时钟DS1302进行计时,DS1302是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
(2)在设置时间日期,上限温度上,我们不仅仅采用了硬件按钮控制而且还加入了红外遥控控制。
与此同时,我们的温度测量精度在理论上能达到0.0625实际运行时也能达到0.1度,而实验所要求的仅为1摄氏度。另外,在DS1302芯片上加入了一个备用电源,使得主电源掉电时,时钟芯片仍然在随着时间的移动而实时更新。因此主电源再次上电时,时钟依然是准确的,而不必重新调过。
SCLK:串行时钟,输入,控制数据的输入与输出;
I/O:三线接口时的双向数据线;
CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。
DS1302有下列几组寄存器:
DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如下图3-4所示。
其管脚图以及此模块仿真图如图3-3(a)及3-3(b)所示。
(a) (b)
图3-3 DS1302管脚图与时钟模块仿真图
各引脚的功能为:
Vcc1:备用电源;Vcc2:主电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。在实物中,我们将vcc1与一颗3V的钮扣电池相连,从而实现时钟实时更新功能。
2.1.2时钟显示
方案1:采用内部时钟计时。
方案2:采用外部时钟芯片DS1302。
采用内部时钟计时,可以节省IO引脚,降低成本,但是内部振荡器使用阻容震荡,其精度不高,如果使用了串口、或者PWM等对时钟比较敏感的功能,会对时钟造成混乱。采用外部时钟芯片DS1302,不仅仅能对时间进行计时还可以对年、月、日、周进行计时,具有闰年补偿功能而且对于使用串口、或者PWM等对时钟比较敏感的功能,不会产生影响。如果接入外置电子电池的话在系统掉电的情况下还可以继续计时。所以选择方案2。
相关文档
最新文档