1. 程式人生 > >數位電路基礎那些事1——組合邏輯:從譯碼器到編碼器

數位電路基礎那些事1——組合邏輯:從譯碼器到編碼器

宣告:本文部分內容選自《數位電子技術基礎系統方法》與 華中科技大學的《電子技術基礎 數字部分》,筆者將其兩者精華加上自身的理解整理成一篇文章,使知識點易於理解!

           如有疏漏歡迎指出!

譯碼器

1. 譯碼器定義

譯碼器是一種用以檢測輸入位(碼)的特定組合是否存在,並以特定的輸出電平來指示這種特定碼的存在的數位電路。——《數位電子技術基礎系統方法》

譯碼器的功能是將具有特定含義的二進位制碼轉換成對應的輸出訊號, 具有譯碼功能的邏輯電路稱為譯碼器。——《電子技術基礎 數字部分》華中科技大學

洋羽的解釋:我們把譯碼器看做一個轉換器,他的任務就是把一個我們不想要的的訊號格式轉換成另外一種我們想要的訊號格式(兩種訊號表示的資訊是一樣的,變得只有格式),從“譯”字下手,就是將難得化成簡單的(此處的簡單是指對於我們當前需求的簡單)。做一個可能不太恰當的比喻:就是將我們難以利用的數字碼(但對於機器與電路來說傳輸較為簡單)來轉換成我們易於利用的數字碼(對於機器和電路來說傳輸較為麻煩)。

 

 

2. 舉例說明

  • 理論說明例子1:BCD碼——>十進位制碼

 

 

 輸入4位8421BCD碼,轉換成10個十進位制數中的一個數所對應的輸出(10選1譯碼器)

 

 

例項晶片:74HC138

我們知道3位2進位制碼可以表示8個十進位制數,A0,A1,A2對應的就是三位二進位制數,而輸出的Y0~Y7就相當於8個十進位制數,當哪個輸出為0,就相當於哪個十進位制數

  • 理論說明例子2:BCD碼—7段譯碼器(舉例說明)

 

首先我們得知道數碼管的原理:

  數碼管位號圖

 

 

 

 

數碼管的本質就是LED,一個數碼管裡面有8個LED,分別對應為a,b,c,d,e,f,g,p

當我們需要表示什麼數字時,我們就點亮相應的LED,如我們需要表示9這個數字,我們直接點亮a,f,g,b,c,d這6盞LED即可表示為9

 

 

 

 廠家為了節省開發人員的時間,讓我們不用總是去思考需要怎麼點亮數碼管,就設計出顯示專用的譯碼器(把易於程式處理與訊號傳輸的訊號轉換為我們所需要,利於我們開發的編碼)所以開發出這款晶片,我們只要輸入對應的BCD碼,就可以轉換成該如何點亮LED的資訊碼。

 

 

 

3. 實操:DATASHEET解讀時間: TI CD54HC4511

晶片引腳圖

 

邏輯閘表示電路

 

 

真值表

三大擴充套件功能:

 

 

功能3對應DATASHEET真值表中中倒數第二行英文

譯碼器有時候可以用作複用器(詳情看下一篇從複用器到解複用器)

 


 

 

 

編碼器

1. 編碼器的定義

編碼器接收若干輸入中有一個有效電平,每個輸入表示一個數,例如十進位制數或者八進位制數,並且把這個數轉換成程式碼輸出,如BCD碼或二進位制碼。  ——《數位電子技術基礎系統方法》

數字系統中儲存或處理的資訊,常常是用二進位制碼錶示的。用一個二進位制程式碼表示特定含義的資訊稱為編碼。具有編碼功能的邏輯電路稱為編碼器。  ——《電子技術基礎數字部分》華中科技大學

洋羽的理解:把我們熟悉的符號或者數字轉換成一種程式碼形式的電路我們稱為編碼器(即譯碼器的相反作用)

 

2. 編碼器的分類:普通編碼器和優先編碼器

(1)普通編碼器

普通編碼器任何時刻只允許一個輸入訊號有效,否則將產生錯誤輸出。

舉例:

 

 

 

(2)優先編碼器

普通編碼器的升級版:按照規定的優先順序設計電路

在實際應用中, 經常會遇到兩個以上的輸入同時為有效訊號的情況。因此,必須根據輕重緩急,事先規定好這些輸入編碼的先後次序,即優先級別。

優先編碼器允許同時在幾個輸入端有輸入訊號,編碼器按輸入訊號排定的優先順序,只對同時輸入的幾個訊號中優先權最高的一個進行編碼

舉例:

 

 

 

 結合生活應用:

                            

 

 

 

 

 


 

小彩蛋:數字鍵盤功能演示(證明我們使用的鍵盤不是簡單的、只用一個優先編碼器就做出來的數字鍵盤)

以筆者的膝上型電腦來作為例項測試:

 

 

 

 

 

 

 

 

 

 

 

 

測試步驟1:測試同時按下123鍵時系統的輸出

123 213 312 312 312 213 321 132 132 231 321 312 132  321 321 321  321 132 132 312 321 3211 321 312 321 321 321 312 312 123 123 312 321 231 321 123 132 123 132 321 132 321 123 312 123 321

 可以得出結論:人手指誤差不可避免,所以每次的輸出不一定一樣,但是不會出現缺失一個數字的情況,即按鍵每次按下都能得到響應鍵盤開發人員設定的掃描頻率很快

測試步驟2:測試同一時間按下12鍵

1222222222222222222222222222222222222222222222222222222

211111111111111111111111111111111111111111111111111111111111111

1222222222222222222222222222222222222222222222222222222

1222222222222222222222222222222222222222222222222222222

211111111111111111111111111111111111111111111111111111111111111

211111111111111111111111111111111111111111111111111111111111111

1222222222222222222222222222222222222222222222222222222

211111111111111111111111111111111111111111111111111111111111111

211111111111111111111111111111111111111111111111111111111111111

211111111111111111111111111111111111111111111111111111111111111

211111111111111111111111111111111111111111111111111111111111111

211111111111111111111111111111111111111111111111111111111111111

1222222222222222222222222222222222222222222222222222222

1222222222222222222222222222222222222222222222222222222

1222222222222222222222222222222222222222222222222222222

實驗結論:按下去由於人手指的誤差,不可能同時按下,所以最後只能有一個訊號是有效的。所以我們可以看到最後只有一個訊號是持續輸出的

 

測試步驟3:按下1之後,在不鬆開1的情況下按下並長按2(測試5次)

111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222

1111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222

12222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

1111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

11111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

測試步驟4:按下2之後,在不鬆開2的情況下按下1並長按1(測試5次)

22222222222222111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

2111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

22222222222222222222222222222222222221111111111111111111111111111111111111111111111111111111111111111111111111111111

測試步驟5:長按1不鬆開,輕輕按一次2並保持1不鬆開(測試5次)

111111111111111111111111111111111111111111111111111112

1111111111111111111111112

111111111111111111111111111111111111111111111111111111111111111111111111111111112

11111111111111111111111111111111111111111111112

111111111111111111111111111111112

 

根據測試步驟3、4我們可以得出結論:只要鍵盤檢測到新的輸入,則舊的輸入雖然沒有變,但是內部已經將舊的作廢並優先輸出新的輸入

根據測試步驟5,我們進一步證實結論:一旦數字鍵盤檢測到新的輸入,舊輸入優先順序下降,轉為新的輸入,雖然新的輸入訊號已經停止輸入,但是舊的輸入訊號仍為低優先順序狀態,系統等待新的輸入來作為高優先順序訊號

 

 

 

&n