51单片机基本电路_1
029.1.1 51单片机基本电路(1)
一、基础知识
- 本节从三个层次认识 51 开发板:先在实物上找到器件,再在原理图中追踪连接,最后理解维持单片机运行所需的最小系统。
- 看原理图时,不要只记器件名称。应始终追问四件事:电从哪里来、经过什么器件、由谁控制、最终如何回到 GND(地)。
1.1 电路相关
- 电压是两点之间的电势差,单位是伏特(V);电压本身不会像水一样“流动”。
- 电流才是在闭合回路中流动的电荷,单位是安培(A)。电源产生电势差,进而推动电流流过负载。
- 电阻会限制电流,单位是欧姆(Ω)。在简单直流电路中可用欧姆定律
I = U / R估算电流。 - “水压—水流”的类比适合入门:电压类似压差,电流类似流量,三极管类似受控阀门。但它不能代替真实电路规律,例如电压是“两点之差”,而不是一种会沿导线流走的物质。
1.1.1 认识板子
- 板子整体认知:将视频中的实物板与开发板标注图对照,可以找到供电、下载、主控、时钟、复位、按键、LED、蜂鸣器及扩展接口等区域。
| 实物上的部分 | 原理图标号/名称 | 主要作用与注意点 |
|---|---|---|
| 右侧 Type-C 口 | USBC1,供电/下载 USB | 同时提供电源和 USB 数据,连接 CH340N 下载电路。正常学习中主要使用这个接口。 |
| 左侧 Type-C 口 | USB1,供电 USB | 只接电源,不承担程序下载。老师将它作为外接模块用电较多时的另一供电入口,但它不等于可以无限增大电流;能力仍受 USB 口、线材和开发板走线限制。 |
| 电源开关 | SW1 | 将输入电源网 VCC 接到板内 +5V 电源网;开关断开时,板上主要电路失电。 |
| 复位开关 | SW2 | 按下时使 RST 进入有效高电平,让单片机重新从初始状态运行。 |
| USB 转串口芯片 | U1,CH340N | 把电脑 USB 数据转换成单片机可以使用的 UART 串口数据,用于下载程序。 |
| 串口指示灯 | LD2(TX)、LD3(RX) | 下载或串口通信时闪烁,表示相应方向正在传输数据;它只能说明线路上有活动,不能单独证明程序一定下载成功。 |
| 电源指示灯 | LD1 | 上电后红灯点亮,用于确认供电是否到达相应电源域。 |
| 主控芯片 | U2,STC89C52RC | 执行程序、读取按键并控制 LED、蜂鸣器等外设,是整块板的核心。 |
| 晶振 | X1,11.0592 MHz | 与单片机内部振荡电路及 C9、C10 共同产生稳定时钟。 |
| 排阻 | RN1、RN2,标称 10 kΩ 的 8 脚电阻阵列 | 原理图把两只阵列用于 P0.0~P0.7 的外部上拉;阵列内部的共端/独立电阻结构应以 MNR14E0APJ103 数据手册或实物通断确认。 |
| 4 个用户 LED | LED1~LED4 | 分别由 P1.0~P1.3 控制,采用低电平点亮的接法。 |
| 两个用户按键 | SW3、SW4 | 分别连接 P3.2、P3.3;按下后把对应引脚接到 GND,因此按下读到低电平。 |
| 蜂鸣器及三极管 | BELL1、Q1(S9012) | Q1 替单片机承担蜂鸣器的负载电流,P1.6 只负责控制 Q1。 |
| OLED 插座 | P1 | 4 针接口依次引出 GND、VCC、SCL、SDA,后续用于 I²C OLED 实验。 |
| 两侧排针 | 排插 | 引出 P0~P4、+5V、+3.3V 和 GND,便于通过杜邦线连接外部模块。 |
| 3.3 V 稳压电路 | U3,AMS1117-3.3 | 将板上的 +5V 转换为 +3.3V,供需要 3.3V 的外设使用。这里是稳压/降压,不是交流电意义上的“变压器”。 |
- 视频中“电脑 USB 输出 5V、最大 500mA”是对传统 USB 2.0 标准负载能力的简化记忆。实际可用电流取决于电脑端口、协议协商、供电器、线材以及开发板设计,不能把 500mA 当成所有 USB 接口永远不变的上限,也不能因换用另一个 Type-C 口就默认可以带任意大负载。
- 红色电源灯只表明相应电源网上有电,不代表主控、晶振、下载线路和程序都一定正常。
1.1.2 会看电路图
- 电路图不是开发板的外观图,而是“哪些引脚在电气上相连”的逻辑图。元件在图上的远近、朝向通常不等于它们在实物板上的距离和方向。
- 图中的紫色虚线只是给功能模块分区,方便阅读;它不是绝缘墙。跨越不同虚线框的节点仍可能通过网络标号、电源符号或导线连接。
- 蓝色文字
P1.0、P1.6、P3.0等是网络标号。同一张原理图中,名称完全相同的网络标号代表电气相连,即使中间没有画一根很长的线。例如 LED1 右侧的P1.0与 U2 芯片旁的P1.0是同一个节点。 +5V、+3.3V、VCC、GND、GND_U也是网络名。名字不同就不能想当然地认为已经直连;例如本图中VCC要经过 SW1 才成为板内的+5V。
| 常见代号 | 含义 | 本图示例 |
|---|---|---|
| R / RN | 单个电阻 / 排阻网络 | R3、RN1 |
| C | 电容 | C8、C9、C10 |
| D | 二极管 | D1、D2 |
| Q | 三极管或 MOS 管 | Q1、Q2 |
| U | 集成电路芯片 | U1、U2、U3 |
| X | 晶体、晶振等频率器件 | X1 |
| SW | 开关或按键 | SW1~SW4 |
| LED / LD | 发光二极管 | LED1、LD1 |
| P | 插座或连接器 | OLED 插座 P1 |
- 线相交且带实心连接点,通常表示相连;仅仅交叉而没有连接点,通常表示不相连。判断时还要结合网络标号,不能只看线是否在画面上碰到一起。
- 初学时可按以下顺序读一条电路:
- 找电源正端和 GND,确定可能的电流回路。
- 找负载,例如 LED、蜂鸣器或芯片。
- 沿导线和同名网络追到控制端,例如 P1.0、P1.6。
- 查看中间器件的作用:电阻是否限流或上拉,电容是否滤波或产生延时,三极管是否扩流。
- 回到实物板找到相同器件,核对丝印、位置和接口方向。
开发板的主要信号关系可以先简化成下面这张图:
电脑 USB
│ 5V + USB 数据
▼
供电/下载 Type-C ──► CH340N ──UART──► STC89C52RC
│ │
├──► SW1 ──► +5V ─────────────────┤
│ ├──► 晶振/复位 ├──► P1.0~P1.3 ──► LED
│ ├──► 蜂鸣器电源 ├──► P1.6 ──► Q1 ──► 蜂鸣器
│ └──► AMS1117 ──► +3.3V
│ ├──► P3.2/P3.3 ◄── 按键
│ └──► P1.4/P1.5 ──► OLED
└──────────────────── GND 回路 ──────────────────────┘
- 这张简图表达的是功能关系,不替代正式原理图。真正排查故障时,应回到正式图中核对元件标号、引脚号、网络名和元件参数。
1.1.3 51单片机最小系统
- 能让单片机独立、稳定执行程序的最小系统主要由主控芯片、供电与去耦、时钟、复位组成。下载接口方便开发,但不是程序已经写入后维持运行的必需部分;LED、按键、OLED 和蜂鸣器属于实验外设。
- 下面的章节会把这四个运行条件和各个实验外设逐块展开。先记住一个总判断:供电正确、时钟起振、复位释放,CPU 才能稳定执行程序。
┌────────────────────┐
稳定电源 +5V/GND ──►│ VCC/GND │
│ │
11.0592MHz 晶体 ───►│ XTAL1/XTAL2 端口 ├──► 外设
+ 两只 22pF 电容 │ STC89C52RC │
│ │
上电脉冲/复位键 ───►│ RST │
└────────────────────┘
供电正确 + 时钟起振 + 复位释放,CPU 才能稳定执行程序
二、按 PDF 原理图逐块精读
下面这一部分以 51开发板电路.pdf 中的网络名、元件标号和参数为准。原理图上的紫色虚线框只是“阅读分区”,不是电气隔离;真正判断两点是否相连,要看导线、网络标号和电源符号。
2.1 先建立一张“电源和信号地图”
USB 数据线 D+/D-
电脑 USB ─────────────────────► CH340N ──UART──► STC89C52RC
│ │ │
│ VBUS │ RTS# │ P1.0~P1.3 ─ LED1~LED4
▼ ▼ │ P3.2/P3.3 ◄─ SW3/SW4
USBC1 ── D1 SS34 ── VCC ── SW1 ── +5V ──────────────────┤ P1.4/P1.5 ─ OLED
USB1 ──────────────────────── VCC/电源输入 │ P1.6 ─ Q1 ─ 蜂鸣器
│ │ XTAL1/XTAL2 ─ 晶体
└─ AMS1117-3.3 ─ +3.3V ─ 外部模块
GND_U(USB/下载侧地) ── Q2 AO3400 ── GND(主板地)
VCC是二极管和电源开关之前的电源节点;+5V是经过 SW1 后供给主控及大多数板载负载的电源节点。两者都可能接近 5 V,但在开关断开、USB 反向供电或自动下载动作时,二者的“是否有电”并不相同。GND_U和GND在图中故意分开标注,中间由 Q2 控制。初学时不能把所有地符号都直接当作同一根铜线;测量时应分别以对应地为参考。- 原理图中
TX、RX既可能是“某个芯片的引脚名称”,也可能是“网络名称”。分析串口时必须同时看芯片数据手册中的实际管脚号和图中的网络标号。
2.2 供电/下载 USB:USBC1、D1、C3、C4
USBC1 是 TYPE-C-16P,它同时承载电源和 USB 数据。
| USBC1 部分 | 图中连接 | 作用 |
|---|---|---|
| 多个 VBUS 脚 | 并在一起,经过 D1 SS34 到 VCC | 接收 USB 5 V 电源 |
| 多个 GND/外壳脚 | 并到 GND_U | USB 电流回路和屏蔽外壳参考 |
| D+、D- | 接到 CH340N 的 UD+、UD- | USB 2.0 差分数据 |
| CC1、CC2 | PDF 中可见为未连接标记 | Type-C 角色识别需要特别留意 |
| SBU1、SBU2 | 未用于本板功能 | 该接口没有音频/备用模式功能 |
电源回路可以写成:
USB VBUS(约 5 V)
│
├── C3 10 µF ──┐
├── C4 100 nF ─┤── GND_U
│ │
└── D1 SS34 ───┴── VCC
C3=10 µF是储能和低频滤波电容,插拔 USB、蜂鸣器启动或负载突然变化时,能够先提供/吸收一部分电荷。C4=100 nF的高频阻抗更低,主要旁路开关尖峰和数字噪声。两者并联是“一个管较慢波动、一个管较快噪声”。D1=SS34是肖特基二极管,方向是 USB VBUS → VCC。它的正向压降随电流、温度和型号变化,常见数量级约为 0.2~0.5 V,不能简单地永远按 0.7 V 计算。因此由该接口供电时,VCC可能低于 USB 端测到的 VBUS。- 二极管的好处是抑制开发板的 VCC 反灌回 USB VBUS,也能在另一供电入口存在时提供一定隔离。它不是稳压器,不能把 5 V 精确变成 5 V。
- PDF 中 CC1、CC2 没有看到典型的 5.1 kΩ 下拉电阻(Rd)。这意味着该板在使用 USB-A 转 USB-C 线时通常可能正常取电,但使用 USB-C 对 USB-C 线时,是否被规范的 Type-C 电源端识别,不能只凭“接口能插上”来保证。若遇到 C-C 线不供电,应优先检查 CC 电阻和实物版本。
数据部分是差分传输:D+ 和 D- 必须成对、长度和走线尽量接近。它们不是单片机的 UART 电平,不能直接接到 P3.0/P3.1;必须经过 CH340N 完成 USB 协议与 UART 电平之间的转换。
2.3 供电 USB:USB1
USB1 标注为 TYPE-C 6P,只画出了 VBUS 和 GND,D+、D- 没有接出。因此它是“供电 USB”,不是下载口。
USB1 VBUS ──► VCC(或图中对应电源网络)
USB1 GND ──► GND_U
│
├── C1 10 µF ── GND_U
└── C2 100 nF ── GND_U
- C1、C2 的作用与 C3、C4 类似,分别负责低频储能和高频去耦。
- 不能因为两个 USB 口都叫 Type-C,就认为它们都能下载程序。只有 USBC1 的 D+/D- 进入 CH340N。
- 两个 USB 口同时插入时,实际电流如何分配取决于 D1、线缆电压和两个电源源头的输出特性,不建议把两个独立电源当作“自动并联的理想电源”。学习阶段最好一次只接一个供电源,除非已经确认板上的电源隔离设计。
2.4 电源开关 SW1:为什么 VCC 和 +5V 要分开
PDF 中 SW1 的连接关系是:1 脚接 +5V,2、3 脚并在一起接 VCC。所以它等效为一个单刀开关:
VCC ── SW1(闭合)──► +5V
VCC ── SW1(断开)─╳─ +5V
2、3 脚同时接到 VCC,主要是滑动开关封装的公共触点/机械引脚安排,不代表存在两个独立的电源开关。
- SW1 闭合时,+5V 供给 U2、晶体、复位、LED、蜂鸣器和 AMS1117 输入等电路。
- SW1 断开时,主控所在的 +5V 电源域会掉电;但 VCC 侧的 CH340N 和 USB 输入端是否仍有电,要看 CH340N 的供电路径。因此“关掉开关”不一定等同于“整块板每个节点都变成 0 V”。
- 这种安排的一个好处是:电脑仍可以连接下载芯片,开关则由用户控制主控和外设是否上电;代价是 USB 地、串口信号和外部模块可能产生非预期的反向供电路径,调试时要测量而不是猜测。
2.5 CH340N:USB 为什么能变成串口
U1 是 CH340N,SOP-8 封装。官方数据手册中,SOP-8 的关键管脚是:
| CH340N 实际管脚 | 功能 |
|---|---|
| 1 | UD+ |
| 2 | UD- |
| 3 | GND |
| 4 | RTS#,低有效输出 |
| 5 | VCC |
| 6 | TXD,CH340N 输出 |
| 7 | RXD,CH340N 输入 |
| 8 | V3,内部 3.3 V 去耦节点 |
V3 脚旁边的 C5 是 100 nF,接到 GND_U。这个电容不是给外部模块输出 3.3 V 的稳压电源,而是 CH340N 内部电源/模拟部分的去耦电容。CH340N 既可以在 5 V 供电下工作,也可以在 3.3 V 逻辑环境中工作,具体电压范围和 USB 电阻配置应以数据手册为准。可参考 WCH CH340 数据手册:CH340N/CH340 系列数据手册。
2.5.1 UART 的交叉连接原则
串口的基本规则是“一方发送接另一方接收”:
发送方 TXD ─────────► 接收方 RXD
发送方 RXD ◄───────── 接收方 TXD
GND ─────────── 共同参考
对 STC89C52RC 而言,P3.0 是 RXD,P3.1 是 TXD。按 CH340N 官方管脚功能,理想连接应是:
CH340N pin6 TXD ──► MCU P3.0 / RXD
CH340N pin7 RXD ◄── MCU P3.1 / TXD
PDF 中 U1 旁边的蓝色网络文字显示为 pin7 旁标 TX、pin6 旁标 RX,看起来与 CH340N 自身的 TXD/RXD 命名交叉。结合 SchDoc 的实际连线,这不是“芯片管脚接反”:pin6 TXD → D2 → MCU P3.0/RXD,MCU P3.1/TXD → R1 → pin7 RXD。这里的 TX/RX 更接近 MCU/串口线一侧的信号方向标注。精校时应同时写清芯片管脚号和 MCU 端口,避免只写一个容易产生歧义的 TX 或 RX。
确认方法:
- 以 SchDoc 记录为第一依据:CH340N pin6 TXD 经过 D2 到 U2 P3.0/RXD,pin7 RXD 经过 R1 到 U2 P3.1/TXD。
- 如果需要确认迁移后的 PCB 是否与工程文件一致,再在断电状态用万用表通断档测量这两条线路。
- 下载或串口打印时,可用示波器/逻辑分析仪确认波形;判断方向时仍以“pin6 是 TXD、pin7 是 RXD”的芯片管脚定义为基准。
2.5.2 R1、D2 和串口指示灯
- R1 为
300 Ω,串在一条 UART 信号线上,作用通常是限制瞬态电流、减小边沿过冲或在两端驱动状态异常时提供一定保护。它不是“把串口电压降成某个固定值”的稳压元件。 - D2 为
1N4148,串在另一条信号线上,具有单向导电特性。它可能用于下载电路中的隔离、线与控制或限制某个方向的电流;仅凭这张功能级原理图,不能把它简化为普通导线,也不能保证它对所有 UART 工作模式都完全透明。 - LD2(蓝色)和 LD3(绿色)分别挂在
TX、RX网络上,前面各有1 kΩ电阻。LED 的亮灭取决于 CH340N 输出级的灌/拉电流方向;UART 空闲通常为高电平,而图中 LED 是从 +5V 经电阻和 LED 接到信号线,因此更可能在信号线被拉低、发生通信活动时点亮,而不是“电平为 1 就一直亮”。它们只表示线路有活动,不能代替下载成功校验。
2.5.3 RTS#、C7、R2、Q2:自动下载为什么要动地线
Q2 是 AO3400 N 沟道 MOSFET:源极 S 接 GND_U,漏极 D 接 GND,栅极 G 由 C7、R2 和 CH340N 的 RTS# 共同驱动。
R2 10 kΩ
VCC ─────────────/\/\/────┐
│ G
CH340N RTS# ── C7 47 µF ──┤ Q2 AO3400
│ S ── GND_U
│ D ── GND
CH340N 的 RTS# 是低有效输出。结合上述连接,可以这样理解其动态过程:
- R2 给栅极一个默认偏置,避免栅极悬空;
- RTS# 的电平变化通过 C7 以“变化量”耦合到栅极,而不是简单地把栅极永久接到 RTS#;
- Q2 导通时,GND_U 与 GND 之间形成低阻回路;Q2 关断时,两块地被暂时分开;
- STC 下载工具在握手时改变 RTS#,使主控电源/地参考出现类似“断开—重新接通”的时序,帮助芯片进入 ISP 下载状态。
若只把 R2×C7 相乘,会得到 10 kΩ × 47 µF ≈ 0.47 s。这个数只能作为“变化较慢”的数量级参考,不能直接当成自动下载延时,因为 C7 是串联耦合电容,MOSFET 的阈值、RTS# 的输出电阻、地线上其他回路都会改变真实波形。
这种自动下载方案的好处是不用每次手动按复位/断电;缺点是地线被开关控制,外接示波器、串口模块或其他 USB 设备时可能通过信号线形成旁路,导致 Q2 两端并不是真正的理想隔离。
2.6 主控 U2:STC89C52RC 的端口如何分工
U2 标注为 STC89C52RC 40I-LQFP44,芯片符号的供电脚名称是 VCC 和 GND;在本板中,VCC 供电脚接到 SW1 之后的 +5V 电源网。时钟脚是 XTAL1、XTAL2,复位脚是 RST,其余为 P0~P4 端口及第二功能。
本板中可直接从原理图追到的端口用途如下:
| 单片机网络 | 板载连接 | 同时可见的第二功能/注意 |
|---|---|---|
| P1.0~P1.3 | 四个用户 LED | LED 为低电平有效 |
| P1.4 | OLED SDA | 也从右侧排针引出 |
| P1.5 | OLED SCL | 也从右侧排针引出 |
| P1.6 | Q1 基极电阻 R3 | 控制蜂鸣器,低电平使 PNP 导通 |
| P3.0 | CH340 串口接收 | RXD,亦从排针引出 |
| P3.1 | CH340 串口发送 | TXD,亦从排针引出 |
| P3.2 | SW3 | INT0# 外部中断复用 |
| P3.3 | SW4 | INT1# 外部中断复用 |
| P0.0~P0.7 | RN1、RN2 上拉后引出 | 经典 8051 P0 口需要外部上拉 |
| P2.0~P2.7 | 右/左排针引出 | 可作普通 GPIO 或外部存储器地址线 |
| P4.x | 排针引出 | STC 扩展端口,第二功能以芯片手册为准 |
同一个网络可以同时连接多个“支路”。例如 P1.0 同时连接 U2、LED1 的 10 kΩ 支路和右排针 pin18。它们不是三个 P1.0,而是同一个电气节点;程序改变 U2 的 P1.0,外接排针上的电平和 LED 支路都会受到影响。
2.7 P0 口与 RN1、RN2:为什么只有 P0 旁边画排阻
RN1、RN2 的工程属性均标为 MNR14E0APJ103、10 kΩ、8 脚阵列。可以确定的功能是:它们为 P0.0~P0.7 提供外部 10 kΩ 上拉。至于该具体型号内部是共端阵列还是四组独立电阻,不能仅凭 PDF 中的画法下结论;如果需要维修、替换或计算每个阵列脚的内部连接,应再查型号数据手册,或在断电状态下对实物逐脚测通断。
在功能级分析中可先把每个 P0 网络理解为有一个约 10 kΩ 的上拉路径:
+5V ── 10 kΩ ── P0.0
+5V ── 10 kΩ ── P0.1
...
+5V ── 10 kΩ ── P0.7
经典 8051 的 P0 口在普通 GPIO 用法下没有 P1/P2/P3 那样的内部上拉。P0 输出“1”时可能是高阻态,外部没有上拉就不能得到可靠的高电平;排阻提供了一个弱的高电平来源。
- 当 P0.x 处于高阻/输入状态时,10 kΩ 把该点拉到接近 +5V,可读为逻辑 1。
- 当 P0.x 吸收电流输出低电平时,电流近似为
I ≈ (5 V - V_OL) / 10 kΩ。若V_OL约 0~0.5 V,则每路约 0.45~0.5 mA。 - 10 kΩ 不是把 P0“强行固定”为高电平;外部传感器或芯片只要能可靠地把它拉低,就能覆盖这个弱上拉。
- 连接外部推挽输出时要确认不会与单片机同时反向驱动,否则即使有 10 kΩ 也可能发生端口争用。
2.8 晶体 X1、C9、C10:时钟从哪里来
X1 是 11.0592 MHz 晶体,C9、C10 各为 22 pF,分别从 XTAL1、XTAL2 接到 GND。它们与 U2 内部的反相放大器构成 Pierce 振荡器。
XTAL2 ───── X1 11.0592 MHz ───── XTAL1
│ │
C9 22 pF C10 22 pF
│ │
GND GND
- 晶体是被动谐振器,不会自己“产生 11.0592 MHz 电压”;U2 内部放大器先提供微小扰动和能量,晶体只选择最容易维持的频率。
- 两只 22 pF 影响负载电容、起振裕量和频率偏差。粗略估算
C_L ≈ C9×C10/(C9+C10)+杂散电容 ≈ 11 pF+杂散,是否合适还要看晶体数据手册给出的负载电容C_L,不能看到 22 pF 就认为“必须永远用 22 pF”。 - 11.0592 MHz 对传统 51 特别常见,因为它与定时器分频后能较方便地得到 9600、19200 等 UART 波特率。传统 12T 模式下一个机器周期约为
12/11.0592 MHz≈1.085 µs;部分 STC 型号还支持 6T/1T 等模式,实际程序应以配置位和芯片手册为准。 - 晶体附近的走线应短、对称、远离蜂鸣器和高速 USB 线;外接排针不应直接把 XTAL1/XTAL2 当普通 GPIO 使用。
2.9 复位:C8、R4、SW2 怎样让 CPU 从头开始
图中复位网络为:+5V → C8 100 nF → RST,RST → R4 10 kΩ → GND,并且 SW2 按下时把 +5V 直接接到 RST。
┌── SW2(按下)── +5V
+5V ── C8 100 nF ────────┤
└── RST ── R4 10 kΩ ── GND
STC89C52RC 的 RST 为高电平有效:
- 上电电压从 0 V 上升时,C8 暂时把这个上升沿耦合到 RST,RST 出现短暂高电平,CPU 进入复位。
- 随着电容充放电,R4 把 RST 拉回低电平,复位释放,程序从复位入口开始执行。
- 按下 SW2 时,RST 被直接拉到 +5V,立即重新复位;松开后由 R4 拉低。
R4×C8=10 kΩ×100 nF=1 ms 是一个有用的数量级。实际复位高电平持续时间还受电源上升速度、RST 输入阈值、芯片内部复位要求和电容漏电影响,所以不能只用 1 ms 代替数据手册中的最小复位脉宽。
这不是把一个大电容“永久接在 RST 上”的简单延时电路,而是利用串联电容传递电压变化、利用电阻恢复稳态的上电微分/脉冲电路。SW2 提供了人工触发通道,两者互不冲突。
2.10 两个用户按键 SW3、SW4
SW3 将 P3.2 接到 GND,SW4 将 P3.3 接到 GND。每个 TS-1102S-C-C-B 是四脚轻触开关,1、2 是一侧触点,3、4 是另一侧触点;图中把同侧脚并用,便于封装焊接。
P3.2 ── SW3 ── GND P3.3 ── SW4 ── GND
- 松开:开关断开,P3 端口的准双向结构提供弱上拉,软件读到 1。
- 按下:信号被低阻接地,软件读到 0。
- P3.2/P3.3 还有 INT0#/INT1# 第二功能,所以可以轮询按键,也可以配置外部中断。
- 原理图没有画出独立的按键上拉电阻,不能凭空给这个“内部弱上拉”指定一个固定欧姆值;若要精确分析高电平电流,应查 STC89C52RC 数据手册。
- 机械触点会在几毫秒内反复接通/断开。常见软件去抖是检测到低电平后延时约 5~20 ms,再次确认;也可以用状态机或定时采样。原理图只负责提供电气通路,不会自动消除抖动。
2.11 四个用户 LED:P1.0~P1.3 与右侧排针的关系
四路结构完全相同:
+5V ── LED1 ── R8 10 kΩ ── P1.0
+5V ── LED2 ── R9 10 kΩ ── P1.1
+5V ── LED3 ── R10 10 kΩ ─ P1.2
+5V ── LED4 ── R11 10 kΩ ─ P1.3
这是典型的“低电平吸电流”接法:
P1.0 = 0:+5V → LED1 → R8 → U2 内部下拉晶体管 → GND,LED 亮
P1.0 = 1:P1.0 接近 +5V,LED 两端电压很小,LED 灭
2.11.1 电流和电阻怎么算
R8~R11 都是 10 kΩ,所以 LED 电流非常小。以 +5V、蓝色 LED 正向压降 V_F≈2.8~3.2 V、单片机低电平约 0~0.5 V 为例:
I_LED ≈ (5 - V_F - V_OL) / 10 kΩ
≈ (5 - 3.0 - 0.2) / 10 kΩ
≈ 0.18 mA
若是红色 LED(V_F 约 1.8~2.2 V),电流大约 0.25~0.3 mA。实际数值取决于 LED 的颜色、批次、亮度等级和 P1.0 的低电平输出电压;10 kΩ 的设计结果通常是“能看见、较省电、对 I/O 压力小”,而不是高亮照明。
电阻的功耗也很小。例如电阻两端约 2 V、0.2 mA 时:
P_R = I²R ≈ (0.2 mA)² × 10 kΩ ≈ 0.4 mW
远低于常见 0805 电阻的额定功率。
2.11.2 与排针的关系
右侧排针把相同的网络再次引出:
| LED | 单片机网络 | 右侧排针脚位 |
|---|---|---|
| LED1 | P1.0 | pin18 |
| LED2 | P1.1 | pin17 |
| LED3 | P1.2 | pin16 |
| LED4 | P1.3 | pin15 |
因此排针不是“另一个独立的 LED 控制器”,而是把 LED 所在节点提供给外部使用。比如:
- 外部逻辑分析仪接 P1.0 和 GND,可以观察程序输出波形;
- 外部传感器的数字输出可以接到某个 P1.x,但程序必须把该引脚配置为输入,并考虑板载 LED 支路带来的约 10 kΩ 负载;
- 外部模块若把 P1.0 强行输出高电平,而 U2 同时输出低电平,就会发生推挽争用,可能造成过流。排针上的“同名引脚”不能随意当作可并联电源或可并联输出。
2.12 指示灯 LD1、LD2、LD3:和四个用户 LED 不一样
图中有两组容易混淆的发光器件:LED1~LED4 是用户灯,LD1~LD3 是电源/串口状态灯。
+5V ── R5 1 kΩ ── LD1(0805_R)── GND_U 电源指示
+5V ── R6 1 kΩ ── LD2(0805_B)── TX 串口发送活动
+5V ── R7 1 kΩ ── LD3(0805_G)── RX 串口接收活动
- LD1 的负端回到
GND_U,但正端接的是 SW1 之后的+5V。因此它更准确地表示“+5V 已经送到板载负载,并且 USB 地回路可用”;SW1 断开时,即使 CH340N 一侧仍有 VCC,它也可能熄灭。 - R5~R7 都是
1 kΩ。以红灯V_F≈2 V估算,I≈(5-2)/1 kΩ≈3 mA;蓝/绿灯正向压降更高,电流可能约 2~3 mA。实际要以 LED 的伏安特性和驱动端电压为准。 - R5~R7 比用户 LED 的 10 kΩ 小,说明状态灯可以更明显;它们的电流会增加 USB/CH340 或 +5V 电源的负载。
- TX/RX 灯并非严格的协议分析仪。UART 的每个字节包含起始位、数据位、停止位,LED 只能把快速电平变化积分成“闪烁/发亮”,无法从亮度读出数据内容。
2.13 蜂鸣器 BELL1、Q1、R3、C6
蜂鸣器部分为一个 PNP 高边开关:Q1 是 S9012,发射极接 +5V,集电极接 BELL1,蜂鸣器另一端接 GND,基极由 P1.6 经 R3 1 kΩ 驱动。
Q1 S9012(PNP)
+5V ─────────────── E
C ─── BELL1 ─── GND
P1.6 ── R3 1 kΩ ─── B
- P1.6 输出低电平时,PNP 的基极比发射极低,Q1 导通,主电流走
+5V → Q1 → BELL1 → GND,蜂鸣器响。 - P1.6 输出高电平时,基极接近发射极,Q1 截止,蜂鸣器不响。
- R3 的作用是限制基极电流。粗略估算
I_B≈(5-0.7-V_OL)/1 kΩ,可能是数毫安;真实值受 P1.6 的低电平输出能力和 Q1 的饱和状态限制,不能把这个计算值当成单片机必须持续提供的精确电流。 - Q1 把蜂鸣器主电流从单片机引脚移开,防止 P1.6 直接承受负载。C6
100 nF是附近的电源去耦电容,用来减小蜂鸣器开关电流对 +5V 的瞬态干扰。 - 若 BELL1 是有源蜂鸣器,给它直流电压即可发声;若换成无源蜂鸣器,则需要 P1.6 输出合适频率的方波。换器件前还要确认线圈是否会产生反向感应电压;图中没有单独画出并联续流二极管,不能把任何蜂鸣器都当成完全相同的负载。
2.14 线性稳压器 U3:AMS1117-3.3
U3 将 +5V 降为 +3.3V,外围电容为:
+5V ──┬── C11 10 µF ──┐
└── C12 100 nF ──┤
├── GND
AMS1117-3.3 In ─────────┘
AMS1117-3.3 Out ── +3.3V
│
├── C13 10 µF ── GND
└── C14 100 nF ── GND
C11/C13=10 µF负责输入、输出的低频稳定和负载突变;C12/C14=100 nF负责高频去耦。稳压器数据手册对电容的最小值、ESR 和摆放距离可能有要求,实际 PCB 应尽量靠近引脚。- 线性稳压器只能降压,不能把 3.3V 升成 5V。它把多余电压变成热量:
P_loss ≈ (V_in - V_out) × I_out
≈ (5 - 3.3) × I_out
≈ 1.7 × I_out(瓦)
例如 100 mA 时约 0.17 W,200 mA 时约 0.34 W,500 mA 时约 0.85 W。后两种情况可能使 AMS1117 明显发热,允许电流不能只看芯片名字,还要看封装散热、输入输出压差和环境温度。
- AMS1117 在较大负载下需要一定压差才能稳压,常见压差约 1 V 左右,5V 输入通常足够;精确 dropout 要查所用厂家的数据手册。
- AMS1117 的 SOT-223 金属散热片(TAB)通常与 OUT 同一节点。PCB 若把 TAB 铺到地或接触金属外壳,可能直接把 +3.3V 短到 GND;装配和维修时应以实际厂家的封装图确认。
- +3.3V 从排针引出,是给 3.3V 外设使用的便利电源,不代表整个 STC89C52RC 已经改成 3.3V 供电。外部模块的电源、信号电平和地必须分别确认。
2.15 OLED 接口 P1:为什么只接四根线
P1 是四针 OLED 插座,PDF 中引脚文字为 GND、VCC、SCL、SDA;其中供电网络旁边的电源符号显示为 +5V,因此连接实际模块时应按 +5V 额定来核对,而不能只看插座上的 VCC 字样。
| P1 脚位 | 原理图网络 | 连接到 U2 |
|---|---|---|
| 1 | GND | 地 |
| 2 | +5V(插座文字写 VCC) | 5 V 供电 |
| 3 | SCL | P1.5 |
| 4 | SDA | P1.4 |
SCL、SDA 是 I²C 总线:两根线通常由器件以开漏方式拉低,再由上拉电阻恢复高电平。该开发板在 P1 附近没有看到独立的 I²C 上拉电阻,因此常见 OLED 模块上的上拉电阻可能是必需的;连接前应确认模块是否自带上拉、上拉到了 3.3V 还是 5V。
- 如果 OLED 模块只允许 3.3V 供电,不能直接把 P1 的 +5V 接上;应使用排针上的 +3.3V,并确认模块的 SDA/SCL 高电平不会超过其控制器规格。
- STC 的 P1.4/P1.5 同时从右侧排针引出。OLED 工作时,这两个引脚就被 I²C 占用,外接模块不应再把它们作为互相冲突的推挽输出。
- I²C 的上拉电阻越小,上升沿越快但低电平电流越大;越大则省电但总线速度和线长受限。原理图没有给出上拉值,不能从 P1 插座本身推导出一个固定欧姆数。
2.16 两侧排针:把什么“原样”接出来了
两组 25 针排针(PDF 元件属性文字有 1x21 的标注,但图上实际编号为 1~25;SchDoc 元件属性显示为 25 针)本质上是同一块板的“测试点/扩展接口”。它们没有缓存器、放大器或新的 GPIO,只是把已经存在的网络并联到插针上。
左侧排针的逐脚网络顺序为:
| 脚位 | 网络 | 脚位 | 网络 |
|---|---|---|---|
| 1 | GND | 14 | P0.4 |
| 2 | +5V | 15 | P0.3 |
| 3 | P2.0 | 16 | P0.2 |
| 4 | P2.1 | 17 | P0.1 |
| 5 | P2.2 | 18 | P0.0 |
| 6 | P2.3 | 19 | P4.6 |
| 7 | P2.4 | 20 | P4.5 |
| 8 | P2.5 | 21 | P4.4 |
| 9 | P2.6 | 22 | 未连接 |
| 10 | P2.7 | 23 | +3.3V |
| 11 | P0.7 | 24 | +5V |
| 12 | P0.6 | 25 | GND |
| 13 | P0.5 |
右侧排针的逐脚网络顺序为:
pin1 GND pin2 +5V
pin3 P3.7 pin4 P3.6 pin5 P3.5 pin6 P3.4
pin7 P3.3 pin8 P3.2 pin9 P4.1 pin10 P4.0
pin11 P1.7 pin12 P1.6 pin13 P1.5 pin14 P1.4
pin15 P1.3 pin16 P1.2 pin17 P1.1 pin18 P1.0
pin19 P4.3 pin20 P4.2 pin21 P3.1 pin22 P3.0
pin23 +3.3V pin24 +5V pin25 GND
排针存在的实际意义可以概括为五点:
- 扩展:用杜邦线接数码管、继电器、传感器、步进电机驱动板等,不必从芯片细小引脚飞线。
- 复用实验:同一个 P1.0 既可以点板载 LED,也可以接外部模块;程序换一种配置就能做新的实验。
- 测量和排错:示波器探头、逻辑分析仪、万用表可以在排针上取信号和参考地。
- 供电便利:多个 +5V、+3.3V、GND 分布在两侧,减少长飞线和地线压降,便于模块就近取电。
- 保护主板焊点:反复插拔外设时,受力的是排针,而不是 MCU 的 QFP 焊盘。
“多个 GND/+5V 是否重复浪费”这个问题,答案是:它们在电气上通常是同一个网络,但在物理布局上提供了多个接入位置。多点地线还可以让外部模块的回流路径更短;不过大电流负载仍要单独评估走线宽度、连接器额定电流和稳压器发热。
使用排针时要遵守三条原则:
- 外部模块必须和开发板共地,除非你明确使用了隔离接口;
- 不要把外部 5V 接到 +3.3V,也不要把两个独立电源直接并到同一电源针;
- 一个网络若已经被 U2 配置为推挽输出,外部只能接输入或高阻接口,不能再用另一个推挽输出硬顶相反电平。
2.17 从电阻值估算电流:哪些能算,哪些不能算
原理图能直接给出电阻和电容,但“电流是多少”还必须知道电压、LED 正向压降、芯片输出电阻、负载类型和工作状态。下面是本板最常用的估算:
| 回路 | 元件值 | 粗略电流/时间 | 说明 |
|---|---|---|---|
| 用户 LED | 10 kΩ | 约 0.18~0.3 mA | 取决于 LED 颜色和 P1 低电平 |
| 电源/TX/RX LED | 1 kΩ | 约 2~3 mA | 取决于正向压降和驱动方向 |
| P0 上拉 | 10 kΩ | 拉低时约 0.45~0.5 mA | P0 释放时几乎无直流电流 |
| 复位下拉 | 10 kΩ | RST 高时约 0.5 mA | 正常 RST 为低时接近 0 |
| Q1 基极 | 1 kΩ | 数 mA 数量级 | 受 MCU VOL、VBE 和晶体管工作点限制 |
| Q2 栅极偏置 | 10 kΩ、47 µF | R×C 数量级 0.47 s | 串联耦合,不能当精确延时 |
| AMS1117 热耗散 | 无固定 R | P≈1.7×Iout | 由外部 3.3V 负载决定 |
电容在直流稳态下近似开路,但在插拔、复位和开关瞬间会有电流。10 µF 电容充到 5 V 时储能约为 E=1/2·CV²≈125 µJ;100 nF 更小,但对高频尖峰的响应更快。不能用“电容是开路”来解释上电瞬间,也不能用“电容一直导电”来解释稳态。
整板从 USB 取多少电流没有一个由原理图单独决定的固定值:U2 的运行电流、CH340N、三个状态灯、四个用户灯、蜂鸣器、OLED 和排针外部模块都会叠加。USB 端口/充电器能提供的电流也取决于具体接口和协议,不能把某个传统 USB 规格的 500 mA 数字当作本板的保证值。
2.18 三个“电压参考”不要混为一谈
VBUS:USB 插座线缆送进来的电压,受 USB 源和线阻影响
VCC :经过 D1(若从 USBC1 进入)且在 SW1 之前的板内电源节点
+5V :SW1 之后给主控和多数板载电路的电源
+3.3V:AMS1117 从 +5V 降压得到的外设电源
GND_U:USB/CH340 侧地
GND :主控/外设侧地
实际测量时,黑表笔接哪个地会影响读数:测 USB 输入和 CH340N 时优先以 GND_U 为参考;测 U2、LED 和排针上的 +5V 时优先以 GND 为参考。若 Q2 处于关断或自动下载切换状态,两个参考点之间可能出现明显的瞬态电压。
2.19 建议的上板验证顺序
对电路图有了初步理解后,可以按低风险顺序验证,不要一上来就接大功率模块:
- 断电通断:确认 VCC 到 +5V 是否受 SW1 控制,确认 USBC1 的 VBUS 到 VCC 之间 D1 方向,确认 GND_U 与 GND 之间经过 Q2。
- 空载上电:分别测 VBUS、VCC、+5V、+3.3V 对各自地的电压;观察是否有异常发热。
- 复位波形:示波器测 RST 上电脉冲和按下 SW2 的高电平,确认复位后能回到低电平。
- 时钟:在 XTAL1/XTAL2 附近使用高阻探头观察起振,避免普通探头电容过大导致不起振。
- 串口:关掉自动下载干扰后,验证 CH340N pin6/pin7 与 P3.0/P3.1 的实际连续性,再观察 TX/RX 波形。
- 单路 LED:让 P1.0 先输出 1 再输出 0,测 P1.0 电压并观察 LED1 是否遵循“高灭低亮”。
- 按键:松开时测 P3.2/P3.3 是否为高,按下是否接近 0 V;再在程序中加入去抖。
- 外部模块:先接低电流、明确电平的模块,并把信号、供电、地三者逐一核对。
测量数字信号时,万用表读到的往往只是平均值;例如快速闪烁的 TX LED 或 PWM 方波,用示波器/逻辑分析仪才看得出真正的高低电平和时序。
2.20 根据原理图可以提出的勘误/核对点
以下不是说板子一定有故障,而是学习和维修时应特别核对的地方:
- CH340N 的 TX/RX 文字:官方 SOP-8 pin6 是 TXD、pin7 是 RXD,而 PDF 旁的网络文字呈现交叉。应以实物连线和芯片管脚号确认。
- Type-C CC1/CC2:PDF 没有显示典型 Rd 下拉,C-C 供电兼容性需要实测。
- GND_U/GND:Q2 是低边地开关,信号线、示波器地和外部模块都可能形成旁路;自动下载时不要想当然地认为两块地完全悬浮。
- OLED 的 VCC:插座文字写 VCC,但电源符号显示 +5V。购买 OLED 时必须确认模块允许的供电电压和 I²C 上拉电压。
- 排针属性:PDF 图形文字出现
1x21,但编号画到 25,工程文件属性为 25 针。制作线束时按实际丝印和通断测试确认。 - 芯片 I/O 电流:LED 计算出的电流是外部支路电流,不等于 STC 每个端口、整个端口组或整个芯片允许的最大电流。超过规格会使 VOL/VOH 变差甚至损坏,最终限制必须查对应批次数据手册。
三、把整张图串成一次完整工作过程
3.1 正常上电并运行用户程序
- USB VBUS 进入 VCC,D1 防止不希望的反向电流;闭合 SW1 后形成 +5V。
- C1~C4、C6、C11~C14 等电容在不同频段稳定电源。
- U3 从 +5V 生成 +3.3V,外部 3.3V 模块可从排针取电。
- U2 得到 +5V/GND、晶体时钟和上电复位脉冲,开始执行程序。
- 程序把 P1.0~P1.3 拉低或释放,控制四个低电平有效 LED;读取 P3.2/P3.3 的高低电平,判断按键;通过 P1.4/P1.5 与 OLED 交换 I²C 数据;通过 P1.6 控制 Q1 和蜂鸣器。
3.2 从电脑下载程序
- 电脑通过 USBC1 送来 VBUS 和 D+/D-。
- CH340N 将 USB 数据转换为 UART;TXD/RXD 按交叉规则与 U2 的 P3.0/P3.1 通信。
- 下载工具改变 RTS#,C7/R2/Q2 使 GND_U 与 GND 出现所需的切换时序。
- STC89C52RC 进入 ISP,接收程序并写入内部 Flash。
- 下载完成后,RTS# 恢复,Q2 重新建立地回路,U2 复位并运行新程序;LD2/LD3 的闪烁只能作为通信活动的辅助迹象。
3.3 从排针连接外部模块
例如接一个 5 V 数字传感器:传感器 VCC 接排针 +5V、GND 接 GND、OUT 接一个没有被板载功能占用的 GPIO。程序把该 GPIO 配为输入,再用逻辑分析仪探头并到同一信号和 GND 上。若接的是 3.3 V OLED,则优先使用 +3.3V,并确认 SDA/SCL 上拉电压;若接的是继电器、电机等感性/大电流负载,则应使用独立驱动器和保护器件,不能直接从 GPIO 或排针随意取电。
四、最后的整体总结
这张 51 开发板原理图可以看成四层:
- 能量层:USB、D1、SW1、+5V、AMS1117、+3.3V、GND。
- 运行条件层:U2、X1/C9/C10、C8/R4/SW2。
- 通信与控制层:CH340N、UART、RTS#/Q2 自动下载、P1.0~P1.6、P3.0~P3.3。
- 实验与扩展层:四个用户 LED、按键、蜂鸣器、OLED 插座和两侧排针。
四个 LED 的核心结论是:它们分别挂在 P1.0~P1.3 上,LED 阳极侧接 +5V,阴极侧经过 10 kΩ 电阻接到单片机端口;端口输出低电平时由单片机吸收约 0.2~0.3 mA,LED 点亮。右侧排针的 P1.0~P1.3 不是额外的四组资源,而是把这四个相同节点再次引出。因此,板载 LED、单片机引脚和外部排针之间是“共享同一节点、互相影响”的关系。
理解其余模块时也使用同一个问题清单即可:电源从哪来?电流经过什么负载?哪个器件控制它?回到哪个 GND?同一网络还有谁连接?电阻/电容是在限流、上拉、滤波还是产生时序? 能持续这样追线,整张 PDF 就不再是一堆孤立的符号,而是一组可以计算、测量和验证的功能电路。