2020-09-03

使用電晶體模擬邏輯門

邏輯門是邏輯電路的基本元件,能將輸入訊號進行邏輯運算
數碼訊號通過 0 及 1 (或 真 及 假) 進行邏輯運算
而電子線路通過高電壓及低電壓的訊號來實現邏輯運算

電晶體

電晶體有很多不同種類,在下使用只是眾電晶體其中一種
2N3904電晶體的正面
2N3904電晶體的正面

BUFFER Gate 電路圖
NPN雙極面接電晶體 平的一面是正面,並會寫著型號

BUFFER Gate 電路圖
BUFFER Gate 電路圖
2N3904 NPN雙極性電晶體 共有 3支引腳
引腳 位置(正面) 連接
集極 (Collector) 右 主電源
基極 (Base) 中 副電源,控制是否讓主電源通過
射極 (Emitter) 左 接地
(不是所有電晶體的引腳次序都相同,應用不同型號的電晶體時必須查閱對應的說明文件)

BUFFER Gate

BUFFER Gate 是一種輸入及輸出都是相同訊號的邏輯門
雖然沒有改變訊號,但可以用作延遲訊號、放大訊號用途
表達式
X
(不一定使用 X 或 Y)
Java 例子
System.out.println("false = " + false); // false = false
System.out.println("true = " + true); // true = true
電路圖
BUFFER Gate 電路圖
電路原型
BUFFER Gate 電路原型
結果
輸入 輸出 描述 模擬電路 真實電路
0 0 輸入低電壓
輸出低電壓
BUFFER Gate 模擬電路:輸入低電壓,輸出低電壓 BUFFER Gate 真實電路:輸入低電壓,輸出高電壓
1 1 輸入高電壓
輸出高電壓
BUFFER Gate 模擬電路:輸入高電壓,輸出高電壓 BUFFER Gate 真實電路:輸入高電壓,輸出高電壓

NOT Gate

NOT Gate 稱為 Inverter ,能將輸入訊號反轉後才輸出
表達式
X
(不一定使用 X 或 Y)
Java 例子
System.out.println("!false = " + !false); // !false = true
System.out.println("!true = " + !true); // !true = false
電路圖
NOT Gate 電路圖
電路原型
NOT Gate 電路原型
結果
輸入 輸出 描述 模擬電路 真實電路
0 1 輸入低電壓
輸出高電壓
NOT Gate 模擬電路:輸入低電壓,輸出高電壓 NOT Gate 真實電路:輸入低電壓,輸出高電壓
1 0 輸入高電壓
輸出低電壓
NOT Gate 模擬電路:輸入高電壓,輸出低電壓 NOT Gate 真實電路:輸入高電壓,輸出低電壓

AND Gate

所有輸入訊號都是高電壓訊號才成立;只有一個是低電壓訊號便失效
表達式
X·Y
(不一定使用 X 或 Y)
Java 例子
System.out.println("false & false = " + (false & false)); // false & false = false
System.out.println("true & false = " + (true & false)); // true & false = false
System.out.println("false & true = " + (false & true)); // false & true = false
System.out.println("true & true = " + (true & true)); // true & true = true
電路圖
AND Gate 電路圖
電路原型
AND Gate 電路原型
結果
輸入1 輸入2 輸出 描述 模擬電路 真實電路
0 0 0 輸入1低電壓
輸入2低電壓
輸出低電壓
AND Gate 模擬電路:輸入1低電壓,輸入2低電壓,輸出低電壓 AND Gate 真實電路:輸入1低電壓,輸入2低電壓,輸出低電壓
1 0 0 輸入1高電壓
輸入2低電壓
輸出低電壓
AND Gate 模擬電路:輸入1高電壓,輸入2低電壓,輸出低電壓 AND Gate 真實電路:輸入1高電壓,輸入2低電壓,輸出低電壓
0 1 0 輸入1低電壓
輸入2高電壓
輸出低電壓
AND Gate 模擬電路:輸入1低電壓,輸入2高電壓,輸出低電壓 AND Gate 真實電路:輸入1低電壓,輸入2高電壓,輸出低電壓
1 1 1 輸入1高電壓
輸入2高電壓
輸出高電壓
AND Gate 模擬電路:輸入1高電壓,輸入2高電壓,輸出高電壓 AND Gate 真實電路:輸入1高電壓,輸入2高電壓,輸出高電壓

NAND Gate

所有輸入訊號都是高電壓訊號才失效;只有一個是低電壓訊號便成立
表達式
X·Y
(不一定使用 X 或 Y)
Java 例子
System.out.println("!(false & false) = " + !(false & false)); // !(false & false) = true
System.out.println("!(true & false) = " + !(true & false)); // !(true & false) = true
System.out.println("!(false & true) = " + !(false & true)); // !(false & true) = true
System.out.println("!(true & true) = " + !(true & true)); // !(true & true) = false
電路圖
NAND Gate 電路圖
電路原型
NAND Gate 電路原型
結果
輸入1 輸入2 輸出 描述 模擬電路 真實電路
0 0 1 輸入1低電壓
輸入2低電壓
輸出高電壓
NAND Gate 模擬電路:輸入1低電壓,輸入2低電壓,輸出高電壓 NAND Gate 真實電路:輸入1低電壓,輸入2低電壓,輸出高電壓
1 0 1 輸入1高電壓
輸入2低電壓
輸出高電壓
NAND Gate 模擬電路:輸入1高電壓,輸入2低電壓,輸出高電壓 NAND Gate 真實電路:輸入1高電壓,輸入2低電壓,輸出高電壓
0 1 1 輸入1低電壓
輸入2高電壓
輸出高電壓
NAND Gate 模擬電路:輸入1低電壓,輸入2高電壓,輸出高電壓 NAND Gate 真實電路:輸入1低電壓,輸入2高電壓,輸出高電壓
1 1 0 輸入1高電壓
輸入2高電壓
輸出低電壓
NAND Gate 模擬電路:輸入1高電壓,輸入2高電壓,輸出低電壓 NAND Gate 真實電路:輸入1高電壓,輸入2高電壓,輸出低電壓

OR Gate

只有一個輸入訊號都是高電壓訊號便成立;所有是低電壓訊號才失效
表達式
X+Y
(不一定使用 X 或 Y)
Java 例子
System.out.println("false | false = " + (false | false)); // false | false = false
System.out.println("true | false = " + (true | false)); // true | false = true
System.out.println("false | true = " + (false | true)); // false | true = true
System.out.println("true | true = " + (true | true)); // true | true = true
電路圖
OR Gate 電路圖
電路原型
OR Gate 電路原型
結果
輸入1 輸入2 輸出 描述 模擬電路 真實電路
0 0 0 輸入1低電壓
輸入2低電壓
輸出低電壓
OR Gate 模擬電路:輸入1低電壓,輸入2低電壓,輸出低電壓 OR Gate 真實電路:輸入1低電壓,輸入2低電壓,輸出低電壓
1 0 1 輸入1高電壓
輸入2低電壓
輸出高電壓
OR Gate 模擬電路:輸入1高電壓,輸入2低電壓,輸出高電壓 OR Gate 真實電路:輸入1高電壓,輸入2低電壓,輸出高電壓
0 1 1 輸入1低電壓
輸入2高電壓
輸出高電壓
OR Gate 模擬電路:輸入1低電壓,輸入2高電壓,輸出高電壓 OR Gate 真實電路:輸入1低電壓,輸入2高電壓,輸出高電壓
1 1 1 輸入1高電壓
輸入2高電壓
輸出高電壓
OR Gate 模擬電路:輸入1高電壓,輸入2高電壓,輸出高電壓 OR Gate 真實電路:輸入1高電壓,輸入2高電壓,輸出高電壓

NOR Gate

只有一個輸入訊號都是高電壓訊號便失效;所有是低電壓訊號才成立
表達式
X+Y
(不一定使用 X 或 Y)
Java 例子
System.out.println("!(false | false) = " + !(false | false)); // !(false | false) = true
System.out.println("!(true | false) = " + !(true | false)); // !(true | false) = false
System.out.println("!(false | true) = " + !(false | true)); // !(false | true) = false
System.out.println("!(true | true) = " + !(true | true)); // !(true | true) = false
電路圖
NOR Gate 電路圖
電路原型
NOR Gate 電路原型
結果
輸入1 輸入2 輸出 描述 模擬電路 真實電路
0 0 1 輸入1低電壓
輸入2低電壓
輸出高電壓
NOR Gate 模擬電路:輸入1低電壓,輸入2低電壓,輸出高電壓 NOR Gate 真實電路:輸入1低電壓,輸入2低電壓,輸出高電壓
1 0 0 輸入1高電壓
輸入2低電壓
輸出低電壓
NOR Gate 模擬電路:輸入1高電壓,輸入2低電壓,輸出低電壓 NOR Gate 真實電路:輸入1高電壓,輸入2低電壓,輸出低電壓
0 1 0 輸入1低電壓
輸入2高電壓
輸出低電壓
NOR Gate 模擬電路:輸入1低電壓,輸入2高電壓,輸出低電壓 NOR Gate 真實電路:輸入1低電壓,輸入2高電壓,輸出低電壓
1 1 0 輸入1高電壓
輸入2高電壓
輸出低電壓
NOR Gate 模擬電路:輸入1高電壓,輸入2高電壓,輸出低電壓 NOR Gate 真實電路:輸入1高電壓,輸入2高電壓,輸出低電壓

XOR Gate

所有輸入訊號不是相同電壓訊號才成立;相同電壓訊號便會失效
表達式
X⊕Y
(不一定使用 X 或 Y)
Java 例子
System.out.println("false ^ false = " + (false ^ false)); // false ^ false = false
System.out.println("true ^ false = " + (true ^ false)); // true ^ false = true
System.out.println("false ^ true = " + (false ^ true)); // false ^ true = true
System.out.println("true ^ true = " + (true ^ true)); // true ^ true = false
電路圖
XOR Gate 電路圖
電路原型
XOR Gate 電路原型
結果
輸入1 輸入2 輸出 描述 模擬電路 真實電路
0 0 0 輸入1低電壓
輸入2低電壓
輸出低電壓
XOR Gate 模擬電路:輸入1低電壓,輸入2低電壓,輸出低電壓 XOR Gate 真實電路:輸入1低電壓,輸入2低電壓,輸出低電壓
1 0 1 輸入1高電壓
輸入2低電壓
輸出高電壓
XOR Gate 模擬電路:輸入1高電壓,輸入2低電壓,輸出高電壓 XOR Gate 真實電路:輸入1高電壓,輸入2低電壓,輸出高電壓
0 1 1 輸入1低電壓
輸入2高電壓
輸出高電壓
XOR Gate 模擬電路:輸入1低電壓,輸入2高電壓,輸出高電壓 XOR Gate 真實電路:輸入1低電壓,輸入2高電壓,輸出高電壓
1 1 0 輸入1高電壓
輸入2高電壓
輸出低電壓
XOR Gate 模擬電路:輸入1高電壓,輸入2高電壓,輸出低電壓 XOR Gate 真實電路:輸入1高電壓,輸入2高電壓,輸出低電壓

XNOR Gate

所有輸入訊號不是相同電壓訊號便失效;不同電壓訊號便才成立
表達式
X⊕Y
(不一定使用 X 或 Y)
Java 例子
System.out.println("!(false ^ false) = " + !(false ^ false)); // !(false ^ false) = true
System.out.println("!(true ^ false) = " + !(true ^ false)); // !(true ^ false) = false
System.out.println("!(false ^ true) = " + !(false ^ true)); // !(false ^ true) = false
System.out.println("!(true ^ true) = " + !(true ^ true)); // !(true ^ true) = true
電路圖
XNOR Gate 電路圖
電路原型
XNOR Gate 電路原型
結果
輸入1 輸入2 輸出 描述 模擬電路 真實電路
0 0 1 輸入1低電壓
輸入2低電壓
輸出高電壓
XNOR Gate 模擬電路:輸入1低電壓,輸入2低電壓,輸出高電壓 XNOR Gate 真實電路:輸入1低電壓,輸入2低電壓,輸出高電壓
1 0 0 輸入1高電壓
輸入2低電壓
輸出低電壓
XNOR Gate 模擬電路:輸入1高電壓,輸入2低電壓,輸出低電壓 XNOR Gate 真實電路:輸入1高電壓,輸入2低電壓,輸出低電壓
0 1 0 輸入1低電壓
輸入2高電壓
輸出低電壓
XNOR Gate 模擬電路:輸入1低電壓,輸入2高電壓,輸出低電壓 XNOR Gate 真實電路:輸入1低電壓,輸入2高電壓,輸出低電壓
1 1 1 輸入1高電壓
輸入2高電壓
輸出高電壓
XNOR Gate 模擬電路:輸入1高電壓,輸入2高電壓,輸出高電壓 XNOR Gate 真實電路:輸入1高電壓,輸入2高電壓,輸出高電壓

總結

在下編寫多年程式,經常在判別式上使用邏輯門多控制結果
但在真實的電子控制器下親手製作邏輯門的線路還是第一次
但在下製作線路時通常都使用 Tinkercad 的網上電路設計平台,但發現設計 XNOR 時結果與現實不同
再上網尋找其他網上的電路模擬器,最後找到 https://www.falstad.com/circuit/circuitjs.html
雖然不能以麵包板形式設計,但可以電路圖形式設計,而且作操作都相當簡單,亦可以匯出檔案保存

參考資料

沒有留言 :

張貼留言