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

51单片机从入门到精通:理论与实践指南入门篇(二)

续51单片机从入门到精通:理论与实践指南(一)https://blog.csdn.net/speaking_me/article/details/144067372

第一篇总体给大家在(全局)总体上讲解了一下51单片机,那么接下来几天结束详细讲解,从理论到实践。

那么开始我们的入门篇(二)吧

单片机的基本知识

1. 单片机的基本结构
1.1 中央处理器(CPU)
  • 功能:执行指令,进行数据处理。
  • 组成:运算器(ALU)、控制器、寄存器等。
  • 特点:是单片机的核心部分,负责指令的执行和数据的运算。
1.2 存储器
  • 内部RAM
    • 容量:128字节。
    • 功能:存储数据变量。
    • 地址范围:00H-7FH。
  • 外部RAM
    • 扩展方式:通过P0和P2端口扩展。
    • 最大容量:64KB。
    • 地址范围:0000H-FFFFH。
  • 程序存储器
    • 类型:Flash存储器。
    • 容量:通常为4KB或8KB。
    • 功能:存储程序代码。
    • 地址范围:0000H-FFFFH。
1.3 输入/输出(I/O)端口
  • 数量:4个8位双向I/O端口(P0、P1、P2、P3)。
  • 功能:与外部设备进行数据交换。
  • 特点:每个端口都可以配置为输入或输出。
    • P0端口:8位双向I/O端口,也可作为地址/数据总线使用。
    • P1端口:8位双向I/O端口。
    • P2端口:8位双向I/O端口,也可作为地址总线的高8位使用。
    • P3端口:8位双向I/O端口,每个引脚都有第二功能(如串行通信、中断等)。
1.4 定时/计数器
  • 数量:2个16位定时/计数器(Timer0和Timer1)。
  • 功能:产生定时中断或计数外部脉冲。
  • 模式:多种工作模式(模式0-3)。
1.5 中断系统
  • 中断源:定时器溢出中断、外部中断、串行通信中断等。
  • 优先级:高低优先级。
  • 功能:处理外部事件,提高系统的实时性。
1.6 串行通信接口
  • 类型:UART(通用异步收发传输器)。
  • 功能:实现串行通信。
  • 波特率:可配置,常见波特率为9600、115200等。

2. 单片机的封装案例
2.1 DIP(双列直插式封装)
  • 特点:引脚从封装的两侧引出,垂直于PCB表面。
  • 引脚数量:常见的有8、14、20、40等。
  • 应用:适合手动焊接和实验板使用,常用于学习和开发初期。
2.2 SOP(小外形封装)
  • 特点:引脚从封装两侧引出,呈L形。
  • 引脚数量:常见的有8、14、20等。
  • 应用:适合自动化生产和小型化设计。
2.3 QFP(四方扁平封装)
  • 特点:引脚从封装的四个侧面引出,呈海鸥翼形。
  • 引脚数量:常见的有32、44、64等。
  • 应用:适用于大规模集成电路和高性能应用。
2.4 BGA(球栅阵列封装)
  • 特点:引脚位于封装底部,呈球形。
  • 引脚数量:常见的有64、100、200等。
  • 应用:适用于高密度、高性能应用,如高性能处理器和高端单片机。

3. 单片机的应用场合
3.1 家电控制
  • 应用:微波炉、洗衣机、空调等。
  • 功能:控制设备的启停、定时及工作状态,提升家电的智能化程度。
3.2 工业自动化
  • 应用:自动化生产线、机器人和仪器仪表。
  • 功能:控制电机、传感器及其他设备,实现自动化控制和数据采集。
3.3 消费电子
  • 应用:手机、平板电脑、智能手表等。
  • 功能:负责用户界面的管理、数据处理及传感器接口。
3.4 嵌入式系统
  • 应用:智能家居、车载系统、医疗设备等。
  • 功能:提供智能控制及数据处理。
3.5 物联网(IoT)
  • 应用:智能城市、智能农业等。
  • 功能:通过网络连接实现远程监控和控制,推动智能城市发展。
3.6 教育与实验
  • 应用:学校、实验室和个人项目。
  • 功能:帮助学生和爱好者理解嵌入式系统和编程的基本概念。
4. 单片机控制系统的硬件搭建方法
4.1 单片机控制系统的基本结构
  • 单片机:核心控制单元。
  • 传感器:用于采集外部数据,如温度传感器、光敏传感器等。
  • 执行器:用于执行控制动作,如电机、继电器等。
  • 电源:为整个系统供电,通常为5V。
  • 外围电路:如稳压电路、滤波电路等。
  • 通信接口:如串口、SPI、I2C等,用于与其他设备通信。
4.2 硬件搭建步骤
  1. 选择单片机:如STC89C52或AT89S52。
  2. 晶振电路:连接晶振和两个20pF的瓷片电容到XTAL1和XTAL2引脚。
  3. 复位电路:连接一个10kΩ的上拉电阻和一个10μF的电容到RST引脚。
  4. 电源电路:连接5V电源,通过7805稳压器提供稳定的5V电压。
  5. LED指示灯:连接一个LED和一个限流电阻到P1.0引脚。
  6. 编程接口:连接ISP编程接口,用于烧写程序。

5. 单片机控制系统的开发过程
5.1 开发流程
  1. 明确任务

    • 分析需求:了解项目的总体要求,制定性能指标。
    • 考虑因素:使用环境、可靠性、可维护性、成本等。
  2. 划分软硬件功能

    • 硬件功能:选择硬件实现的功能,如数据采集、控制输出等。
    • 软件功能:选择软件实现的功能,如数据处理、用户界面管理等。
  3. 选择单片机及其他关键部件

    • 单片机:选择满足系统需求的单片机,如STC89C52。
    • 关键器件:选择A/D、D/A转换器、传感器、放大器等。
  4. 硬件设计

    • 原理图设计:使用Protel等软件设计电路原理图。
    • PCB设计:根据原理图绘制PCB图,生成生产文件。
  5. 软件设计

    • 程序结构:确定软件系统的程序结构,划分功能模块。
    • 模块设计:编写各模块的程序代码。
    • 编程语言:选择合适的编程语言,如C语言。
  6. 仿真调试

    • 软件仿真:使用Keil C51和Proteus进行系统仿真,检查程序逻辑和硬件连接。
    • 硬件调试:制作PCB板,焊接元器件,进行硬件调试。
  7. 系统调试

    • 联调:将软件和硬件结合,进行系统联调。
    • 问题排查:解决调试过程中发现的问题。
  8. 测试修改

    • 功能测试:进行全面的功能测试,确保系统正常工作。
    • 性能测试:测试系统的性能指标,如响应时间、稳定性等。
    • 修改完善:根据测试结果进行修改和完善。
  9. 用户试用

    • 用户反馈:将系统交付用户试用,收集用户反馈。
    • 最终修改:根据用户反馈进行最终修改,确保系统满足用户需求。

51单片机的引脚

51系列单片机是一种广泛使用的8位微控制器,其典型代表是AT89S51和AT89S52。51系列单片机通常采用40引脚的双列直插式封装(DIP),这些引脚根据功能可以分为电源引脚、复位引脚、时钟引脚、I/O引脚和控制引脚。

1. 基本工作条件引脚
  • 电源引脚

    • VCC (Pin40):正电源端,通常接5.0V电压。
    • GND (Pin20):接地端,通常接0V。
  • 复位引脚

    • RST/VPD (Pin9):复位信号输入端。单片机内部CPU的复位信号输入端。在单片机的振荡器启动后,该引脚置两个机器周期以上高电平,便可以实现复位。此外,该引脚还具有掉电保持功能,可以在掉电时保持RAM中的数据不丢失。
  • 时钟引脚

    • XTAL1 (Pin19):时钟XTAL1脚,片内振荡电路的输入端。
    • XTAL2 (Pin18):时钟XTAL2脚,片内振荡电路的输出端。
    • 工作方式:单片机的时钟振荡器有两种工作方式。一种是片内时钟振荡方式,在18和19脚外接石英晶体和振荡电容,振荡电容的值一般取10~30pF。另一种是外部时钟方式,由外部直接提供时钟源。
2. 输入/输出(I/O)引脚
  • P0端口 (Pin39~Pin32)

    • 功能:8位准双向I/O口,也可用于8位并行I/O口或分时复用为地址和数据总线。
    • 特点:需外接上拉电阻,在程序中向该端口写入1后,成为高阻抗输入口。P0口作为输出口时,每个引脚可以负载8个TTL。
  • P1端口 (Pin1~Pin8)

    • 功能:8位准双向并行I/O口。
    • 特点:内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL;在Flash编程和校验时,定义为低8位地址线。
  • P2端口 (Pin21~Pin28)

    • 功能:8位准双向并行I/O口。
    • 特点:内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL;当访问外部存储器时,定义为高8位地址线。
  • P3端口 (Pin10~Pin17)

    • 功能:8位准双向并行I/O口。
    • 特点:内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL。P3口每个引脚都具有第二功能:
      • P3.0 (RXD):串行数据接收端。
      • P3.1 (TXD):串行数据发送端。
      • P3.2 (INT0):外部中断0请求信号输入端。
      • P3.3 (INT1):外部中断1请求信号输入端。
      • P3.4 (T0):定时器/计数器T0的外部计数输入端。
      • P3.5 (T1):定时器/计数器T1的外部计数输入端。
      • P3.6 (WR):外部数据写选通信号。
      • P3.7 (RD):外部数据读选通信号。
3. 控制引脚
  • ALE/ (Pin30)

    • 功能:地址锁存使能端和编程脉冲输入端。
    • 特点:当访问外部程序存储器时,ALE引脚的负跳变将低8位地址打入锁存;而非访问内部程序存储器时,ALE引脚将有一个1/6振荡频率的正脉冲信号,该信号可以用于外部计数或时钟信号。当访问外部数据存储器(执行MOVX类指令)时,ALE引脚会跳过一个脉冲。对8EH单元的特殊功能寄存器的D0位置1,可禁止ALE输出,只有在执行MOVX或MOVC类指令时,ALE才被激活,仍输出锁存有效。在执行片外程序代码时,该设定禁止ALE位无效。
  • ** (Pin29)**:

    • 功能:访问外部程序存储器的读选通信号。
    • 特点:当单片机访问外部程序存储器,读取指令码时,每个机器周期产生2次有效信号,即此脚输出2个负脉冲选通信号;在执行片内程序存储器以及读写外部数据时,不产生 脉冲信号。
  • EA/VPP (Pin31)

    • 功能:访问内部或外部程序存储器选择信号。
    • 特点:当8051 CPU访问外部程序存储器时,则 必须保持低电平;当 保持高电平时,则8051 CPU先从片内0000H单元开始,执行内部程序存储器程序;如果外部还有扩展程序存储器,则8051 CPU在执行完内部程序存储器程序后,自动转向执行外部程序存储器中的程序。

TTL电平和COMS电平的概念

1. TTL电平

TTL(Transistor-Transistor Logic)电平是一种数字逻辑电平标准,广泛应用于数字电子系统和通信领域。TTL电平的特点如下:

  • 逻辑高电平:通常定义为2.4V至5V之间的电压范围,其中5V被认为是最常见的高电平表示。
  • 逻辑低电平:通常定义为0V至0.8V之间的电压范围,其中0V被认为是最常见的低电平表示。
  • 噪声容忍度:TTL电平对于噪声的容忍度较低,因此在使用时需要注意信号的稳定性和干扰抑制。
  • 功耗:TTL电路的功耗相对较高,但具有较快的开关速度。
  • 输入特性:TTL电路的输入端开路时,默认为高电平。
2. CMOS电平

CMOS(Complementary Metal-Oxide-Semiconductor)电平是另一种常见的数字电路电平标准。CMOS电平的特点如下:

  • 逻辑高电平:通常定义为电源电压VDD的0.9倍以上,接近电源电压。
  • 逻辑低电平:通常定义为电源电压VSS的0.1倍以下,接近0V。
  • 噪声容忍度:CMOS电平对噪声的容忍度较高,具有较宽的噪声容限。
  • 功耗:CMOS电路的功耗相对较低,主要因为CMOS门电路中的晶体管只有在切换时才会消耗能量。
  • 速度:CMOS电平的切换速度相对较慢,适用于低功耗、低速的数字电路。
  • 供电电压:CMOS电路的供电电压范围较广,通常在+5V至+15V之间均能正常工作。
3. TTL电平和CMOS电平的比较
  • 电流控制 vs 电压控制

    • TTL电路:是电流控制器件,输入端需要一定的电流才能正确识别电平。
    • CMOS电路:是电压控制器件,输入端几乎不需要电流。
  • 功耗

    • TTL电路:功耗较大,因为其内部的晶体管在导通时会有较大的电流。
    • CMOS电路:功耗较小,因为其内部的晶体管只有在切换时才会消耗能量。
  • 噪声容忍度

    • TTL电路:噪声容忍度较低,容易受到噪声干扰。
    • CMOS电路:噪声容忍度较高,具有较宽的噪声容限。
  • 速度

    • TTL电路:开关速度较快,适用于高速应用。
    • CMOS电路:开关速度较慢,适用于低速应用。
  • 兼容性

    • TTL电路:输出电平可以驱动CMOS电路,但CMOS电路的输出电平可能无法直接驱动TTL电路,需要进行电平转换。
    • CMOS电路:具有较宽的工作电压范围,适用于多种应用场景。

 理解STC89C52(AT89S52)单片机的最小系统

1 最小系统组件

1 单片机

  • 型号:STC89C52或AT89S52。
  • 功能:核心控制单元。

2 晶振电路

  • 元件:11.0592MHz或12MHz的晶振,两个20pF的瓷片电容。
  • 连接:晶振连接到XTAL1和XTAL2引脚,电容连接到XTAL1和XTAL2引脚到地。
  • 功能:提供稳定的时钟信号。

3 复位电路

  • 元件:10kΩ的上拉电阻,10μF的电容。
  • 连接:上拉电阻连接到RST引脚和VCC,电容连接到RST引脚和地。
  • 功能:用于复位单片机。

4 电源电路

  • 元件:5V电源,7805稳压器。
  • 连接:5V电源通过7805稳压器提供稳定的5V电压。
  • 功能:为整个系统供电。

5 LED指示灯

  • 元件:LED,限流电阻。
  • 连接:LED的阳极通过限流电阻连接到P1.0引脚,阴极接地。
  • 功能:指示系统工作状态。

6 编程接口

  • 元件:ISP编程接口。
  • 连接:连接到单片机的编程引脚(如P3.0-P3.3)。
  • 功能:用于烧写程序。
2 最小系统电路图
+5V -----> VCC|R1 (10kΩ)|RST|C1 (10μF)|GNDXTAL1 -----> X1 (11.0592MHz)|C2 (20pF)|GNDXTAL2 -----> X2 (11.0592MHz)|C3 (20pF)|GNDP1.0 -----> R2 (330Ω)|LED|GND

掌握二进制、十六进制、十进制数之间的转换方法

1 二进制(Binary)
  • 基数:2
  • 位数:0或1
  • 示例1010(二进制)
2 十六进制(Hexadecimal)
  • 基数:16
  • 位数:0-9或A-F
  • 示例0xA(十六进制)
3 十进制(Decimal)
  • 基数:10
  • 位数:0-9
  • 示例10(十进制)
4 转换方法

1 二进制转十进制

  • 方法:按位权展开法。
  • 示例1010(二进制)= 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 8 + 0 + 2 + 0 = 10(十进制)

2 十六进制转十进制

  • 方法:按位权展开法。
  • 示例0xA(十六进制)= 10*16^0 = 10(十进制)

3 二进制转十六进制

  • 方法:每4位一组转换。
  • 示例1010(二进制)= 0xA(十六进制)

4 十六进制转二进制

  • 方法:每一位转换为4位二进制。
  • 示例0xA(十六进制)= 1010(二进制)

了解单片机控制系统的硬件搭建方法

1 硬件搭建步骤

1 选择单片机

  • 型号:STC89C52或AT89S52。
  • 功能:核心控制单元。

2 晶振电路

  • 元件:11.0592MHz或12MHz的晶振,两个20pF的瓷片电容。
  • 连接:晶振连接到XTAL1和XTAL2引脚,电容连接到XTAL1和XTAL2引脚到地。
  • 功能:提供稳定的时钟信号。

3 复位电路

  • 元件:10kΩ的上拉电阻,10μF的电容。
  • 连接:上拉电阻连接到RST引脚和VCC,电容连接到RST引脚和地。
  • 功能:用于复位单片机。

4 电源电路

  • 元件:5V电源,7805稳压器。
  • 连接:5V电源通过7805稳压器提供稳定的5V电压。
  • 功能:为整个系统供电。

5 LED指示灯

  • 元件:LED,限流电阻。
  • 连接:LED的阳极通过限流电阻连接到P1.0引脚,阴极接地。
  • 功能:指示系统工作状态。

6 编程接口

  • 元件:ISP编程接口。
  • 连接:连接到单片机的编程引脚(如P3.0-P3.3)。
  • 功能:用于烧写程序。

掌握Keil uVision软件的安装方法

1 安装步骤

1 下载Keil uVision

  • 网站:访问Keil官网(https://www.keil.com/)。
  • 下载:点击“Download”按钮,选择适合操作系统的版本进行下载。

2 运行安装程序

  • 双击安装包:下载完成后,双击安装包启动安装程序。
  • 阅读许可协议:阅读并接受许可协议。
  • 选择安装路径:选择安装路径,默认路径通常为C:\Keil_v5
  • 选择组件:选择需要安装的组件,如µVision IDE、ARM Compiler等。
  • 开始安装:点击“Next”按钮开始安装。

3 注册和激活

  • 序列号:安装完成后,需要输入有效的序列号进行注册。
  • 激活码:输入激活码完成激活。
  • 注册方法:在Keil uVision中选择“Help” -> “Register” -> “Enter License Key”,输入序列号和激活码。

4 配置环境

  • 启动Keil uVision:安装完成后,启动Keil uVision。
  • 配置工作环境:选择“Project” -> “New µVision Project”,创建新的工程。

掌握单片机编程环境的建立方法

1 建立编程环境步骤

1 新建工程

  • 启动Keil uVision:打开Keil uVision软件。
  • 新建工程:选择“Project” -> “New µVision Project”。
  • 选择保存路径:选择保存工程的目录,输入工程名称。
  • 选择目标芯片:在弹出的对话框中选择目标芯片,如STC89C52或AT89S52。

2 添加源文件

  • 右键点击“Source Group 1”:在工程管理器中右键点击“Source Group 1”。
  • 选择“Add New Item to Group”:选择“Add New Item to Group”。
  • 选择文件类型:选择文件类型,如C文件,输入文件名。
  • 保存文件:点击“Save”按钮保存文件。

3 配置工程

  • 选择“Project” -> “Options for Target ‘Target 1’”:在菜单栏中选择“Project” -> “Options for Target ‘Target 1’”。
  • 配置输出:在“Output”选项卡中,选择生成的文件类型,如HEX文件。
  • 配置编译器:在“C/C++”选项卡中,配置编译器选项,如优化级别、预处理器宏等。
  • 配置目标:在“Target”选项卡中,配置目标芯片的参数,如晶振频率。

 掌握单片机程序代码的编译、下载(烧写方法)

1 编译工程

1 编译步骤

  • 选择“Project” -> “Rebuild All Target Files”:在菜单栏中选择“Project” -> “Rebuild All Target Files”。
  • 查看编译结果:编译完成后,查看编译结果窗口,确保没有错误。
2 下载程序

1 连接ISP编程器

  • 连接编程器:将ISP编程器连接到单片机的编程接口。
  • 连接电脑:将ISP编程器的USB接口连接到电脑。

2 打开ISP编程软件

  • 选择软件:使用STC-ISP或其他编程软件。
  • 选择COM口:在软件中选择正确的COM口。
  • 选择芯片型号:选择目标芯片型号,如STC89C52。

3 打开HEX文件

  • 点击“打开HEX文件”:在编程软件中点击“打开HEX文件”,选择编译生成的HEX文件。

4 烧写程序

  • 点击“烧写”按钮:点击“烧写”按钮,将程序烧写到单片机中。
  • 检查烧写结果:烧写完成后,检查烧写结果窗口,确保程序成功写入。

相关文章:

51单片机从入门到精通:理论与实践指南入门篇(二)

续51单片机从入门到精通:理论与实践指南(一)https://blog.csdn.net/speaking_me/article/details/144067372 第一篇总体给大家在(全局)总体上讲解了一下51单片机,那么接下来几天结束详细讲解,从…...

Notepad++ 替换所有数字给数字加单引号

前言 今天遇到这样一个场景: 要去更新某张表里 code1,2,3,4,5,6 的数据,把它的 name 设置为 ‘张三’ 但是 code在数据库里面的字段类型是 vachar(64),它自身携带索引 原本可以这样写 SQL: update tableA set namezhangsan where code in …...

【CANOE】【Capl】【RS232】控制串口设备

系列文章目录 内置函数,来控制传统的串口设备,比如继电器等 文章目录 系列文章目录前言一、控制串口二、自定义相关的参数RS232Configure**函数语法****函数功能****参数说明****返回值****示例代码** 三、回调函数的使用RS232OnSend**函数语法****函数…...

查找相关题目

1.顺序查找法适合于存储结构为(B )的线性表。 A.散列存储 B.顺序存储或链式存储 C.压缩存储 D.索引存储 顺序查找法的特点 2.适用于折半查找的表的存储方式及元素排列要求为(D ) 。 A.链接方式存储,元素无序 B.链接方式存储&#xff0…...

《独立开发:Spring 框架的综合应用》

一、Spring 框架概述 Spring 是一个分层的 Java SE/EE full-stack 轻量级开源框架,以 IoC 和 AOP 为内核,具有方便解耦、方便集成优秀框架、降低 Java EE API 使用难度等优点。 Spring 框架因其强大的功能以及卓越的性能而受到众多开发人员的喜爱。它是…...

数据工程流程

** 数据工程流程图** #mermaid-svg-ArT55xCISSfZImy3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ArT55xCISSfZImy3 .error-icon{fill:#552222;}#mermaid-svg-ArT55xCISSfZImy3 .error-text{fill:#552222;stroke…...

Linux宝塔部署wordpress网站更换服务器IP后无法访问管理后台和打开网站页面显示错乱

一、背景: wordpress网站搬家,更换服务器IP后,如果没有域名时,使用服务器IP地址无法访问管理后台和打开网站页面显示错乱。 二、解决方法如下: 1.wordpress搬家后,在新服务器上,新建站点时&am…...

区块链知识体系

1. 区块链基础知识 Q: 什么是区块链? A: 区块链是一种去中心化的分布式账本技术,通过加密算法保证数据的不可篡改性和透明性。它由一系列按时间顺序链接的区块组成,每个区块包含一批交易记录。 Q: 区块链的主要特点是什么? 去…...

力扣第 66 题 “加一”

题目描述 给定一个由 非负整数组成的非空数组,表示一个整数。在该整数的基础上加一。 最高位数字在数组的首位,数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: digits [1,2,3] 输出:…...

C语言数据结构与算法--简单实现队列的入队和出队

(一)队列的基本概念 和栈相反,队列(Queue)是一种先进先出(First In First Out)的线性表。只 允许在表的一端进行插入,而在另一端删除元素,如日常生活中的排队现象。队列中 允许插入的一端叫队尾…...

代码美学:MATLAB制作渐变色

输入颜色个数n,颜色类型: n 2; % 输入颜色个数 colors {[1, 0, 0], [0, 0, 1]}; createGradientHeatmap(n, colors); 调用函数: function createGradientHeatmap(n, colors)% 输入检查if length(colors) ~ nerror(输入的颜色数量与n不一…...

排序算法之冒泡排序篇

冒泡排序的思想: 是一个把元素从小到大排的一个算法思想 相邻的两个元素两两比较,大的那一个元素向后移,小的那个元素向前移 核心逻辑: 比较所有相邻的两个项,如果第一个比第二个大,就交换它们 从头开始…...

WPF ItemsControl控件

ItemsControl 是 WPF 中一个非常灵活的控件,用于显示一组数据项。它是一个基类,许多其他控件(如 ListBox, ListView, ComboBox 等)都是从 ItemsControl 继承而来。ItemsControl 的主要特点是它可以自定义数据项的显示方式&#xf…...

CentOS 上安装各种应用的命令行总结

在 CentOS 上安装各种应用的命令行方法可以通过不同的软件包管理工具完成,最常用的是 yum(CentOS 7及以前版本)和 dnf(CentOS 8及以上版本)。以下是一些常见应用的安装命令总结。 目录 1. 基本的包管理命令 2. 安装…...

Java中的JSONObject详解

文章目录 Java中的JSONObject详解一、引言二、JSONObject的创建与基本操作1、创建JSONObject2、添加键值对3、获取值 三、JSONObject的高级特性1、遍历JSONObject2、从字符串创建JSONObject3、JSONObject与JSONArray的结合使用4、更新和删除键值对 四、错误处理1. 键值存在性检…...

音视频流媒体直播/点播系统EasyDSS互联网视频云平台介绍

随着互联网技术的飞速发展,音视频流媒体直播已成为现代社会信息传递与娱乐消费的重要组成部分。在这样的背景下,EasyDSS互联网视频云平台应运而生,它以高效、稳定、便捷的特性,为音视频流媒体直播领域带来了全新的解决方案。 1、产…...

shell编程3,参数传递+算术运算

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...

自动泊车“哐哐撞大墙”,小米SU7智驾功能bug缠身?

文/王俣祺 导语:小米SU7,自带热度与科技光环的“流量神车”,近日却以一种极为“狼狈”的方式闯入大众视野。多达70余辆小米SU7陷入“泊车魔咒”,瞬间在网络上炸开了锅。从“科技控”到“惹祸精”的背后,究竟藏着怎样的…...

RAG 与 HyDE

传统 RAG 与 HyDE,直观解释! 传统 RAG 系统的一个关键问题是问题在语义上与答案不相似。 考虑以下示例,您想要找到类似于“什么是 ML?”的句子。 “什么是 AI?” 可能看起来比“机器学习很有趣”更相似。 这种语义差…...

在WPF程序中实现PropertyGrid功能

使用C#开发过Windows Forms的都知道,在Windows Forms程序中,有一个PropertyGrid控件,可以用于显示对象的属性,在WPF中并没有默认提供此功能的控件,今天以一个简单的小例子,简述在WPF中借助WinForm的Propert…...

【R语言管理】Pycharm配置R语言及使用Anaconda管理R语言虚拟环境

目录 使用Anaconda创建R语言虚拟环境1. 安装Anaconda2. 创建R语言虚拟环境 Pycharm配置R语言1. 安装Pycharm2. R Language for IntelliJ插件 参考 使用Anaconda创建R语言虚拟环境 1. 安装Anaconda Anaconda的安装可参见另一博客-【Python环境管理工具】Anaconda安装及使用教程…...

.Net与C#

.NET 与 C# 的关系 .NET 是一个由微软开发的软件框架,它提供了一套用于开发、运行和部署应用程序的工具和库。C# 是一种面向对象的编程语言,它是专门为.NET平台设计的。以下是.NET与C#之间关系的详细说明: 目标平台:C# 是.NET平…...

使用ElementUI中的el-table制作可编辑的表格

在前端开发时,可能会需要用到可编辑的表格控件。一些原生的UI框架并不支持Table控件的可编辑功能,所以只能自己实现。 以下用Vue3Element-Plus进行示例开发。 一、实现可编辑的单元格 我想要实现的效果是,鼠标移动到el-table的某行时&…...

开放性技术的面试题该如何应对?

1. 上线出现问题如何解决? 步骤: 立即响应:迅速确认问题的存在和影响范围。回滚:如果问题严重影响用户,考虑立即回滚到上一个稳定版本。日志分析:查看服务器日志、应用日志和前端日志,定位问题…...

Leetcode 面试150题 88.合并两个有序数组 简单

系列博客目录 文章目录 系列博客目录88. 合并两个有序数组 简单示例 1:示例 2:示例 3:提示:问题: 88. 合并两个有序数组 简单 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n,分别表示 nums1 和 nums2 中的元素数目。 请你…...

CGAL CGAL::Polygon_mesh_processing::self_intersections解析

CGAL::Polygon_mesh_processing::self_intersections 是用于检测多边形网格(Polygon Mesh)中的自相交的函数。自相交是指网格中的某些面(例如三角形)与同一网格中的其他面交叉的情况。这种情况通常是不期望的,因为它会…...

esp32触发相机

esp32触发相机&#xff0c;测试成功上升沿触发 串口发送命令 up 20000 1 20000 触发 #include <Arduino.h>const int outputPin 12; // 输出引脚 String inputCommand ""; // 串口输入缓冲区// 解析命令参数&#xff0c;例如 "up 10 5" 解析为…...

webrtc支持h265

Webrtc播放H265的技术探索(datachannelwasm) - 飞翔天空energy - 博客园 https://github.com/ZLMediaKit/ZLMediaKit/issues/3589 [技术咨询]addStreamProxy 添加拉流代理之后&#xff0c;webrtc协议无法播放&#xff0c;其它协议正常 Issue #1808 ZLMediaKit/ZLMediaKit G…...

macos 14.0 Monoma 修改顶部菜单栏颜色

macos 14.0 设置暗色后顶部菜单栏还维持浅色&#xff0c;与整体不协调。 修改方式如下&#xff1a;...

在 Mac(ARM 架构)上安装 JDK 8 环境

文章目录 步骤 1&#xff1a;检查系统版本步骤 2&#xff1a;下载支持 ARM 的 JDK 8步骤 3&#xff1a;安装 JDK步骤 4&#xff1a;配置环境变量步骤 5&#xff1a;验证安装步骤 6&#xff1a;注意事项步骤7&#xff1a;查看Java的安装路径 在 Mac&#xff08;ARM 架构&#xf…...

智慧团建官方网站电脑版/国内优秀网页设计赏析

域环境&#xff0c;俩DC&#xff0c;A主域控&#xff0c;B额外域控&#xff0c; 公司搬迁&#xff0c;把A主域控搬至外地&#xff0c;留B辅域控在本地&#xff0c;结果出现部分用户无法登陆的情况。 没办法&#xff0c;搬迁工作准备不足&#xff0c;只好在辅域控上做了出下操作…...

株洲网站建设/淘宝数据分析工具

首先引用ICSharpCode.SharpZipLib.dll,没有在这里下载:http://files.cnblogs.com/KenBlove/ICSharpCode.SharpZipLib.rar 压缩打包代码 /// <summary>/// 生成压缩文件/// </summary>/// <param name"strZipPath">生成的zip文件的路径</param&g…...

wordpress建站seo好做吗/百度指数搜索榜度指数

我得专注一些&#xff0c;就盯在小企业上&#xff0c;连中型企业都不要包括进来。要知道&#xff0c;写文章的人也海了去了&#xff0c;竞争者数量极其庞大&#xff0c;我不要试图啥都会&#xff0c;紧盯着一点&#xff0c;入木三分的盯。小企业也就是100人以下&#xff0c;类型…...

企业建设银行网站登录不了/北京优化网站公司

【数据结构实战C】6 算法效率的度量 作者 CodeAllen &#xff0c;转载请注明出处 常见的时间复杂度 常见时间复杂度的比较 O&#xff08;1&#xff09;< O&#xff08;logn&#xff09;<O&#xff08;n&#xff09;<O&#xff08;n*logn&#xff09;<O&#xff08…...

做一个交易网站要花多少钱/邳州网站开发

问题:在AIX操作系统中&#xff0c;用root用户ftp文件到AIX上后&#xff0c;文件的默认权限是rw-r-----&#xff0c;Oracle用户无法读取。有没有办法指定上传文件的权限呢&#xff1f; 环境: AIX 6.1 解决方法&#xff1a; 1、在客户端设置。 关键要看客户端是否支持site命令&a…...

asp购物网站/推广网站有效的方法

完成一次完整的CA请求时在linux 用户需要执行的操作依次如下 : 调用TEEC_InitializeContext函数打开op-tee驱动文件,获取到操作句柄并存放到TEE_Context类型的变量中。调用TEEC_OpenSession函数,通过获取到的TEE_Context类型的变量创建一个特定CA与特定TA之间进行通信的通道…...