【单片机毕业设计选题24034】-基于STM32的手机智能充电系统

系统功能:

系统可以设置充电时长,启动充电后按设置的充电时长充电,充电时间到后自动

停止充电,中途检测到温度过高也会结束充电并开启风扇和蜂鸣器报警。

系统上电后,OLED显示“欢迎使用智能充电系统请稍后”,两秒钟后进入正常

页面显示。

第一行显示设定的充电时长(以分钟计)

第二行显示剩余的充电时长(以秒计)

第三行显示设置的温度阈值

第四行显示获取到的当前温度值

短按按键B4后启动充电

短按按键B5后增加充电时长

短按按键B6后减小充电时长

短按按键B7后增加温度设定阈值

短按按键B3后减小温度设定阈值

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

资料获取地址

系统主要功能模块代码

  /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *///在HAL库初始化串口1后调用HAL_Delay(100);SetUart1RxToInput();HAL_Delay(50);//uart1打开接收中断HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);InitOled();InitOledDisp();if(InitDS18B20()==0){//        printf("%s", "DS18B20初始化成功");//DS18B20在上电第一次读取时显示温度为85℃,这是正常的。//85℃是DS18B20在上电复位后在温度寄存器内的对应数字量,//这里DS18B20初始化成功后读一次值,避免出现85℃DS18B20GetTemp_SkipRom();}/* USER CODE END 2 */

系统控制功能:
 

//系统信息更新void SystemControl(void){static uint8_t updateCnt = 0;updateCnt++;   if(updateCnt>=SYSTEM_UPDATE_INTER){ds18b20Temp = DS18B20GetTemp_SkipRom();getTemp = (uint8_t)ds18b20Temp;if(getTemp>setTemp){chargingOn = false; //停止充电CHARGE_OFF();       //关闭继电器FAN_ON();       //打开风扇BUZZER_ON();    //打开蜂鸣器报警  }else    //温度恢复正常后关闭风扇和蜂鸣器{FAN_OFF();BUZZER_OFF();}}ChargingControl();}

系统显示:

//处理OLED显示内容void SystemDisplay(void){char textBuf[20];//显示设置的充电时长(分钟)sprintf(textBuf,"SetTime:%2dmin", setTimeMin);OledShowString(0, 0, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//显示剩余的充电时间(秒)sprintf(textBuf,"Remain:%4dsec", remainTime);OledShowString(0, 2, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//显示设置的超温温度阈值sprintf(textBuf,"SetTemp:%2d", setTemp);OledShowString(0, 4, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//显示获取到的温度值sprintf(textBuf,"GetTemp:%2d", getTemp);  OledShowString(0, 6, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符}

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哨兵1SAR空间数据包协议数据单元文档(五)

《哨兵1SAR空间数据包协议数据单元》文档对数据包的结构进行了详细描述,并提供了用户数据的格式和解码算法。 原文链接: 哨兵1SAR空间数据包协议数据单元文档英文版 同系列中的其他文章篇链接: 哨兵1SAR空间数据包协议数据单元文档(一) 哨兵1…

保存在FinalShell服务器登录密码忘记了,如何快速获取到

一、从FinalShell获取服务器基本信息 如图操作会导出一个json文件,可以直接保存在桌面,或者其他位置 json格式如下: {"forwarding_auto_reconnect":false ,"custom_size":false ,"delete_time":0 ,"sec…

Python数据分析-旧金山犯罪预测分析(San Francisco Crime Classification)

一、研究背景 旧金山是一个人口稠密、旅游业发达的城市,同时也是美国犯罪率较高的城市之一。随着城市的不断发展,犯罪行为的类型和频率也在不断变化,这对城市的治安管理和社会稳定构成了巨大的挑战。近年来,数据科学技术的迅猛发…

C# 编程中互斥锁的使用

C# 中的互斥锁 互斥锁是 C# 中使用的同步原语,用于控制多个线程或进程对共享资源的访问。其目的是确保在任何给定时间只有一个线程或进程可以获取互斥锁,从而提供互斥。 C# 中互斥锁的优点 可以使用互斥锁 (Mutex) 并享受其带来的好处。 1. 共享资源…

德国威步的技术演进之路(下):从云端许可管理到硬件加密狗的创新

从单机用户许可证到WkNET网络浮点授权的推出,再到引入使用次数和丰富的时间许可证管理,德国威步产品不断满足市场对灵活性和可扩展性的需求。TCP/IP浮动网络许可证进一步展示了威步技术在网络时代的创新应用。借助于2009年推出的借用许可证以及2015年推出…

mac磁盘工具如何合并分区 macos 磁盘工具 无法抹除 磁盘管理软件哪个使用率最高

一、什么是NTFS格式分区 NTFS格式分区是微软公司开发的诸多文件系统中的一种。NTFS格式分区是一种文件系统,磁盘只有在安装了文件系统后才能被正常使用,文件系统的格式有非常多,常见的有FAT 32和NTFS。 作为常见文件系统,NTFS格式…

无人机集群协同搜索研究综述

源自:指挥控制与仿真 作者:刘圣洋, 宋婷, 冯浩龙, 孙玥, 韩飞 注:若出现无法显示完全的情况,可 V 搜索“人工智能技术与咨询”查看完整文章 摘要 无人机集群协同区域搜索能够有效地获取任务区域地面信息,降低环境不确定度。基…

买卖股票的最佳时期含冷冻期(leetcode)

个人主页:Lei宝啊 愿所有美好如期而遇 也就有这样的状态转移方程: 买入:dp[i][0] max(dp[i-1][1] - prices[i], dp[i-1][0]); 可买入:dp[i][1] max(dp[i-1][1], dp[i-1][2]); 冷冻期:dp[i][2] dp[i-1][0] prices…

使用ChatGPT自动生成测试用例思维导图

使用ChatGPT自动生成测试用例思维导图 引言ChatGPT在测试用例编写中的应用全面覆盖测试场景边界测试避免测试用例重复 借助ChatGPT生成测试用例思维导图准备工作步骤一:与ChatGPT对话步骤二:生成思维导图代码 结语 引言 在编写测试用例时,测…

基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型

背景 随着城市化进程的加速和房地产市场的快速发展,房价已成为经济学、社会学等多学科交叉研究的热点问题。为了更精确地分析和预测房价,数据分析和机器学习技术被广泛应用。在此背景下,开发一个基于Python Django的房价数据分析平台具有重要…

职业技能大赛引领下物联网专业实训教学的改革研究

随着物联网技术的迅猛发展,作为培养高技能应用型人才的高职院校,面临着将理论与实践深度结合,以满足行业对物联网专业人才新要求的挑战。职业技能大赛作为一种重要的教育评价与促进机制,为物联网专业实训教学的改革提供了新的视角…

成人高考本科何时报名-深职训学校帮您规划学习之路

你有想过继续深造自己的学历吗?也许你已经工作多年,但总觉得学历是一块心病,想要通过成人高考本科来提升自己。不用着急,今天我们来聊一聊成人高考本科的报名时间,以及深职训学校如何帮助你顺利完成报名。 深圳成人高…

LeetCode-刷题记录-滑动窗口合集(本篇blog会持续更新哦~)

一、滑动窗口概述 滑动窗口(Sliding Window)是一种用于解决数组(或字符串)中子数组(或子串)问题的有效算法。 Sliding Window核心思想: 滑动窗口技术的基本思想是维护一个窗口(一般…

怎样在Python中使用oobabooga的API密钥,通过端口5000获取模型列表的授权

题意: oobabooga-textgen-web-ui how to get authorization to view model list from port 5000 via the oobas api-key in python 怎样在Python中使用oobabooga的API密钥,通过端口5000获取模型列表的授权 问题背景: I wish to extract an…

fastapi+vue3前后端分离开发第一个案例整理

开发思路 1、使用fastapi开发第一个后端接口 2、使用fastapi解决cors跨域的问题。cors跨域是浏览器的问题,只要使用浏览器,不同IP或者不同端口之间通信,就会存在这个问题。前后端分离是两个服务,端口不一样,所以必须要…

XLSX + LuckySheet + LuckyExcel实现前端的excel预览

文章目录 功能简介简单代码实现效果参考 功能简介 通过LuckyExcel的transformExcelToLucky方法, 我们可以把一个文件直接转成LuckySheet需要的json字符串, 之后我们就可以用LuckySheet预览excelLuckyExcel只能解析xlsx格式的excel文件,因此对…

.NET 漏洞分析 | 某ERP系统存在SQL注入

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

学习笔记——动态路由——OSPF(认证)

十二、OSPF邻居认证 1、OSPF邻居认证概述 链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。 OSPF认…

基于Vue框架实现的记事本

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>懒人记事本</title><style>body {fo…

深度网络现代实践 - 深度前馈网络之反向传播和其他的微分算法篇

序言 反向传播&#xff08;Backpropagation&#xff0c;简称backprop&#xff09;是神经网络训练过程中最关键的技术之一&#xff0c;尤其在多层神经网络中广泛应用。它是一种与优化方法&#xff08;如梯度下降法&#xff09;结合使用的算法&#xff0c;用于计算网络中各参数的…