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