51单片机-01-基础概念

01前言

1980年,Intel公司MCS-51系列:8051型号单片机(8位单片机处理器架构)Atmel、STC、Philliphs

本笔记都是用的普中89C51板子

安装Keil:安装路径必须是英文路径,不能出现中文

Keil4和Keil5不要放到同一个路径下

  1. 先创建工程

  2. 再向工程中添加.c文件(必须和工程在同一目录)

STC-ISP -> 单片机程序(.hex)

1. CPU、MCU、MPU、NPU、GPU、FPU、SoC 概念

名称 全称 说明
CPU Central Processing Unit 中央处理器,完成数据运算、指令处理
MCU Microcontroller Unit 微控制器,集成 CPU + RAM + ROM + 外设(GPIO、UART、定时器等)于单一芯片,用于嵌入式控制。如 STC89C52、STM32。
MPU Microprocessor Unit 微处理器,集成度低,只有一块单独的CPU,需要外接一些功能模块(RAM、ROM、控制器芯片),成本高,应用处理复杂任务,可以跑Linux操作系统
NPU Neural Processing Unit 神经网络处理单元,AI推理、硬件加速(Mate60达芬奇NPUAI拍照优化)
GPU Graphics Processing Unit 图形处理单元,处理图形数据,图像渲染
FPU Floating-Point Unit 浮点数运算单元,完成浮点数运算
SoC System on Chip 片上系统,将 CPU、GPU、NPU、内存控制器、外设等集成在一个芯片上,如手机芯片(骁龙、麒麟)。
  • MCU = CPU + 内存 + 外设(一体式,低成本控制)
  • MPU/SoC = 高性能 CPU + 多核协处理器(需外接资源)

2. RAM 和 ROM 的区别

特性 RAM(随机存取存储器) ROM(只读存储器)
读写性 可读可写 通常只读(部分可编程)
断电后数据 丢失(易失性) 保留(非易失性)
用途 运行程序、存储变量 存储固件、启动代码
速度 较慢
类型举例 SRAM、DRAM Mask ROM、PROM、EPROM、EEPROM、Flash

📌 在 51 单片机中:

  • 内部 RAM:128/256 字节(用于变量、堆栈)
  • 内部 ROM(Flash):4KB~64KB(存放程序代码)

3. 51 芯片内部结构(以 8051 为例)

主要模块包括:

  • CPU 内核:8 位 ALU、累加器 ACC、寄存器 B、PSW(状态字)
  • 4 组 8 位通用寄存器(R0~R7)
  • 128 字节内部 RAM
  • 4KB 程序存储器(ROM/Flash)
  • 4 个 8 位 I/O 端口(P0~P3)
  • 2 个 16 位定时器/计数器(T0, T1)
  • 1 个全双工串行口(UART)
  • 中断系统(5 个中断源)
  • 时钟电路 & 复位电路

💡 所有模块通过内部总线互联。


4. 51 芯片 CPU 内核架构

  • 8 位哈佛架构:程序存储器和数据存储器地址空间分离
  • 指令集:111 条指令,大部分为单周期或双周期
  • 寄存器组
    • 累加器 ACC
    • 寄存器 B(用于乘除)
    • 程序状态字 PSW(含进位 CY、辅助进位 AC、溢出 OV 等标志)
    • 堆栈指针 SP
    • 数据指针 DPTR(16 位,访问外部 RAM/ROM)
  • ALU:8 位算术逻辑单元

5. 51 单片机最小系统组成

最小系统 = 能让单片机运行程序的最简电路,包含:

  1. 单片机芯片(如 STC89C52)
  2. 电源电路:VCC(+5V)、GND
  3. 复位电路:RC 电路 + 按键(高电平复位,通常 >10ms)
  4. 时钟电路
    • 外部晶振(如 11.0592MHz 或 12MHz)
    • 两个 30pF 电容接地
  5. EA 引脚接 VCC(使用内部程序存储器)

✅ 不需要外接 RAM/ROM、按键、LED 等(那些是扩展功能)。


6. 内存 和 外存 的区别

内存(主存) 外存(辅存)
位置 主板上(靠近 CPU) 外部设备
速度 快(纳秒级) 慢(毫秒级)
容量 小(KB~GB) 大(GB~TB)
易失性 易失(断电丢失) 非易失(断电保留)
例子 RAM、Cache 硬盘、U 盘、SD 卡、Flash

📌 在 51 中:

  • 内存 = 内部 RAM(128B)
  • 外存 = 外部扩展的 RAM/ROM(通过 P0/P2 总线)

7. 位运算:指定位置 1 和指定位清零

假设要操作变量 x 的第 n 位(从 0 开始):

  • 置 1(Set bit)

    复制代码
    x |= (1 << n);

    例:x |= (1<<3); → 第 3 位置 1

  • 清零(Clear bit)

    复制代码
    x &= ~(1 << n);

    例:x &= ~(1<<2); → 第 2 位清零,其他不变

  • 取反(Toggle bit)

    复制代码
    x ^= (1 << n);

8. 什么是寄存器?

  • 定义:CPU 内部的高速存储单元,用于暂存指令、数据、地址。
  • 特点
    • 速度极快(比 RAM 快几十倍)
    • 数量有限(几十个)
    • 可直接被 CPU 指令操作
  • 分类
    • 通用寄存器:如 R0~R7(51 中)
    • 专用寄存器:如 ACC、PSW、SP、DPTR
    • I/O 寄存器:如 P0、P1(控制端口)

💡 寄存器是软件控制硬件的"接口"。


9. 数码管动态显示的原理

  • 前提:多个数码管共用段选线(a~g),各自有独立的位选线。
  • 原理
    1. 快速轮流点亮每个数码管(>50Hz,人眼无闪烁感)
    2. 某一时刻只亮一个:
      • 段选 = 要显示的数字段码
      • 位选 = 选中当前数码管(低电平有效)
    3. 快速刷新,利用人眼视觉暂留效应,看起来所有数码管同时亮。

✅ 优点:节省 I/O 口(8 位段选 + 4 位位选 = 控制 4 位数码管)

❌ 缺点:亮度略低于静态显示


10. 3-8 译码器工作原理

  • 功能 :将 3 位二进制输入(A2,A1,A0)译码为 8 路输出(Y0~Y7),每次只有一个输出有效(低电平)。
  • 典型芯片:74HC138
  • 真值表(简化)
A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 1 1 1 1 1 1
... ...
1 1 1 1 1 1 1 1 1 1 0
  • 使能端:E1=1, E2A=E2B=0 时才工作
  • 应用
    • 扩展 I/O(用 3 根线控制 8 个设备)
    • 数码管位选控制
    • 存储器片选

✅ 本质:地址译码器,实现"一对一"选择。


相关推荐
晓晓hh1 小时前
JavaSe学习——基础
java·开发语言·学习
✎ ﹏梦醒͜ღ҉繁华落℘2 小时前
单片机基础知识 -- TFT-LCD
单片机·嵌入式硬件
峥嵘life2 小时前
Android16 【CTS】CtsWindowManagerDeviceAnimations存在fail项
android·linux·学习
Hello_Embed2 小时前
LVGL 入门(一):环境搭建与源码获取
笔记·stm32·单片机·嵌入式·lvgl
v先v关v住v获v取3 小时前
CC1031载货汽车后轮制动器设计6张cad+设计说明书+三维图
科技·单片机·51单片机
孤芳剑影3 小时前
Cadence Allegro 如何修改板框大小
嵌入式硬件
Zevalin爱灰灰3 小时前
零基础入门学用物联网(ESP8266) 第一部分 基础知识篇(一)
单片机·物联网·嵌入式·esp8266
没有医保李先生4 小时前
蓝牙入门理解
stm32·单片机
微露清风4 小时前
系统性学习Linux-第六讲-Ext文件系统
linux·服务器·学习