步驟1:AND Gates
我們要看的第一種門是AND門。雙輸入AND門的電路符號是有趣的子彈形狀的東西。標記為A和B的端子是輸入,標記為F的端子是輸出。
AND門通過以下規則確定其輸出:如果兩個輸入均為1,則輸出為1;如果兩個輸入中的一個或兩個均為0,則輸出為0(請注意,0和1分別是“低”和“高”電壓)。 AND操作通常稱為布爾乘法,因為結果就好像您“乘以”兩個輸入,并且也寫為 F = AB ,類似于乘法。圖下方的表稱為真值表。這種表列出了所有可能的輸入組合,并顯示了它們相應的輸出。這個特殊的真值表用于AND操作;注意,只有當兩個輸入都是1時,輸出才為1,正如您所期望的那樣。
大多數邏輯門可以很容易地用晶體管制作。在上面的電路圖中,您可以看到使用兩個晶體管構建的簡單AND門。是的,我意識到我的藝術技能從未離開過二年級。從本質上講,這就像將兩個開關串聯起來。除非兩個開關都閉合,否則電流不會流到輸出。使用晶體管作為開關,可以完全用電子方式控制該電路。
現在看一下123D電路(單擊此處)。您應該看到三個帶有萬用表的面包板。每個都是不同邏輯門的電路,每個萬用表測量輸出端的電壓。第一個電路是我們要在這里查看的電路。按下“模擬”按鈕,您會注意到一個很小的電壓讀數,約為幾毫伏。這是正常的,并且小到可以忽略不計。朝向電路底部的兩個開關就像輸入一樣。嘗試先撥動其中一個開關,然后再撥動另一個。只需一個開關,您就會注意到電壓稍微增加,但同樣可以忽略不計。只有當兩個開關都打開時,電壓才會跳到任何可觀的水平。這是AND邏輯門的基本工作。
步驟2:OR門
另一種類型的邏輯門是OR門。電路符號是箭頭形狀,輸入和輸出的標記方式與“與”門相同。
讓我們看看OR門的真值圖。如您所見,只要任何一個輸入為1,輸出將為1,并且只有當所有輸入都為0時,結果才為0. OR運算也稱為布爾加法,并相應地寫入,如 F = A + B 。請注意,只有“高”和“低”電壓,而沒有“高”電壓。因此1 + 1仍然等于1而不是2.請記住,所有這些操作都類似于數學運算,但不是嚴格相同的事情。
可以看到OR門相當于在輸入和輸出之間并聯連接兩個開關的電路。只要一個或兩個開關都閉合,電流就會流動。
現在,讓我們看一下123D電路中的第二個試驗板。玩一下你會注意到晶體管按照提供的電路圖并聯連接。撥動任何一個開關后,您應該會看到電壓立即躍升至7伏。僅當兩個開關都關閉時,輸出才會像您期望的那樣下降。
步驟3:非門與組合
“非”門為比較簡單。它只有一個輸入,它所做的就是獲取輸入的值并將其取反。它有一個非常簡單的真值表來說明這一點。輸出為 F = A?(讀取A-bar)。條形圖表示反轉,因此A?只是 A 反轉。
現在讓我們回到123D電路,將注意力轉移到最后的實驗板上。打開時,輸出將為低電平,關閉輸出時輸出將為高電平。現在讓我們嘗試一些不同的東西。取下AND門輸出電阻和面包板接地之間的連接,然后將電阻連接到開關正上方的NOT門輸入端(確保NOT門的開關關閉)。注意這是什么?現在,“與”門的輸出是“非”門的輸入,而“與”門將使“與”門的輸出反相。您可以使用OR和NOT門,甚至AND和OR門執行類似的操作。基于晶體管的邏輯門可以像這樣幾乎無限地串在一起。隨意玩一下,使用123D電路的最好之處在于,您可以進行實驗而無需花費成本,也不會損壞實際零件。
在下一節中,我們將采用進一步組合的想法,討論基于所需真值表設計特定邏輯電路,并結束使用目前所討論的所有內容的詳細示例。
第4步:邏輯電路綜合
邏輯門可以用許多不同的方式串聯起來。每個組合為您提供不同的布爾“函數”。在這里,我們概述了兩種設計邏輯電路的簡單方法,該邏輯電路產生了我們想要得到的確切真值表,在本例中是上面顯示的表。
產品總和(SOP)
在這種方法中,我們專注于真值表的行,這些行需要產生1的輸出。現在,讓我們看第一行。請注意,如果我們將0個輸入(在此行中的所有輸入)取反并將它們相乘(這將通過3個輸入的AND門完成),則當且僅當條件滿足時,我們將得到一個為1的函數。滿足第一行:僅當 A = B = C = 0時,A?B?C?為1。該產品將成為我們“產品總和”中的條款之一。讓我們看下一行 F = 1,這是第三行。當它們相乘時,我們需要將哪些輸入反轉以確保值為1? A 和 C 為零,因此必須取反。結果為A?BC?,這將是我們總和的第二項。以同樣的方式,第七行和第八行給我們ABC?和 ABC 作為第三和第四項。請注意,當我們將所有條款加在一起并設置 F = A?B?C? + A?BC? + ABC? + ABC 即可。這些術語中的每一項只有一組特定的輸入才為1。通過將它們加在一起,當其中任何一項為1時, F 將為1;如果它們都不為1,則為0(上圖)。因此, F 符合我們的真值表。現在我們只需要構建函數 F 描述的邏輯電路。您可以在上面找到電路圖。
求和產品(POS)
第二種設計邏輯電路的方法與第一種方法非常相似。已經討論過您可能已經猜到了,當使用乘積法時,我們不將乘積相加,而是乘以和。
我們而不是看結果為1的真值表的行,而是看結果為0的行。讓我們看第二行。這些輸入將產生多少總和?如果將C取反,然后將其加到A和B,我們將得到0 + 0 + 0 = 0。因此,此行的術語是 A + B + C?,僅在第二行的情況下等于0。轉到第四行,很明顯,我們需要反轉 B 和 C ,為我們提供 A + B? + C?。繼續進行第六行,我們得到了四個術語: A + B + C?, A + B? + C?,A? + B + C ,A? + B + C?。注意如果將它們相乘會發生什么: F =(A + B + C?)(A + B? + C?)(A? + B + C)(A? + B + C?)。只要我們的總和中的任何一個等于0, F 將等于0.只有當它們全部等于1時, F 等于1.這完全符合真值表。上圖中給出了該電路的一種可能的實現方式。
簡化
很明顯,真值表的兩個電路非常復雜,比他們需要的更多。邏輯表達式可以簡化很多,大致相同,如果它們純粹是數學表達式,它們可以被簡化。
與基本代數一樣,一些屬性適用:
AB = BA
A(BC) = (AB)C = ABC
A + B + C = A + (B + C) = (A + B) + C
A(B + C) = AB + AC
由于我們正在處理布爾代數,因此我們還有一些其他屬性,我相信它們是相當不錯的直觀:
AA = A
AA? = 0
A + A = A
A + A? = 1
一旦完成這些簡化就是小菜一碟。這是一個簡單的示例。
說 F = A?B?D + A?BD + BCD + ABC 即可。如果直接實施,該電路將相當復雜,需要七個門來完成。讓我們簡化一下。
請注意,A?D可以在第一學期和第二學期中計算出來,給我們 F = A?D(B? + B) + BCD + ABC
自B? + B 總是等于1,它掉出來,剩下 F = A?D + BCD + ABC
下一步更直觀一點。 BCD 僅在B,C和D均為1時等于1。但是在這種情況下,A?D等于1或 ABC 等于1(檢查一下)。此外,如果任何一項為1,則結果為1,因此 BCD 項完全多余,可以刪除。這樣我們得到的最終結果為 F = A?D + ABC 。這是設計電路要容易得多的表達,并且只需四個組件即可完成,這是一個巨大的改進!如果您感到好奇,可以為初始表達式和最終表達式編寫真值表,并查看它們是否相同。
接下來,讓我們把目前為止學到的所有內容都用在一個真實世界的大例子中!
第5步:最后的例子
作為此Instructable的宏大結尾,我們將嘗試將前面步驟中的所有內容組合成一個巨大的示例。如果您掌握了目前為止涵蓋的所有內容,那么它應該相對容易一些,并且如果仍然有一個或兩個概念對您而言還不十分清楚,那么您應該可以澄清這個示例。
您的任務是設計控制牙膏旋蓋機開機機制的電路。電路應根據以下規則確定機器是否通電:
除非安全已脫離,否則機器不會通電。
除非已將牙膏蓋裝入機器,否則機器無法開機。
如果發生錯誤或故障,機器無法啟動。
有一個手動超控功能,可在不考慮操作蓋和警告的情況下打開機器。
我們有四個輸入: S 在安全性打開時為1,在安全性關閉時為0。加載所有大寫字母后,輸入 C 變為1。如果出現任何錯誤或故障,輸入 E 變為1.輸入 O 由手動超控開關控制,如果打開則為1。僅當滿足給定條件時,輸出 P 才打開(1)。我們需要做的第一件事是制作一個真值表,讓我們看看如何做。
真相表
這部分可能是在鉛筆和紙上更容易,所以去抓一些自己。現在繪制您在所有真實圖中看到的表格,并標記輸入S,C,O和W以及輸出P.下一步是記下每個可能的輸入組合;因為我們有4個輸入,所以我們應該得到總共2 ^ 4 = 16個組合。一旦完成,我們必須弄清楚每組的輸出。如果我們暫時考慮一下,我們可以大幅減少所需的工作量。從規則中注意,如果安全裝置仍處于打開狀態,則機器將永遠不會開機。這表示 S = 1, P = 0的任何地方。就像完成了一半的輸出一樣。接下來讓我們看一下手動覆蓋。對于其余的八個組合,只要啟用了覆蓋,無論其他兩個輸入如何,輸出都將為1。那應該再減少四個,再減半!現在讓我們系統地看看其余四個。請注意,真相表中的順序可能會有所不同,具體取決于輸入的順序。在我的桌子上,下一個空白是 S C O E 等于0 1 0 1.由于 E = 1,輸出將為0(規則3)。接下來,當 SCOE 等于0 1 0 0時,我們發現 P = 1是因為安全性已關閉,瓶蓋已裝入,并且未發生符合所有規則的錯誤。繼續 S C O E 等于0 0 0 1.我們從輸入中看到尚未加載上限(規則2)并且已檢測到某些錯誤或故障(規則3)。由于尚未啟用手動優先功能,因此機器不應啟動并且 P = 0。最后,最后一個空白是所有輸入均為0的地方。顯然沒有再次加載大寫字母,所以 P = 0。
現在,您的真值表應該已經完成,您可以對照上面提供的內容進行檢查。同樣,您的訂單可能會有所不同,但相同的輸入應該產生相同的輸出。下一步是提出一個滿足真值表的函數。
在這里,我們可以選擇使用POS還是SOP。查看輸出列,我們看到很多很多0,但只有幾個1。使用SOP方法似乎更簡單,因為這樣我們的函數中要處理的術語就會減少。
我們有五行輸出為1。它們是:(按 SCOW的順序) 0111、0110、0100、0011和0010。比較容易發現我們的產品總和是 P = S?COW + S?COW? + S?CO?W? + S? C?OW + S?C?OW? 》
這是嘗試構建的相當復雜的電路,所以讓我們看看如何簡化。顯然我們可以拿出S?,如果我們在可能的情況下拿出 CO 和C?O,我們會得到 P = S? [ CO ( W + W?)+ C?O( W + W?)+ CO?W?]
記住添加到其反向的輸入始終等于1(檢查上一頁的標識),我們可以從頭開始( W + W?),然后留下 P = S?( CO + C?O + CO?W?)。最后,如果我們拔出 O 并劃出最終的 C + C?術語,我們的結果將為 P = S?O + S? CO?W?。這可能是我們在數學上所能達到的最大范圍,但是仍然可以進行進一步的簡化。兩個術語中都有 O ,一個是倒置的,一個是非。這通常表明我們可以嘗試進一步簡化。讓我們看看是否可以。顯然 O 是1或0。如果它是1,并且S?也是1,則左項將是1,使 P 1。如果 O 為0且S?CW? = 1,則再次 P = 1.但請注意,如果S?, C ,W?均等于1,然后 P = 1,無論 O 。在這種情況下,如果 O = 1則第一項將等于1(S? O = 1),如果它等于0則第二項term等于1(S?CO?W? = 1)。因此,我們發現如果S?, C 和W?為1則 O 無關緊要,可以從那個詞。實際上,這意味著如果安全開關已關閉,安全帽已裝上且沒有任何警告有效,則無論手動超控功能是否打開,機器都可以開機(查看真值表,您會發現這是真正)。現在,我們的最終結果是 P = S?O + S?CW?,更實際的不是它。上面顯示了此功能的一種可能的實現方式。請注意,與我們開始使用的原始SOP相比,它使用的組件很少。
那里有!在幾分鐘的時間內,我們解決了一個問題,找到了解決方案,對其進行了優化并實現了結果。這本Instructable幾乎無法觸及數字電子技術的奇跡,但希望您對它有了基本的了解和贊賞。然后,這就是Instructable的結論,我希望它能啟發您設計和制作自己的東西。
責任編輯:wv
-
電路
+關注
關注
172文章
5959瀏覽量
172698 -
邏輯門
+關注
關注
1文章
142瀏覽量
24102
發布評論請先 登錄
相關推薦
評論