news 2026/7/10 2:46:31

51单片机 DAY_1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
51单片机 DAY_1

1. 描述 CPU、MCU、MPU、GPU、NPU、FPU、SOC

  1. CPU(中央处理器):通用运算控制核心,负责执行各类通用指令,完成逻辑判断、顺序运算,通用性强,但并行计算、浮点运算、AI 运算效率较低,是所有计算设备的基础运算单元。
  2. MCU(微控制器,单片机):单芯片集成 CPU、片内 RAM、程序 Flash、IO 口、定时器、串口、中断等全套外设,专为嵌入式控制场景设计,低成本、低功耗,无需外接大量外设即可独立工作,多用于小家电、传感器控制。
  3. MPU(微处理器):仅集成高性能 CPU 核心,无片内大容量存储与基础外设,必须外接 RAM、Flash、外设芯片,可运行 Linux、安卓等大型操作系统,算力高于 MCU,用于开发板、智能设备主板。
  4. GPU(图形处理器):拥有大量并行计算核心,专门处理图像渲染、纹理填充、视频解码等并行矩阵运算,也可用于通用并行计算加速。
  5. NPU(神经网络处理器):面向 AI 深度学习专用处理器,内置卷积、矩阵乘等神经网络硬件加速单元,高效完成图像识别、语音推理等 AI 任务。
  6. FPU(浮点运算单元):CPU 配套辅助模块,专门处理浮点数(小数)运算;无 FPU 时 CPU 只能软件模拟浮点运算,速度大幅下降,常用于算法、机器人、仿真计算。
  7. SoC(片上系统):高度集成化单芯片系统,在一颗芯片内整合 CPU、GPU、NPU、存储、射频、各类外设接口,集成度极高,手机、智能手表、车载芯片均为 SoC 方案。

2. 单片机最小系统包括?

单片机最小系统是芯片上电后可正常运行程序的最简电路,由四部分组成:

  1. 单片机主控芯片;
  2. 电源电路:提供稳定工作电压,搭配滤波电容稳压降噪;
  3. 复位电路:上电 / 手动复位,将芯片寄存器初始化,保证程序从头执行;
  4. 时钟振荡电路:晶振 + 起振电容,为单片机提供系统时钟,决定指令执行速度。

3. STC 芯片内部结构?

以 STC89C51 系列 51 内核芯片为例,内部结构如下:

  1. 8 位 CPU 运算核心,完成指令解析与运算;
  2. Flash 程序存储器:存放用户程序,断电数据不丢失,支持反复擦写;
  3. 片内 RAM 数据存储器:临时存储运行变量、堆栈,断电数据丢失;
  4. 特殊功能寄存器 SFR:控制 IO、定时器、串口、中断等外设;
  5. 4 组并行 I/O 口(P0/P1/P2/P3):通用输入输出引脚;
  6. 定时器 / 计数器 T0、T1:用于定时延时、外部脉冲计数;
  7. UART 串行通信模块:实现串口收发通信;
  8. 多级中断系统:外部中断、定时器中断、串口中断;
  9. 片内振荡电路:支持外部晶振或内置 IRC 内部时钟。

4. 内存和外存特点?

内存(主存,如片内 RAM、电脑内存条)

  1. 直接与 CPU 通过总线相连,读写速度极快;
  2. 断电后存储数据全部丢失;
  3. 容量偏小,单位存储成本高;
  4. 作用:存放当前正在运行的程序、临时变量、缓存数据。

外存(辅存,如 Flash、EEPROM、硬盘)

  1. 不直接连接 CPU,需通过接口中转,读写速度慢于内存;
  2. 断电后数据永久保存;
  3. 存储容量大,单位存储成本更低;
  4. 作用:长期固化程序、保存配置、静态数据。

5. RAM 和 ROM 特性?

RAM(随机存取存储器)

  1. 可读可写,任意地址均可随时读写;
  2. 断电数据丢失;
  3. 读写速度快;
  4. 分为静态 SRAM(单片机片内 RAM)、动态 DRAM(电脑内存);
  5. 用途:程序运行时临时存放变量、堆栈。

ROM(只读存储器,现主流为 Flash ROM)

  1. 正常运行模式下仅可读,擦写需要专用操作;
  2. 断电数据永久保存;
  3. 读取速度中等,存在擦写寿命上限;
  4. 分类:掩膜 ROM、一次性 OTP、Flash、EEPROM;
  5. 用途:存储单片机固件程序、固定常量、设备参数。

6. CPU 与 RAM 之间三大总线及作用?

  1. 地址总线 AB:单向传输,CPU 向 RAM 发送存储单元地址,指定需要读写的位置;总线位数决定最大寻址空间。
  2. 数据总线 DB:双向传输,负责 CPU 与 RAM 之间的数据交互;写操作时数据从 CPU 传输至 RAM,读操作时数据从 RAM 传回 CPU;总线宽度代表单次可传输的数据位数。
  3. 控制总线 CB:双向混合信号线,传输读写控制指令;包含读信号、写信号、片选信号等,控制硬件执行读操作或写操作。

7. 如何实现数码管的显示?

数码管由 7 段发光二极管 + 小数点 dp 构成,分为共阴极、共阳极两类,有两种显示实现方式:

  1. 静态显示:每一个数码管的段选引脚独立占用一组 IO 口,直接输出对应数字段码即可点亮;优点是亮度高、无闪烁、程序简单;缺点是占用 IO 引脚过多,不适合多位数码管。
  2. 动态扫描显示:所有数码管段选引脚并联共用一组 IO,每位数码管公共端(位选)单独控制;循环依次点亮每一位数码管,依靠人眼视觉暂留,实现多位同时显示的效果,大幅节约 IO 资源,是项目主流方案。

8. 数码管动态显示原理?

  1. 硬件连接:全部数码管段选引脚并联接同一组 IO 口;每个数码管公共端(位选)单独分配 IO 引脚控制。
  2. 扫描流程:先关闭所有位选,输出第一位数字对应的段码,打开该位选并短暂延时;随后关闭当前位,切换下一位段码、开启对应位选,循环往复扫描每一位数码管。
  3. 视觉原理:人眼存在约 20ms 视觉暂留效应,扫描切换速度足够快时,肉眼无法分辨数码管交替点亮,视觉上认为所有数码管同时常亮。
  4. 优缺点:极大节省单片机 IO 引脚;数码管位数过多时会出现轻微亮度闪烁。

9. 指定位清零和指定位置 1 如何实现?

采用位运算操作,仅修改目标 bit,不影响端口其他引脚,以单片机 IO 端口为例:

指定 bit 清零

使用按位与运算符 &,掩码中目标位设为 0,其余位为 1; 示例:将 P1 口第 2 位清零P1 &= ~(1 << 2);原理:1 与任意 bit 相与数值不变,0 与任意 bit 相与结果为 0。

指定 bit 置 1

使用按位或运算符 |,掩码中目标位设为 1,其余位为 0; 示例:将 P1 口第 3 位置 1P1 |= (1 << 3);原理:0 与任意 bit 相或数值不变,1 与任意 bit 相或结果为 1。

补充:51 单片机支持 sbit 位定义,可直接单独操作引脚:sbit P1_2 = P1^2; P1_2 = 0; // 指定位清零sbit P1_3 = P1^3; P1_3 = 1; // 指定位置1

10. 什么是外设寄存器?

外设寄存器全称特殊功能寄存器 SFR,是单片机内部片内外设配套的内存映射寄存器:

  1. 每个外设(IO 口、定时器、串口、中断)分配一组固定地址的寄存器;
  2. CPU 通过读写对应地址寄存器,配置外设工作模式、读取外设运行状态、输出硬件控制信号;
  3. 是软件程序与底层硬件交互的接口,修改寄存器数值会直接改变硬件电路工作状态。 例:IO 口寄存器 P0、定时器模式寄存器 TMOD、串口控制寄存器 SCON 都属于外设寄存器。

11. 控制 LED 和数码管分别用到了哪几个外设寄存器?

控制 LED 用到的外设寄存器

  1. P0、P1、P2、P3 端口锁存寄存器:输出高低电平控制 LED 亮灭;
  2. IO 模式配置寄存器(P0M0、P0M1 等):配置引脚推挽输出 / 开漏输出,调节驱动能力。

控制数码管用到的外设寄存器

  1. 段选端口寄存器(Px):输出数字段码,控制数码管各段亮灭;
  2. 位选端口寄存器(Py):控制每一位数码管公共端通断,实现动态扫描;
  3. IO 模式配置寄存器(PxM0、PxM1):提升引脚驱动电流,提高数码管显示亮度。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 2:44:18

【大数据毕业设计】大数据驱动的个性化音乐智能推送系统的设计与实现 基于海量歌单数据的音乐特征分析与推荐系统(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/10 2:44:12

龍魂系统 x86 操作系统技术需求文档

&#x1f409; 龍魂系统 x86 操作系统技术需求文档文档编号&#xff1a;LH-OS-X86-REQ-2026-001 DNA 标识&#xff1a;#龍芯⚡️丙午癸未己亥戌时乾-OS-REQ-INIT-A7F3C912 密级&#xff1a;L1&#xff08;核心技术底座&#xff09; 唯一决策者&#xff1a;UID9622 (诸葛鑫Lucky…

作者头像 李华
网站建设 2026/7/10 2:43:46

大数据毕业设计-基于 Python 大数据挖掘的个性化音乐推荐系统的设计与实现 基于用户行为大数据的智能音乐推荐系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/10 2:42:05

龍魂系统「后土」x86 操作系统架构设计文档

龍魂系统「后土」x86 操作系统架构设计文档文档编号&#xff1a;LH-OS-X86-ARCH-2026-001 DNA 标识&#xff1a;#龍芯️丙午癸未庚子亥时坤-OS-ARCH-INIT-B9E4D201 密级&#xff1a;L0&#xff08;核心架构底座&#xff09; 唯一决策者&#xff1a;UID9622 (诸葛鑫Lucky) 状态&…

作者头像 李华
网站建设 2026/7/10 2:41:06

ROS Melodic CAN 通信实战:从 C++ 原生库到 ROS 节点的 3 步移植指南

ROS Melodic CAN 通信实战&#xff1a;从 C 原生库到 ROS 节点的 3 步移植指南 在机器人开发中&#xff0c;CAN 总线因其高可靠性和实时性被广泛应用于电机控制、传感器数据采集等场景。本文将手把手教你如何将基于厂商 SDK&#xff08;如 libcontrolcan.so&#xff09;的 C 原…

作者头像 李华