数字逻辑电路:从基础到实践
一、数字电路基础应用
1.1 开关消抖与数字输出到灯光
在数字电路中,开关消抖是一个常见的问题。有一种方法是使用振荡器来实现开关消抖,不过要注意,该电路产生的数字信号会与方波同步,这在某些应用(如游戏)中可能并不理想。
数字输出到灯光是数字电路的一个常见应用。过去的科幻电影常把计算机描绘成带有许多闪烁灯光的复杂设备,这些灯光其实就是数字输出的结果。如今,发光二极管(LED)成为了数字输出的主力军,它能传达简单直观的“是/否”信息。
LED 要正常发光,需要特定方向且约 20 mA 的电流通过。有一个简单的电路可用于用数字门驱动 LED,该电路虽简单,但有一些特殊之处:LED 在逻辑 0 时点亮,这与门的布线方式有关,门善于吸收电流但不善于提供电流。此外,与 LED 串联的电阻用于限制电流(约 180Ω),同时要注意 LED 的引脚方向,较长的引脚电位应高于较短的引脚。
1.2 数字版井字棋游戏电路设计
假设要构建一个数字版的井字棋游戏,无需计算机,仅用数字电路即可。需要一个 3×3 的九宫格区域,“×”用红色 LED 表示,“〇”用绿色 LED 表示。每个区域都需要一个包含两个开关和两个 LED 的电路,在选择“×”或“〇”之前,两个灯都应熄灭。
为实现这一功能,每个 LED 都需要一个触发器,这里选择 D 触发器。由于逻辑 0 激活灯光,所以将每个 LED 连接到相应触发器的 Q 输出端。游戏结束时,需要一个全局复位按钮连接到所有触发器的预设输入端。在这个设计中,触发器的 D 输入永久为逻辑 1,时钟输入连接到(消抖后的)按钮。按下按钮时,相应触发器的 Q 输出变