单片机学习笔记---中断系统(含外部中断)

目录

中断介绍

中断优先级

中断嵌套

中断技术的优点

中断的结构

中断请求源

中断优先级

5个基本中断内部的结构

INT0和INT1

T0和T1

串口

中断寄存器

IE

TCON

中断优先级列表

中断号

中断响应的条件

代码编写实例分析

外部中断硬件电路分析


这一节我们主要是介绍中断系统,为什么要单独介绍中断系统?因为对于51单片机来说,那个中断的外设还是比较多的,像定时器、串口以及外部中断都比较多,所以我们先从全局来了解这个中断。

中断介绍

下面我们来了解一下中断,中断它是为了使这个单片机具有对外部或者内部随机发生的事件能够实时响应处理而设置的,所以中断功能的存在,很大程度上提高了单片机处理外部或者是内部事件的能力,所以中断它是非常重要的,它可以让单片机能够实时处理一些突发事件,比如说我们正常情况下在执行功能的时候,突然有紧急的事情需要处理,就可以利用这个中断来进行处理。处理完成这些突发事件之后,再回到之前的位置继续往下执行。

我们先来用生活当中的例子来给大家讲解中断的过程,这张图我们可以看一下生活中的实例。

比如,你在打开火烧一壶水,然后就去洗衣服,在洗衣服的过程当中,突然听到这个水壶发出了水开的报警声音,这个时候水壶正在开了,爆发出报警声音,这个时候你就要停止洗衣服的这个动作了,如果说你再继续往下洗衣服,那可能就会导致水壶烧干而引引发的一些火灾这些非常危险的一些事件,所以这个水开报警事件就相当于非常紧急突发的事件,那这个时候我们就要立刻停止手上的工作,停止洗衣服的这个动作,然后,转去什么去关火,完火之后,然后将开水灌入到暖水瓶当中,执行完成这个动作之后,又回到我们刚才洗衣服的地方,继续去洗你的衣服,这个过程我们就称为中断。

中断概念对于单片机来讲,它其实也是一样的,我们来看一下单片机手册上的官方介绍:

以下是中断程序的流程图:

这就是中断,那我们再来看一下这张图,也是中断的执行流程图,可以看一下。

首先主程序在往下执行,执行过程当中,突然有事件,突然发出了中断请求,在这个中断请求这里我们通常也称为断点。引起CPU去响应中断的这个中断源,就是引起CPU中断的这个根源,我们称为中断源,那比如说我们刚才举例的洗衣服,烧水那个生活当中的例子,水壶发出这个报警声,其实它就是中断源,因为是它引起我们CPU来中断,要执行一些中断的程序。 CPU响应之后,它就会转去执行这个中断程序了,我们假设是事件B,执行中断程序完成之后回过头,它会返回到断点的这个位置,也就是刚才我们中断的这个位置,然后继续往下执行这个主程序,这个过程就是中断。

中断优先级

在单片机当中,中断系统一般是允许有多个中断源的,当几个中断源同时向CPU发出请求中断的时候,要求为它服务的时候,这就存在CPU优先响应哪一个中断请求的问题。

假设我们有两个中断,也就两个中断1、中断2,这两个中断同时过来,那CPU要执行哪个?

中断源有优先的级别,CPU是根据它的级别来判断优先执行哪一个中断,优先级别越高的就优先执行,越低的就最后执行,比如在中断事件1和中断事件2同时过来之后,假设它的优先级1的优先级要高,2的优先级要低,同时过来之后,那这个CPU要响应哪?当然是响应优先级高的这个事件1,执行完事件1之后再来执行低优先级的中断事件,那等这个事件执行完成,才会继续回到主程序往下执行,这也就是中断优先级的响应。

这个优先级怎么来判别?

通常在这个单片机当中,它都有对应的默认的优先级别,当然也可以通过对应的寄存器来修改的优先级,对于51单片机来说,通常我们不去修改的寄存器的值,而是通过默认的优先级别进行。

中断嵌套

当我们CPU正在处理中断请求的时候,发生了另优先级比它还高的中断源请求,这个时候,它就有中断嵌套的问题。

我们来说明一下,假设我们主程序在执行中断事件A,突然有个中断事件过来,那我们要响应这个中断事件B,在执行这个中断事件B的时候,突然又有中断的事件C,而C优先级比B的优先级还要高,那这个时候,它就在这个地方要暂停中断优先级B,要去转去执行优先级高的事件C,然后执行完成之后,再回到这个地方继续往下执行中断服务程序B,执行完了之后,再回到主程序来继续往下执行。

这叫做中断嵌套中断嵌套。

那对于51单片机来说,通常这种的很少,对于一些高端的,像STM32,或者是DSP之类的这种高级的一些单片机来说,那中断是更加的复杂,所以在这些单片机里面,通常都会存在一些中断嵌套,经常会遇到。

对于51大来说这种很少,基本上就是处理中断处理完又回到主程序来。

中断技术的优点

随着计算机技术的应用,人们发现了中断技术不仅解决了快速主机与慢速IO设备的数据传输问题,而且还有这些优点:

  1. 分时操作

CPU它可以分时为多个IO设备进行服务,提高了计算机的利用率,通过中断可以进行实现分时操作。比如说我们在使用定时器的时候,定时不同时间,并且执行不同的时间,这就可以进行分时操作。

  1. 实时响应

因为我们使用了中断,当我们事件过来之后,肯定要响应中断了,然后执行完中断之后,再回到我们主程序继续执行,这是个实时响应的功能。

  1. 可靠性高

CPU具有处理设备故障,以及掉电等突发事件的能力,可以让这个系统可靠性可以大大的提高。

在任何的一款单片机当中,中断基基本上是必不可少的,所以中断这一块大家一定要认真的去学习。

中断的结构

下面我们来看一下这个中断的结构。

中断请求源

我们知道STC89系列51单片机提供了8个中断的请求,请求8个

它们分别是外部中断就是INT0外部中断0),INT1(外部中断1INT3外部中断2,以及INT3外部中断3)。

另外还有定时器0定时器1还有定时器2以及串口。

这些中断总共是8个中断的请求源,这里是指STC一些增强型的一些单片机,它具备这些中断员,也就最多8个。

对于普通系列的51单片机来说,比如说8051系列的,STC89 C51/C52之类的,都具备共有就是8051内核的51单片机均有的5个中断源是INT0外部中断0),INT1(外部中断1和定时器0定时器1,以及串口这五个中

就是说只要是51单片机,这五个中断源是必不可少的,至于INT3T2(外部中断2),INT3(外部中断3)以及定时器2这些是根据你芯片的外设有没有增加,比如说STC90系列的,或者是一些更高级的,增强型的,它可能会增加几个资源,这些增加的资源的使用方法跟这些是完全一样的,所以我们这里重点是学习基本的这五个。

中断优先级顺序

所有的中断都具备4个中断优先级。 基本型只有2个(高级和低级)。用户可以用关总中断允许位EA这个控制寄存器,它能够控制我们的总中断或者是相应的中断允许屏蔽位,屏蔽我们所有中断请求。也可以用打开相应的中断,允许CPU响应相应的中断申请,其中,有些中断源是可以用软件独立的控制开中断或者是关中断的,每中断的优先级可以通过软件来设置。

高优先级的中断级可以打断低优先级的中断,反之低优先级的中断请求是不可以打断高优先级的中断,这个在前面我们也说了。 当两个相同优先级的中断同时产生的时候,它会通过查询次序来决定系统响应哪一个中断,因为在这些中断里面它固定会有顺序的,我们这里也列出来了。

它的优先级如上图中的箭头方向,从下到上优先级变高,这是固定的。

当然也可以通过寄存器来修改它的优先级,既然可以修改优先级,那肯定有可能会把这两个,比如说我们外部中断0和定时器0设置为相同的优先级,如果是相同的优先级同时发生,那我们CPU要响应哪一个?它会根据我们默认的这个顺序,比如说外部中断0它是最高,那就响应这个。这是优先级相同的情况下的响应顺序。

当然我们通常不会去操作优先级顺序的寄存器,我们会按照它默认的优先级的顺序来使用它。

5个基本中断内部的结构

下面,我们来具体看一下51单片机5个中断内部的结构。

INT0和INT1

首先我们来看一下这个INT0,INT0对应的是P32口这个附加功能,它可以通过TCON寄存器的IT0这一位来进行选择。

IT0在芯片手册上的解释:

如果是说将这个IT0这一位设置为0,就选择的是低电平触发,经过非门变成1。

如果是将IT0设置为1的话,它是选择下降沿触发,下降沿触发之后流入到我们的IE0(中断标志)。

IE0在芯片手册上的解释:

比如说我们外部有信号,那来了下降沿之后,那如果说我们配置了IT0=1,来了下降沿的话,它就会让这个IE01,这就是中断的标志,说明来了中断的事件。

来了中断事件,但它还不会连到我们的CPU,它要通过IE和IP以及后面的一系列操作联络到我们的CPU,所以IE这一块也要进行设置,IE是包括了对应的外部中断的一些寄存器的设置。比如,EX0是外部中断0的中断选择,如果是说我们要使能这个外部中断的话,那EX0就要为1,也就是这个开关要闭合。

这里的开关闭合上的话,那信号就可以过来,然后,紧接着是EA总中断,前面即使全部配置好,但这个中断不打开的话,那中断的信号也是流入不到我们的CPU的,所以这个总中断也要设置为1,设置为1的话,这个中断信号就可以流入到CPU了。

默认IP是用来设置中断优先级的,这里我们就不设置,默认它是以连到这个0,连到0的话,通过我们前面说的这个中断的默认的顺序表来进行响应哪一个先出发。它就会直接流入到我们的CPU,从而触发我们的中断。

同理,我们的外部中断1也是一样的。  

外部中断1是连接到P3.3引脚。

T0和T1

T0对应的是我们的P3.4口,T1对应的是P3.5口

我们这个定时器它是16位,后续的定时器/计数器部分我们会介绍,如果是我们使用的16位模式的话,计数到65536就会产生溢出(因为2的16次方等于65536,如果是从0开始计数,计数到65535,如果再往下计到65536就溢出)溢出的话就会有溢出的中断请求,TF0就是中断请求的标志,发出了溢出TF0就会自动置1,如果说我们开启了对应的中断,比如说ET0,和它后面的总中断开启了,然后,PT0这里也默认是已经连到了0,然后传入到我们的CPU,这样就会发出中断的请求,也就是定时器的溢出请求。

那同理我们的T1也是一样的。

串口

然后下面是串口RX和TX,有发送和接收两个引脚,对应P3.0和P3.1引脚的附加功能。

RX(接收数据) TX(发送数据)

RX对应到RI,是SCON上的位,TX对应的是TI。 RI和TI后面是一个或门,当这两个有为1,也就相当于有发送完成或者是接收完成标志之一的话,它会发出中断请求,如果说我们开启了串口的中断功能,并且把总中断给使能,它也会向CPU发送中断请求,或者是发送中断请求,或者是接收完成中断请求这么一个信号给我们的CPU。 当串口接收完一帧串行数据的时候,RI(接收完成中断请求的标志)和,发送完成一帧数据之后,TI(发送完成的标志)都会自动置1。

也就是说这一块它是我们单片机自动完成的。

前面是我们用来设置中断的请求的条件。

然后,后面的这一块也是我们要设置的中断的开关。

这里总中断是适用于我们所有的中断,只要把总中断打开,前面我们全部配置好之后才能传入到我们的CPU。

如果说你前面配置好之后总中断没有打开,依然是不能完成这个中断请求的,单片机不会进入到中断服务程序执行。

中断寄存器

下面我们来看一下中断相关的寄存器。

IE

我们分析这个中断结构的时候,这里就需要我们配置这个IE。

如果说你使用的是外部中断就要对EX0和EX1进行配置。

如果你使用定时器的话,那你要对这个ET0和ET1进行配置。

如果说你是使用串口,那你要对这个ES进行配置.

这些分别都是IE的这个寄存器的某位:

对应关系:

EA是外部的总中断,也就是CPU的中断允许位,我们也称之为总中断,当我们前面把外设的一些中断的条件选择好之后,最终我们还要开启这个总中断EA,如果EA不开启,你即使前面配置好,依然是不会产生中断,进入中断的触发程序的,所以,这一块一定要注意,我们在前面结构图当中也给大家分析了EA这一块的作用。

然后ES是对应到串行口的中断允许位,如果说我们要使用串行通讯,也就串口通信的话,要使用中断,那我们就要将这个ES置1,把它的使能开关给打开。

然后ET1和ET0对应到定时计数器,T0和T1的中断允许位。 如果说我们要使用这个定时计数的功能,那我们要对这个ET1和ET0进行选择,也就是它的使能开关要打开,它是个允许的开关。

EX1和EX0是外部中断0和外部中断1的允许位,我们要使用外部中断的话,我们也要把它的开关给使能。

TCON

那现在我们再看一下中断请求标志TCON。

中断请求标志这个TCON里面就是对触发方式还有定时器的一些方面的设置。

TCON是8位的寄存器,首先我们从低4位看起。

IT0是外部中断0的触发方式控制位,它这个值有0和1的选择,如果是0的话,那我们默认是设置为低电平触发方式。而我们将这个值设置为1的话,它是选择为下降沿触发方式,下降沿就是说从我们高电频变为低电频这时刻,它就会触发中断。  

通常我们使用外部中断的话,都是使用下降沿触发,也就将这个IT0或者IT1设置为1。 然后我们再来看一下IE0,它是外部中断的请求标志位,IE1也是中断请求标志位。这些中断标请求标志位是由单片机内部自动去完成。

比如,我们配置好外部中断的触发方式之后,假设IT0设置为下降沿触发,那外部来了一个下降沿脉冲到P3.2引脚,就会触发外部中断INT0发出中断请求,IE0它自动会设置为高电平。它是自动完成的,不需要我们人为的去设置,IE1也是同样的道理。

IT1跟IT0一样的。

然后就是TR0和TR1,它是定时器的初值的设置,这个在后面我们介绍这个定时器的时候会对这个TR0和TR1进行讲解。   

然后这里有个TF0和TF1,它是属于定时计数器T0和T1的溢出中断请求标志,它也是自动去完成的,当我们定时计数器计数满的时候并发生溢出的时候,这个请求标志它会自动置1,这个在前面我们其实已经分析过。

中断优先级列表

接下来我们再看一下后面的中断优先级。

前面我们说了同一个优先级的中断申请可能不止一个,这个时候就有中断优先级的排队的问题。比如说两个中断过来之后,优先执行哪一个,那就根据中断的优先级执行。

如果说你不通过寄存器修改中断优先级的话,默认它会按照图中的优先次序来排列。

中断号

然后在我们编写中断的时候,它有中断的中断号,在这张图当中也给大家列出来了。

这个中断号有什么作用?

这个中断号就是指引CPU执行程序的时候,定位到哪一个中断。

如果说我们外部中断0触发引起中断的话,那你中断号必须是0。如果你这里写1,那即使你前面程序都配置好,那它也不会进入到你这个写1的这个程序当中来的,这里一定要注意。

中断号一定要记住!中断号是绝对不能搞错,你搞错了,程序是进入不了你的中断服务程序的。

中断响应的条件

接着我们来看一下中断响应的条件。 主要有3个条件,只有同时满足才能触发中断。

1.首先只有发出了中断请求,CPU才会有可能响应,所以,这个中断请求必须得满足,就是说要有中断源产生。比如我们生活当中的例子,我们水开发出报警声,那它就产生中断请求。

2.那我们要去执行它,我们首先要满足将中断源相关的一些中断允许位打开,只有打开了中断请求才能过来,才能到我们CPU这里来。

3.最后就是CPU的开中断,也就是总中断要打开,前面你这个配置好了,你这个总中断不打开的话,一样是不能响应的,这一点要注意。

满足这三个条件,CPU就能产生中断,就触发中断响应执行。

代码编写实例分析

然后我们以外部中断0为例来介绍一下中断如何来使用。

根据前面说的这三个条件,首先我们要打开总中断。

当然打开总中断这个顺序都无所谓。

然后,我们选择它的EX0是用来开启外部中断的功能的允许位,我们要给允许外部中断进来。

然后,IT0是用来设置触发方式,如果我们设置为1的话,那是选择下降沿触发,也就是说外部来了下降沿,那我们就会触发这个中断。

进入中断的时候,我们有中断服务程序,中断服务程序这个函数跟我们普通的函数不一样,它增加了interrupt这个关键字。

这个关键字是51单片机特有的中断关键字,不能写错,写错了也是进入不了中断函数的。然后非常重要的一点就是这个中断号,中断号前面我们也说了,外部中断0是对应的是0。

然后后面的using 1这个可以不写,现在基本上不写这一块,可以把它给忽略掉.

中断函数通常都是没有返回值的,所以是void空类型。

当然中断函数里面也是没有入口参数的。

以上就是关于中断系统的相关介绍了,后面会继续讲到它的具体使用。

外部中断硬件电路分析

下面我们来介绍一下硬件。

其实外部中断是属于单片机内部的资源,所以,我们重点是介绍连接到外部中断的引脚的一些电路。

前面我们在介绍独立按键的时候说过,K3和K4是连接在P32和P33引脚。

而且P32和P33正好是我们连接的是外部中断INT0和INT1。

所以如果说我们对K3或者K4按键进行操作的时候,P32和P33就会收到对应的信号。

比如我们配置了外部中断0(使用的是P32引脚)下降沿的触发方式。默认独立按键是接了GND的,也就是低电平有效。并且默认P32有上拉电阻,所以P32默认是高电平。

那当按键K3按下的时候,那这个GND就输入到P32引脚了,所以按下的时候P32就是低电频。从高电平到低电平,它就有下降沿。

所以当我们配置为下降沿触发的时候,按键一按下,它就会触发外部中断,因此可以通过这个按键来模拟这个外部中断的触发的功能。 同理,K4也就是P33,它是属于外部中断1的功能,所以,我们也可以通过K4来编写外部中断1的触发的程序。

我们可以通过按键来触发这些外部中断的话,那我们要如何观察?

我们这里使用了指示灯,当我按键按下的时候触发外部中断,我就让对应的LED点亮。

LED模块我们前面好几节讲的挺多了,这里就不再赘述。

以上就是外部中断系统硬件电路的解释。

下节我们开始学习定时器!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/380458.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

‘javax.sql.DataSource‘ that could not be found的问题

报错信息如下: 2024-02-04 16:31:14.832 WARN 952 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDepen…

Codeforces Edu 74 E. Keyboard Purchase 【状压DP +贡献】

E. Keyboard Purchase 题意 给定一个长度为 n n n 的字符串 s s s 仅由前 m m m 个小写字母组成 现在要求求出包含前 m m m 个小写字母的键盘,使得在键盘上敲出 s s s 要移动的距离最短 移动总距离为: ∑ i 2 n ∣ p o s s i − 1 − p o s s i…

零基础学Python(9)— 流程控制语句(下)

前言:Hello大家好,我是小哥谈。流程控制语句是编程语言中用于控制程序执行流程的语句,本节课就带大家认识下Python语言中常见的流程控制语句!~🌈 目录 🚀1.while循环 🚀2.for循环 &#x1…

网络协议、网络传输认识

目录 网络协议概念 网络协议具象化理解 协议分层 TCP/IP模型 网络传输基本流程 网络协议概念 网络协议是计算机网络中用于在通信设备之间传输数据的规则集合。这些规则定义了数据的格式、传输方式、错误检测和纠正方法等,以确保不同设备之间的通信能够正确进行…

一键部署自动化运维工具spug

简介 Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。 部署 1.创建目录 mkdir -p /opt/spug/{mysql,service,repos} 2.进入目录 cd /o…

【 buuctf--刷新过的图片】

前言:这题主要运用到了新的工具F5-steganography由于 java 环境不合适的原因,我不得不重新配java11.0.18。 具体思路:非常帅气的一张图片。。。用 binwalk,stegsolve,zsteg,exiftool 等工具无果后&#xf…

计算机毕业设计Python+django医院后勤服务系统flask

结合目前流行的 B/S架构,将医疗后勤服务管理的各个方面都集中到数据库中,以便于用户的需要。该平台在确保平台稳定的前提下,能够实现多功能模块的设计和应用。该平台由管理员功能模块,工作人员模块,患者模块,患者家属模…

2024牛客寒假算法基础集训营3部分题解

智乃与瞩目狸猫、幸运水母、月宫龙虾 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 Ubuntu是一个以桌面应用为主的Linux发行版操作系统,其名称来自非洲南部祖鲁语或豪萨语的"ubuntu"一词,意思是"人性…

嵌入式单片机中晶振的工作原理

晶振在单片机中是必不可少的元器件,只要用到CPU的地方就必定有晶振的存在,那么晶振是如何工作的呢? 什么是晶振 晶振一般指晶体振荡器,晶体振荡器是指从一块石英晶体上按一定方位角切下的薄片,简称为晶片。 石英晶体谐…

简单实验 spring cloud gateWay 路由实验 实验

1.概要 1.1 说明 微服务统一网关实验&#xff0c;这里简单实验一下路由的功能 1.2 实验步骤&#xff0c;使用下面这个工程作为基础工程添加了一个gateWay做如下使用 简单实践 spring cloud nacos nacos-server-2.3.0-CSDN博客 2 代码 2.1 工程文件 <?xml version&quo…

The Back-And-Forth Method (BFM) for Wasserstein Gradient Flows windows安装

本文记录了BFM算法代码在windows上的安装过程。 算法原网站&#xff1a;https://wasserstein-gradient-flows.netlify.app/ github&#xff1a;https://github.com/wonjunee/wgfBFMcodes 文章目录 FFTWwgfBFMcodesMATLABpython注 FFTW 官网/下载路径&#xff1a;https://ww…

07 A B 从计数器到可控线性序列机

07. A.从计数器到可控线性序列机 让LED灯按照亮0.25秒。灭0.75秒的状态循环亮灭让LED灯按照亮0.25秒&#xff0c;灭0.5秒&#xff0c;亮0.75秒&#xff0c;灭1秒的状态循环亮灭让LED灯按照指定的亮灭模式亮灭&#xff0c;亮灭模式未知&#xff0c;由用户随即指定。以0.25秒为一…

2023年哪个前端框架用的最多?

2023 年&#xff0c;TypeScript 的每月下载量持续稳定增长&#xff0c;年度累计下载量高达2,071,832,110&#xff08;20.7 亿&#xff09;&#xff0c;展现了强大的市场需求和用户认可。 本文来通过详细的数据&#xff08;2023 年 npm 累计下载量&#xff09;&#xff0c;看看…

深度学习(13)--PyTorch搭建神经网络进行气温预测

一.搭建神经网络进行气温预测流程详解 1.1.导入所需的工具包 import numpy as np # 矩阵计算 import pandas as pd # 数据读取 import matplotlib.pyplot as plt # 画图处理 import torch # 构建神经网络 import torch.optim as optim # 设置优化器 1.2.读取并处理数据…

Linux 36.2@Jetson Orin Nano基础环境构建

Linux 36.2Jetson Orin Nano基础环境构建 1. 源由2. 步骤2.1 安装NVIDIA Jetson Linux 36.2系统2.2 必备软件安装2.3 基本远程环境2.3.1 远程ssh登录2.3.2 samba局域网2.3.3 VNC远程登录 2.4 开发环境安装 3. 总结 1. 源由 现在流行什么&#xff0c;也跟风来么一个一篇。当然&…

【数据结构与算法-初学者指南】【附带力扣原题】队列

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《数据结构与算法&#xff1a;初学者入门指南》&#x1f4d8;&am…

保育员答案在哪搜?这4款足够解决问题 #媒体#其他#其他

学会运用各类学习辅助工具和资料&#xff0c;是大学生培养自主学习能力和信息获取能力的重要途径之一。 1.石墨文档 石墨文档(Shimo Docs)是一款强大的在线文档协作工具。它提供了多人实时协作、版本控制、评论和批注等功能&#xff0c;方便学生在学习中进行文档编写、合作项…

完美运营的最新视频打赏系统及附带教程

(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买) 优于市面上95%的打赏系统,与其他打赏系统相比,功能更加强大,完美运营且无bug。支付会调、短链接生成、代理后台、价…

企业内部知识库管理软件的终极指南:如何选择最适合你的工具?

知识库管理软件对于希望提高客户支持和组织效率的公司来说是一个强大的工具。在数字时代&#xff0c;拥有一个可靠的知识库系统对于快速准确地满足客户需求至关重要。在当今的技术条件下&#xff0c;知识库管理软件有很多选择&#xff0c;每个企业都应该仔细评估并选择最适合自…

阿里云幻兽帕鲁服务器有用过的吗?搭建简单啊

玩转幻兽帕鲁服务器&#xff0c;幻兽帕鲁Palworld多人游戏专用服务器一键部署教程&#xff0c;阿里云推出新手0基础一键部署幻兽帕鲁服务器教程&#xff0c;傻瓜式一键部署&#xff0c;3分钟即可成功创建一台Palworld专属服务器&#xff0c;成本仅需26元&#xff0c;阿里云百科…