摘要:針對顯示解碼器設計時,輸入、輸出變量難以確定的問題,提出了功能解析和變量關聯設計法。顯示解碼器輸出經驅動器使顯示器工作,輸出變量的多少和狀態取決於顯示器的種類,輸入變量的多少和狀態與輸出顯示結果有關。研究表明,顯示解碼器輸入變量的位數,n與輸出顯示結果的個數N之間滿足2n=N或2n-1關鍵詞:解碼器;驅動器;顯示器設計;輸入變量;輸出變量
顯示解碼器是數字電子技術組合邏輯電路中一個很重要的器件,在數字電子技術應用中不可缺少,特別是在信息技術數位化的今天,其應用越來越廣泛,但在組織開展科技創新和電子設計製作競賽活動中,學生在設計製作搶答器、記分器、記時器等電子產品時,總是對如何準確設計出符合功能要求的顯示解碼器胸中無數,本文對此問題進行了分析與研究。
1 顯示解碼器的功能和種類
實現解碼功能的邏輯電路就是解碼器。解碼是編碼的逆過程,數位化系統中,任何信息或數據,無論是文字、數字,還是符號或圖形,在監測、控制、傳輸時都要轉換為二進位代碼,這就是編碼;而在監測、控制、傳輸過程中或結束時,都要顯示相應的信息處理結果,這就必須將二進位代碼還原為對應的文字、數字、符號或圖形,這個過程就是解碼。在數字電子技術中,解碼器有兩種,即變量解碼器和顯示解碼器。
變量解碼器分為二進位和非二進位兩種,二進位解碼器就是輸入的二進位代碼的位數n與解碼還原輸出信息的個數N之間為N=2n,非二進位解碼器就是不能滿足此種關係的解碼器。
顯示解碼器其顯示的內容有文字、數字、符號等,其顯示用的材料有螢光、液晶、LED等,其顯示的形式有分段式、重疊式、點陣式等,其工作方式有共陰極和共陽極等等。
無論是變量解碼器還是顯示解碼器都有一些常用的定型產品,如二進位的有三線-八線解碼器,即輸入三位二進位代碼,輸出八個信息,滿足23=8。常用的集成晶片是74系列和54系列,最典型的晶片是74LS138,顯示解碼器最典型的是非二進位的一種十進位數解碼器,型號是74LS48。但是在實際應用和創新設計中,這些產品不足以滿足不同功能的要求,必須設計新的顯示解碼器,而在設計過程中問題最多的就是設計顯示解碼器時,輸入、輸出變量的確定。
2 顯示解碼器的設計步驟
顯示解碼器是屬於數字電子技術中的組合邏輯電路,所以在設計時,同樣應該遵循組合邏輯電路的設計方法,共有四個步驟:一是根據功能要求確定所設計電路輸入、輸出變量及其狀態的含義;二是根據功能的要求列出真值表;三是用卡諾圖化簡,得出輸入、輸出變量的邏輯表達式;四是根據邏輯表達式畫出邏輯圖。
從以往的教學實踐、技能競賽以及課餘活動中發現,在組合邏輯電路設計的四個步驟中,對於每種類型電路設計難點是不一樣的。譬如,在設計輸入、輸出變量符合二進位關係的組合邏輯電路時,最關鍵的是第二步根據功能要求列出真值表;而在設計具有非二進位特徵的組合邏輯電路時,重點是要把握住第三步具有約束項的卡諾圖化簡;當設計要求用指定元器件實現組合邏輯電路時,其設計難點是第四步,必須把化簡出的邏輯表達式按設計要求轉換為能用指定元器件實現的功能關係,再畫出邏輯圖;那麼在設計顯示解碼器時,最容易混淆和理不清的就是設計過程中的第一步。
3 顯示解碼器的設計技巧
按照組合邏輯電路設計的方法,針對顯示解碼器的特點,結合設計實踐中存在的突出問題,對顯示解碼器設計過程中的第一步進行了分析與研究,得出了如何準確地確定所設計電路輸入、輸出變量的技巧和方法。
首先要了解顯示解碼器在數字電路中的作用,確認其在顯示電路中的功能關係,如圖1所示,從圖中得知數字顯示電路是由顯示解碼器、顯示驅動器和結果顯示器幾部分組成。顯示解碼器就是將數字電路中經過監測、控制、傳輸後的二進位代碼,進行解碼還原成相應的文字、數字、符號等信息,並以不同的形式顯示出來;顯示驅動器是確保結果顯示器正常工作的電路,根據結果顯示器的材料、功率、電路的不同,採用限流電阻驅動、達林頓驅動、繼電器驅動等多種方式;顯示器顯示的內容、方式等種類很多,最常見的定型產品是七段數碼顯示管。所以設計顯示解碼器時要兼顧解碼器、驅動器、顯示器三部分考慮。
3.1 根據顯示結果確定輸入變量
顯示解碼器設計的重點、難點都是確定輸入、輸出變量及其個數。通過實踐得知顯示解碼器輸入變量要根據顯示解碼器輸出結果的個數來確定。也就是說,無論顯示解碼器選用何種形式(文字、數字、符號)、何種方式(共陰極還是共陽極)的顯示器,也不論其顯示什麼樣的內容,只要它顯示結果的個數相同(這兩者都是要顯示4個數字),那麼所設計解碼器輸入變量就一樣,即輸出結果N=4,4=22=2n,所以輸入變量為n=2。
如果要設計一個顯示字母「E,L,H,F」的解碼器,顯然要輸出顯示的結果有4個,即N=4=22=2n,那麼輸入變量也是n=2。
如果輸出顯示結果與輸入之間不滿足N=2n,如有一個電視節目「星光大道」每一關都能聽到主持人說倒數五個數出結果,如果在觀眾齊聲說5、4、3、2、1的同時,加上電子顯示豈不更加科學、直觀,因為輸出結果有五個,N=5≠2n,在這個關係中輸出變量N與輸入變量n之間不滿足N=2n,則具有非二進位的特點,按照組合邏輯電路輸入、輸出的對應關係,這個顯示解碼器輸出結果N與輸入變量n之間應該滿足2n-1 從上述分析得出,顯示解碼器輸入變量的多少,取決於輸出結果的多少,即輸出結果的個數N與輸入變量的位數n之間滿足N=2n或2n-1
3.2 根據顯示形式確定輸出變量
設計顯示解碼器在確定了輸入變量後,就要根據功能要求設計輸出變量。究竟需要幾個輸出變量呢? 經過反覆研究得出其輸出變量是由所選擇顯示器的種類來確定。比如要設計一個顯示數字5,4,3,2,1,一個顯示字母E,L,H,F的顯示解碼器,雖然兩個顯示結果的內容和個數都不相同,但是如果兩種電路都選用七段數碼管,那麼兩種解碼電路輸出變量的個數都是7個。如果顯示字母E,L,H,F的電路,選擇五筆劃的顯示器,那麼它的輸出變量就只有5個。
可見顯示解碼器輸出變量的個數,只取決於所選顯示器的形式,至於是文字、符號、數碼,還是分段、重疊、點陣顯示器就是設計者要確定的,如果選分段顯示E,L,H,F,那麼解碼器輸出變量的個數就是顯示器的分段數,而與輸出顯示的內容,以及顯示結果的多少無關,如圖2,圖3所示。
3.3 根據顯示方式確定變量狀態
確定了設計顯示解碼器的輸入、輸出變量,要準確地設計出真值表,還必須明確每個變量的狀態和解碼還原的對應關係,這決定著設計的全過程。
對於輸入變量可以把n位二進位代碼組合值按遞增或遞減的順序與輸出結果N一一對應設計,如表1,表2所示。
如果輸入符合二進位的特點,只要將所有代碼組合與輸出確定出對應關係即可,若不符合二進位對應關係,就要將多餘的輸入組合進行約束,確保功能的實現。如:設計顯示字母E,L,H,F的解碼器,其輸入的兩位二進位代碼有四種組合,分別是00,01,10,11,讓其與輸出顯示結果E,L,H,F一一順序(或逆序)對應解碼還原即可,如表1所示。而設計顯示數字5,4,3,2,1,輸入是三位二進位代碼,其組合分別是000,001,010,011,100,101,110,111,而輸出結果顯示只用五個組合,究竟選用哪五個組合,則由設計者自行確定,是選用前五個還是後五個,或選用二進位代碼組合值與十進位數值相一致的五個組合,如表2所示。
對於輸出變量是高電平還是低電平有效,主要取決於採用的顯示器是共陰極還是共陽極。如果輸出選用共陰極顯示器,輸出就是高電平有效;如果設計輸出低電平有效,就應該選用共陽極顯示器。
由此可見,對於輸入、輸出變量的狀態和解碼還原的對應關係,完全由設計者根據習慣和顯示器的工作方式而定,這就為設計者提供了靈活、自主、創新設計和製作的平臺及條件。
4 顯示解碼器的設計案例
4.1 設計一個用五筆劃顯示器顯示字母E,L,H,F的顯示解碼器
這是一個指定了顯示形式(五筆劃如圖2所示),並未限定其工作方式是共陰極還是共陽極的設計任務。按照設計步驟及上述分析,首先確定該設計電路有兩個輸入變量A,B,輸入四個組合與輸出四個顯示字母相對應,五個輸出變量,選共陽極顯示器,故輸出低電平有效。其次按功能要求列出相應的真值表,如表1所示。然後利用卡諾圖化簡得出表達式。從真值表中可知,這個設計電路輸入採用的是正邏輯,輸出是負邏輯,因此卡諾圖化簡得到的輸出是反變量,如圖4所示,其餘輸出化簡相同。最後根據表達式畫出邏輯圖,這與其他設計相同,就不再贅述。
4.2 設計一個用共陰極七段數碼管顯示數字5,4,3,2,1的顯示解碼器
在這個設計中不僅限定了顯示器的形式是七段數碼顯示管(如圖3所示),而且顯示器的工作方式是共陰極,即輸出是高電平有效。同時,輸入輸出不滿足2n=N,輸入組合就有一些為多餘,需要選擇和設定,這給設計者提供了極大的靈活性和創新性。
依據本文所述設計顯示解碼器的技巧及其設定,這個顯示解碼器有三個輸入A,B,C,七個輸出Ya,Yb,Yc,Yd,Ye,Yf,Yg,其真值表如表2所示,表中多餘項輸出不顯示,或把它們作為功能擴展控制端(讀者自行研究)。隨後卡諾圖化簡要注意約束項的處理,畫邏輯圖也不再贅述。
特別強調,當顯示解碼器設計完成,通過仿真確認能夠實現其功能要求,與顯示器實際連接時,一定要根據顯示器的種類、功率等技術指標選擇合適的驅動器作為橋梁和紐帶,來確保顯示器正常工作。
5 結語
顯示解碼器在數字電子技術領域應用越來越廣泛,準確並靈活掌握其設計方法,為綜合運用EDA技術、單片機技術、嵌入式技術,開發新的電子產品奠定了紮實的理論基礎,為培養提升創新設計能力提供了有效的參考和鋪墊。
推薦閱讀
; P1MDOUT = 0x01; P0SKIP = 0x0C; XBR0 = 0x0B; XBR1 = 0x40;} 要注意的是,首先要使能優先權交叉解碼器(Enable Crossbar)。1)為使埠P0、P1和P2
發表於 2020-07-09
開發板數碼管模塊電路圖如下:由於74ls138解碼器的特點,即只能是一個數碼管的陰極電平為0,顯然不能使多個數碼管同時工作,若想要得到多個數碼管同時工作的效果,只能採用動態掃描顯示的方式。所謂動態掃描顯示,就是利用發光管的餘輝和人眼視覺暫留作用,使人感覺好像多個數碼管在同時工作。程序中digdisplay函數利用for循環和switch語句,不斷掃描8個數碼管,完成位選工作,並對P0口賦值實現段選功能。從而在8個數碼管依次輸出1~8,並利用延時函數控制輸出間隔時間,實現動態輸出的功能。細節:(1)在每位數碼管顯示之後設置一定時間的延時。(2)P0口置0(P0=0x00),完成「消影」目的。#include<reg52.h
發表於 2020-04-25
1.為什麼是動態的?1.採用了發光管的餘暉和人眼的視覺暫留效應,使人看到好像各位數碼管都在同時顯示2.特點:1.同樣是利用了138解碼器對高低電平進行操作2. 動態顯示將所有的數碼管的段選線並聯,採用循環的方式對每一位進行操作3.關於138解碼器輸出高低電頻是有著一定規律的如果是110(LSA,LSB,LSC),則為L3為低電平;(反向二進位)同時,要注意看真值表(X為任意值,L為低電平,H為高電平)4.關於怎樣實現動態的具體操作1.使用數組來時數碼管實現輸出數字2.使用for循環來時函數進行循環操作3.使用switch case函數實現不同欄位的選擇4.同時使用delay()函數和最後對P0值刷新進行消影處理#include
發表於 2020-04-04
51單片機38解碼器實現動態數碼管控制代碼如下:#include <REGX51.H>void delay(void) //延時函數{unsigned char i, j;for (i=0;i<10;i++){for(j=0;j<10;j++);} }void main(void){//解碼後的選位數組 unsigned char yimaweima[8]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};//段碼數組unsigned char duanma[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
發表於 2020-04-03
在我們設計單片機電路的時候,單片機的 IO 口數量是有限的,有時並滿足不了我們的設計需求,比如我們的 STC89C52 一共有32個 IO 口,但是我們為了控制更多的器件,就要使用一些外圍的數字晶片,這種數字晶片由簡單的輸入邏輯來控制輸出邏輯,比如 74HC138 這個三八解碼器,圖3-15是 74HC138 在我們原理圖上的一個應用。圖3-15 74HC138 應用原理圖從這個名字來分析,三八解碼器,就是把3種輸入狀態翻譯成8種輸出狀態。從圖3-15所能看出來的,74HC138 有1~6一共是6個輸入引腳,但是其中4、5、6這三個引腳是使能引腳。使能引腳和我們前邊講 74HC245 的 OE 引腳是一樣的,這三個引腳如果不符合
發表於 2020-01-30
指令寄存器用來保存當前正在執行的一個指令。 當執行一條指令時,先把它內存取出,然後再傳送到指令寄存器。 指令分為操作碼和操作數,由二進位數字組成。當執行任何給定的指令,必須對操作碼進行解碼,以便確定所要求的操作。指令解碼器就是負責這項工作的,指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。操作碼一經解碼後,即可向操作控制器發出具體操作的特定信號。
發表於 2017-12-21