【TB作品】MSP430F5529 单片机,智能温控系统,DS18B20

2024-06-07 22:12

本文主要是介绍【TB作品】MSP430F5529 单片机,智能温控系统,DS18B20,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作品功能

本项目设计并实现了一个基于MSP430单片机的智能温控系统。系统可以实时显示当前温度,并且可以根据设置的临界值对环境进行加热或降温。主要功能如下:

  1. 实时显示当前温度。
  2. 显示并调整温度临界值,临界值可在20~35摄氏度之间调节。
  3. 当前温度高于(临界值+1)摄氏度时,绿灯亮,表示降温状态。
  4. 当前温度低于(临界值-1)摄氏度时,加热片工作,表示加热状态。
  5. 当前温度高于35摄氏度时,蜂鸣器报警。
  6. 设置温度临界值高于30摄氏度时,红灯亮,提醒避免设置温度过高。

作品的硬件材料

  1. MSP430F5529 单片机
  2. DS18B20温度传感器
  3. OLED显示屏(IIC接口)
  4. 绿灯(LED) 板子上有
  5. 红灯(LED) 板子上有
  6. 无源蜂鸣器
  7. 加热片

电子元器件连接

各元器件的连接如下:

  • DS18B20:VCC - VCC, DS - P15, GND - GND
  • OLED:GND - GND, VCC - VCC, SCL - P20, SDA - P22
  • 蜂鸣器:VCC - VCC, GND - GND, IN - P36
  • 加热片:VCC - VCC, GND - GND, IN - P23
  • 按键:P21, P11
  • 绿灯:P47
  • 红灯:P10

部分代码


int main(void)
{unsigned char dis[10];unsigned char time_cyc = 0;WDTCTL = WDTPW + WDTHOLD; /* Stop WDT *//* 初始化显示 */OLED_Init(); /* OLED初始化 */OLED_ShowString(0, 0, "DS18B20:");OLED_ShowString(0, 4, "SET:");display_set_temp();/*按键端口 */P1DIR &= ~BIT1;P1SEL &= ~BIT1;P1REN |= BIT1;P1OUT |= BIT1;P2DIR &= ~BIT1;P2SEL &= ~BIT1;P2REN |= BIT1;P2OUT |= BIT1;/* 绿灯端口 */P4DIR |= BIT7;/* 红灯端口 */P1DIR |= BIT0;/* 蜂鸣器端口  P3.6*/P3SEL |= BIT6;                       // P3.5-7.6 option selectP3DIR |= BIT6;                       // P3.5-7.6 outputs/* 加热片端口 */P2DIR |= BIT3;while (1){delay_ms(10);time_cyc = (time_cyc + 1) % 30;if (time_cyc == 1) /* 30 个10ms执行一次 */{temp_value = get_one_temperature(); /* 读取温度 */dis[0] = temp_value % 1000 / 100 + '0';dis[1] = temp_value % 100 / 10 + '0';dis[2] = '.';dis[3] = temp_value % 10 + '0';dis[4] = 'C';dis[5] = 0;OLED_ShowString(0, 2, dis);}/* 以下是根据温度控制 */if (temp_value > (set_temp + 10)) /* 3 实际温度高于(临界值+1)后绿灯亮表示降温。 */{P4OUT |= BIT7; /* 高电平 绿灯点亮 */P2OUT |= BIT3; /* 加热片不工作 */OLED_ShowString(0, 6, "cooling");}else if (temp_value < (set_temp - 10)) /* 4 实际温度低于(临界值-1)后加热片工作表示加热。 */{P4OUT &= ~BIT7; /* 绿灯不亮 */P2OUT &= ~BIT3; /* 低电平 加热片工作 */OLED_ShowString(0, 6, "heating");}else{P4OUT &= ~BIT7; /* 绿灯不亮 */P2OUT |= BIT3; /* 加热片不工作 */OLED_ShowString(0, 6, "        ");}/* 5 实际温度高于35摄氏度无源蜂鸣器报警。 */if (temp_value > 350){TBCCR6 = 500; //打开蜂鸣器 /* PWM占空比 500/1000  蜂鸣器响 */}else{TBCCR6 = 0; //关闭打开蜂鸣器}/* 6 设置温度时候,临界值高于30摄氏度,红灯亮,提醒避免设置温度过高。 */if (set_temp > 300){P1OUT |= BIT0; /* 高电平 红灯点亮 */}else{P1OUT &= ~BIT0;}/* 以下是按键处理   2 显示临界值,按键可以加减临界值,临界值在20~35之间可调。 *///按键1检测处理if (!(P1IN & BIT1)){while (!(P1IN & BIT1));if (set_temp < 350){set_temp += 10;}display_set_temp();}//按键2检测处理if (!(P2IN & BIT1)){while (!(P2IN & BIT1));if (set_temp > 200){set_temp -= 10;}display_set_temp();}}
}

全部代码


https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

在这里插入图片描述

这篇关于【TB作品】MSP430F5529 单片机,智能温控系统,DS18B20的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040442

相关文章

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

基于Python实现智能天气提醒助手

《基于Python实现智能天气提醒助手》这篇文章主要来和大家分享一个实用的Python天气提醒助手开发方案,这个工具可以方便地集成到青龙面板或其他调度框架中使用,有需要的小伙伴可以参考一下... 目录项目概述核心功能技术实现1. 天气API集成2. AI建议生成3. 消息推送环境配置使用方法完整代码项目特点

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

利用Python实现Excel文件智能合并工具

《利用Python实现Excel文件智能合并工具》有时候,我们需要将多个Excel文件按照特定顺序合并成一个文件,这样可以更方便地进行后续的数据处理和分析,下面我们看看如何使用Python实现Exce... 目录运行结果为什么需要这个工具技术实现工具的核心功能代码解析使用示例工具优化与扩展有时候,我们需要将