51单片机所有寄存器介绍
51单片机所有寄存器介绍
作者 | 将狼才鲸 |
---|---|
创建日期 | 2025-04-27 |
- 参考资料:Intel官方《MCS-51 Programmer’s Guide and Instruction Set.pdf》
- CSDN阅读地址:51单片机所有寄存器介绍
一、前言
- 51单片机的寄存器和ARM不一样,有自己专有的名称,叫SFR(特殊功能寄存器),地址是8位的0x80-0xFF(该地址与IRAM地址复用,通过不同的汇编操作指令来区分);
- 因为51单片机中的寄存器不是通过指针来读写,而是通过伪指令定义别名后来直接读写,因此这一块的编程也是和ARM不同的地方,寄存器读写相关的代码都不能和32位ARM的代码复用;
- 因为51单片机特殊功能寄存器最多只能有128个,对于当前很多应用场景下的的MCU来说明显不够,那么很多芯片厂商会对寄存器进行扩展,例如选2个寄存器作为二级寄存器地址,选2个寄存器作为二级寄存器数据,那么通过多操作几次寄存器就能扩展16位或32位的寄存器容量;
- 扩展寄存器的代价是牺牲了速度(操作一次16位寄存器要读写好几个SFR寄存器),但当前很多51单片机都做到了1T(一个时钟周期执行一条指令),主频200M+,所以这点花销是可以忽略的;
- 原始的MCS-51核用到的寄存器很少,但这些中也只有大部分是通用的,一些兼容MCS-51指令集的CPU核也会删除或修改里面一些寄存器(特别是有些8052寄存器);
- 一些8051核的IP商会将剩下的一百多个寄存器占用得差不多,而且不同的8051核所用的寄存器含义都不一样;而之后芯片厂商一般会将所有的128个寄存器用完,甚至还扩展出二级寄存器使用;
- 不同厂商51单片机的寄存器会不一样,因此底层硬件相关的代码并不通用,也就是说如果有驱动概念的话,换一款51芯片就得重写一次驱动;
- 标准MSC-51寄存器
- 寄存器地址为0x00-0xFF,其中只有0x80-0xFF特殊功能寄存器SFR与IRAM的地址是复用的,通过不同的汇编指令可以分别操作SFR和IRAM;而0x00-0x7F通用寄存器地址就是IRAM;所以SP堆栈指针不能设置到0x00-0x07,会与R0-R7冲突,但是可以设置到0x80-0xFF,与SFR不冲突;
- 寄存器地址0x00-0x7F是通用寄存器,同时也占用IRAM地址,例如4组R0-R7(ARM中类似的是R0-R31)和16字节位寻址,以及未使用的几十个字节;0x80-0xFF是SFR特殊功能寄存器,类似于ARM中的外设寄存器,不占用IRAM地址;
- 如果程序需要从ROM加载到RAM中执行,那么是加载到0地址的外部RAM,和IRAM无关,操作内外RAM的汇编指令不一样,它们的总线宽度一个只有8位一个16位;
- IRAM一般只有128B、256B;
二、所有寄存器信息的表格
- 0x00-0x7F通用寄存器(占用IRAM地址)
地址 | 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
---|---|---|---|---|---|---|---|---|
通用寄存器 | 0组R0 | 0组R1 | 0组R2 | 0组R3 | 0组R4 | 0组R5 | 0组R6 | 0组R7 |
0x08 | 0x09 | 0x0A | 0x0B | 0x0C | 0x0D | 0x0E | 0x0F | |
1组R0 | 1组R1 | 1组R2 | 1组R3 | 1组R4 | 1组R5 | 1组R6 | 1组R7 | |
0x10 | 0x11 | 0x12 | 0x13 | 0x14 | 0x15 | 0x16 | 0x17 | |
2组R0 | 2组R1 | 2组R2 | 2组R3 | 2组R4 | 2组R5 | 2组R6 | 2组R7 | |
0x18 | 0x19 | 0x1A | 0x1B | 0x1C | 0x1D | 0x1E | 0x1F | |
3组R0 | 3组R1 | 3组R2 | 3组R3 | 3组R4 | 3组R5 | 3组R6 | 3组R7 | |
0x20 | 0x21 | 0x22 | 0x23 | 0x24 | 0x25 | 0x26 | 0x27 | |
位寻址 | 位地址00H~07H | 08H~0FH | 10H~17H | 18H~1FH | 20H~27H | 28H~2FH | 30H~37H | 38H~3FH |
0x28 | 0x29 | 0x2A | 0x2B | 0x2C | 0x2D | 0x2E | 0x2F | |
40H~47H | 48H~4FH | 50H~57H | 58H~5FH | 60H~67H | 68H~6FH | 70H~77H | 78H~7FH | |
0x30 | 0x31 | 0x32 | 0x33 | 0x34 | 0x35 | 0x36 | 0x37 | |
剩下都是 | 用户可 | 自行定义 | 与使用 | 的寄存器, | 可以当成 | 全局变量 | 和局部变量 | 来使用, |
0x38 | 0x39 | 0x3A | 0x3B | 0x3C | 0x3D | 0x3E | 0x3F | |
一般会将 | 里面大部分 | 区域配置成 | 堆栈 | …… | …… | …… | …… | |
0x78 | 0x79 | 0x7A | 0x7B | 0x7C | 0x7D | 0x7E | 0x7F | |
…… | …… | …… | …… | …… | …… | …… | …… |
- 0x80-0xFF SFR特殊功能寄存器,加粗为8051的,斜体+下划线是8052专有(不占用IRAM地址)
地址 | 0x80(此列可位寻址,位地址X0~XF) | 0x81 | 0x82 | 0x83 | 0x84 | 0x85 | 0x86 | 0x87 |
---|---|---|---|---|---|---|---|---|
SFR | P0 IO口输入输出 | SP 堆栈指针 | DPL 内存数据地址低8位 | DPH 内存数据地址高8位 | PCON 电源控制 | |||
0x88 | 0x89 | 0x8A | 0x8B | 0x8C | 0x8D | 0x8E | 0x8F | |
TCON 定时器0计数器控制 | TMOD 定时器0计数器模式 | TL0 定时器0值低8位 | TL1 定时器1值低8位 | TH0 定时器0值高8位 | TH1 定时器1值高8位 | |||
0x90 | 0x91 | 0x92 | 0x93 | 0x94 | 0x95 | 0x96 | 0x97 | |
P1 IO口输入输出 | ||||||||
0x98 | 0x99 | 0x9A | 0x9B | 0x9C | 0x9D | 0x9E | 0x9F | |
SCON串口0设置 | SBUF串口0数据 | |||||||
0xA0 | 0xA1 | 0xA2 | 0xA3 | 0xA4 | 0xA5 | 0xA6 | 0xA7 | |
P2 IO口输入输出 | ||||||||
0xA8 | 0xA9 | 0xAA | 0xAB | 0xAC | 0xAD | 0xAE | 0xAF | |
IE 中断使能 | ||||||||
0xB0 | 0xB1 | 0xB2 | 0xB3 | 0xB4 | 0xB5 | 0xB6 | 0xB7 | |
P3 IO口输入输出 | ||||||||
0xB8 | 0xB9 | 0xBA | 0xBB | 0xBC | 0xBD | 0xBE | 0xBF | |
IP 中断优先级 | ||||||||
0xC0 | 0xC1 | 0xC2 | 0xC3 | 0xC4 | 0xC5 | 0xC6 | 0xC7 | |
0xC8 | 0xC9 | 0xCA | 0xCB | 0xCC | 0xCD | 0xCE | 0xCF | |
T2CON 定时器2计数器控制 | RCAP2L 定时器2重装载数低8位 | RCAP2H 定时器2重装载数高8位 | TL2 定时器2值低8位** | TH2 定时器1值高8位 | ||||
0xD0 | 0xD1 | 0xD2 | 0xD3 | 0xD4 | 0xD5 | 0xD6 | 0xD7 | |
PSW 程序状态字 | ||||||||
0xD8 | 0xD9 | 0xDA | 0xDB | 0xDC | 0xDD | 0xDE | 0xDF | |
0xE0 | 0xE1 | 0xE2 | 0xE3 | 0xE4 | 0xE5 | 0xE6 | 0xE7 | |
ACC 累加器 | ||||||||
0xE8 | 0xE9 | 0xEA | 0xEB | 0xEC | 0xED | 0xEE | 0xEF | |
B 寄存器 | ||||||||
0xF8 | 0xF9 | 0xFA | 0xFB | 0xFC | 0xFD | 0xFE | 0xFF | |
-
MCS-51寄存器详细描述
-
汇编编程相关寄存器
寄存器 | bit0 | bit1 | bit2 | bit3 | bit4 | bit5 | bit6 | bit7 |
---|---|---|---|---|---|---|---|---|
(R0-R7)x4 | 通用 | 寄存器, | 用作 | 函数形参、 | 局部变量 | |||
00-7F位寻址,20-7F通用寄存器 | 自定义 | 寄存器, | 汇编 | 编程时 | 自行使用, | 可定义成 | 全局变量 | 和堆栈区域 |
ACC累加器(A寄存器) | 用作局部变量, | 或存储 | 算数运算 | 的结果 | ||||
B寄存器 | 用作局部变量, | 或乘除操作 | 时使用 | |||||
DPL/DPH/DPTR数据指针 | 使用汇编 | 读写外部RAM | 数据时的 | 当前RAM地址 | ||||
PSW程序状态字 | P: 操作数中奇偶校验,可用于串口数据校验 | 用户自定义 | OV溢出,算术运算时的溢出判断 | RS0 | RS1寄存器组选择(第几组R0~R7),很少使用 | F0用户自定义 | AC半字节进位,高半字节和低半字节间进位,如BCD码计算中能用到,很少使用 | CY进位,int、long等多字节类型加减乘除等算数运算时会用到,一些包含位标志的指令会用到 |
- 系统设置和外设寄存器(串口、GPIO、定时器)
寄存器 | bit0 | bit1 | bit2 | bit3 | bit4 | bit5 | bit6 | bit7 |
---|---|---|---|---|---|---|---|---|
SP堆栈指针(建议主动配置) | 指向内部通用寄存器或IRAM地址, | 上电默认值07H | 一般会主动设置到 | 30H~F0H之间, | 函数调用时 | 压栈弹栈 | 会用到 | |
PCON芯片电源控制(可使用默认值) | IDL芯片进入空闲 | PD芯片下电 | GF0用户自定义 | GF1用户自定义 | 无 | 无 | 无 | SMOD特定条件下的串口双波特率位(由定时器1产生)(当前很多芯片串口波特率由别的寄存器来控制了,更简单) |
IE中断使能(用到外设时需主动打开) | EX0外部中断0 | ET0定时器0中断 | EX1外部中断1 | ET1定时器1中断 | ES串口0中断 | ET2定时器2中断 | 无 | EA失能所有中断 |
IP中断优先级(可使用默认值) | PX0外部中断0优先级 | PT0定时器0优先级 | PX1外部中断1优先级 | PT1定时器1优先级 | PS串口优先级 | PT2定时器2优先级 | 无 | 无 |
SCON串口0配置 | 接收中断,软件清零 | 发送中断,软件清零 | RB8接收的9bit | TB8要发送的9bit | REN接收使能 | SM2 | SM1 | SM0串口模式:波特率与晶振关系,8bit还是9bit(当前很多芯片串口波特率由别的寄存器来控制了,更简单) |
SBUF串口0数据 | 串口0的收发数据 | |||||||
P0、P1、P2、P3 GPIO | 读写IO数据,Px.0 | Px.1 | Px.2 | Px.3 | Px.4 | Px.5 | Px.6 | Px.7 |
TCON定时器和外部中断配置 | IT0外部中断0边缘触发还是电平触发 | IE0外部中断0标志 | 1边缘触发还是电平触发 | IE1收到外部中断1的标志 | TR0定时器0使能失能 | TF0定时器0溢出标志,硬件置位和清零 | TR1定时器1使能失能 | TF1定时器1溢出标志,硬件置位和清零 |
TMOD | M0_0 | M1_0多少位的寄存器,是否自动装载 | C/T0作为计数器还是定时器 | GATE0定时器0的运行关闭由外部中断引脚电平来控制 | M0_1 | M1_1 | C/T1 | GATE1 |
TL0、TL1、TH0、TH1、TL2、TH2、RCAP2L、RCAP2H | 定时器的装载值和计数器的计数值 | |||||||
T2CON | CP/RL2是否自动装载 | C/T2作为定时器2还是计数器2 | TR2定时器2开始和运行 | EXEN2定时器2外部使能 | TCLK串口0发送波特率由串口2来生成 | RCLK串口0接收波特率由定时器2来生成 | EXF2定时器2外部标志 | TF2定时器2溢出标志 |
相关文章:
51单片机所有寄存器介绍
51单片机所有寄存器介绍 作者将狼才鲸创建日期2025-04-27 参考资料:Intel官方《MCS-51 Programmer’s Guide and Instruction Set.pdf》CSDN阅读地址:51单片机所有寄存器介绍 一、前言 51单片机的寄存器和ARM不一样,有自己专有的名称&…...
4.27算法题
力扣649.Dota2 参议院 649. Dota2 参议院 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程…...
衡石科技:HENGSHI SENSE 数据权限解决方案
编写目的 本方案主要讲述 HENGSHI SENSE 的数据权限方案,即在 HENGSHI SENSE 系统中,通过同步企业内部的人员属性和组织架构等信息,实现企业内部的每一个用户对于业务数据的读取权限。 本方案的的预期读者为:HENGSHI SENSE 的…...
矩阵系统源码搭建热门音乐功能板块开发,支持OEM
在数字音乐蓬勃发展的当下,矩阵系统中的热门音乐功能板块成为吸引用户的重要部分。它不仅能为用户推荐当下流行的音乐,还能提升用户在系统中的活跃度和留存率。本文将通过详细的源码搭建过程,带你了解如何在矩阵系统中实现一个功能完备的热门…...
深入理解Android Activity生命周期
引言 在Android开发中,理解Activity的生命周期对于创建高效、稳定的应用程序至关重要。无论你是初学者还是资深开发者,掌握Activity生命周期的概念都能帮助你更好地管理资源、优化性能以及处理各种用户交互场景。本文将详细介绍Activity生命周期中的各个事件,并通过示例代码…...
【WEB3】web3.0是什么
互联网在不断发展。 我们即将翻开新的篇章,迎来翻天覆地的变化。 — Web 1.0 只能阅读信息。 它主要是供我们访问和阅读信息,只有极少数人可以真正发布内容。 — Web 2.0,即互联网目前所处的阶段,我们能够在网络上发布内容、建立…...
2025上海车展 | 移远通信重磅发布AR脚踢毫米波雷达,重新定义“无接触交互”尾门
4月25日,在2025上海国际汽车工业展览会期间,全球领先的物联网和车联网整体解决方案供应商移远通信宣布,其全新AR脚踢毫米波雷达RD7702AC正式发布。 该产品专为汽车尾门“无接触交互”设计,基于先进的毫米波技术,融合AR…...
ubuntu安装git及使用(本地git)
ubuntu安装git及使用教程(本地git) 1.ubuntu安装git1.1 查看自己的Ubuntu是否已经装有git1.2 下面进行介绍如何Ubuntu终端安装git (若已安装则可忽略) 2. 配置Git基本信息2.1 若不清楚是否配置的可使用如下命令查看2.2 未配置用户…...
数智读书笔记系列031《HIS内核设计之道——医院信息系统规划设计系统思维》书籍简介与读书笔记
一、作者与出版信息 作者团队(核心贡献者) 任连仲 身份:中国工程院院士(2022年当选),解放军总医院信息科原主任技术贡献: 主导“军字一号”系统架构设计(1997-2005年),支撑全国300余家三甲医院信息化建设提出“医疗数据语义网格”理论,获国家科技进步二等奖(2018年…...
WinForm真入门(18)——DateTimePicker控件解析
一、基本概念 DateTimePicker 是 Windows 窗体中用于选择日期和时间的控件,支持以下交互方式: 通过下拉日历选择日期通过上下按钮调整时间直接输入日期或时间 适用于需要规范日期格式、限制日期范围或快速输入的场景(如预约系统、数据…...
关于堆栈指针的那些事 | bootloader 如何跳转app
问题描述 堆栈指针的值通常存储在 App 的向量表(Vector Table)的第一个位置(0x08002000),为什么? 在嵌入式系统中,堆栈指针(SP)的值存储在应用程序(App&…...
如何在 iPhone 上恢复已删除的联系人:简短指南
从 iPhone 中删除联系人相当容易,但如果您不小心删除了错误的联系人或丢失了所有联系人怎么办?这可能是任何智能手机用户都可能发生的最糟糕的噩梦之一。 如何在 iPhone 上恢复已删除的联系人 我个人在我的列表上看到几个用户发布关于他们如何丢失所有联…...
使用Aspose.Words将Word转换为HTML时,字体样式丢失问题及解决方法
使用Aspose.Words将Word转换为HTML时,字体样式丢失问题及解决方法 引言 ✨一、问题描述 📉二、问题分析 🔍三、解决方案 🛠️四、总结 🏁 引言 ✨ 在实际开发中,使用Aspose.Words将Word文档转换为HTML格式…...
更快的图像局部修改与可控生成:Flex.2-preview
Flex.2-preview 文本生成图像扩散模型介绍 一、模型简介 Flex.2-preview 是一种 开源的 80 亿参数文本生成图像扩散模型,具备通用控制和修复支持功能,是 Flex.1alpha 的下一代版本。该模型由社区开发并为社区服务,采用 Apache 2.0 许可证&a…...
汽车制造行业如何在数字化转型中抓住机遇?
近年来,随着新一轮科技革命和产业变革的深入推进,汽车制造行业正迎来一场前所未有的数字化转型浪潮。无论是传统车企还是新势力品牌,都在积极探索如何通过数字化技术提升竞争力、开拓新市场。那么,在这场变革中,汽车制…...
数据可视化 —— 直方图
一、前言 直方图(Histogram)是一种用柱状图形表示数据分布的统计图表,它将数据划分为连续的区间(称为“分箱”或“区间”),统计每个区间内的数据频数(或频率),并用柱形的…...
1、Linux操作系统下,ubuntu22.04版本切换中英文界面
切换中英文界面的方法很多,我也是按照一个能用的方法弄过来并且记录, 1.如果刚开始使用Ubuntu环境,桌面的语言环境为英文,需要安装中文简体的字体包 打开桌面终端,输入 sudo apt install language-pack-zh-hans lan…...
《MySQL 技术内幕-innoDB 存储引擎》笔记
💡 根据 遗忘曲线:如果没有记录和回顾,6天后便会忘记75%的内容 读书笔记正是帮助你记录和回顾的工具,不必拘泥于形式,其核心是:记录、翻看、思考::: 书名MySQL 技术内幕-innoDB 存储引擎作者姜承尧状态已读…...
C++ AVL树的实现
在上一篇博客我们学习了二叉搜索树的实现,现在我们开始手动实现AVL树。 二叉搜索树-CSDN博客 1.AVL树的概念 AVL树是最先发明的⾃平衡⼆叉查找树,AVL是⼀颗空树,或者具备下列性质的⼆叉搜索树:它的左右⼦树都是AVL树,…...
多视觉编码器协同与高低分辨率特征融合技术综述
本文主要介绍(论文发表时间:24.03-25.01)在多模态中使用多个视觉编码器如何进行特征融合操作(之所以用多视觉编码器,主要用途在于:有些视觉编码器可能只能提取到部分信息,就想通过另外一个编码器…...
力扣4-最长公共前缀
一.题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flower","flow","flight"] 输出:"fl"示例 2&…...
贪心算法-860.柠檬水找零-力扣(LeetCode)
一、题目解析 我们需要注意我们是没有初始零钱的,所以当第一个顾客支付10或20时,无法找零此时返回false。 二、算法解析 根据贪心算法的解决方式,我们需要先把解决该问题分解为若干步。 首先对于顾客支付的钱共有三种,5…...
Kubernetes学习笔记-配置Service对接第三方访问
在Kubernetes中配置Service对接第三方访问,可以选择以下方案实现: ExternalName Service(基于DNS别名) 适用场景:外部服务必须有固定域名Service配置文件如下: apiVersion: v1 kind: Service metadata…...
pikachu靶场-敏感信息泄露
一、敏感信息泄露的危害 1. 个人隐私与数据安全 身份盗窃:泄露个人身份信息(如姓名、身份证号、手机号)可被用于诈骗、冒名开户等犯罪活动。账户劫持:暴露用户账号密码、邮箱等凭证,导致社交媒体、银行账户被非法登录。…...
ppt章节页怎么做好看?ppt章节页模板
ppt章节页怎么做好看?ppt章节页怎么排版?ppt章节页模板: PPT章节_模板素材_PPT模板_ppt素材_免抠图片_AiPPTer...
ubuntu扩展逻辑卷并调整文件系统大小步骤
安装好ubuntu如果没有调整磁盘空间,一般默认给你100G的空间,在用完时再调整也还来得及,下面是 ubuntu扩展逻辑卷并调整文件系统大小步骤: 1. 扩展逻辑卷 运行以下命令来扩展逻辑卷 /dev/ubuntu-vg/ubuntu-lv,使其使用卷组中所有未分配的空间ÿ…...
2.脚本文件初识
—>1.Makefile—自动化构建和管理项目的文件见这篇<— 1.编程语言 编程语言分为2类,一类是编译型语言,将源文件经过编译得到可执行文件,该执行文件可以在特定平台上运行,其他平台则不行,因此是不跨平台的编程语…...
FastAPI + Redis Pub/Sub + WebSocket 组合解决方案的详细介绍
以下是对 FastAPI Redis Pub/Sub WebSocket 组合解决方案的详细介绍,涵盖技术原理、实现步骤、协作流程和适用场景。 1. 技术概述 1.1 FastAPI 特性:基于 Python 的现代异步框架,支持 async/await,性能高效,适合高…...
泛型的诗意——深入C++模板的艺术与科学(模版进阶)
前言: 在之前,小编讲述了模版的初阶内容,当时小编讲述了模版的书写,方便之后容器的讲解以及模拟实现,现在小编已经带领各位学习了很多容器,模版初阶的知识已经用的很多了,今天小编讲述一下全新的…...
【极致版】华为云Astro轻应用抽取IoTDA影子设备参数生成表格页面全流程
做份极致详细Astro调取iotda影子设备数据的操作手册,每一步都分成: 要进入哪个界面 点哪个按钮 要填什么内容(样例) 如果出错怎么办 填写示例 完全对应你这个需求:Astro轻应用抽取IoTDA影子设备数据,…...
业务中台与数据中台:企业数字化转型的核心引擎
前言:在当今数字化浪潮下,企业为了提升运营效率、加速创新步伐并更好地适应市场变化,业务中台与数据中台应运而生,成为企业架构中的关键组成部分。本文将深入探讨业务中台和数据中台的简介、发展史、技术流环节以及在实际生产中的…...
前端分页与瀑布流最佳实践笔记 - React Antd 版
前端分页与瀑布流最佳实践笔记 - React Antd 版 1. 分页与瀑布流对比 分页(Pagination)瀑布流(Infinite Scroll)展示方式按页分批加载,有明确页码控件滚动到底部时自动加载更多内容,无明显分页用户控制用…...
【网络原理】从零开始深入理解TCP的各项特性和机制.(三)
上篇介绍了网络原理传输层TCP协议的知识,本篇博客给大家带来的是网络原理剩余的内容, 总体来说,这部分内容没有上两篇文章那么重要,本篇知识有一个印象即可. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分…...
MySQL:13.用户管理
13. 用户管理 如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用MySQL的用户管理。 13.1 用户 13.1.1 用户信息 MySQL中的用户,都存储在系统数据库mysql的user表中 mysql> use mysql; Database changed mysql> select h…...
leetcode0103. 二叉树的锯齿形层序遍历-medium
1 题目:二叉树的锯齿形层序遍历 官方标定难度:中 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行…...
【Go语言】ORM(对象关系映射)库
github.com/jinzhu/gorm 是 Go 语言中一个非常流行的 ORM(对象关系映射)库,用于简化与关系型数据库的交互。以下是关于它的关键信息: 核心特点 全功能 ORM 支持主流数据库:MySQL、PostgreSQL、SQLite、SQL Server 等。…...
Java : GUI
AWT 初始化界面 直接封装起来: panel 的添加 布局 流式布局,控制按钮的位置 东西南北中布局 网格布局 frame.pack();java函数,会自动选择最优的布局 事件监听 给按钮添加 添加文本 画笔 鼠标监听 键盘监听 JDialog”弹窗 默认有关闭事件 标签&#…...
ipa包安装到apple手机上
获ipa包的方式 ipatool 下载appStore的ipa包-CSDN博客 方式一:巨魔商店 原理是利用apple的漏洞,但是有低版本的系统要求 TrollStore - Always Sideload Any IPAs For FreeTrollStore - The ultimate jailbreak app for iOS. Permanently install any …...
JavaScript输出数据的方法
1. console.log() console.log()是最常用的方法之一,用于在浏览器的控制台(Console)中输出信息。这对于调试和查看变量的值非常有用。 console.log("Hello, world!");2. alert() alert()方法会弹出一个带有指定消息和确定按钮的警告…...
操作系统:计算机世界的基石与演进
一、操作系统的本质与核心功能 操作系统如同计算机系统的"总管家",在硬件与应用之间架起关键桥梁。从不同视角观察,其核心功能呈现多维价值: 硬件视角的双重使命: 硬件管理者:通过内存管理、进程调度和设…...
FFmpeg之三 录制音频并保存, API编解码从理论到实战
在学习FFmpeg的时候,想拿demo来练习,官方虽有示例,但更像是工具演示,新手不好掌握,在网上找不到有文章,能给出完整的示例和关键点的分析说明,一步一个错误,慢慢啃过来的,…...
幂等性处理解决方案实战示例
幂等性处理解决方案实战示例 幂等性是指对同一个操作执行一次或多次,产生的结果是相同的。在分布式系统、网络请求和金融交易等场景中,幂等性设计至关重要。下面我将介绍几种常见的幂等性处理方案及其实战示例。 1. 唯一标识符方案 原理:为…...
华为仓颉编程语言的实际用法与使用领域详解
华为仓颉编程语言的实际用法与使用领域详解 一、语言概述与核心特性 华为仓颉编程语言是面向万物智联时代的系统级编程语言,其核心特性包括: 三重内存安全机制:所有权系统 + 引用检查 + 硬件辅助防护零成本抽象:高级语法不牺牲底层性能全场景支持:从嵌入式设备到量子计算…...
JavaEE-多线程实战01
Java 多线程入门:第一个多线程程序 在 Java 中,多线程编程是非常重要的一部分。本篇文章将通过示例,带你快速了解如何创建第一个多线程程序,并深入分析其运行机制。 1. 创建一个线程类并继承 Thread 在 Java 中,我们…...
当AI浏览器和AI搜索替代掉传统搜索份额时,老牌的搜索引擎市场何去何从。
AI搜索与传统搜索优劣势分析 AI搜索优势 理解和处理查询方式更智能:利用自然语言处理(NLP)和机器学习技术,能够更好地理解用户的意图和上下文,处理复杂的问答、长尾问题以及多轮对话,提供更为精准和相关的…...
大模型——Spring.new快速构建AI驱动的定制化商业应用
大模型——Spring.new快速构建AI驱动的定制化商业应用 Spring.new 是一个基于人工智能的在线平台,专注于帮助营销经理和产品经理快速构建定制化工作流和小型应用。它通过自然语言输入,让用户描述需求,自动生成连接 Notion、Airtable、Slack 等工具的工作流或应用,例如将 F…...
django admin 中更新表数据 之后再将数据返回管理界面
在Django中,更新数据库中的数据并将其重新显示在Django Admin界面上通常涉及到几个步骤。这里我将详细说明如何在Django Admin中更新表数据,并确保更新后的数据能够立即在管理界面上显示。 定义模型 首先,确保你的模型(Model&…...
深度理解linux系统—— 进程概念
一、进程 进程,什么是进程? 在课本,教材中是这样描述的:程序的一个执行示例,正在执行的程序; 从内核角度来说,进程就是担当分配系统资源(CPU时间,内存)的实体…...
【如何使用solidwork编辑结构导入到simscope】
这里写自定义目录标题 欢迎使用Markdown编辑器 欢迎使用Markdown编辑器 To use Simscape Multibody Link, you must install MATLAB and the CAD applications on the same computer. To ensure the successful installation of Simscape Multibody Link, before launching yo…...
Flink 时态维度表 Join 与缓存机制实战
一、引言:为什么需要时态维度表? 在实时数仓建设中,维度表是不可或缺的一环,例如: 风控系统中,用户的风险等级在不同时间可能变化; 营销体系中,商品的促销标签会动态调整ÿ…...