【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实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

使用Python实现表格字段智能去重

《使用Python实现表格字段智能去重》在数据分析和处理过程中,数据清洗是一个至关重要的步骤,其中字段去重是一个常见且关键的任务,下面我们看看如何使用Python进行表格字段智能去重吧... 目录一、引言二、数据重复问题的常见场景与影响三、python在数据清洗中的优势四、基于Python的表格字段智能去重