3.6. 红石逻辑门

小朋友们好!今天我们要学习 Minecraft 中的逻辑门!逻辑门就像是红石世界的小脑筋,可以根据不同的输入信号做出不同的判断哦!

3.6.1. 什么是逻辑门?

逻辑门是一种特殊的红石电路,它可以根据输入的信号来决定是否输出信号。就像我们做选择题一样:如果满足条件,就做一件事;如果不满足,就做另一件事。

3.6.2. 常见的逻辑门

常见的逻辑门

逻辑门名称

输入A

输入B

输出Q

像什么?

非门

1

0

相反按钮

非门

0

1

与门

1

1

1

必须两个条件都满足

与门

1

0

0

与门

0

1

0

与门

0

0

0

或门

1

1

1

满足一个条件就行

或门

1

0

1

或门

0

1

1

或门

0

0

0

与非门

1

1

0

与门的相反

与非门

1

0

1

与非门

0

1

1

与非门

0

0

1

或非门

1

1

0

或门的相反

或非门

1

0

0

或非门

0

1

0

或非门

0

0

1

异或门

1

1

0

两者不同时

异或门

1

0

1

异或门

0

1

1

异或门

0

0

0

同或门

1

1

1

两者相同时

同或门

1

0

0

同或门

0

1

0

同或门

0

0

1

3.6.3. 用编程关键词表示逻辑门

小朋友们,你们知道吗?逻辑门其实和编程中的逻辑运算符很像!就像 Python 等编程语言中的 andornot 一样,逻辑门也在做着类似的判断。

编程中的逻辑运算符对应

  • 非门:对应 not 运算符 - not 输入 = 输出 - 例如:not True = Falsenot False = True

  • 与门:对应 and 运算符 - 输入A and 输入B = 输出 - 例如:True and True = TrueTrue and False = False

  • 或门:对应 or 运算符 - 输入A or 输入B = 输出 - 例如:True or False = TrueFalse or False = False

  • 异或门:对应 != 运算符 - 输入A != 输入B = 输出 - 例如:True != False = TrueTrue != True = False

  • 同或门:对应 == 运算符 - 输入A == 输入B = 输出 - 例如:True == True = TrueTrue == False = False

用编程表达式理解逻辑门

我们可以用编程中的表达式来表示逻辑门的工作原理:

逻辑门的编程表达式

逻辑门名称

编程表达式

含义

例子

非门

not A

取反

not True → False

与门

A and B

两者都为真

True and True → True

或门

A or B

至少一个为真

True or False → True

与非门

not (A and B)

与门的相反

not (True and True) → False

或非门

not (A or B)

或门的相反

not (True or False) → False

异或门

A != B

两者不同

True != False → True

同或门

A == B

两者相同

True == True → True

信号表示 - 在红石中,1 表示有信号(真/True) - 在红石中,0 表示无信号(假/False)

Python 表达式与红石逻辑门的对应 - 当我们在 Python 中写 if x and y: 时,就相当于使用了一个与门 - 当我们写 if x or y: 时,就相当于使用了一个或门 - 当我们写 if not x: 时,就相当于使用了一个非门 - 当我们写 if x != y: 时,就相当于使用了一个异或门 - 当我们写 if x == y: 时,就相当于使用了一个同或门

3.6.4. 红石非门

非门是最简单的逻辑门,它的作用是:输入信号时关闭,没有输入信号时打开

用红石怎么做非门? - 放一个方块 - 在方块侧面插一个红石火把 - 在方块的另一个侧面放红石线

当你在方块上放红石信号时,红石火把会熄灭,红石线也会熄灭。 当你拿走方块上的红石信号时,红石火把会重新亮起,红石线也会亮起。

3.6.5. 红石与门

与门的作用是:只有当两个输入都有信号时,才会输出信号

用红石怎么做与门? - 放两个方块,中间隔一个空格 - 在两个方块上各插一个红石火把 - 在两个方块之间的空格上方放一个方块 - 在最上面的方块上放红石线

只有当两个红石火把都熄灭时(也就是两个输入方块都被充能时),最上面的方块才会被充能,红石线才会亮起。

3.6.6. 红石或门

或门的作用是:只要有一个输入有信号,就会输出信号

用红石怎么做或门? - 放两个方块,并排放在一起 - 在两个方块上各放红石线 - 在两个方块前面放一个方块 - 在前面的方块上放红石线

当任何一个输入红石线有信号时,前面的方块都会被充能,输出红石线就会亮起。

3.6.7. 红石异或门

异或门的作用是:当两个输入信号不同时,才会输出信号

用红石怎么做异或门? - 首先做一个或门 - 然后做一个与非门 - 最后将或门的输出和与非门的输出连接到一个与门

只有当两个输入信号不同时(一个有信号,一个无信号),异或门才会输出信号。

3.6.8. 红石同或门

同或门的作用是:当两个输入信号相同时,才会输出信号

用红石怎么做同或门? - 首先做一个异或门 - 然后在异或门的输出端接一个非门

当两个输入信号相同时(都有信号或都无信号),同或门才会输出信号。

3.6.9. 红石与非门和或非门

与非门**的作用是:**当两个输入都有信号时,不输出信号;否则输出信号。 - 用红石怎么做与非门?在与门的输出端接一个非门

或非门**的作用是:**当至少有一个输入有信号时,不输出信号;否则输出信号。 - 用红石怎么做或非门?在或门的输出端接一个非门

3.6.10. 逻辑门的应用

逻辑门在 Minecraft 中有很多用处:

  1. 安全门:用与门做一个需要两个按钮同时按下才能打开的门

  2. 自动灯:用或门做一个白天或晚上都能亮的灯

  3. 陷阱:用非门做一个有人踩压力板时关闭的门

  4. 密码锁:用多个逻辑门组合做一个需要输入正确密码才能打开的门

  5. 自动农场:用逻辑门控制农场的自动收割和种植

  6. 身份验证:用异或门做一个需要输入正确组合才能通过的系统

  7. 状态检测:用同或门检测两个信号是否相同

3.6.11. 逻辑门的符号表示

逻辑门在数字电路中有标准的符号表示:

逻辑门符号

逻辑门名称

符号

含义

非门

NOT

取反输入信号

与门

AND

两个输入都为真时输出真

或门

OR

至少一个输入为真时输出真

与非门

NAND

与门的输出取反

或非门

NOR

或门的输出取反

异或门

XOR

两个输入不同时输出真

同或门

XNOR

两个输入相同时输出真

3.6.12. 组合逻辑电路

组合逻辑电路的定义:由多个逻辑门组合而成,输出只取决于当前输入的电路。

常见的组合逻辑电路

  1. 半加器 - 用于两个一位二进制数的加法 - 有两个输入(A、B)和两个输出(和、进位) - 用一个异或门和一个与门组成

  2. 全加器 - 用于三个一位二进制数的加法(包括进位输入) - 有三个输入(A、B、进位输入)和两个输出(和、进位输出) - 用两个半加器和一个或门组成

  3. 解码器 - 将二进制代码转换为特定的输出信号 - 例如3-8解码器,可以将3位二进制数转换为8个输出信号之一

  4. 编码器 - 将多个输入信号转换为二进制代码 - 例如8-3编码器,可以将8个输入信号之一转换为3位二进制数

3.6.13. 时序逻辑电路基础

时序逻辑电路的定义:输出不仅取决于当前输入,还取决于历史输入的电路。

基本的时序逻辑电路

  1. 触发器 - 可以存储一位二进制信息 - 常见的有RS触发器、D触发器、JK触发器 - 用逻辑门和反馈电路组成

  2. 寄存器 - 由多个触发器组成,用于存储多位二进制信息 - 可以用于暂存数据

  3. 计数器 - 用于计数脉冲信号的个数 - 可以用触发器和逻辑门组成

3.6.14. 逻辑门的优化设计

优化目标: - 减少元件数量 - 提高电路速度 - 降低能耗

优化方法

  1. 逻辑化简 - 使用布尔代数规则化简逻辑表达式 - 减少所需的逻辑门数量

  2. 共用逻辑门 - 多个输出共享部分逻辑门 - 减少整体元件数量

  3. 使用更高级的逻辑门 - 例如用与非门实现其他逻辑门 - 与非门是通用逻辑门,可以实现任何逻辑功能

3.6.15. 更多应用案例

案例1:密码锁 1. 用多个按钮作为输入 2. 用逻辑门组合实现密码验证 3. 只有输入正确的密码序列才会输出信号

案例2:自动灌溉系统 1. 用太阳传感器检测白天 2. 用比较器检测土壤湿度 3. 用逻辑门组合控制浇水装置

案例3:智能照明系统 1. 用 daylight sensor 检测光线强度 2. 用压力板检测是否有人 3. 用逻辑门组合控制灯光开关

案例4:交通信号灯 1. 用时钟电路控制信号灯的切换 2. 用逻辑门实现不同方向的灯的协调 3. 可以设置不同的时间段的灯光模式

3.6.16. 趣味小实验

实验1:制作半加器 1. 放两个按钮作为输入A和B 2. 制作一个异或门和一个与门 3. 异或门的输出作为和 4. 与门的输出作为进位 5. 测试不同输入组合的输出

实验2:密码锁 1. 放3个按钮作为密码输入 2. 用逻辑门组合实现特定的密码(如按钮1和3同时按下) 3. 正确输入时激活红石灯 4. 测试密码的正确性

实验3:智能灯 1. 放一个太阳传感器和一个压力板 2. 用逻辑门组合实现:只有在晚上且有人时才开灯 3. 测试不同条件下的灯光状态

实验4:交通信号灯 1. 用红石中继器制作时钟电路 2. 用逻辑门控制红、黄、绿三个灯的切换 3. 调整时钟速度,使灯光按合理的时间切换

3.6.17. 布尔代数基础

布尔代数的基本定律

  1. 交换律 - A AND B = B AND A - A OR B = B OR A

  2. 结合律 - (A AND B) AND C = A AND (B AND C) - (A OR B) OR C = A OR (B OR C)

  3. 分配律 - A AND (B OR C) = (A AND B) OR (A AND C) - A OR (B AND C) = (A OR B) AND (A OR C)

  4. 德摩根定律 - NOT (A AND B) = NOT A OR NOT B - NOT (A OR B) = NOT A AND NOT B

  5. 互补律 - A AND NOT A = 0 - A OR NOT A = 1

小朋友们,现在你们知道逻辑门的厉害了吗?试着用逻辑门做一个智能装置吧!