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 或 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 或 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
雖然不能以麵包板形式設計,但可以電路圖形式設計,而且作操作都相當簡單,亦可以匯出檔案保存

參考資料

沒有留言 :

張貼留言