当前位置: 首页 > news >正文

基于AT89C52单片机的电子时钟与温湿度检测系统

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:C、C++学习分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:基于AT89C52单片机的电子时钟与温湿度检测系统

文章目录

    • 引言
    • 系统功能概述
      • 1. 电子时钟功能
      • 2. 时间修改功能
      • 3. 温度监测功能
      • 4. 湿度监测功能
      • 5. 单一检测模式
    • 硬件组成
      • 1. AT89C52单片机
      • 2. DS1302实时时钟模块
      • 3. OLED显示屏
      • 4. ESP8266 WiFi模块
      • 5. 温湿度传感器(如DHT11或DHT22)
      • 6. 按键模块
      • 7. 报警灯(LED)
    • 工作原理
      • 1. 时间获取
      • 2. 时间修改
      • 3. 温湿度监测
      • 4. 报警机制
      • 5. 单一检测模式
    • 功能实现
      • 功能1:利用DS1302制作电子时钟
      • 功能2:通过按键、串口和ESP8266修改时间
      • 功能3:温度检测
      • 功能4:湿度检测
    • 主循环
    • 总结

引言

  随着科技的不断进步,智能家居系统逐渐成为现代生活的重要组成部分。人们对环境监测和时间管理的需求日益增加,这促使我们探索更高效、便捷的解决方案。AT89C52单片机作为一种经典的嵌入式控制器,凭借其稳定性和易于编程的特点,成为实现智能设备的理想选择。

  本项目旨在设计一个集成电子时钟与环境监测功能的系统。通过结合DS1302实时时钟模块、OLED显示屏、ESP8266 WiFi模块以及温湿度传感器,我们将构建一个能够实时显示时间、日期、温度和湿度的智能设备。此外,用户可以通过按键、串口和WiFi进行时间的修改,增强了系统的灵活性和可操作性。

  在本文中,我们将详细介绍系统的硬件组成、工作原理以及实现的具体步骤,旨在为读者提供一个全面的参考,帮助他们理解如何利用AT89C52单片机构建一个功能丰富的智能环境监测系统。通过这一项目,我们希望能够激发更多的创意,推动智能家居技术的发展。

系统功能概述

  本系统的设计旨在实现一个集成电子时钟与环境监测的智能设备,主要功能包括电子时钟显示、时间修改、温度监测和湿度监测。以下是对各个功能的详细阐述:

1. 电子时钟功能

该功能利用DS1302实时时钟模块,能够准确获取当前的年、月、日、时、分、秒信息。系统将定时读取这些数据,并在OLED显示屏上实时更新显示。用户可以直观地查看当前时间和日期,确保时间管理的准确性。

  • 实现细节
    • DS1302模块通过IIC协议与AT89C52单片机连接,单片机定期发送读取命令。
    • 读取到的时间数据将被格式化并显示在OLED屏幕上,确保信息清晰可读。

2. 时间修改功能

为了满足用户对时间的个性化需求,系统提供了多种方式来修改时间,包括按键、串口和WiFi(ESP8266)方式。特别是WiFi修改功能,用户需要输入一个6位的密码(包括大小写字母和数字),以确保安全性。

  • 实现细节
    • 按键修改:用户通过按键输入新的时间数据,系统会逐步引导用户设置年、月、日、时、分。
    • 串口修改:通过串口通信,用户可以发送特定格式的命令来修改时间。
    • WiFi修改:ESP8266模块接收来自用户的WiFi请求,验证密码后允许修改时间。

3. 温度监测功能

该功能通过温湿度传感器实时监测环境温度,并将数据实时显示在OLED屏幕上。当温度超过设定的阈值(如40℃)或低于设定的最低值(如25℃)时,系统将触发报警灯闪烁,并在OLED上显示相应的提醒信息。

  • 实现细节
    • 温湿度传感器定期采集环境温度数据,单片机将其读取并更新到OLED显示。
    • 设定的温度阈值可以通过按键进行修改,用户可以根据实际需求调整报警温度范围。
    • 当温度超出设定范围时,系统会自动点亮报警灯,并在OLED上显示“温度报警”的提示信息。

4. 湿度监测功能

与温度监测类似,该功能实时监测环境湿度,并在OLED屏幕上显示当前湿度值。当湿度超过设定的阈值时,系统将触发报警灯闪烁,并在OLED上显示相应的提醒信息。

  • 实现细节
    • 湿度传感器定期采集环境湿度数据,单片机将其读取并更新到OLED显示。
    • 用户可以通过按键修改湿度报警阈值,以适应不同的环境需求。
    • 当湿度超出设定范围时,系统会自动点亮报警灯,并在OLED上显示“湿度报警”的提示信息。

5. 单一检测模式

为了提高系统的稳定性和响应速度,系统设计了单一检测模式。当用户选择开启温度检测时,湿度检测功能将处于静止状态,反之亦然。这种设计避免了同时进行多项检测可能导致的资源冲突和数据混乱。

  • 实现细节
    • 用户通过按键选择要开启的检测模式,系统将根据选择启用相应的功能模块。
    • 在一个模式下,另一个模式的相关功能将被禁用,确保系统的高效运行。

硬件组成

  本系统的硬件组成是实现电子时钟与环境监测功能的基础。以下是各个硬件组件的详细阐述,包括其功能、连接方式以及在系统中的作用。

1. AT89C52单片机

功能:AT89C52是本系统的核心控制单元,负责协调各个模块的工作,处理输入输出信号,并执行相应的控制逻辑。

连接方式

  • 单片机通过多条I/O口与其他模块连接,控制信号的发送和接收。
  • 采用外部晶振提供时钟信号,确保单片机的稳定运行。

作用

  • 读取DS1302模块的时间数据,并将其格式化后显示在OLED屏幕上。
  • 接收来自按键、串口和WiFi模块的输入,处理时间修改请求。
  • 控制温湿度传感器的工作,实时获取环境数据并进行判断。

2. DS1302实时时钟模块

功能:DS1302是一个低功耗的实时时钟模块,能够提供准确的时间和日期信息。

连接方式

  • DS1302通过IIC协议与AT89C52单片机连接,使用三根线(SCLK、IO、CE)进行数据传输。

作用

  • 提供当前的年、月、日、时、分、秒信息,供单片机读取。
  • 内置电池供电,确保在断电情况下仍能保持时间的准确性。

3. OLED显示屏

功能:OLED显示屏用于实时显示时间、日期、温度和湿度信息,提供用户友好的界面。

连接方式

  • OLED显示屏通常通过IIC或SPI协议与单片机连接,使用两根或四根线进行数据传输。

作用

  • 显示当前时间、日期、温度和湿度等信息。
  • 提供报警提示信息,例如温度或湿度超标的警告。

4. ESP8266 WiFi模块

功能:ESP8266是一个低成本的WiFi模块,能够实现无线通信,支持与用户设备的连接。

连接方式

  • ESP8266通过串口(UART)与AT89C52单片机连接,使用TX和RX线进行数据传输。

作用

  • 接收来自用户的WiFi请求,允许用户通过网络修改时间。
  • 发送和接收数据,支持与手机或电脑等设备的通信。

5. 温湿度传感器(如DHT11或DHT22)

功能:温湿度传感器用于实时监测环境的温度和湿度。

连接方式

  • 温湿度传感器通过单片机的I/O口连接,通常只需一根数据线和电源线。

作用

  • 定期采集环境温度和湿度数据,并将其传输给单片机。
  • 提供实时数据,供系统判断是否触发报警。

6. 按键模块

功能:按键模块用于用户输入和功能切换,允许用户进行时间修改和模式选择。

连接方式

  • 按键通过单片机的I/O口连接,通常采用上拉或下拉电阻配置。

作用

  • 用户通过按键输入新的时间数据,或选择开启温度或湿度检测模式。
  • 提供简单直观的用户交互界面。

7. 报警灯(LED)

功能:报警灯用于指示温度或湿度超标的状态。

连接方式

  • 报警灯通过单片机的I/O口连接,通常采用限流电阻保护。

作用

  • 当温度或湿度超出设定范围时,点亮相应的LED灯,提醒用户注意。
  • 提供视觉反馈,增强系统的警示功能。

工作原理

  本系统的工作原理涉及多个模块的协同运作,主要包括时间获取、时间修改、温湿度监测和报警机制。以下是对各个功能模块工作原理的详细阐述:

1. 时间获取

模块:DS1302实时时钟模块

工作流程

  • 初始化:系统启动时,AT89C52单片机通过IIC协议与DS1302模块建立通信,初始化模块并设置时钟。
  • 定时读取:单片机定期发送读取命令,获取当前的年、月、日、时、分、秒数据。
  • 数据处理:读取到的时间数据经过格式化处理后,传输到OLED显示屏进行显示。

原理
DS1302模块内置电池供电,确保在断电情况下仍能保持时间的准确性。通过IIC协议,单片机能够方便地读取时间数据。

2. 时间修改

模块:按键、串口、ESP8266 WiFi模块

工作流程

  • 按键输入:用户通过按键输入新的时间数据,系统会逐步引导用户设置年、月、日、时、分。
  • 串口命令:用户通过串口发送特定格式的命令(如“SET TIME YYYY-MM-DD HH:MM”),单片机解析命令并更新时间。
  • WiFi修改:ESP8266模块接收来自用户的WiFi请求,用户输入6位密码进行验证,验证通过后允许修改时间。

原理
系统通过多种输入方式提供灵活的时间修改功能,确保用户能够方便地调整时间设置。WiFi模块的引入使得时间修改更加便捷,用户可以通过手机或电脑进行操作。

3. 温湿度监测

模块:温湿度传感器(如DHT11或DHT22)

工作流程

  • 数据采集:温湿度传感器定期采集环境的温度和湿度数据,并将其传输给AT89C52单片机。
  • 数据处理:单片机接收传感器的数据,并将其格式化后显示在OLED屏幕上。
  • 报警判断:单片机根据设定的阈值判断当前温度和湿度是否超标。

原理
温湿度传感器通过单一数据线与单片机连接,能够实时提供环境数据。单片机根据设定的阈值进行判断,确保及时反馈环境变化。

4. 报警机制

模块:报警灯(LED)

工作流程

  • 温度报警:当温度超过40℃或低于25℃时,单片机点亮第二个灯,并在OLED上显示“温度报警”的提示信息。
  • 湿度报警:当湿度超过设定阈值时,单片机点亮第三个灯,并在OLED上显示“湿度报警”的提示信息。
  • 状态恢复:当温度和湿度回到设定范围内时,报警灯熄灭,OLED恢复正常显示。

原理
报警机制通过LED灯的闪烁和OLED显示的提示信息,及时提醒用户注意环境变化。用户可以通过按键修改报警阈值,以适应不同的环境需求。

5. 单一检测模式

模块:按键模块

工作流程

  • 模式选择:用户通过按键选择开启温度检测或湿度检测,系统将根据选择启用相应的功能模块。
  • 功能切换:在一个模式下,另一个模式的相关功能将被禁用,确保系统的高效运行。

原理
单一检测模式的设计避免了同时进行多项检测可能导致的资源冲突和数据混乱,提升了系统的稳定性和响应速度。

功能实现

功能1:利用DS1302制作电子时钟

首先,我们需要初始化DS1302并读取时间数据。以下是DS1302的初始化和时间读取的代码示例:

#include <reg52.h>
#include "DS1302.h" // 假设你有一个DS1302的驱动文件void main() {DS1302_Init(); // 初始化DS1302while (1) {DS1302_ReadTime(); // 读取时间OLED_DisplayTime(); // 显示时间到OLEDDelay(1000); // 每秒更新一次}
}

功能2:通过按键、串口和ESP8266修改时间

为了实现时间的修改,我们需要设置串口通信和WiFi通信。以下是串口初始化和接收数据的代码示例:

void Serial_Init() {SCON = 0x50; // 设置为模式1,允许接收TMOD |= 0x20; // 定时器1为模式2TH1 = 0xFD; // 波特率9600TL1 = 0xFD;TR1 = 1; // 启动定时器1
}void Serial_Receive() {if (RI) {char received = SBUF; // 接收数据RI = 0; // 清除接收中断标志// 处理接收到的时间修改命令}
}

ESP8266的初始化和接收数据的代码示例如下:

void ESP8266_Init() {// 初始化ESP8266并连接WiFi
}void ESP8266_Receive() {// 接收WiFi数据并处理时间修改
}

功能3:温度检测

使用温度传感器读取温度并显示。以下是温度检测的代码示例:

void Temperature_Check() {float temperature = Read_Temperature(); // 读取温度OLED_DisplayTemperature(temperature); // 显示温度if (temperature > 40.0) {LED2 = 1; // 第二个灯闪烁OLED_ShowWarning("High Temperature!");} else if (temperature < 25.0) {LED2 = 1; // 第二个灯闪烁OLED_ShowWarning("Low Temperature!");} else {LED2 = 0; // 灯熄灭}
}

功能4:湿度检测

湿度检测的实现与温度检测类似,以下是湿度检测的代码示例:

void Humidity_Check() {float humidity = Read_Humidity(); // 读取湿度OLED_DisplayHumidity(humidity); // 显示湿度if (humidity > 70.0) { // 假设70%为报警值LED3 = 1; // 第三个灯闪烁OLED_ShowWarning("High Humidity!");} else {LED3 = 0; // 灯熄灭}
}

主循环

在主循环中,我们需要根据按键输入来决定执行哪个功能。以下是主循环的代码示例:

void main() {Serial_Init();ESP8266_Init();while (1) {if (Key_Pressed()) {// 根据按键选择功能if (key == 'T') {Temperature_Check();} else if (key == 'H') {Humidity_Check();}}Serial_Receive();ESP8266_Receive();}
}

总结

  通过本项目的设计与实现,我们成功构建了一个基于AT89C52单片机的电子时钟与环境监测系统。该系统不仅能够准确显示当前的时间和日期,还具备通过按键、串口和WiFi进行时间修改的灵活性。此外,系统实时监测环境的温度和湿度,并在超出设定阈值时通过报警灯和OLED显示屏及时提醒用户。这种集成化的设计不仅提升了用户的生活便利性,也增强了家庭环境的安全性。未来,我们可以进一步扩展系统功能,例如增加数据记录、远程监控和智能分析等,以适应更广泛的应用场景。通过这一项目,我们展示了如何将传统的单片机技术与现代智能家居理念相结合,为用户提供更智能、更便捷的生活体验。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

相关文章:

基于AT89C52单片机的电子时钟与温湿度检测系统

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

Wwise SoundBanks内存优化

1.更换音频格式为Vorbis 2.停用多余的音频&#xff0c;如Random Container的随机脚步声数量降为2个 3.背景音乐勾选“Stream”。这样就让音频从硬盘流送到Wwise&#xff0c;而不是保存在内存当中&#xff0c;也就节省了内存 4.设置最大发声数Max Voice Instances 5.设置音频…...

Next.js 独立开发教程(十三):错误处理(Error Handling)

系列文章目录 Next.js 开发教程(一)&#xff1a;入门指南-CSDN博客 Next.js 开发教程&#xff08;二&#xff09;&#xff1a;从零构建仪表盘应用-CSDN博客 Next.js 开发教程&#xff08;三&#xff09;&#xff1a;CSS 样式的完整指南-CSDN博客 Next.js 独立开发教程&…...

【Halcon】边缘检测算子汇总(一)

frei_amp 功能:使用Frei-Chen算法检测图像的边缘振幅。 参数: 输入图像(Image):待处理的原始图像。输出梯度图像(ImageEdgeAmp):经过Frei-Chen算法处理后的边缘振幅图像。工作原理:frei_amp算子通过计算图像一阶导数的近似值来检测边缘。它使用两个特定的滤波器掩模(…...

前端开发中Token存储:选择Cookie还是localStorage?

在现代前端开发领域,用户身份验证与状态管理不可或缺,而 token 作为身份验证机制的核心要素,对保障用户信息安全至关重要。然而,token 的存储方式对应用安全性和用户体验有着直接影响。本文将从安全性、便捷性和使用场景等维度,深度剖析在 Cookie 和 localStorage 中选择存…...

Scala中的正则表达式01

规则类型具体规则示例说明单字符大多数字符匹配自身正则表达式 abc&#xff0c;文本 abca 匹配 a&#xff0c;b 匹配 b&#xff0c;c 匹配 c方括号 [ ][ ] 定义字符集&#xff0c;匹配其一[abc]&#xff0c;文本 a、b 或 c[abc] 匹配 a、b 或者 c排除字符集 [^ ][^ ] 开头加 ^&…...

机器学习——决策树模型

决策树是如何工作的&#xff1f; 假设你在经营一家猫收养中心&#xff0c;并提供了一些功能&#xff0c;你想训练一个分类器来快速告诉你&#xff0c;动物到底是不是猫&#xff0c;这里有10个训练例子&#xff0c;并与这10个例子中的每一个相关联&#xff0c;我们将有关于动物…...

#3003. Jed‘s MEX

刚开始直接硬来&#xff0c;要么TLE要么WA 后面改成另一种思路&#xff1a; 先把ai大于n的全都转换为刚好小于n的数&#xff0c;记录在cnt[i]中&#xff0c;代表ai有多少个 然后从高往低走&#xff0c;把cnt大于1的分到下面去&#xff0c;使数尽可能分布得广一些 然后从低往…...

数据集增强:提升深度学习模型泛化能力的关键技术

在深度学习中&#xff0c;数据是模型性能的基石。大规模、高质量的数据集通常能显著提高模型的泛化能力&#xff0c;帮助模型在真实场景中做出更准确的预测。然而&#xff0c;在很多实际应用中&#xff0c;数据收集困难、昂贵或者受限&#xff0c;尤其是当数据集相对较小或标注…...

JS实现高效导航——A*寻路算法+导航图简化法

一、如何实现两点间路径导航 导航实现的通用步骤&#xff0c;一般是&#xff1a; 1、网格划分 将地图划分为网格&#xff0c;即例如地图是一张图片&#xff0c;其像素为1000*1000&#xff0c;那我们将此图片划分为各个10*10的网格&#xff0c;从而提高寻路算法的计算量。 2、标…...

在wordpress添加自定义文章类型

实现思路 在Once主题中&#xff0c;有文章&#xff0c;页面等编辑的文案类型&#xff0c;文章类型主要做文案输出&#xff0c;而页面类型主要做一些界面菜单的操作。参考文章类型&#xff0c;使用自定义页面模板&#xff0c;实现一个自定义文章类型&#xff0c;例如**笔记(nod…...

[node.js] [HTTP/S] 实现 requests 发起 HTTP/S/1.1/2.0 请求

node.js 使用 V8 引擎来编译运行 javascript 代码&#xff0c;与浏览器中的环境不同的是&#xff0c;node.js 不包含 DOM 和 BOM 模块。 本文使用 node.js 的官方库来实现一个简单的 requests() 函数&#xff0c;可以用来发送 HTTP/1.1 和 HTTP/2.0 的请求。有关 HTTP/1.1 和 …...

基于Java Springboot线上约拍摄影预约微信小程序

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui uniapp 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信开发者工…...

node.js基础学习-cheerio模块-简单小爬虫(五)

学习cheerio模块&#xff0c;简单做一个爬取图片网站的图片&#xff0c;并且将这些图片下载到本地指定的文件夹下&#xff0c;很多图片网站都有一些反爬取的机制&#xff0c;找的好几个都会报302错误&#xff0c;所以我找了一个小的图片网站&#xff0c;这个没有反爬取机制&…...

吾杯网络安全技能大赛WP(部分)

吾杯网络安全技能大赛WP(部分) MISC Sign 直接16进制解码即可 原神启动 将图片用StegSolve打开 找到了压缩包密码 将解出docx文件改为zip 找到了一张图片和zip 再把图片放到stegSlove里找到了img压缩包的密码 然后在document.xml里找到了text.zip压缩包密码 然后就出来fl…...

【python自动化一】pytest的基础使用

1.pytest简述 pytest‌ 是一个功能强大且灵活的Python测试框架&#xff0c;其主要是用于流程控制&#xff0c;具体用于UI还是接口自动化根据个人需要而定。且其具有丰富插件&#xff0c;使用时较为方便。咱们具体看下方的内容&#xff0c;本文按照使用场景展开&#xff0c;不完…...

使用 CFD 仿真进行阀门性能分析:第 II 部分

了解如何使用 Ansys Discovery 通过优化模式获得准确的阀门性能结果。 第 II 部分&#xff1a;优化模式下的模拟 阀门的模拟可以在 Explore &#xff08;探索&#xff09; 模式和 Refine &#xff08;优化&#xff09; 模式下执行。Explore 模式允许快速仿真&#xff0c;在长达…...

Node.js实现WebSocket教程

Node.js实现WebSocket教程 1. WebSocket简介 WebSocket是一种在单个TCP连接上提供全双工通信的协议&#xff0c;允许服务器和客户端之间进行实时、双向通信。本教程将详细讲解如何在Node.js中实现WebSocket。 2. 技术选型 我们将使用ws库来实现WebSocket服务器&#xff0c;…...

使用 Statsmodels 进行统计建模与分析

使用 Statsmodels 进行统计建模与分析 Statsmodels 是 Python 中一个功能强大的库&#xff0c;用于执行统计建模和计量经济学分析。它提供了一系列经典的统计模型和评估方法&#xff0c;涵盖线性回归、时间序列分析和广义线性模型等。 本文将带你深入了解 Statsmodels 的功能…...

【Linux】进程间通信

目录 一、管道 &#xff08;一&#xff09;概念 &#xff08;二&#xff09;匿名管道 1、概念 2、函数介绍 3、示例代码 4、原理 &#xff08;三&#xff09;命名管道 1、概念 2、函数介绍 3、示例代码 4、原理 &#xff08;四&#xff09;管道的读写规则 &#x…...

Python 网络爬虫高级教程:分布式爬取与大规模数据处理

经过基础爬虫和进阶爬虫的学习&#xff0c;我们已经掌握了爬虫的基本原理、动态内容处理及反爬机制的应对。然而&#xff0c;当我们面对海量数据或需要高效爬取多个站点时&#xff0c;分布式爬虫和数据存储、处理能力就显得尤为重要。本篇博客将带你迈向网络爬虫的高级阶段&…...

猫爪背后的情感密码

当家中那只可爱的猫咪时不时用它的小爪子轻拍我们时&#xff0c;很多人或许只当作是调皮捣蛋&#xff0c;实则背后大有深意。 猫用爪子打&#xff0c;可能是在向我们发出玩耍的邀约。在猫咪的天性里&#xff0c;捕猎本能根深蒂固。它们在幼年时与同伴的嬉戏打闹&#xff0c;便…...

【自用】管材流转项目前端重部署流程 vue2 webpackage4 vuecli4

一、配置 1.下载项目&#xff0c;使用 IDEA 打开&#xff0c;并配置 Nodejs 它提示我&#xff0c;需要 Node.js&#xff0c;因为 nodejs 14 的 installer 已经官网已经找不到了&#xff0c;使用 fnm 又太麻烦&#xff0c; 所以直接采用在 IDEA 中下载的方式就好了。 2.清除缓…...

关于c的子进程 fork()

fork() 是一个非常重要的系统调用&#xff0c;用于在 Unix-like 操作系统中创建一个新的进程。它会将当前进程&#xff08;父进程&#xff09;复制成一个新的进程&#xff08;子进程&#xff09;。子进程会从父进程的代码处继续执行&#xff0c;但具有不同的进程 ID。 fork() …...

耀圣控制设备有限公司:优质压滤机阀门的引领者

耀圣控制设备有限公司&#xff1a;优质压滤机阀门的引领者 在压滤机阀门领域&#xff0c;耀圣控制设备有限公司以其卓越的品质和领先的技术&#xff0c;成为了行业内备受瞩目的品牌。 耀圣控制设备有限公司专注于压滤机阀门的研发与生产&#xff0c;凭借着先进的工艺和严格的质…...

【C语言】结构体(四)

本篇重点是typedef关键字 一&#xff0c;是什么&#xff1f; typedef用来定义新的数据类型&#xff0c;通常typedef与结构体的定义配合使用。 简单来说就是取别名 ▶ struct 是用来定义新的数据类型——结构体 ▶ typedef是给数据类型取别名。 二&#xff0c;为什么&#xf…...

面向源代码的软件可信度量模型 T_{na}

面向源代码的软件可信度量模型 T n a T_{na} Tna​ 课程&#xff1a;软件质量分析 作业 可编写下面的java程序&#xff1a; package org.example;public class SourceCodeOrientedModel {public static void main(String[] args) {int total 41;int[] m {9, 22, 9, 5, 7, 1…...

Java11使用JVM同一日志框架启用日志记录

你可以使用-Xlog选项配置或启用Java虚拟机同一日志框架的日志记录。 -Xlog:gc*trace:file/Users/xx/gc-%t.log:time,tags,level,pid,tid,hostname,path:filecount3,filesize10K -Xlog:gc*trace:stdout:time,tags,level,pid,tid,hostname:filecount3,filesize10K -Xlog:gc*trac…...

k8s容器存储接口 CSI 相关知识

容器存储接口 CSI 相关知识 参考&#xff1a; https://blog.csdn.net/lovely_nn/article/details/122880876 https://developer.aliyun.com/article/783464 https://www.cnblogs.com/varden/p/15139819.html存储商需实现 CSI 插件的 NodeGetVolumeStats 接口&#xff0c;Kube…...

JDBC相关

请解释一下 JDBC 是什么&#xff1f; JDBC&#xff08;Java Database Connectivity&#xff09;是 Java 语言访问数据库的标准 API。它提供了一套统一的接口&#xff0c;使得 Java 程序能够与各种不同的数据库进行交互。 请说明一下 JDBC 连接池的使用方法和优势。 使用方法…...

Github提交Pull Request教程 Git基础扫盲(零基础易懂)

1 PR是什么&#xff1f; PR&#xff0c;全称Pull Request&#xff08;拉取请求&#xff09;&#xff0c;是一种非常重要的协作机制&#xff0c;它是 Git 和 GitHub 等代码托管平台中常见的功能&#xff0c;被广泛用于参与社区贡献&#xff0c;从而促进项目的发展。 PR的整个过…...

【计算机网络】实验7:默认路由和特定主机路由以及路由环路问题

实验 7&#xff1a;默认路由和特定主机路由以及路由环路问题 一、 实验目的 了解默认路由以及特定主机路由。 了解静态路由配置错误导致的路由环路问题。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、默认路由以及特定主机路由 (1) 第一步&#xff…...

RK3506 PINCTRL学习

引脚命名规则 Rockchip Pin 的 ID 按照 控制器 (bank) 端口 (port) 索引序号 (pin) 组成。 GPIO&#xff08;通⽤输⼊输出&#xff09; 控制器和GPIO控制器数量一致&#xff1b;端口固定A/B/C/D索引序号固定为0/1/2/3/4/5/6/7 每个控制器可以控制32个IO&#xff0c;作为GPIO功…...

NS4828 0.8A 线性同步移动电源管理芯片

1 特性 ● 内置固定 0.8A 的线性充电模式 ● 涓流/恒流/恒压三段式充电&#xff0c;支持 0V 电池充电 ● 充电输入端有防反灌功能&#xff0c;不需要防反灌二极管 ● 0.8A同步升压转换器 ● 同步放电固定 5.1V 输出 ● 双灯充放电 LED 灯指示 ● 支持自动负载检测 ● 双灯充电与…...

重生之学C++篇—算术操作符

一、算术操作符 在写代码的时候&#xff0c;一定会涉及到计算。为了方便运算&#xff0c;C提供了一系列的操作符&#xff0c;其中有一组操作符叫做算术操作符。分别是&#xff1a; 、 - 、 * 、 / 、 %&#xff0c;这些操作符都是双目操作符&#xff08;有两个操作数&#xff…...

人机交互革命,为智能座舱市场激战注入一针「催化剂」

从AIGC到AGI赋能&#xff0c;智能座舱人机交互体验迎来新范式。 不断训练、迭代的大模型&#xff0c;为智能座舱带来了更全面的感知能力、更准确的认知理解&#xff0c;以及更丰富的交互模态&#xff0c;显著提升了其智能化水平。 “AI大模型的快速应用与迭代&#xff0c;推动…...

《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?“找不到mfc140u.dll文件”要怎么解决?教你几招轻松搞定

《只狼》运行时提示“mfc140u.dll文件缺失”的科普与解决方案 作为一名软件开发从业者&#xff0c;在游戏开发和维护过程中&#xff0c;我们经常会遇到各种运行时错误和系统报错。今天&#xff0c;我们就来探讨一下《只狼》这款游戏在运行时提示“mfc140u.dll文件缺失”的原因…...

VTK中矩阵vtkMatrix4x4类的介绍和使用

1、矩阵-齐次坐标介绍 常见的点一般是Pt&#xff08;X,Y,Z&#xff09;&#xff0c;相当于一个13矩阵&#xff0c;而矩阵相乘的话一般是第一个矩阵的列数要等于第二个矩阵的行数。此处需要引入齐次坐标的概念&#xff1a;从广义上讲&#xff0c;齐次坐标就是用n1维向量表示n 维…...

STM32的OTA

STM32的OTA&#xff08;Over-The-Air&#xff09;是一种通过无线通信方式&#xff0c;为设备分发新软件、配置甚至更新加密密钥的技术。以下是对STM32 OTA的详细介绍&#xff1a; 一、OTA升级概述 OTA升级允许中心位置向所有用户发送更新&#xff0c;确保每个接收者都无法拒绝…...

【超图】iClient3D for Cesium 以动静结合方式加载WMTS服务

作者&#xff1a;taco 一、问题来源 在最近支持的项目中&#xff0c;我们面临一个挑战&#xff1a;客户需要在前端动态加载高达3亿级别的白模底面数据。这样做的主要原因是客户的数据库会频繁更新&#xff0c;因此我们需要采用动态加载的方式来确保用户界面能够实时反映最新的…...

2.STM32通信接口之SPI通信---SPI实战《精讲》

SPI仅支持一主多从&#xff08;无应答机制&#xff09; 参照&#xff1a;《第十一部分》1.STM32通信接口之SPI通信---SPI介绍《精讲》-CSDN博客 在采用一主多从的模式下。从机未被选中&#xff0c;SN1时&#xff0c;从机的MISO会处于高阻态状态&#xff0c;SN0时&#xff0c;M…...

WangEditor — 一个轻量级富文本编辑器

官网&#xff1a;https://www.wangeditor.com/ 介绍 在现代 Web 开发中&#xff0c;富文本编辑器是一个常见的工具&#xff0c;它允许用户输入、编辑和格式化内容。在众多富文本编辑器中&#xff0c;WangEditor 是一个轻量级、高效且易于使用的选择。它支持 HTML 格式的内容编…...

Redis 之持久化

目录 介绍 RDB RDB生成方式 自动触发 手动触发 AOF&#xff08;append-only file&#xff09; Redis 4.0 混合持久化 Redis主从工作原理 总结 介绍 Redis提供了两个持久化数据的能力&#xff0c;RDB Snapshot 和 AOF&#xff08;Append Only FIle&#xff09;…...

Scala的模式匹配

package hfdobject Test34 {def main(args: Array[String]): Unit {//身份证val id "429005202023210042"// val id "319005202023210042"// val id "119005202023210042"//val id "339005202023210042"//截取前两位val pre id.sub…...

学习笔记052——Spring Boot 自定义 Starter

文章目录 Spring Boot 自定义 Starter1、自定义一个要装载的项目2、创建属性读取类 ServiceProperties3、创建 Service4、创建自动配置类 AutoConfigration5、创建 spring 工程文件6、将项目打成 jar 包7、jar 打包到本地仓库8、配置application.yml Spring Boot 自定义 Starte…...

react学习记录Day2

Materal UI组件 1、Typography 文字铸排 使用文字铸排可以尽可能清晰、高效地展示您的设计和内容。 2、useTranslation 在React应用程序中&#xff0c;国际化&#xff08;i18n&#xff09;通常是通过使用专门的库来实现的&#xff0c;其中一个流行的库是react-i18next。这个…...

4. STM32_定时器

概述 什么是定时器&#xff1a; 定时器核心就是计数器&#xff0c;是使用精准的时基&#xff0c;通过硬件的方式&#xff0c;实现定时功能的器件。 定时器的工作原理&#xff1a; 主频时钟CLK通过PSC进行分频后产生定时器时钟TIM CLK&#xff0c;计数器CNT根据TIM CLK的频率…...

JMeter中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等

在JMeter中&#xff0c;您可以使用内置的函数和一些额外的插件来获取随机数、唯一ID、时间日期以及截取指定位数的字符。以下是一些常用的方法&#xff1a; 获取随机数&#xff1a; 使用__Random函数&#xff0c;您可以在指定的最小值和最大值之间生成一个随机数。例如&#xf…...

Windows下从命令行(Powershell/CMD)发送内容到系统通知中心

Windows下从命令行&#xff08;Powershell/CMD&#xff09;发送内容到系统通知中心 01 前言 在平时写脚本的时候&#xff0c;将日志等信息直接输出到控制台固然是最直接的&#xff0c;而如果是一些后台执行的任务&#xff0c;不需要时刻关注运行细节但是又想知道一些大致的情…...

day01-搭建项目环境

1. 项目介绍 1.1 项目亮点 1.2 技术架构 2. 搭建环境 启动老师提供的虚拟机&#xff0c;里面常用的组件是开机启动的。 本地访问一些组件时需要手动敲写ip地址和组件端口&#xff0c;在本地的host文件中添加虚拟机的地址&#xff0c;而且虚拟机中有nginx反向代理&#xff0c…...