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 烧写程序

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32C011开发(3)----Flash操作

STM32C011开发----3.Flash操作 概述硬件准备视频教学样品申请源码下载参考程序生成STM32CUBEMX串口配置堆栈设置串口重定向FLASH数据初始化FLASH 读写演示 概述 STM32C011 系列微控制器内置 Flash 存储器,支持程序存储与数据保存,具备页面擦除、双字写入…

IDEA无法创建java8、11项目创建出的pom.xml为空

主要是由于Spring3.X版本不支持JDK8,JDK11,最低支持JDK17 解决的话要不就换成JDK17以上的版本,但是不太现实 另外可以参考以下方式解决 修改spring初始化服务器地址为阿里云的 https://start.aliyun.com/

【Unity3D】创建自定义字体

前置准备 如图所示,项目工程中需要用文件夹存储0-9的Sprite图片。 使用流程 直接右键存放图片的文件夹,选择【创建自定义字体】,之后会在脚本定义的FontOutputPath中生成材质球和字体。 源码 using System; using System.Collections.Gene…

logminer挖掘日志归档查找问题

--根据发生问题时间点查找归档文件 select first_time,NAME from gv$archived_log where first_time>2016-03-15 17:00:00 and first_time<2016-03-15 21:00:00; 2016-03-15 17:23:55 ARCH/jxdb/archivelog/2016_03_15/thread_1_seq_41588.4060.906577337 2016-03-15 17:…

电商项目高级篇06-缓存

电商项目高级篇06-缓存 1、docker下启动redis2、项目整合redis 缓存 流程图&#xff1a; data cache.load(id);//从缓存加载数据 If(data null){ data db.load(id);//从数据库加载数据 cache.put(id,data);//保存到 cache 中 } return data;在我们的单体项目中可以用Map作…

如何使用GCC手动编译stm32程序

如何不使用任何IDE&#xff08;集成开发环境&#xff09;编译stm32程序? 集成开发环境将编辑器、编译器、链接器、调试器等开发工具集成在一个统一的软件中&#xff0c;使得开发人员可以更加简单、高效地完成软件开发过程。如果我们不使用KEIL,IAR等集成开发环境&#xff0c;…

一个专为云原生环境设计的高性能分布式文件系统

大家好&#xff0c;今天给大家分享一款开源创新的分布式 POSIX 文件系统JuiceFS&#xff0c;旨在解决海量云存储与各类应用平台&#xff08;如大数据、机器学习、人工智能等&#xff09;之间高效对接的问题。 项目介绍 JuiceFS 是一款面向云原生设计的高性能分布式文件系统&am…

Vue-TreeSelect组件最下级隐藏No sub-options

问题&#xff1a;最下级没有数据的话&#xff0c;去除No sub-options信息 为什么没下级&#xff0c;会展示这个&#xff1f; 整个树形结构数据都是由后端构造好返回给前端的。默认子类没数据的话&#xff0c;children是一个空数组。也就是因为这最下级的空数组&#xff0c;导致…

k8s集群增加nfs-subdir-external-provisioner存储类

文章目录 前言一、版本信息二、本机安装nfs组件包三、下载nfs-subdir-external-provisioner配置文件并进行配置1.下载文件2.修改配置 三、进行部署备注&#xff1a;关于镜像无法拉取问题的处理 前言 手里的一台服务器搭建一个单点的k8s集群&#xff0c;然后在本机上使用nfs-su…

C语言数据结构-链表

C语言数据结构-链表 1.单链表1.1概念与结构1.2结点3.2 链表性质1.3链表的打印1.4实现单链表1.4.1 插入1.4.2删除1.4.3查找1.4.4在指定位置之前插入或删除1.4.5在指定位置之后插入或删除1.4.6删除指定位置1.4.7销毁链表 2.链表的分类3.双向链表3.1实现双向链表3.1.1尾插3.1.2头插…

【SpringCloud详细教程】-04-服务容错--Sentinel

精品专题&#xff1a; 01.《C语言从不挂科到高绩点》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. 《SpringBoot详细教程》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12789841.html?spm1001.20…

【Python中while循环】

一、深拷贝、浅拷贝 1、需求 1&#xff09;拷贝原列表产生一个新列表 2&#xff09;想让两个列表完全独立开&#xff08;针对改操作&#xff0c;读的操作不改变&#xff09; 要满足上述的条件&#xff0c;只能使用深拷贝 2、如何拷贝列表 1&#xff09;直接赋值 # 定义一个…

在 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…

对比C++,Rust在内存安全上做的努力

简介 近年来&#xff0c;越来越多的组织表示&#xff0c;如果新项目在技术选型时需要使用系统级开发语言&#xff0c;那么不要选择使用C/C这种内存不安全的系统语言&#xff0c;推荐使用内存安全的Rust作为替代。 谷歌也声称&#xff0c;Android 的安全漏洞&#xff0c;从 20…

小程序基础:流程。

一、前言 该文章是个人的学习笔记&#xff0c;是学习了黑马程序的微信小程序开发视频后写的笔记&#xff0c;将老师所讲的内容重点汇总起来&#xff0c;目的是为了方便自己日后回顾&#xff0c;同时也方便大家学习和了解小程序的开发 想要入门小程序&#xff0c;那么看这一篇文…

【漏洞复现】CVE-2020-13925

漏洞信息 NVD - CVE-2020-13925 Similar to CVE-2020-1956, Kylin has one more restful API which concatenates the API inputs into OS commands and then executes them on the server; while the reported API misses necessary input validation, which causes the hac…

数据结构 (11)串的基本概念

一、串的定义 1.串是由一个或者多个字符组成的有限序列&#xff0c;一般记为&#xff1a;sa1a2…an&#xff08;n≥0&#xff09;。其中&#xff0c;s是串的名称&#xff0c;用单括号括起来的字符序列是串的值&#xff1b;ai&#xff08;1≤i≤n&#xff09;可以是字母、数字或…

LLM PPT Translator

LLM PPT Translator 引言Github 地址UI PreviewTranslated Result Samples 引言 周末开发了1个PowerPoint文档翻译工具&#xff0c;上传PowerPoint文档&#xff0c;指定想翻译的目标语言&#xff0c;通过LLM的能力将文档翻译成目标语言的文档。 Github 地址 https://github.…

Python数据分析实例五、US 大选捐款数据分析

美国联邦选举委员会 (FEC) 公布了对政治竞选活动的贡献数据。这包括投稿人姓名、职业和雇主、地址和投款金额。2012 年美国总统大选的贡献数据以单个 150 MB 的 CSV 文件P00000001-ALL.csv形式提供,该文件可以通过以下pandas.read_csv加载: import pandas as pdfec = pd.r…

3.http模块

文章目录 [TOC](文章目录) 1、什么是http模块&#xff1f;1.1.作用1.2.服务器相关概念1.2.创建基本的web服务器-实现的核心步骤和代码1.2.1导入http模块1.2.2.req 请求对象 1.3.根据不同的url地址 响应不同的html内容1.4.案例-clock时钟的web服务器 1、什么是http模块&#xff…