基于51单片机的温湿度控制器proteus仿真
地址: https://pan.baidu.com/s/1cENHPmF0XobqKg_7baZX3Q
提取码:1234
仿真图:
芯片/模块的特点:
AT89C52/AT89C51简介:
AT89C51 是一款常用的 8 位单片机,由 Atmel 公司(现已被 Microchip 收购)生产。它基于标准的 8051 内核,并在此基础上进行了一些增强和改进。以下是 AT89C51 芯片的详细介绍:
- 主要特性:
内核: 基于标准的 8051 内核,指令集兼容。
存储器:
程序存储器 (Flash ROM): 4KB 可编程 Flash ROM,用于存储程序代码。 这意味着代码可以被擦除和重新编程,方便开发和调试。
数据存储器 (RAM): 128 字节内部 RAM,用于存储程序运行时的变量和数据。
工作电压: 4.0V - 5.5V。
时钟频率: 0 MHz - 24 MHz。 芯片可以工作在不同的时钟频率下,这影响了指令的执行速度。
I/O 端口: 32 个可编程 I/O 口线,分为 4 个 8 位端口 (P0, P1, P2, P3)。 这些端口可以配置为输入或输出,用于连接外部设备。
定时器/计数器: 两个 16 位定时器/计数器。 用于实现定时和计数功能。
中断: 5 个中断源:2 个外部中断、2 个定时器中断、1 个串口中断。 中断允许单片机响应外部事件,提高系统的实时性。
串行通信: 全双工 UART 串行端口。 用于与其他设备进行串行通信。
功耗模式: 支持空闲模式和掉电模式,以降低功耗。 空闲模式下,CPU 停止工作,但外设继续运行;掉电模式下,所有功能都停止工作,功耗最低。
封装形式: DIP40, PLCC44, TQFP44 等多种封装形式。
2. 引脚说明 (以 DIP40 为例):
VCC: 电源正极。
GND: 电源地。
P0.0 - P0.7: P0 口,8 位双向 I/O 口。 具有复用功能,可以作为外部存储器的地址/数据总线。
P1.0 - P1.7: P1 口,8 位双向 I/O 口。
P2.0 - P2.7: P2 口,8 位双向 I/O 口。 在访问外部存储器时,提供高 8 位地址。
P3.0 - P3.7: P3 口,8 位双向 I/O 口。 具有第二功能,例如串口通信、外部中断、定时器/计数器输入等。
RST: 复位引脚,高电平有效。
ALE/PROG: 地址锁存允许/编程脉冲。 在访问外部存储器时,用于锁存 P0 口的低 8 位地址。 在编程时,作为编程脉冲输入。
PSEN: 外部程序存储器允许输出。 用于读取外部程序存储器中的指令。
EA/VPP: 外部访问允许/编程电压。 当 EA 为高电平时,单片机首先执行内部程序存储器中的指令;当 EA 为低电平时,单片机只执行外部程序存储器中的指令。 在编程时,用于施加编程电压。
XTAL1, XTAL2: 晶振引脚,用于连接外部晶振,提供时钟信号。
3. 工作原理:
AT89C51 的工作原理和标准的 8051 单片机类似:
复位: 单片机上电后,首先进行复位操作,使单片机进入初始状态。
取指令: CPU 从程序存储器中读取指令。
译码: CPU 对指令进行译码,确定指令的功能。
执行: CPU 执行指令,例如进行算术运算、逻辑运算、数据传输、控制 I/O 口等。
循环: 重复步骤 2-4,直到程序执行完毕或进入中断服务程序。
4. 应用领域:
AT89C51 应用非常广泛,包括:
工业控制: 例如电机控制、温度控制、液位控制等。
仪器仪表: 例如数字万用表、示波器、频率计等。
家用电器: 例如洗衣机、空调、电饭煲等。
消费电子: 例如遥控器、玩具、电子钟等。
通信设备: 例如无线模块、传感器网络等。
5. 编程:
AT89C51 可以使用多种编程语言进行编程,最常用的是 C 语言和汇编语言。
C 语言: C 语言具有结构化、模块化、可移植性强等优点,适合开发复杂的应用程序。常用的 C 语言编译器有 Keil C51 等。
汇编语言: 汇编语言可以直接操作硬件,代码效率高,适合开发对实时性要求高的应用程序。
6. 优点:
成熟可靠: 8051 内核经过多年的发展和应用,非常成熟可靠。
易于学习: 8051 的指令集简单易懂,学习曲线平缓。
开发工具丰富: 有大量的开发工具和参考资料可供选择。
价格低廉: AT89C51 芯片价格低廉,适合大批量应用。
7. 缺点:
存储器容量有限: 4KB Flash ROM 和 128 字节 RAM 相对较小,可能不适合复杂的应用程序。
运算速度较慢: 与现代的 32 位单片机相比,运算速度较慢。
外设功能较少: 外设功能相对简单,可能需要使用外部扩展芯片。
在使用AT89C52/AT89C51芯片时,为了确保其稳定运行并延长其使用寿命,需注意以下关键事项:
- 电源管理
电压范围:AT89C52/AT89C51的工作电压范围为4.0V至5.5V,确保电源电压在此范围内,避免过高或过低的电压导致芯片损坏。
去耦电容:在VCC和GND引脚之间添加0.1μF的去耦电容,以滤除电源噪声,确保电源稳定。 - 复位电路
复位引脚(RST):复位引脚需要在上电时保持高电平(至少2个机器周期)以确保芯片正确复位。可以使用RC电路或专用复位芯片来实现可靠的复位。
复位时间:确保复位时间足够长(通常为10ms以上),以避免复位不完全。 - 时钟设置
晶振选择:选择符合芯片规格的晶振,典型值为12MHz。确保晶振和负载电容(通常为20pF至30pF)匹配,以保证时钟信号的稳定性。
时钟引脚:将晶振正确连接到XTAL1和XTAL2引脚,并确保电容接地。 - I/O端口配置
端口模式:在软件中正确配置I/O端口为输入或输出模式,避免端口冲突。
电流限制:每个I/O引脚的最大输出电流为20mA,整个端口的电流不应超过80mA,以防止芯片过热或损坏。 - 编程与擦写
编程器:使用支持AT89C52/AT89C51的编程器进行代码烧录,确保编程电压和时序正确。
擦写次数:AT89C52/AT89C51的Flash存储器支持约1000次擦写操作,避免频繁擦写以延长芯片寿命。 - 外部存储器接口
地址和数据线:如果需要扩展外部存储器,确保地址线和数据线连接正确,并添加适当的锁存器(如74HC373)以分离地址和数据。
控制信号:正确连接ALE、PSEN、EA等控制信号,以确保外部存储器的正常访问。 - 热管理
散热:在高负载或高温环境下,确保芯片有良好的散热条件,必要时可以添加散热片。
工作温度:芯片的工作温度范围为0°C至70°C(商业级),避免在超出此范围的环境中使用。 - 调试与测试
功能测试:在开发过程中,进行充分的功能测试和压力测试,确保所有模块正常工作。
调试工具:使用逻辑分析仪、示波器等工具进行调试,观察信号波形,帮助排查问题。 - 可靠性与安全性
防静电:在处理芯片时,佩戴防静电手环或使用防静电工作台,避免静电放电(ESD)损坏芯片。
电路保护:在电源和I/O端口添加保护电路(如TVS二极管、保险丝等),以提高电路的抗干扰能力和安全性。 - 特殊功能寄存器(SFR)
寄存器配置:在使用定时器、串口、中断等特殊功能时,正确配置相关的特殊功能寄存器(SFR),以确保功能正常运行。
中断优先级:合理设置中断优先级,避免高优先级中断长时间占用CPU资源,导致低优先级中断无法响应。 - 低功耗模式
空闲模式:在不需要全速运行时,可以进入空闲模式以降低功耗。
掉电模式:在长时间不使用时,可以进入掉电模式以进一步降低功耗,但需注意在此模式下只有外部中断或硬件复位才能唤醒芯片。
LCD1602液晶屏的特点:
LCD1602液晶屏是一种常见的字符型液晶显示模块,具有以下更详细的特点:
- 显示特性:
字符矩阵: 每个字符由 5x8 或 5x10 的点阵组成。 这意味着你可以通过控制这些点来显示不同的字符。
显示容量: 16 字符/行 x 2 行。总共 32 个字符的显示空间。
可视角度: 通常在一定范围内具有良好的可视角度,但视角过大或过小可能会导致对比度下降或显示模糊。
对比度调节: 大多数 LCD1602 模块都带有对比度调节功能,可以通过一个电位器来调节显示的清晰度。
可定制字符 (CGRAM): LCD1602 允许用户自定义少量字符,通常是 8 个。 这允许你显示一些简单的符号或图形,但自定义过程相对复杂。
2. 接口特性:
并行接口: LCD1602 使用并行接口进行数据传输。 这意味着多个数据位同时传输,通常使用 4 位或 8 位数据线。
4 位模式: 节省 I/O 口线,但数据传输速度较慢。
8 位模式: 数据传输速度较快,但占用更多的 I/O 口线。
控制信号: 主要的控制信号包括:
RS (Register Select): 用于选择是写入指令寄存器还是数据寄存器。
RW (Read/Write): 用于选择是读取 LCD 的数据还是向 LCD 写入数据。
E (Enable): 使能信号,用于启动数据传输。
背光控制: 有些 LCD1602 模块带有背光控制引脚,可以通过控制该引脚来开关背光。
3. 控制器特性 (HD44780 兼容):
指令集: HD44780 控制器有一套标准的指令集,用于控制 LCD 的各种功能,例如:
清屏: 清除 LCD 上的所有显示内容。
光标控制: 控制光标的移动和显示方式。
显示模式设置: 设置显示模式,例如光标是否闪烁,字符是否移动等。
初始化: 对 LCD 进行初始化,设置显示模式和接口方式。
数据读写: 通过控制 RS 和 RW 信号,可以读取 LCD 的状态和数据,也可以向 LCD 写入指令和数据。
忙标志: HD44780 控制器会设置一个忙标志,用于指示 LCD 是否正在执行操作。 在写入指令或数据之前,需要先读取忙标志,确保 LCD 处于空闲状态。
4. 电气特性:
工作电压: 通常为 5V,也有 3.3V 的版本。
工作电流: 较低,通常在几毫安到几十毫安之间。
背光电流: 背光电流相对较高,取决于背光的类型和亮度。
5. 优缺点:
优点:
易于使用:控制方式简单,容易上手。
价格低廉:成本较低,适合各种应用。
功耗低:适合电池供电的应用。
显示清晰:能够清晰地显示字符。
尺寸小巧:便于集成到各种设备中。
缺点:
显示内容有限:只能显示 ASCII 字符,无法显示复杂的图形或汉字。
可视角度有限:视角过大或过小可能会导致显示效果不佳。
响应速度较慢:与 OLED 等显示技术相比,响应速度较慢。
需要外部控制器:需要使用 HD44780 兼容的控制器进行驱动。
SHT11特点:
1.温湿度测量:SHT11能够同时测量环境的温度和湿度。它采用独特的湿度和温度传感器技术,能够提供高精度和可靠的测量结果。
2.数字输出:SHT11通过串行接口进行通信,并以数字形式输出温湿度数据。这种数字输出使得数据传输和处理更加方便和可靠。
3.宽工作电压范围:SHT11具有宽广的工作电压范围,通常为2.4V至5.5V。这使得它适用于各种不同的电源供应系统。
4.高精度测量:SHT11具有高精度的温湿度测量能力。在标准条件下,温度测量精度可以达到±0.5°C,湿度测量精度可以达到±3%。
5.高湿度测量范围:SHT11具有高湿度测量范围,可以测量从0%到100%的相对湿度。这使得它适用于广泛的湿度测量应用。
6.快速响应时间:SHT11具有快速的温湿度响应时间,通常在几秒钟之内就能提供准确的测量结果。
7.低功耗设计:SHT11采用低功耗设计,在工作时功耗较低。这使得它适用于对功耗要求较高的电池供电应用。
DS18B20特点:
1.单总线接口:DS18B20使用单总线接口进行通信,只需要一个引脚就可以连接多个传感器,简化了电路设计和连接。
2.数字输出:DS18B20以数字形式输出温度值,不需要额外的模数转换器。它使用12位的分辨率来表示温度值,可以实现高精度的温度测量。
3.高精度:DS18B20可以提供从-55°C到+125°C的温度测量范围,并具有±0.5°C的温度精度。因此,在许多应用中,它可以提供可靠和准确的温度测量结果。
4.多功能性:除了测量温度,DS18B20还可以执行其他功能,如温度报警功能。它可以设置上下限温度阈值,并在温度超过或低于这些阈值时触发报警。
5.低功耗:DS18B20采用低功耗设计,工作电流极低,只需要很少的能量来进行温度测量和通信。
6.耐用性:DS18B20具有良好的耐用性和可靠性,其封装材料和结构设计使其适用于各种环境条件下的应用。
DS1302特点:
1.高精度时间计数:DS1302能够提供高精度的实时时钟计数,可以记录年、月、日、星期、小时、分钟和秒等时间信息。它内部集成了晶体振荡器,提供稳定的时钟信号。
2.低功耗设计:DS1302采用低功耗设计,可以在低功耗模式下运行,有效延长电池寿命。即使在停电情况下,它也能保持时间数据,并通过外部连接电池继续提供计时功能。
3.串行接口:DS1302通过串行实时时钟接口(SPI)进行通信和控制。使用少数几个引脚,可以与主控器件进行数据交换和时钟同步。
4.容易集成:DS1302集成了时钟计数和RAM存储器功能,并具有简单的接口和命令,容易与各种微控制器和单片机集成。它不需要复杂的控制信号,可以通过简单的读写命令进行操作。
5.可编程控制功能:DS1302具有可编程的控制功能,可以设置闹钟、写保护等特殊功能。它还支持多种时间格式的选择,例如24小时制或12小时制。
6.温度补偿:DS1302内置温度补偿功能,可以校正温度对时钟频率的影响,提高时钟计数的准确性。
7.高稳定性和抗震动能力:DS1302具有高稳定性和抗震动能力,适用于各种工业和消费类应用场景。
相关文章:
基于51单片机的温湿度控制器proteus仿真
地址: https://pan.baidu.com/s/1cENHPmF0XobqKg_7baZX3Q 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C51 是一款常用的 8 位单片机,由 Atmel 公司(现已被 Microchip 收…...
牛客月赛115 C题-命运之弹 题解
原题链接 https://ac.nowcoder.com/acm/contest/107879/C 题目描述 解题思路 记录每个数字出现的次数。枚举使用「转瞬即逝」的位置,统计后边比当前数字更大的数的数量,进而统计、更新答案。 详细细节见代码,代码里有详细的注释解释。 代…...
视频转GIF
视频转GIF 以下是一个使用 Python 将视频转换为 GIF 的脚本,使用了 imageio 和 opencv-python 库: import cv2 import imageio import numpy as np """将视频转换为GIF图参数:video_path -- 输入视频的路径gif_path -- 输出GIF的路径fp…...
day15 python 复习日
作业: 尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项 目,这样你也是独立完成了一个专属于自己的项目。 要求: 1.有数据地址的提供数据地址,没有地址的上传网盘贴出地址即可。 2.尽可能与…...
性能优化实践:渲染性能优化
性能优化实践:渲染性能优化 在Flutter应用开发中,渲染性能直接影响用户体验。本文将从渲染流程分析入手,深入探讨Flutter渲染性能优化的关键技术和最佳实践。 一、Flutter渲染流程解析 1.1 渲染流水线 Flutter的渲染流水线主要包含以下几…...
【SimSession 】3:中继服务 linux和windows实现及MFC集成实现
实现目标 在 echo 测试程序启动时启动中继服务,并在 echo 程序退出时杀死中继进程。我们可以通过以下方式实现这一目标: linux设计 1 Process Management: 流程管理: Added fork() functionality to create a child process for the relay service添加了 fork()功能,…...
表驱动 FSM 在 STM32 上的高效实现与内存压缩优化——源码、性能与实践
目录 一、引言与背景 二、前提环境与依赖 三、表驱动 FSM 核心原理 四、内存压缩方案详解 4.1 稠密二维表(Dense Table) 4.2 稀疏表压缩(Sparse Table) 4.3 行压缩+Offset 4.4 位域打包(Bit‑Packing)...
windows鼠标按键自定义任意设置
因为用惯了Linux的鼠标中键的复制黏贴,发现windows下有完全可以实现类似自定义功能的软件,推荐一下: X Mouse Button Control。 免费版足够好用。 软件简介: X Mouse Button Control是一款专业的重新映射鼠标按钮的软件工具&…...
常用命令集合
安装Miniconda wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_22.11.1-1-Linux-x86_64.shpython 换清华源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple鱼香ros wget http://fishros.com/install -O fishr…...
【图书管理系统】环境介绍、设计数据库和表、配置文件、引入依赖
0. 环境介绍 (1)JDK版本:JDK_8(JDK_1.8) (2)Java语言版本:8 (3)SpringBoot版本:2.6.13 (4)Maven仓库:阿里云 …...
【Linux】日志与策略模式、线程池
在了解了线程的基本概念和线程互斥与同步之后,我们可以以此设计一个简单的线程池。【Linux】线程-CSDN博客 【Linux】线程同步与互斥-CSDN博客 线程池也是一种池化技术。提前申请一些线程,等待有任务时就直接让线程去执行,不用再收到任务之…...
【神经网络与深度学习】生成模型-单位高斯分布 Generating Models-unit Gaussian distribution
引言 在生成模型的研究与应用中,单位高斯分布(标准正态分布)作为数据采样的基础扮演着至关重要的角色。其数学特性、潜在空间的连续性、灵活性以及通用性,使得生成模型能够高效且稳定地学习和生成样本。本文将详细探讨从单位高斯…...
通讯协议开发实战:从零到一打造企业级通信解决方案
简介 从工业控制到物联网,掌握主流通信协议开发是构建现代智能系统的核心能力。本文将通过深入分析CAN FD和MQTT两种关键协议的原理、特性及应用场景,结合TypeScript和Node.js技术栈,设计一个完整的实时运动控制系统开发案例。从协议解析到数据转换,再到系统集成,全程提供…...
《MATLAB实战训练营:从入门到工业级应用》工程实用篇-自动驾驶初体验:车道线检测算法实战(MATLAB2016b版)
《MATLAB实战训练营:从入门到工业级应用》工程实用篇-🚗 自动驾驶初体验:车道线检测算法实战(MATLAB2016b版) 大家好!今天我要带大家一起探索自动驾驶中一个非常基础但又至关重要的技术——车道线检测。我…...
【网络】什么是串口链路(Serial Link)?
在路由器上,串口链路(Serial Link)就是指路由器之间通过串行接口(serial interface)和串行电缆(通常是V.35、RS-232或同步串行线路)直接点对点相连的那一段连线。它和我们平常在局域网里用的以太…...
为了结合后端而学习前端的学习日志——【黑洞光标特效】
前端设计专栏 今天给大家带来一个超酷的前端特效——黑洞光标!让你的鼠标变成一个会吞噬光粒子的迷你黑洞,点击时还会喷射出绿色能量粒子!🌠 🚀 效果预览 想象一下:你的鼠标变成一个旋转的黑洞࿰…...
set autotrace报错
报错: SQL> set autotrace traceonly SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled SP2-0611: Error enabling STATISTICS report原因分析: 根据上面的错误提示“SP2-0618: Cannot find the Session Identifie…...
算法每日一题 | 入门-顺序结构-大象喝水
大象喝水 题目描述 一只大象口渴了,要喝 20 升水才能解渴,但现在只有一个深 h 厘米,底面半径为 r 厘米的小圆桶 (h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。 这里我们近似地取圆周率 π 3.14 \pi3.14 π…...
n8n 构建一个 ReAct AI Agent 示例
n8n 构建一个 ReAct AI Agent 示例 0. 引言1. 详细步骤创建一个 "When Executed by Another Workflow"创建一个 "Edit Fields (Set)"再创建一个 "Edit Fields (Set)"创建一个 HTTP Request创建一个 If 节点在 true 分支创建一个 "Edit Fiel…...
Scartch038(四季变换)
知识回顾 1.了解和简单使用音乐和视频侦测模块 2.使用克隆体做出波纹特效 3.取色器妙用侦测背景颜色 前言 我国幅员辽阔,不同地方的四季会有不同的美丽景色,这节课我带你使用程序做一个体现北方四季变化的程序 之前的程序基本都是好玩的,这节课做一个能够赏心悦目的程序。…...
【Linux】SELinux 的基本操作与防火墙的管理
目录 一、SELinux的管理 1.1 Linux 系统的安全机制 1.2 SELinux 的概述 1.3 SELinux 的配置 1.3.1 查看 SELinux 的工作方式 1.3.2 设置 SELinux 的工作方式 1.3.2.1 基于配置文件修改(推荐方式) 1.3.2.2 基于命令方式修改 二、防火墙管理 2.1 防…...
【React Hooks原理 - useCallback、useMemo】
useMemo用于缓存计算结果,它只在依赖项发生变化时重新计算 原理: 依赖项检查:useMemo接收2个参数,一个“创建”函数和一个依赖项数组。依赖项数组中的值在每次渲染时都会被比较,以决定是否需要重新计算 缓存机制&am…...
一格一格“翻地毯”找单词——用深度优先搜索搞定单词搜索
一格一格“翻地毯”找单词——用深度优先搜索搞定单词搜索 一、引子:别看题简单,实则套路深 说起“单词搜索”这个题目,初学者第一眼可能会说:“哦不就是个查字母吗?”其实,真没这么简单。 LeetCode 上那…...
深入了解 OpenIddict:实现 OAuth 2.0 和 OpenID Connect 协议的 .NET 库
在现代 Web 开发中,身份验证和授权是安全性的重要组成部分。随着对安全性的要求不断增加,OAuth 2.0 和 OpenID Connect(OIDC)协议已经成为许多应用程序的标准身份验证方式。而 OpenIddict,作为一个用于实现 OAuth 2.0 …...
学习黑客 TCP/IP
一句话总结:把 TCP/IP 看成大型多人在线游戏的“世界引擎”:链路层是地基,互联网层是道路,运输层是交通系统,应用层是景点与商店;协议们则是各种交通工具与技能(TCP 稳重的长途客车,…...
【沐风老师】3DMAX按元素UV修改器插件教程
3DMAX按元素UV修改器UV By Element是一个脚本化的修改器插件。对于需要创建随机化纹理效果的用户而言,3DMAX的UV By Element修改器无疑是一款高效工具,它将以伪随机量偏移、旋转和/或缩放每个元素的UV坐标。 【版本要求】 3dMax 2016及以上 【安装方法】…...
Jetpack Compose 边距终极指南:Margin 和 Padding 的正确处理方式
Jetpack Compose 边距终极指南:Margin 和 Padding 的正确处理方式 在 Android 开发中,Jetpack Compose 彻底改变了 UI 构建方式,但许多开发者对如何处理边距(Margin/Padding)感到困惑。本文将深入解析 Compose 的边距…...
Go语言--语法基础4--基本数据类型--类型转换
Go 是一种强类型的语言,所以如果在赋值的时候两边类型不一致会报错。一个类型的值可以被转换成另一种类型的值。由于 Go 语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明。 强制类型转换语法 使用 type (a) 这种形式来进行强制类型转换&am…...
【C++ Qt】输入类控件(上) LineEdit、QTextEdit
每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论: 本次分享聚焦 Qt 框架里常用的输入框组件,重点讲解 QLineEdit(单行输入框)和 QTextEdit(多行输入框&…...
【c++深入系列】:万字详解vector(附模拟实现的vector源码)
🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 种子破土时从不问‘会不会有光’,它只管生长 ★★★ 本文前置知识: 模版 1.什么是vector 那么想必大家都学过顺…...
OpenHarmony平台驱动开发(二),CLOCK
OpenHarmony平台驱动开发(二) CLOCK 概述 功能简介 CLOCK,时钟是系统各个部件运行的基础,以CPU时钟举例,CPU 时钟是指 CPU 内部的时钟发生器,它以频率的形式工作,用来同步和控制 CPU 内部的各…...
Java大厂面试:Java技术栈中的核心知识点
Java技术栈中的核心知识点 第一轮提问:基础概念与原理 技术总监:郑薪苦,你对JVM内存模型了解多少?能简单说说吗?郑薪苦:嗯……我记得JVM有堆、栈、方法区这些区域,堆是存放对象的地方…...
硬件加速模式Chrome(Edge)闪屏
Chrome开启“硬件加速模式”后,打开浏览器会闪屏或看视频会闪屏,如果电脑只有集显,直接将这个硬件加速关了吧,没啥必要开着 解决方法 让浏览器使用独立显卡 在Windows左下角搜索 图形设置 ,将浏览器添加进去&#…...
【ArcGIS微课1000例】0145:如何按照自定义形状裁剪数据框?
文章目录 一、添加数据二、绘制形状三、裁剪格网和经纬网一、添加数据 打开软件,添加配套实验数据包中0145.rar中的影像数据,如下图所示: 二、绘制形状 1. 在数据视图中,使用绘图 工具条上的新建圆工具 可创建一个椭圆,使其包含要在该数据框中显示的数据范围。 修改椭圆…...
深入了解Linux系统—— 环境变量
命令行参数 我们知道,我们使用的指令它本质上也是一个程序,我们要执行这个指令,输入指令名然后回车即可执行;但是对于指令带选项,又是如何实现的呢? 问题:main函数有没有参数? 在我…...
软考-软件设计师中级备考 12、软件工程
一、软件工程概述 定义:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量软件的学科。它涉及到软件的开发、测试、维护、管理等多个方面,旨在运用一系列科学方法和技术手段,提高软件的质量和开发效率,降低软件开…...
FreeSwitch Windows安装
下载 FreeSwitch 官网下载地址https://files.freeswitch.org/windows/ 根据自己的系统选择不同的版本,如下图 官网下载可能比较慢,请使用下方下载 FreeSWITCH-1.10.12-Release-x64.msi https://download.csdn.net/download/a670941001/90752912 2、…...
南京优质的公司有哪些?
南京有许多优质的公司,以下是一些有代表性的: 制造业 • 南京钢铁集团有限公司 :作为国家战略布局的 18 家重点钢企之一,是中国特大型钢铁联合企业,1993 年 12 月进行公司制改革,2010 年 9 月实现整体上市…...
Spring AI 实战:第十一章、Spring AI Agent之知行合一
引言:智能体的知行辩证法 “知为行之始,行为知之成”,王阳明的哲学智慧在AI时代焕发光彩。智能体(LLM Agent)的进化之路,正是"认知-决策-执行"这一闭环的完美诠释: 知明理:融合大语言模型的推理能力与知识图谱的结构化认知行致用:基于ReAct模式的动态工具调…...
LeetCode 1128 等价多米诺骨牌对的数量 题解
今天的每日一题,我的思路还是硬做,不如评论区通过状压写的简单,但是答题思路加算法实现是没有问题的,且时间复杂度也是可以通过的,毕竟全是o(n) 那么我就来说一下我的思路,根据dominoes[i] [a, b] 与 domi…...
管理配置信息和敏感信息
管理配置信息和敏感信息 文章目录 管理配置信息和敏感信息[toc]一、什么是ConfigMap和Secret二、使用ConfigMap为Tomcat提供配置文件三、使用Secret为MongDB提供配置文件 一、什么是ConfigMap和Secret 在 Kubernetes 中,ConfigMap 和 Secret 是两种用于管理配置数据…...
Rust与C/C++互操作实战指南
目录 1.前言2.动态库调用2.1 动态加载2.2 静态加载3.代码调用4.静态库调用1.前言 本文原文为:Rust与C/C++互操作实战指南 由于rust诞生时间太短,目前生态不够完善,因此大量的功能库都需要依赖于C、C++语言的历史积累。 而本文将要介绍的便是如何实现rust与c乃至c++之间实…...
word批量转pdf工具
word批量转pdf工具 图片 说到了办公,怎能不提PDF转换哦? 这是一款一键就可以批量word转换为PDF的小工具,简直是VB界的一股清流。 图片 操作简单到不行,只要把需要转换的word文件和这个工具放在同一个文件夹里,双击…...
【数据结构】励志大厂版·初阶(复习+刷题)排序
前引:本篇作为初阶结尾的最后一篇—排序,将先介绍八种常用的排序方法,然后开始刷题,小编会详细注释每句代码的作用,不会出现看不懂的情况,这点大家放心,既是写给大家同时也是写给自己的…...
Git推送大文件导致提交回退的完整解决记录
问题背景 在向Gitee推送代码时,因单文件超过平台限制(100MB),推送被拒绝: > git push origin master:master remote: File [6322bc3f1becedcade87b5d1ea7fddbdd95e6959] size 178.312MB, exceeds quota 100MB rem…...
游戏引擎学习第257天:处理一些 Win32 相关的问题
设定今天的工作计划 今天我们本来是打算继续开发性能分析器(Profiler),但在此之前,我们认为有一些问题应该先清理一下。虽然这类事情不是我们最关心的核心内容,但我们觉得现在是时候处理一下了,特别是为了…...
高性能数据库架构探索:OceanBase 分布式技术深入解析
高性能数据库架构探索:OceanBase 分布式技术深入解析 简介 OceanBase 高性能分布式数据库,解决传统数据库在大规模、高并发场景下的性能瓶颈,通过分布式架构、数据自动分片和强一致性协议,提供高可用性、弹性扩展和出色的性能&am…...
【CISCO】Se2/0, Se3/0:串行口(Serial) 这里串口的2/0 和 3/0分别都是什么?
在 Cisco IOS 设备上,接口名称通常遵循这样一个格式: <类型><槽号>/<端口号>类型(Type):表示接口的物理或逻辑类型,比如 Serial(串行)、FastEthernet、GigabitEt…...
GPU集群训练经验评估框架:运营经理经验分析篇
引言 随着深度学习模型规模的持续增长和复杂度的不断提高,单GPU训练已经难以满足现代AI研究和应用的需求。GPU集群训练作为一种有效的扩展方案,能够显著提升训练效率、处理更大规模的数据集和模型。然而,GPU集群训练涉及到分布式训练框架、集群管理工具、性能优化等多个技术…...
函数多项式拟合
函数多项式拟合 用处 不方便使用math时,可以使用多项式拟合法实现比较高效的数学函数,比如使用avx指令时,O3优化,math中的函数会调用FPU指令集,在指令集切换的过程中代码效率大幅降低,为避免使用math中的…...