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

您所在的位置:网站首页 51单片机测温电路图 基于51单片机温度测量系统

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

2024-07-16 14:21| 来源: 网络整理| 查看: 265

基于51单片机温度测量系统 主要内容

本设计主要内容包括DS18B20数字温度传感器的接口连接、温度数据的读取、温度数据的显示以及超温报警功能的实现。

系统框架

系统主要由以下几部分组成:

温度传感器模块(DS18B20)显示模块(4位LED数码管)报警模块(蜂鸣器)主控模块(51单片机)按键控制模块(四个独立按键) 原理 (1)温度传感器模块(DS18B20)

简介:DS18B20是一款高精度的单总线数字温度传感器,广泛用于工业、家电、医疗设备等领域。它具有精度高、响应速度快、稳定性好等特点。

主要特点:

测量范围:-55℃到+125℃,精度为±0.5℃。 分辨率:可编程为9到12位。 通信方式:单总线(One-Wire)通信,仅需一个数据线即可实现与微控制器的通信。 电源电压:3.0V至5.5V。 独特ID:每个DS18B20都有一个唯一的64位序列号,便于多点数据采集。 应用领域:HVAC(供暖、通风与空调)系统、冷链物流监控、温度控制系统 接线方法:

VCC:连接到3.0V-5.5V电源。GND:接地。DQ:数据线,连接到单片机的I/O口,需外接一个4.7kΩ上拉电阻。 (2) 显示模块(4位LED数码管)

**简介:**4位LED数码管模块用于显示数据,广泛用于电子时钟、计数器、温度显示等领域。

主要特点:

显示内容:4位数码管可以显示0-9的数字以及部分字母。 驱动方式:通常采用共阳极或共阴极方式,需外接电阻限流。 接口方式:通过8个I/O口与单片机连接,分别控制每一位的显示。 亮度控制:可通过PWM调节亮度。 应用领域:电子时钟、温度显示器、计数器 接线方法:公共端:接正极(共阳)或负极(共阴)。 段选引脚:连接到单片机的I/O口,控制各段的点亮。

(3) 报警模块(蜂鸣器)

**简介:**蜂鸣器是一种发声器件,用于报警提示,分为有源蜂鸣器和无源蜂鸣器两种。

主要特点:

工作电压:通常为3V-12V。 发声原理:通过内部震动片震动发声,有源蜂鸣器内置驱动电路,无源蜂鸣器需外接驱动电路。 控制方式:通过单片机I/O口高低电平控制发声。 应用领域:安全报警系统、家电提示音、计时器 接线方法:

有源蜂鸣器: 正极:连接到电源正极或单片机I/O口。负极:接地。 无源蜂鸣器: 一端:连接到单片机I/O口。另一端:接地。 (4) 主控模块(51单片机)

简介:51单片机是一种经典的微控制器,具有成本低、开发方便、资源丰富等优点,广泛用于各种电子产品中。

主要特点:

内核:8位处理器,通常为8051或其改进型。 存储器:4KB-64KB程序存储器,128B-256B数据存储器。 I/O口:多达32个I/O口,可扩展更多I/O。 外设:内置定时器、串口、ADC、PWM等功能模块。 开发工具:支持多种开发工具和仿真器,易于调试。 应用领域:家电控制、工业自动化、智能家居 接线方法:电源:VCC连接到5V电源,GND接地。 I/O口:根据需要连接到传感器、显示器、蜂鸣器等外设。

硬件电路设计

1、晶振电路由一个晶振(X1)和两个电容(C1和C2)组成。这部分电路用于提供单片机(U1)所需的时钟信号。晶振的两端连接到XTAL1和XTAL2引脚,而电容则分别接地,稳定时钟信号

2、DS18B20是一种数字温度传感器,它通过单总线(1-Wire)协议与微控制器通信。通常,它的信号引脚会连接到单片机的P3.7口,通过拉高电平启动传感器并读取温度数据。

3、蜂鸣器(BUZ1)通过一个NPN三极管(Q1)控制。当单片机输出高电平信号到R1电阻时,三极管导通,蜂鸣器发声。蜂鸣器通常用于报警或提示音。

3、LED显示屏数码管通过多个引脚(A, B, C, D, E, F, G, DP)与单片机相连,每个引脚控制一个段。数码管的显示内容由单片机控制,常用于显示数字信息,如时间、温度等。

4、独立按键每个按键连接到一个单片机的IO口。按键用于用户输入,比如调整显示的内容或控制某些功能。当按键按下时,相关的IO口电平会发生变化,单片机检测到这个变化后执行相应的程序。

BTN1:手动报警 BTN2:手动取消报警 BTN3:设置温度阈值1 BTN4:设置温度阈值2

软件设计

在这里插入图片描述 main函数

#include "public.h" #include "ds18b20.h" #include "smg.h" #include "key.h" // 定义蜂鸣器引脚 sbit BEEP = P2^5; void main() { int temp_t = 31; // 温度报警阈值 u8 key = 0; u8 i = 0; // 计数器 int temp_value; // 存储温度值 u8 temp_buf[5]; // 数码管显示的段码数组 u16 j; // 用于蜂鸣器循环计数 ds18b20_init(); // 初始化DS18B20温度传感器 while (1) { i++; // 计数器递增 // 每隔50次循环读取一次温度值 if (i % 50 == 0) { temp_value = ds18b20_read_temperture() * 10; // 读取温度值并扩大10倍,保留一位小数 // 处理负温度 if (temp_value temp_t) { j = 200; // 初始化循环计数器 while (j--) { // 循环200次 BEEP = !BEEP; // 产生一定频率的脉冲信号 delay_10us(50); // 延时 } } } // 按键扫描与处理 key = key_scan(0); switch (key) { case 0: break; case 1: // 手动报警 j = 200; // 初始化循环计数器 while (j--) { // 循环2000次 BEEP = !BEEP; // 产生一定频率的脉冲信号 smg_display(temp_buf, 4); delay_10us(100); // 延时 } break; case 2: // 取消报警 temp_t = 999; break; case 3: // 设置阈值1 temp_t = 32; break; case 4: // 设置阈值2 temp_t = 27; break; } } } 程序设计思路

(1)系统初始化:初始化51单片机的各个功能模块,包括I/O口、定时器、中断等。 (2)温度数据读取:初始化DS18B20温度传感器。定时读取温度数据,并将数据保存在变量中。 (3)数据处理与显示:对读取到的温度数据进行处理,如转换为摄氏度。将处理后的温度数据通过4位LED数码管显示出来。 (4)报警功能:设置温度阈值,当温度超过阈值时,蜂鸣器发出报警声。提供手动报警和手动取消报警功能,通过按钮控制。

系统实现

(1)温度测量:使用C51单片机的IO口与DS18B20连接,通过单总线协议读取温度值。C语言编写的驱动程序将定期读取传感器的数据并进行处理。 (2)温度显示:将读取到的温度值转换为可以在数码管上显示的格式。单片机通过控制数码管的段码和位码,使温度值准确地显示在数码管上。 (3)用户输入控制:按键的检测采用定时扫描方式,避免按键抖动。根据按键的不同,可以实现功能选择和参数调整,比如设置报警温度阈值。 (4)温度报警:设定一个温度阈值,当检测到温度超过此阈值时,单片机输出高电平信号驱动蜂鸣器报警。用户可以通过按键设置和调整此阈值。 在这里插入图片描述

总结

本设计基于51单片机,实现了DS18B20温度传感器测温系统。系统通过DS18B20传感器读取环境温度,并将温度数据通过4位LED数码管显示出来。为了确保系统的实用性和安全性,当温度超过设定的阈值时,系统会通过蜂鸣器发出报警信号。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3