邏輯門是邏輯電路的基本元件,能將輸入訊號進行邏輯運算
數碼訊號通過 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 例子
1 2 | 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 例子
1 2 | 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 例子
1 2 3 4 | 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 例子
1 2 3 4 | 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 例子
1 2 3 4 | 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 例子
1 2 3 4 | 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 例子
1 2 3 4 | 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 例子
1 2 3 4 | 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
雖然不能以麵包板形式設計,但可以電路圖形式設計,而且作操作都相當簡單,亦可以匯出檔案保存
沒有留言 :
張貼留言