最近,翻到了以前写的:用三个开关控制一盏灯、三个开关控制一盏灯的博文。
在上述两个博文中,做而论道设计了两种不同的电路,都实现了 “三个开关控制一盏灯” 的目的。此外,还曾设计过 “使用与非门” 来实现的电路,时间太久,也不知道积压到什么地方去了。
在上述博文中,做而论道给出了设计思路,还给读者留了个题目:设计一个用四个开关控制一盏灯的电路。但是多年来,也未见有人拿出成果,反而是有人来求助这个设计。
下面,做而论道就以这个设计要求为题,介绍一下《数字电子技术》中,组合逻辑电路的设计方法。
怎样设计一个组合逻辑电路? 在教材中,已经给出了路子:
1. 根据设计要求,列出真值表;
2. 由真值表转到卡诺图,进行化简;
3. 由卡诺图,列出所需要的逻辑表达式;
4. 由逻辑表达式,画出逻辑电路图。
5. 如果需要,还应该进行:电路验证、优化、完善等等。
教材中的缺陷,是把第一步和第二步的次序,给固定死了。学生只知道由真值表开始设计,却不知道 “真值表和卡诺图” 是等价的,由卡诺图开始入手设计,也是一样可以成功的。
假如,要求用两个开关控制一盏灯,比如,楼梯上方、下方,分别安装一个开关,用任一个开关,都可以打开、关闭楼道中的照明灯。这个要求就太简单了,只需用两个“单刀双掷” 机械开关,分别安装在楼梯的两头即可,电路图,做而论道就不画了。
假如,要求用三个开关控制一盏灯,各个开关,要分别安装在三个不同的地点。要求拨动任意一个开关,都可以打开、关闭同一盏灯。这个要求就复杂了,用简单的机械开关,是不容易办到了。如果再要求具有更多的(如四个、五个)开关,显然,此时就必须用电子器件来达到目的。设计这种电路,就必须使用《数字电子技术》中的知识。
下面,就看看做而论道设计 “四个开关控制一盏灯” 的过程吧。
设四个输入的自变量为 ABCD,输出的因变量为 Y。 题目要求是:自变量每改变一次状态,Y 就应该改变一次。 这种变化的需求,从真值表中,并不容易找到规律。但是,从卡诺图中,却很容易看出门道。因为,卡诺图中相邻的格,其自变量的值,正是变化了一个状态。 那么,四个变量的卡诺图,共有 16 个小格,先在第一个格中,填上一个 1,随后,在相邻的格中,依次填入 010101...,直至填满 16 个格子。 于是,就得到了完整的 Y 卡诺图,如下所示。
\CD Y 的卡诺图
AB\ 00 01 11 10
+---+---+---+---+
00 | 1 | 0 | 1 | 0 |
+---+---+---+---+
01 | 0 | 1 | 0 | 1 |
+---+---+---+---+
11 | 1 | 0 | 1 | 0 |
+---+---+---+---+
10 | 0 | 1 | 0 | 1 |
+---+---+---+---+
根据卡诺图,也可以直接就去编写逻辑表达式了。
但是,还有一个真值表,还没有用上。 那么就由卡诺图,列出真值表吧。如下:
Y 的真值表
-----+---------+-----
m | A B C D | Y
-----+---------+-----
0 | 0 0 0 0 | 1
1 | 0 0 0 1 | 0
2 | 0 0 1 0 | 0
3 | 0 0 1 1 | 1
4 | 0 1 0 0 | 0
5 | 0 1 0 1 | 1
6 | 0 1 1 0 | 1
7 | 0 1 1 1 | 0
8 | 1 0 0 0 | 0
9 | 1 0 0 1 | 1
10 | 1 0 1 0 | 1
11 | 1 0 1 1 | 0
12 | 1 1 0 0 | 1
13 | 1 1 0 1 | 0
14 | 1 1 1 0 | 0
15 | 1 1 1 1 | 1
-----+---------+-----
由真值表,可列出逻辑表达式: Y = m0 + m3 + m5 + m6 + m9 + m10 + m12 + m15。
非两次,再应用摩根定律,得: Y = / ( /m0 . /m3 . /m5 . /m6 . /m9 . /m10 . /m12 . /m15 )。
根据这个逻辑表达式,可以设计出逻辑电路图,如下所示。
该电路用 PROTEUS 软件仿真运行,其效果,完全符合题目要求。
在电路图中,由两片 74LS138 (三-八译码器芯片),组成了一个四-十六译码电路。 该电路的设计,可见做而论道编写的用3-8译码器设计4-16译码电路。
如果是要求用五个开关控制一盏灯呢? 如果能理解上述思路,也就不难了。
做而论道把五控一的卡诺图,在下面写出来,看看哪位网友能完成电路设计!
\DE Y 的卡诺图
ABC\ 00 01 11 10
+---+---+---+---+
000 | 1 | 0 | 1 | 0 |
+---+---+---+---+
001 | 0 | 1 | 0 | 1 |
+---+---+---+---+
011 | 1 | 0 | 1 | 0 |
+---+---+---+---+
010 | 0 | 1 | 0 | 1 |
+---+---+---+---+
110 | 1 | 0 | 1 | 0 |
+---+---+---+---+
111 | 0 | 1 | 0 | 1 |
+---+---+---+---+
101 | 1 | 0 | 1 | 0 |
+---+---+---+---+
100 | 0 | 1 | 0 | 1 |
+---+---+---+---+
--本文完--