邏輯門是邏輯電路的基本元件,能將輸入訊號進行邏輯運算
數碼訊號通過 0 及 1 (或 真 及 假) 進行邏輯運算
而電子線路通過高電壓及低電壓的訊號來實現邏輯運算
數碼訊號通過 0 及 1 (或 真 及 假) 進行邏輯運算
而電子線路通過高電壓及低電壓的訊號來實現邏輯運算
電晶體
電晶體有很多不同種類,在下使用只是眾電晶體其中一種
2N3904電晶體的正面
2N3904電晶體 屬於 NPN雙極面接電晶體 (Bipolar Junction Transistor (BJT))
NPN雙極面接電晶體 平的一面是正面,並會寫著型號
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
電路圖
電路原型
結果
輸入 | 輸出 | 描述 | 模擬電路 | 真實電路 |
---|---|---|---|---|
0 | 0 | 輸入低電壓 輸出低電壓 |
||
1 | 1 | 輸入高電壓 輸出高電壓 |
NOT Gate
NOT Gate 稱為 Inverter ,能將輸入訊號反轉後才輸出
表達式
X
(不一定使用 X 或 Y)
Java 例子
System.out.println("!false = " + !false); // !false = true System.out.println("!true = " + !true); // !true = false
電路圖
電路原型
結果
輸入 | 輸出 | 描述 | 模擬電路 | 真實電路 |
---|---|---|---|---|
0 | 1 | 輸入低電壓 輸出高電壓 |
||
1 | 0 | 輸入高電壓 輸出低電壓 |
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
電路圖
電路原型
結果
輸入1 | 輸入2 | 輸出 | 描述 | 模擬電路 | 真實電路 |
---|---|---|---|---|---|
0 | 0 | 0 | 輸入1低電壓 輸入2低電壓 輸出低電壓 |
||
1 | 0 | 0 | 輸入1高電壓 輸入2低電壓 輸出低電壓 |
||
0 | 1 | 0 | 輸入1低電壓 輸入2高電壓 輸出低電壓 |
||
1 | 1 | 1 | 輸入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
電路圖
電路原型
結果
輸入1 | 輸入2 | 輸出 | 描述 | 模擬電路 | 真實電路 |
---|---|---|---|---|---|
0 | 0 | 1 | 輸入1低電壓 輸入2低電壓 輸出高電壓 |
||
1 | 0 | 1 | 輸入1高電壓 輸入2低電壓 輸出高電壓 |
||
0 | 1 | 1 | 輸入1低電壓 輸入2高電壓 輸出高電壓 |
||
1 | 1 | 0 | 輸入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
電路圖
電路原型
結果
輸入1 | 輸入2 | 輸出 | 描述 | 模擬電路 | 真實電路 |
---|---|---|---|---|---|
0 | 0 | 0 | 輸入1低電壓 輸入2低電壓 輸出低電壓 |
||
1 | 0 | 1 | 輸入1高電壓 輸入2低電壓 輸出高電壓 |
||
0 | 1 | 1 | 輸入1低電壓 輸入2高電壓 輸出高電壓 |
||
1 | 1 | 1 | 輸入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
電路圖
電路原型
結果
輸入1 | 輸入2 | 輸出 | 描述 | 模擬電路 | 真實電路 |
---|---|---|---|---|---|
0 | 0 | 1 | 輸入1低電壓 輸入2低電壓 輸出高電壓 |
||
1 | 0 | 0 | 輸入1高電壓 輸入2低電壓 輸出低電壓 |
||
0 | 1 | 0 | 輸入1低電壓 輸入2高電壓 輸出低電壓 |
||
1 | 1 | 0 | 輸入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
電路圖
電路原型
結果
輸入1 | 輸入2 | 輸出 | 描述 | 模擬電路 | 真實電路 |
---|---|---|---|---|---|
0 | 0 | 0 | 輸入1低電壓 輸入2低電壓 輸出低電壓 |
||
1 | 0 | 1 | 輸入1高電壓 輸入2低電壓 輸出高電壓 |
||
0 | 1 | 1 | 輸入1低電壓 輸入2高電壓 輸出高電壓 |
||
1 | 1 | 0 | 輸入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
電路圖
電路原型
結果
輸入1 | 輸入2 | 輸出 | 描述 | 模擬電路 | 真實電路 |
---|---|---|---|---|---|
0 | 0 | 1 | 輸入1低電壓 輸入2低電壓 輸出高電壓 |
||
1 | 0 | 0 | 輸入1高電壓 輸入2低電壓 輸出低電壓 |
||
0 | 1 | 0 | 輸入1低電壓 輸入2高電壓 輸出低電壓 |
||
1 | 1 | 1 | 輸入1高電壓 輸入2高電壓 輸出高電壓 |
總結
在下編寫多年程式,經常在判別式上使用邏輯門多控制結果
但在真實的電子控制器下親手製作邏輯門的線路還是第一次
但在真實的電子控制器下親手製作邏輯門的線路還是第一次
但在下製作線路時通常都使用 Tinkercad 的網上電路設計平台,但發現設計 XNOR 時結果與現實不同
再上網尋找其他網上的電路模擬器,最後找到 https://www.falstad.com/circuit/circuitjs.html
雖然不能以麵包板形式設計,但可以電路圖形式設計,而且作操作都相當簡單,亦可以匯出檔案保存
再上網尋找其他網上的電路模擬器,最後找到 https://www.falstad.com/circuit/circuitjs.html
雖然不能以麵包板形式設計,但可以電路圖形式設計,而且作操作都相當簡單,亦可以匯出檔案保存
沒有留言 :
張貼留言