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

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):提升引脚驱动电流,提高数码管显示亮度。
http://www.cnnetsun.cn/news/3253585.html

相关文章:

  • 【大数据毕业设计】大数据驱动的个性化音乐智能推送系统的设计与实现 基于海量歌单数据的音乐特征分析与推荐系统(源码+文档+远程调试,全bao定制等)
  • 龍魂系统 x86 操作系统技术需求文档
  • 极验四代 vs 三代滑块 w 值逆向对比:1 次加密与 3 次加密的核心差异与代码复用
  • 大数据毕业设计-基于 Python 大数据挖掘的个性化音乐推荐系统的设计与实现 基于用户行为大数据的智能音乐推荐系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 龍魂系统「后土」x86 操作系统架构设计文档
  • ROS Melodic CAN 通信实战:从 C++ 原生库到 ROS 节点的 3 步移植指南
  • C++ COM 自动化 Word 2021 实战:3种方法创建文档并插入表格与图片
  • 物联网Node-Red开发教程-第9章综合实战——智能家居监控系统
  • GitHub爆星80.4k!谷歌AI大佬亲授,大模型从入门到精通
  • 大数据毕业设计-基于 Hadoop+Hive 的济南景区旅游大数据可视化系统的设计与实现 大数据架构下济南旅游景区客流数据分析与可视化系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • LangChain实战:从环境配置到Agent状态机的工程化落地
  • Java内存泄漏排查:一次线上故障的完整复盘
  • 190、日志驱动调试:不依赖断点的异步代码、分布式系统排错方法论
  • 还在为网络中断发愁?tchMaterial-parser让电子课本随时随地为你服务
  • Agent = Model + Harness:一文讲透 AI 驾驭工程的六层架构设计
  • 短效代理适合哪些业务场景?实测梳理这些高适配核心场景
  • 一文吃透RAG底层原理:从文档入库到大模型问答全链路拆解
  • C++算法小结
  • Web自动化测试实战:从Selenium到POM框架,掌握中级测试工程师核心技能
  • MEMS 牺牲层干法释放工艺:无水 HF 蒸汽相刻蚀 3 大优势与 2 个关键参数
  • 九号控制器二次开发实战:从硬件接口到通信协议解析
  • 当今最热门的AI人工智能学习路线分享
  • CRU TS 4.07 数据处理:MATLAB 批量转换 120 年 NC 至逐月 TIFF 实战
  • 高压安全隔离技术:ISOM8710与PIC18F46K40应用指南
  • Herdr:专为AI编程代理设计的终端复用器部署与使用指南
  • Godot物理引擎对比:Jolt Physics性能提升300%的深度解析
  • 嵌入式信号状态切换:MK64FN1M0VDC12与DTH-08应用指南
  • MATLAB 2024a 语音去噪实战:IIR+FIR级联滤波器设计,5步实现信噪比提升15dB
  • 网络安全面试通关指南:大厂技术面+HR面全攻略
  • STM32/51单片机蜂鸣器驱动电路对比:ULN2003 vs 三极管,实测功耗与音质差异