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

单片机原理及技术(二)—— AT89S51单片机(一)(C51编程)

目录

一、AT89S51单片机的片内硬件结构

二、AT89S51的引脚功能

2.1 电源及时钟引脚

2.2 控制引脚

2.3 并行 I/O口引脚

三、AT89S51的CPU

3.1 运算器

3.1.1 算术逻辑单元(ALU)

3.1.2 累加器A

3.1.3 程序状态字寄存器(PSW)

3.2 控制器

四、AT89S51单片机存储器的结构

4.1 程序存储器空间

4.2 数据存储器空间

4.2.1 片内数据存储器

4.2.2 片外数据存储器

4.3 特殊功能寄存器

4.3.1 堆栈指针(SP)

4.3.2 寄存器(B)

4.3.3 AUXR 寄存器

4.3.4 数据指针 DPTR0 和 DPTR1

4.3.5 看门狗定时器(WDT)

4.4 位地址空间


一、AT89S51单片机的片内硬件结构

AT89S51是一种高性能、低功耗的8位单片机,它包含了丰富的片内硬件结构,用于实现多种功能。

主要硬件结构如下:

1.中央处理器(CPU):AT89S51采用8位CPU,具有高速执行能力,可以执行各种指令。

2.程序存储器(ROM):AT89S51内置了4KB的闪存程序存储器,用于存储用户程序和数据。

3.数据存储器(RAM):AT89S51内置了128字节的RAM,用于存储临时变量和数据。

4.输入/输出(I/O):AT89S51具有4个外部中断引脚、32个可编程I/O引脚,用于与外部设备进行数据交互。

5.定时器/计数器:AT89S51内置了2个8位定时器/计数器和1个16位定时器/计数器,可用于计时、产生定时中断等功能。

6.串口通信:AT89S51具有一个可以实现串行通信的UART(通用异步收发器)。

7.模数转换器(ADC):AT89S51内置了一个8通道的10位模数转换器,可以将模拟信号转换为数字信号。

8.时钟和定时器:AT89S51采用外部晶振或者外部时钟源作为系统时钟,并具有多种定时器和计数器功能。

除了上述主要硬件结构外,AT89S51还包括电源管理单元、中断控制器、数据存储器和编程接口等。这些硬件结构的组合和配置,使得AT89S51具有丰富的功能和灵活的应用能力。

AT89S51单片机的片内硬件结构图:

二、AT89S51的引脚功能

AT89S51单片机具有40个引脚,每个引脚都具有不同的功能。下面是AT89S51的引脚功能列表:

P0.0 - P0.7: I/O 可编程口线; P1.0 - P1.7: I/O 可编程口线; P2.0 - P2.7: I/O 可编程口线; P3.0 - P3.7: I/O 可编程口线。

P0口线用作外部数据总线或者低位地址总线(P0.0 - P0.7)

P1口线用作通用的I/O口线,但是在一些特殊情况下,某些引脚的功能可能会被限定。

P2口线具有一些特殊功能引脚,如外部中断请求、定时器/计数器引脚、串行数据输入/输出引脚。

P3口线具有一些特殊功能引脚,如外部中断请求、定时器/计数器引脚、串行数据输入/输出引脚。

另外,AT89S51还具有一些特殊引脚功能如下:

  1. EA: 外部访问使能引脚,用于选择片内或者片外程序存储器。
  2. RST: 复位引脚,用于对单片机进行复位操作。
  3. XTAL1: 晶振输入引脚,接晶体振荡器的输出。
  4. XTAL2: 晶振输出引脚,连接到晶体振荡器的输入端。

2.1 电源及时钟引脚

AT89S51单片机的电源和时钟引脚如下:

  1. VCC(引脚40):正电源引脚,连接至电源的正极(一般是+5V)。
  2. GND(引脚20):地引脚,连接至电源的负极或地线。

时钟相关引脚有两种选择,可以使用外部晶振或外部时钟源:

  1. XTAL1(引脚19):晶振输入引脚,用于连接外部晶振的输出端。
  2. XTAL2(引脚18):晶振输出引脚,连接至外部晶振的输入端。

或者:

  1. XTAL1(引脚19):时钟输入引脚,用于连接外部时钟源。
  2. XTAL2(引脚18):时钟输出引脚,不连接。

通过连接外部晶振或外部时钟源,可以提供稳定的时钟信号来驱动单片机的运行和计时功能。

2.2 控制引脚

AT89S51单片机的控制引脚如下:

  1. RST(引脚9):复位引脚,用于将单片机恢复到初始状态,并启动程序的执行。当RST引脚低电平时,单片机进入复位状态。
  2. PSEN(引脚29):程序存储器片选引脚,用于选择程序存储器(一般为闪存或EPROM)的使能。当PSEN引脚为低电平时,表示读取程序存储器中的指令。
  3. ALE/PROG(引脚30):地址锁存使能/编程引脚,用于控制地址锁存器的使能以及编程模式的选择。当ALE/PROG引脚高电平时,表示进行地址锁存;当ALE/PROG引脚低电平时,表示进入编程模式。
  4. EA/VPP(引脚31):外部访问使能/编程使能引脚,用于选择外部访问或内部程序存储器的访问模式。当EA/VPP引脚高电平时,表示使用外部程序存储器;当EA/VPP引脚低电平时,表示使用内部程序存储器。在编程模式下,EA/VPP引脚用作编程使能引脚。
  5. P3.0-P3.7(引脚10-17):I/O口引脚,可配置为输入或输出。P3端口可用于连接外部设备或作为通用输入/输出口。

2.3 并行 I/O口引脚

AT89S51单片机的并行I/O口引脚为P0、P1、P2、P3

P0(引脚32-39):8位并行输入/输出口,可配置为输入或输出。P0端口可用于连接外部设备或作为通用输入/输出口。

P1(引脚1-8):8位并行输入/输出口,可配置为输入或输出。P1端口可用于连接外部设备或作为通用输入/输出口。

P2(引脚21-28):8位并行输入/输出口,可配置为输入或输出。P2端口可用于连接外部设备或作为通用输入/输出口。

P3(引脚10-17):8位并行输入/输出口,可配置为输入或输出。P3端口可用于连接外部设备或作为通用输入/输出口。

P3口的第二功能定义表格:

P3口引脚功能说明
P3.0RXD串行通信接收器输入。
P3.1TXD串行通信发送器输出。
P3.2INT0外部中断0输入。
P3.3INT1外部中断1输入。
P3.4T0定时器0外部输入。
P3.5T1定时器1外部输入。
P3.6WR外部数据存储器写入控制信号。
P3.7RD外部数据存储器读取控制信号。

这些并行I/O口引脚可以与外部设备进行数据通信,或者用于控制外部电路的输入/输出操作。

三、AT89S51的CPU

AT89S51的CPU,由一个8位算术逻辑单元(ALU)、8位寄存器组、程序计数器、栈指针、CPU控制逻辑等组成。它能够执行一系列的指令,实现各种运算和控制功能。

AT89S51的ROM,用于存储程序代码,可以存储8K字节的程序。RAM用于存储数据,有可供程序使用的内部RAM和可供用户使用的外部RAM。

AT89S51有4个I/O端口,每个端口有8个引脚,可以连接外部设备和传感器。它还具有两个16位定时器/计数器,可以用于测量时间、产生脉冲信号等。

AT89S51还具有一个串行通信接口(UART),可以进行与其他设备的串行通信,如与计算机或其他单片机进行数据传输。

3.1 运算器

运算器是计算机中常见的一个功能部件,用于执行算术和逻辑运算。它通常由算术逻辑单元(ALU)和累加器(Accumulator)组成。

3.1.1 算术逻辑单元(ALU)

算术逻辑单元(Arithmetic Logic Unit,简称ALU)是计算机的核心部件之一,负责执行算术和逻辑运算。ALU通常由多个逻辑门电路组成,可以进行加法、减法、逻辑与、逻辑或、逻辑异或等运算。

ALU一般有以下几个主要功能

  1. 算术运算:包括加法、减法、乘法、除法等。
  2. 逻辑运算:包括与、或、非、异或等运算。
  3. 位移运算:包括左移、右移等运算。
  4. 比较运算:用于比较两个数据的大小关系。

ALU通常由多个寄存器、加法器、逻辑门电路和控制逻辑组成。寄存器用于存储操作数和结果,加法器用于执行加法运算,逻辑门电路用于执行逻辑运算,控制逻辑用于控制ALU的操作和输出。

3.1.2 累加器A

累加器A是一种特殊的寄存器,用于存储和操作数据。在AT89S51的CPU中,累加器A是一个8位的寄存器,用于执行算术和逻辑运算。

累加器A具有以下功能:

  1. 存储数据:累加器A可以用来存储8位的数据,这些数据可以是计算结果、输入数据或者中间数据。
  2. 算术运算:累加器A可以参与各种算术运算,包括加法、减法、乘法和除法等。计算结果会保存在累加器A中。
  3. 逻辑运算:累加器A可以参与逻辑运算,如与、或、非、异或等。计算结果会保存在累加器A中。
  4. 数据传输:数据可以从其他寄存器或者内存中传输到累加器A,或者从累加器A传输到其他寄存器或者内存中。

累加器A在编程中经常被使用,可以用于数值计算、逻辑判断和数据传输等操作。它的快速访问和操作能力使得累加器A成为CPU中重要的寄存器之一。

3.1.3 程序状态字寄存器(PSW)

程序状态字寄存器(Program Status Word, PSW)是AT89S51中的一个8位寄存器,用于存储和表示CPU的各种状态和标志位。

PSW寄存器的各个位的功能如下

  • CY (Carry Flag):进位标志位,用于指示是否发生了进位或借位。
  • AC (Auxiliary Carry Flag):辅助进位标志位,用于指示低 4 位的进位或借位。
  • F0 (User Flag 0):用户标志位 0,可以根据用户的需要自由设置和使用。
  • RS1 (Register Bank Select 1) 和 RS0 (Register Bank Select 0):寄存器组选择位,用于选择寄存器组 0、1、2 或 3。
  • OV (Overflow Flag):溢出标志位,用于指示是否发生了有符号数据的溢出。
  • P (Parity Flag):奇偶标志位,用于指示结果的低 8 位中 1 的个数是否为奇数。
  • 未使用位:PSW寄存器的高两位是未使用的位,保留为0。

下面是RS1和RS0与四组工作寄存器区的对应关系表格:

RS1RS0工作寄存器区
000 组(片内 RAM地址 00H-07H)
011 组(片内 RAM地址 08H-0FH)
102 组(片内 RAM地址 10H-17H)
113 组(片内 RAM地址 18H-1FH)

3.2 控制器

控制器是计算机系统中的关键组件之一,主要负责指令的执行和数据的处理。控制器包括以下几个主要部分:

  1. 程序计数器(Program Counter,PC):用于存储当前指令的地址,指示下一条要执行的指令的位置。

  2. 指令译码器(Instruction Decoder):用于解析指令,并将其转换为计算机可理解和执行的控制信号。

  3. 定时及控制电路:负责产生和控制各种时序信号,确保指令和数据在正确的时机进行传输和处理。

  4. 寄存器组:用于存储指令执行所需的数据和中间结果。包括通用寄存器、程序状态字等。

  5. 数据通路(Data Path):负责数据的传输和处理,包括算术逻辑单元(ALU)、数据选择器、数据缓存等。

控制器的功能是根据指令流程控制计算机的工作,并将数据和指令传送给其他部件进行处理。

四、AT89S51单片机存储器的结构

4.1 程序存储器空间

AT89S51单片机的片内程序存储器空间为4KB(4096字节)的Flash存储器,从地址0x0000到0x0FFF。用户可在片外扩展程序存储器,最多可扩展至64KB的程序存储器

这个存储器空间用来存储程序指令,包括初始化程序、中断向量表、主程序等。在程序存储器中,每个存储单元存储一个字节的指令码。程序存储器空间的大小决定了单片机可以存储的程序的长度。

AT89S51微控制器有5个中断源,每个中断源都有一个对应的中断入口地址。下面是AT89S51的5个中断源及其中断入口地址的表格:

中断源中断入口地址
INT0(外部中断 0)0x0003H
TF0(定时器 T0)0x000BH
INT1(外部中断 1)0x0013H
TF1(定时器 T1)0x001BH
RI/TI(串行口)0x0023H

注意:

  • 以上地址是16位地址,以十六进制表示。中断入口地址是中断服务子程序的起始地址,在中断发生时,程序会跳转到对应的中断入口地址执行中断服务程序。

4.2 数据存储器空间

AT89S51的数据存储器空间(掉电易失性)包括片内RAM和片外RAM。

4.2.1 片内数据存储器

AT89S51是一种8位微控制器,具有片内RAM用于存储程序的变量和临时数据。它的片内RAM总共有128个字节,地址范围从0x00到0x7F。

AT89S51的片内RAM主要用途包括:

  1. 存储特殊功能寄存器(SFR):0x00到0x07地址范围内的RAM用于存储与微控制器的控制和状态相关的寄存器,例如控制I/O口、外部中断控制和定时器/计数器控制等。
  2. I/O寄存器:0x08到0x1F地址范围内的RAM用于存储与外部设备进行数据交互的I/O口的寄存器,包括输入口和输出口的配置和控制。
  3. 通用寄存器:0x20到0x2F地址范围内的RAM用作通用寄存器,可以用于存储程序的变量和临时数据。这些寄存器的使用是由程序员决定的,可以根据程序的需要进行分配和使用。
  4. 堆栈指针和堆栈数据:0x2F地址用作堆栈指针,指示当前堆栈的顶部位置,用于存储函数调用和中断处理时的现场保存。0x30到0x7E地址范围内的RAM用于存储堆栈中的数据。
  5. 特殊功能位:0x7F地址用于存储特殊功能位。这些位用于控制和配置微控制器的特殊功能,例如中断使能、时钟源选择等。

AT89S51的片内RAM结构图:

4.2.2 片外数据存储器

AT89S51的片外RAM可以为系统提供额外的存储空间,扩展了片内RAM的容量。片外RAM通常用于存储大量的数据、变量、缓冲区等。它可以提高系统的处理能力、灵活性和可拓展性。

连接片外RAM时,需要注意以下几点:

  1. 地址空间:片外RAM的地址空间通常比片内RAM大,因此需要使用更多的地址线来寻址。在AT89S51中,片外RAM的地址空间可以达到64KB。

  2. 片选信号:为了区分片内RAM和片外RAM的地址范围,需要使用特定的片选信号。这样,当片外RAM的地址范围被选中时,MCU会将数据读取或写入到片外RAM中。

  3. 时序要求:在使用片外RAM时,需要注意时序要求。外部RAM的读写操作需要按照特定的时序进行,以确保正常的数据传输和存储。

总结来说,AT89S51的片外RAM可以通过外部芯片或模块扩展系统的存储空间。通过连接片外RAM,可以提供额外的存储空间,提升系统的处理能力和灵活性。连接片外RAM需要注意地址空间、片选信号和时序要求等方面的配置。

4.3 特殊功能寄存器

下面是AT89S51微控制器的SFR(特殊功能寄存器)的名称及其分布表格:

序号特殊功能寄存器符号名称字节地址(H)复位值
1ACC累加器0xE00x00
2BB寄存器0xF00x00
3SP堆栈指针0x810x07
4DPL数据指针(低位)0x820x00
5DPH数据指针(高位)0x830x00
6P0端口00x800xFF
7P1端口10x900xFF
8P2端口20xA00xFF
9P3端口30xB00xFF
10IE中断使能寄存器0xA80x00
11IP中断优先级寄存器0xB80x00
12TCON定时器/计数器控制寄存器0x880x00
13TMOD定时器/计数器模式寄存器0x890x00
14TL0定时器0计数器(低位)0x8A0x00
15TL1定时器1计数器(低位)0x8B0x00
16TH0定时器0计数器(高位)0x8C0x00
17TH1定时器1计数器(高位)0x8D0x00
18T2CON定时器2控制寄存器0xC80x00
19RCAP2L定时器2重载计数器(低位)0xCA0x00
20RCAP2H定时器2重载计数器(高位)0xCB0x00
21TL2定时器2计数器(低位)0xCC0x00
22TH2定时器2计数器(高位)0xCD0x00
23PSW程序状态字寄存器0xD00x00
24EA中断允许位0xAF0x00
25PCON电源控制寄存器0x870x00
26SBUF串口数据寄存器0x990x00
27SCON串口控制寄存器0x980x00

4.3.1 堆栈指针(SP)

堆栈指针(Stack Pointer,SP)是一个特殊功能寄存器,用于管理程序中的堆栈。堆栈是一个用于存储临时数据和返回地址的区域,它遵循"后进先出"的原则。

在大多数微控制器中,堆栈可以使用内部RAM的一部分来实现。堆栈指针(SP)指示了当前堆栈顶部的位置,即最新的数据所在的位置。每当一个数据被推入堆栈时,堆栈指针将减小;而每当一个数据被弹出堆栈时,堆栈指针将增加。

堆栈指针(SP)的字节地址在不同的微控制器中可能会有所不同,具体取决于芯片的架构和设计。你可以参考芯片的数据手册或技术规格来查找堆栈指针的字节地址。通常,堆栈指针的字节地址是一个特定的SFR地址。

复位值表示在芯片复位时,堆栈指针将被设置为一个默认的初始值。在AT89S51微控制器中,堆栈指针(SP)的复位值为0x07。这意味着在复位时,堆栈指针将指向内部RAM的地址0x07,即堆栈的最底部位置。

通过操作堆栈指针(SP),你可以推入数据到堆栈(将数据放入堆栈顶部),从堆栈中弹出数据(获取堆栈顶部的数据),以及进行其他与堆栈相关的操作。堆栈指针用于管理函数调用、中断处理以及临时数据的存储。

4.3.2 寄存器(B)

在AT89S51微控制器中,寄存器(B)是一个特殊功能寄存器,用于存储8位数据。它是一个可读写的寄存器,可以用于临时存储数据或作为一个通用寄存器使用。

寄存器(B)的字节地址为0x00,也就是位于内部RAM的地址0x00。

在AT89S51微控制器的复位时,寄存器(B)的复位值是未定义的。这意味着,在复位时,寄存器(B)的内容可能是任意的,需要手动初始化。

你可以使用指令将数据加载到寄存器(B)中,或者从寄存器(B)中将数据传输到其他寄存器或存储器位置。寄存器(B)在编写嵌入式程序时可以用于各种用途,例如计算、数据传输和临时存储等。

4.3.3 AUXR 寄存器

AT89S51的AUXR寄存器是一个8位寄存器,它的格式如下:

D7D6D5D4D3D2D1D0
名称---WDIDLEDISRTO--DISALE

其中:

  • DISALE位 (Bit 4) 是DISABLE ALE/PROG引脚的功能位。当DISALE位为1时,ALE/PROG引脚被禁用,不再产生ALE信号;当DISALE位为0时,ALE/PROG引脚正常工作,并产生ALE信号。
  • DISRTO位 (Bit 3) 是禁用复位时序的功能位。当DISRTO位为1时,复位信号上升沿将不会引起复位时序,而是直接复位;当DISRTO位为0时,复位信号上升沿会触发复位时序。
  • WDIDLE位 (Bit 2) 是控制看门狗定时器是否在空闲状态工作的功能位。当WDIDLE位为1时,看门狗定时器只在CPU空闲状态下计数;当WDIDLE位为0时,看门狗定时器在CPU任何状态下都会计数。

注意:

  • AUXR寄存器的其他位没有特定功能,应该保持为0。

4.3.4 数据指针 DPTR0 和 DPTR1

AT89S51微控制器具有2个数据指针寄存器,分别为DPTR0和DPTR1

DPTR0用于访问代码存储器的外部数据空间,也可以用于访问内部数据存储器的第1半部分(从00H到7FH)。

DPTR1用于访问内部数据存储器的第2半部分(从80H到FFH)。

这两个数据指针寄存器都是16位的,可以用于存储数据地址。通过将数据的高字节存储到DPH(数据指针高字节寄存器)中,将数据的低字节存储到DPL(数据指针低字节寄存器)中,来设置数据的地址。

4.3.5 看门狗定时器(WDT)

在AT89S51微控制器中,看门狗定时器(WDT)是由AUXR寄存器的不同位字段来控制的。

  1. DISALE(AUXR.3) - 禁用外部中断1: 设置DISALE位为1,禁用外部中断1功能。当禁用时,外部中断1引脚(INT1)将不会响应外部中断信号。

  2. DISRTO(AUXR.2) - 禁用复位超时功能: 设置DISRTO位为1,禁用复位超时功能。当禁用时,复位超时功能将不会触发复位。

  3. WDIDLE(AUXR.1) - 看门狗定时器空闲模式: 设置WDIDLE位为1,使看门狗定时器在空闲模式下运行。在空闲模式下,看门狗定时器将继续计数,即使CPU处于空闲状态。如果WDIDLE位为0,看门狗定时器将只在CPU执行指令时进行计数。

4.4 位地址空间

位地址空间是指一个计算机系统中的内存或存储器的总地址范围,它由位(bit)的数量来衡量。位地址空间的大小取决于计算机体系结构的设计和处理器的位数。

在AT89S51单片机中,位地址空间为8位,即有2^8=256个不同的地址。这意味着该单片机可以寻址256个不同的内存位置。该内存地址空间包括RAM(随机存储器)、ROM(只读存储器)和特殊功能寄存器(SFR)等。

对于片内程序存储器(Flash),AT89S51单片机提供了8KB的存储容量,它占据了地址空间的一部分。其余的地址空间可以用于访问片外存储器、外设等。在片外存储器的情况下,可以通过特定的存储器接口或总线进行访问。

相关文章:

单片机原理及技术(二)—— AT89S51单片机(一)(C51编程)

目录 一、AT89S51单片机的片内硬件结构 二、AT89S51的引脚功能 2.1 电源及时钟引脚 2.2 控制引脚 2.3 并行 I/O口引脚 三、AT89S51的CPU 3.1 运算器 3.1.1 算术逻辑单元(ALU) 3.1.2 累加器A 3.1.3 程序状态字寄存器(PSW&#xff09…...

某方protobuf闲谈

问题 当我们去看某方的时候,搜索了关键词svm,然后通过抓包查看,请求的Request Payload是一串看不懂的乱码,并且返回的数据也大部分是乱码 观察请求的Content-Type是application/grpc-web+proto,没错数据的传输是protobuf的形式了 protobuf的相关概念和原理,网上有很多教…...

专为汽车内容打造的智能剪辑解决方案

汽车内容创作已成为越来越多车主和汽车爱好者热衷的活动。然而,如何高效、便捷地将行车途中的精彩瞬间转化为高质量的视频作品,一直是困扰着广大用户的一大难题。美摄科技凭借其深厚的视频处理技术和智能分析能力,推出了专为汽车内容记录而生…...

【C语言】二叉树的实现

文章目录 前言⭐一、二叉树的定义🚲二、创建二叉树🎡三、二叉树的销毁🎉四、遍历二叉树1. 前序遍历2. 中序遍历3. 后序遍历4. 层序遍历 🌲五、二叉树的计算1. 计算二叉树结点个数2. 计算二叉树叶子结点的个数3. 计算二叉树的深度4…...

在ubuntu22.04里网站源码连不上mysql数据库

在ubuntu22.04里网站源码连不上mysql数据库。后来找到了原因。 连不上的时候有报错信息: ERROR 1698 (28000): Access denied for user rootlocalhost 用在网上搜索该报错信息,找到了两篇有用的文章,用这两篇文章里的处理方法解决了问题。 …...

博客说明 5/12~5/24【个人】

博客说明 5/12~5/24【个人】 前言版权博客说明 5/12~5/24【个人】对比最后 前言 2024-5-24 13:39:23 对我在2024年5月12日到5月24日发布的博客做一下简要的说明 以下内容源自《【个人】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作…...

豆瓣电影后端设计

sql脚本 -- douban.tags_encode definitionCREATE TABLE tags_encode (id bigint NOT NULL AUTO_INCREMENT COMMENT 自增主键,tag varchar(100) NOT NULL COMMENT tag中文名,tag_encode varchar(100) NOT NULL COMMENT tag转encode,type varchar(100) NOT NULL DEFAULT movie …...

【深度学习】第1章

概论: 机器学习是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析,其基础主要是归纳和统计。 深度学习是一种实现机器学习的技术,是机器学习重要的分支。其源于人工神经网络的研究。深度学习的模型结构是一种含多隐层的神经…...

Vue3实战笔记(37)—粒子特效登录页面

文章目录 前言一、粒子特效登录页总结 前言 上头了&#xff0c;再来一个粒子特效登录页面。 一、粒子特效登录页 登录页&#xff1a; <template><div><vue-particles id"tsparticles" particles-loaded"particlesLoaded" :options"…...

解锁无限可能:JavaScript与【机器学习】的浪漫邂逅

解锁无限可能&#xff1a;JavaScript与机器学习的浪漫邂逅 在人工智能和大数据日益盛行的今天&#xff0c;机器学习已成为我们理解、分析和处理数据的强大工具。而JavaScript&#xff0c;作为前端开发的主流语言&#xff0c;其灵活的特性和广泛的应用场景也让我们对其充满了期…...

【Linux】$()中的内容与不加$()时有什么区别

$()中的内容与不加$()有什么区别&#xff0c;例如$(/usr/local/hadoop/bin/hadoop classpath)与/usr/local/hadoop/bin/hadoop classpath两者有何区别&#xff1f;&#xff1f;&#xff1f; 关于这个问题&#xff0c;笔者建议可以参考如下文章&#xff1a; Linux—shell中$((…...

2024最新前端面试八股文【基础篇293题】

⼀、HTML、HTTP、web综合问题 1 前端需要注意哪些SEO 2 <img> 的 title 和 alt 有什么区别 3 HTTP的⼏种请求⽅法⽤途 4 从浏览器地址栏输⼊url到显示⻚⾯的步骤 5 如何进⾏⽹站性能优化 6 HTTP状态码及其含义 7 语义化的理解 8 介绍⼀下你对浏览器内核的理解 9 …...

【NumPy】关于numpy.median()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…...

起保停电路工作原理

一、电路组成 起保停电路由电源保护设备&#xff08;空气开关&#xff09;、交流接触器、启动按钮、停止按钮和用电设备组成。 起保停电路的组成部分通常可分为四个部分&#xff1a; 保护部分&#xff1a;&#xff08;空气开关&#xff09;在电流或电压超出一定范围时自动切断…...

【Vue】Vue2使用ElementUI

目录 Element UI介绍特点Vue2使用Element安装引入ElementUI组件库 使用ElementUI用户注册列表展示其他 mint-ui介绍特点安装组件引入组件Mint-ui相关组件 Element UI 介绍 官网(基于 Vue 2.x ):https://element.eleme.cn/#/zh-CN ElementUI 是一个基于 Vue.js 的桌面端组件库…...

设计模式在芯片验证中的应用——模板方法

一、模板方法 模板方法(Template Method)设计模式是一种行为设计模式&#xff0c; 它在父类中定义了一个功能的框架&#xff0c; 允许子类在不修改结构的情况下重写功能的特定步骤。也就是模板方法定义了一组有序执行的操作&#xff0c;将一些步骤的实现留给子类&#xff0c;同…...

Webpack Bundle Analyzer:深入分析与优化你的包

Webpack Bundle Analyzer是一个用于可视化的工具&#xff0c;它可以帮助你分析Webpack打包后的输出文件&#xff0c;查看哪些模块占用了最多的空间&#xff0c;从而进行优化。 2500G计算机入门到高级架构师开发资料超级大礼包免费送&#xff01; 首先&#xff0c;你需要安装W…...

Java后端开发学习历程

1、JavaWeb------------------------>19天 2、SSMSpringBoot------------->12天 3、瑞吉外卖项目------------------>15天 4、JavaSE-------------------------->25天 总耗时71天&#xff08;2024.03.11——2024.05.26两个半月&#xff09;&#xff0c;Java后端…...

CentOS 7 socat命令端口转发

场景 开发排查问题需配置远程调试,但配置调试的服务器不支持外网访问,于是就考虑到用端口转发的方式让开发进行远程调试,转发工具比如有:rinetd等等,意外看到使用socat做转发更简单方便,下面就记录一下 命令简介 socat 是一个功能强大的网络工具,可以在两个连接的数据…...

vue全局修改设置滚动条样式

vue全局修改设置滚动条样式 具体代码&#xff1a; ::-webkit-scrollbar{ /*滚动条整体样式*/width: 6px; /*高宽分别对应横竖滚动条的尺寸*/height: 1px; } ::-webkit-scrollbar-thumb{ /*滚动条里面小方块*/border-radius: 5px;background: #cfcbcb; } ::-webkit-scrollbar-…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...