造物笔记/嘉立创EDA 教程(原立创EDA)
基于 嘉立创EDA专业版 V4.1.93
造物笔记 / 嘉立创EDA 教程 / 第 2 章 · 前置知识补全

2.7 数字电路入门

单片机的世界只有两个数字:1 和 0,对应高电平和低电平。这一节讲清楚什么算“高”、什么算“低”,3.3 V 和 5 V 的芯片能不能直接连,以及按键旁边为什么总有一个上拉电阻。

⏱ 约 15 分钟🎯 需要 2.1、2.2 的基础🖱️ 含上拉电阻按键演示

高电平和低电平#

模拟电路关心电压“具体是多少伏”;数字电路只关心“是高还是低”:

  • 高电平(High,1):电压接近电源电压。3.3 V 的芯片,大约 2.3 V 以上算高。
  • 低电平(Low,0):电压接近 0 V(GND)。大约 1 V 以下算低。
  • 中间那段是不确定区:芯片可能读成 1 也可能读成 0,设计时要避免信号停在这里。

具体门槛每颗芯片不一样,写在规格书的“电气特性”里(2.14),常见的 CMOS 芯片大致是:高于约 0.7 × 电源电压算高,低于约 0.3 × 电源电压算低。

3.3 V 逻辑和 5 V 逻辑能直接连吗#

芯片的“逻辑电平”一般就是它的供电电压。现在的单片机(包括 ESP32-C3)大多是 3.3 V 逻辑,老一些的芯片、很多模块是 5 V 逻辑。两者相连时要想两个问题:

方向会怎样怎么办
5 V 芯片 → 3.3 V 芯片5 V 的高电平可能超过 3.3 V 芯片能承受的电压,有烧坏的风险(ESP32-C3 的 IO 不能直接接 5 V 信号)用分压电阻降一下(2.3),或用电平转换芯片
3.3 V 芯片 → 5 V 芯片不会烧,但 3.3 V 对 5 V 芯片来说可能不够“高”,读不出 1看对方规格书的高电平门槛;不够就加电平转换

上拉电阻和下拉电阻#

按键接单片机,最直观的想法是:按键一头接 GPIO 引脚,一头接 GND,按下就是低电平。那松开时呢?这时引脚什么都没接,叫做悬空(Floating)——它的电压会随周围干扰飘来飘去,程序读到的值时 0 时 1,好像有人在乱按。

解决办法:用一个电阻把引脚“拉”到 3.3 V。松开时引脚通过电阻接到 3.3 V,读到 1;按下时引脚被按键直接接到 GND,读到 0。这个电阻就叫上拉电阻。切换三种接法试一试:

上拉电阻按键演示
按住按钮 = 按下按键。下面的电平条标出了大致的高 / 低电平门槛(按 0.3 / 0.7 × 3.3 V 画)。
  • 为什么用电阻,不直接接 3.3 V? 直接接的话,按下按键 = 3.3 V 直接短路到 GND(在演示里选“换成导线”试试)。电阻限制了电流:10 kΩ 时只有 0.33 mA。
  • 阻值怎么选? 一般 4.7 kΩ~10 kΩ。太大了“拉”得不够有力,容易受干扰;太小了按下时浪费电流。
  • 下拉电阻就是反过来:电阻接 GND,按键接 3.3 V,松开读 0、按下读 1。
  • 内部上拉:很多单片机引脚内部自带可以打开的上拉 / 下拉电阻,程序里设置一下就行,可以省掉外部电阻。

信号和时钟#

  • 信号:在导线上传递信息的高低电平变化。比如按键信号、LED 控制信号、串口数据。
  • 时钟(Clock):一种特殊的信号——非常有规律的高低交替(方波),像节拍器,数字电路按它的节奏一步一步工作。单片机内部的时钟每秒跳上亿次(ESP32-C3 最高 160 MHz),由晶振提供基准(2.4 晶振)。
  • 案例 A 的 NE555 产生的方波(约 1.5 Hz)也可以看作一个很慢的“时钟”,只不过它的用途是让 LED 交替闪烁。
按键一端接单片机引脚、另一端接 GND,没有接任何电阻。松开按键时引脚会读到什么?
✅ 引脚悬空,电压不确定。需要上拉电阻(外部或芯片内部)把它固定在高电平。
一个 5 V 供电的传感器,输出信号要接到 ESP32-C3 的 IO 口。直接连有什么风险?
✅ 要先降到 3.3 V 以内,比如用分压电阻或电平转换芯片。

回到哪里继续#