【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

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于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.