【單片機畢業設計選題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.pswp.cn/web/39216.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39216.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39216.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python錯誤處理 -- 異常捕獲

本套課在線學習視頻(網盤地址,保存到網盤即可免費觀看): ??https://pan.quark.cn/s/ebe046289eb0?? 本文詳細介紹了Python編程中try-except-else-finally語句的用法,重點講解了如何通過這些語句對程序中可能出現…

哨兵1SAR空間數據包協議數據單元文檔(五)

《哨兵1SAR空間數據包協議數據單元》文檔對數據包的結構進行了詳細描述,并提供了用戶數據的格式和解碼算法。 原文鏈接: 哨兵1SAR空間數據包協議數據單元文檔英文版 同系列中的其他文章篇鏈接: 哨兵1SAR空間數據包協議數據單元文檔(一) 哨兵1…

Vue 2 與 ECharts:結合使用實現動態數據可視化

在現代前端開發中,數據可視化變得越來越重要。ECharts 是一個強大的數據可視化庫,而 Vue 2 則是一個流行的前端框架。本文將介紹如何將 Vue 2 和 ECharts 結合使用,以實現動態數據可視化。 安裝與配置 首先,確保你的項目中已經安…

Redis數據結構——跳躍表 skiplist

跳躍表(Skip List)是一種數據結構,常被用作一種有序的數據結構,提供快速的插入、刪除和查找操作,其效率接近于平衡樹(如紅黑樹),但實現起來更簡單。 1. 跳躍表的基本概念 層級結構…

保存在FinalShell服務器登錄密碼忘記了,如何快速獲取到

一、從FinalShell獲取服務器基本信息 如圖操作會導出一個json文件,可以直接保存在桌面,或者其他位置 json格式如下: {"forwarding_auto_reconnect":false ,"custom_size":false ,"delete_time":0 ,"sec…

Python數據分析-舊金山犯罪預測分析(San Francisco Crime Classification)

一、研究背景 舊金山是一個人口稠密、旅游業發達的城市,同時也是美國犯罪率較高的城市之一。隨著城市的不斷發展,犯罪行為的類型和頻率也在不斷變化,這對城市的治安管理和社會穩定構成了巨大的挑戰。近年來,數據科學技術的迅猛發…

xmind導入導出支持圖片功能源碼改造

xmind導入導出支持圖片功能 在開發用例管理平臺的過程中,需要使用xmind來管理用例。所以也涉及到xmind用例的導入導出功能, 在開始的時候,xmind文件中沒有圖片,所以使用xmind,xmindparser包就可以完成改任務。現在新增需求&#x…

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的房價數據分析平臺具有重要…

職業技能大賽引領下物聯網專業實訓教學的改革研究

隨著物聯網技術的迅猛發展,作為培養高技能應用型人才的高職院校,面臨著將理論與實踐深度結合,以滿足行業對物聯網專業人才新要求的挑戰。職業技能大賽作為一種重要的教育評價與促進機制,為物聯網專業實訓教學的改革提供了新的視角…

面試題004-Java-Java多線程(下)

面試題004-Java-Java多線程(下) 這里寫目錄標題 面試題004-Java-Java多線程(下)題目自測題目答案1. synchronized 關鍵字的作用?2. volatile 關鍵字的作用?3. synchronized 和 volatile 的區別?4. synchronized 和 ReentrantLock 的區別&…

成人高考本科何時報名-深職訓學校幫您規劃學習之路

你有想過繼續深造自己的學歷嗎?也許你已經工作多年,但總覺得學歷是一塊心病,想要通過成人高考本科來提升自己。不用著急,今天我們來聊一聊成人高考本科的報名時間,以及深職訓學校如何幫助你順利完成報名。 深圳成人高…

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或者不同端口之間通信,就會存在這個問題。前后端分離是兩個服務,端口不一樣,所以必須要…