一、譯碼器的分類
譯碼器指的是具有譯碼功能的邏輯電路,譯碼是編碼的逆過程,它能將二進(jìn)制代碼翻譯成代表某一特定含義的信號(即電路的某種狀態(tài)),以表示其原來的含義。譯碼器可以分為:變量譯碼和顯示譯碼兩類。
譯碼是編碼的反過程,它是將代碼的組合譯成一個(gè)特定的輸出信號。
分類:
(1)二進(jìn)制譯碼器,又稱為n-2n線譯碼器
將n種輸入的組合譯成2n種電路狀態(tài)。也叫n---2n線譯碼器。
譯碼器的輸入:一組二進(jìn)制代碼
譯碼器的輸出:一組高低電平信號
(2)二-十進(jìn)制譯碼器
直接輸出二進(jìn)制數(shù),人們不太習(xí)慣,可采用二-十進(jìn)制譯碼器來解決。
這種譯碼器有四個(gè)輸入端,十個(gè)輸出端。
(3)顯示譯碼器
在數(shù)字測量儀表和各種數(shù)字系統(tǒng)中,都需要將數(shù)字量直觀顯示出來,一方面供人們直接讀取測量和運(yùn)算結(jié)果;另一方面用以監(jiān)視數(shù)字系統(tǒng)的工作情況。
數(shù)字顯示電路組成方塊圖如下所示。
二、譯碼器的應(yīng)用
三種基本譯碼器
在譯碼器基礎(chǔ)中,解釋了完全譯碼器(n-2n)的基本工作原理,即:當(dāng)使能端有效時(shí):
Yi = mi 或者
/Yi = !mi (注:這里的!表示非號)
除了完全譯碼器之外,還有4-10線譯碼器,七段顯示譯碼器,相對也比較簡單,這里簡單進(jìn)行介紹:
- 4-10譯碼器
由真值表可以看出,當(dāng)A3A2A1A0的取值為[0000~1001]時(shí),輸出有效,其它情況均為無效,其對應(yīng)的邏輯器件圖如下圖所示:
七段顯示譯碼器
七段顯示譯碼器一般用于液晶或LED顯示屏,顯示0~9數(shù)字(十進(jìn)制)或0~F數(shù)字(十六進(jìn)制)。所謂七段,表示的是0~9或0~F這些數(shù)字可用七根數(shù)碼管顯示,對應(yīng)的圖為:
對應(yīng)的真值表如下圖所示:
譯碼器的應(yīng)用
譯碼器主要用于地址譯碼、指令譯碼以及邏輯表達(dá)式表示。下面重點(diǎn)解釋如何內(nèi)存尋址以及如何表達(dá)邏輯表達(dá)式。
內(nèi)存尋址
在組合電路、時(shí)序電路在計(jì)算機(jī)課程中的地位一文中,說明了可執(zhí)行程序的執(zhí)行流程,其中的程序計(jì)數(shù)器(Program Counter,簡稱PC)中保存了CPU將要執(zhí)行的指令,那如何在內(nèi)存中定位到那條指令所在的內(nèi)存地址呢?(重點(diǎn)理解:這是硬件實(shí)現(xiàn),我們要用組合電路尋址)。
下圖描述了早期8086的內(nèi)存尋址方式。(計(jì)算機(jī)中用三類總線:數(shù)據(jù)總線、地址總線、控制總線進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)總線用于傳輸數(shù)據(jù),地址總線用于傳輸?shù)刂?,控制總線用于傳輸控制信號。三類總線用于在IO、內(nèi)存、CPU以及外設(shè)之間進(jìn)行數(shù)據(jù)傳輸;每一塊內(nèi)存中有rd、wr、adder、cs和data幾個(gè)輸入輸出,其中的rd表示讀內(nèi)存,wr表示寫內(nèi)存,adder下文中解釋,cs(chip select)表示片選,data用于內(nèi)存和總線之間數(shù)據(jù)的傳輸)
在8086機(jī)器中,內(nèi)存只有4KB(受限于當(dāng)時(shí)的生產(chǎn)工藝,4KB內(nèi)存由4塊1KB的內(nèi)存塊組成),用12位二進(jìn)制串表示地址。對于每一塊1KB的內(nèi)存,其尋址范圍為[00 0000 0000~11 1111 1111],為了對4塊內(nèi)存都進(jìn)行尋址,一般思路為:共享低10位(A9A8A7A6A5A4A3A2A1A0)的內(nèi)存地址,高兩位用A11A10來進(jìn)行控制,使其滿足:
- 當(dāng)A11A10 = 00時(shí)選擇第一塊內(nèi)存(從上向下看),此時(shí)A11A10A9A8A7A6A5A4A3A2A1A0表述的范圍為[0000 0000 0000 ~ 0011 1111 1111]
- 當(dāng)A11A10 = 01時(shí)選擇第二塊內(nèi)存(從上向下看),此時(shí)A11A10A9A8A7A6A5A4A3A2A1A0表述的范圍為[0100 0000 0000 ~ 0111 1111 1111]
- 當(dāng)A10A10 = 01時(shí)選擇第三塊內(nèi)存(從上向下看),此時(shí)A11A10A9A8A7A6A5A4A3A2A1A0表述的范圍為[1000 0000 0000 ~ 1011 1111 1111]
- 當(dāng)A11A10 = 11時(shí)選擇第四塊內(nèi)存(從上向下看),此時(shí)A11A10A9A8A7A6A5A4A3A2A1A0表述的范圍為[1100 0000 0000 ~ 1111 1111 1111]
顯然,上面的地址真是我們需要表述的地址,剩下的就是如何用高兩位A11A10來控制選擇那一塊1K的內(nèi)存塊。很自然的,2-4譯碼器正好能完成,因此,2-4譯碼器的輸出分別接到每一塊1k內(nèi)存塊上的片選信號,即可實(shí)現(xiàn)上述內(nèi)存尋址功能。(adder用于合成A11A10和A9A8A7A6A5A4A3A2A1A0,使其構(gòu)成一個(gè)12位地址)
譯碼器表達(dá)邏輯表達(dá)式
在譯碼器中,如果使能端有效,其對應(yīng)的輸入輸出之間的關(guān)系為:
Yi = mi 或者
/Yi = !mi (注:這里的!表示非號)
比較敏感的童鞋很容易發(fā)現(xiàn),譯碼器和最小項(xiàng)存在關(guān)系。對于任何的邏輯表達(dá)式,都可以用最小項(xiàng)表示,如F(A,B,C)=m2+m3+m4+m5+m7。
根據(jù)/Yi = !mi,可以進(jìn)一步將F(A,B,C)表示成:
F(A,B,C) = ?。?!m2 * !m3 * !m4 * !m5* !m7) (注:摩根定律)
F(A,B,C) = ?。?Y2*/Y3*/Y4*/Y5*/Y7)
此時(shí),將3-8譯碼器的輸出/Y2,/Y3,/Y4,/Y5和/Y7接入一個(gè)與非門,即可表示上面的邏輯表示式 F(A,B,C),其對應(yīng)的電路圖如下圖所示:
在上例的基礎(chǔ)上,如何用74LS138譯碼器實(shí)現(xiàn)一個(gè)全減器呢?在設(shè)計(jì)之前,需要先明確減法器的功能,其真值如下圖所示:
全減器中,Ci-1表示來自低位的借位,Ci表示向高位的借位,F(xiàn)i表示本位的計(jì)算值。
根據(jù)真值表,很容易得到:
Fi = m1 + m2 + m4 + m7
Ci = m1 + m2 + m3 + m7
根據(jù)74LS138中的關(guān)系:/Yi = !mi,得到:
Fi = !/Y1 + !/Y2 + !/Y4 + !/Y7 = !(/Y1 * /Y2 * /Y4 * /Y7 ) (注:摩根定律)
Ci = !/Y1 + !/Y2 + !/Y3 + !/Y7 = ?。?Y1 * /Y2 * /Y3 * /Y7 ) (注:摩根定律)
上述的Fi和Ci已經(jīng)映射到74LS138的輸出端口,將輸出端口接入與非門,即可完成全減器,其對應(yīng)的電路圖如下圖所示:
-
譯碼器
+關(guān)注
關(guān)注
4文章
310瀏覽量
50314
發(fā)布評論請先 登錄
相關(guān)推薦
評論