與移位寄存器和其他組合電路一樣,在最常使用的數字電子產品中還有另一個重要元素,它就是計數器。計數器不僅用于計數,還用于測量頻率和時間,增加內存地址。
計數器是一種數字設備,計數器的輸出包括基于時鐘脈沖應用的預定義狀態,可用于計算脈沖數。通常情況下,計數器由觸發器裝置組成,觸發器裝置可以是同步計數器或異步計數器。在同步計數器中,只給所有觸發器一個時鐘 i/p,而在異步計數器中,觸發器的o/p是來自附近觸發器的時鐘信號。
按照計時方式的劃分,計數器可以分為不同的類型,主要包括:
- 異步計數器
- 同步計數器
- 異步十進制計數器
- 同步十進制計數器
- 異步上下計數器
- 同步上下計數器
為便于大家更好的理解每種計數器的工作原理,下面依次來介紹下。
異步計數器
2位異步計數器的示意圖如下所示。其中,外部時鐘僅連接到FF0(第一個觸發器)的時鐘 i/p,所以這個FF在每個時鐘脈沖的下降沿改變狀態,但是FF1只有在被FF0的Q o/p下降沿激活時才會改變。由于通過 FF的整體傳播延遲,i/p時鐘脈沖的變化和FF0的Q o/p的變化永遠不會恰好同時發生。因此,FF不能同時激活,從而產生異步操作。
請注意,為方便起見,上圖中 Q0、Q1和CLK的變化顯示為并發的,即使這是一個異步計數器。實際上,Q0、Q1和CLK的變化有一個小的延遲b/n。
通常情況下,所有CLEAR i/ps都連接在一起,因此在開始計數之前,單個脈沖可以清除所有FF。輸入FF0的時鐘脈沖在傳播延遲后通過新計數器產生波紋,例如水面上的波紋,因此又稱為波紋計數器。
兩位紋波計數器的電路圖包括四種不同的狀態,每種狀態由一個計數值組成。同樣,具有n個FF的計數器可以具有2N個狀態。計數器中的狀態數稱為其模數。因此,兩位計數器是mod-4計數器。
異步進制計數器
在前面的計數器中有2N個狀態。但是,狀態小于 2N的計數器也是可能的,它們的設計目的是在其系列中包含狀態數,這些被稱為縮短序列,它是通過在經歷其所有狀態之前驅動計數器循環來完成的。具有縮短序列的計數器的常見模數是10。在其系列中具有10個狀態的計數器稱為十進制計數器。實現的十進制計數器電路如下所示。
當計數器計數到10時,所有FF將被清除。請注意,只有Q1和Q3都用于解碼10的計數,這稱為部分解碼。與此同時,0-9的其他狀態之一同時具有高Q1和Q3。下面給出了十進制計數器表的系列。
異步上下計數器
在特定應用中,計數器必須能夠向上和向下計數。下面的電路是一個三位向上和向下計數器,根據控制信號狀態向上或向下計數。當UP i/p為1且DOWN i/p為0時,FF0和FF1之間的NAND門將觸發器 (FF0) 的非反相 o/p (Q) 導通到時鐘i/p觸發器(FF1)。同樣,觸發器1的非反相o/p將通過另一個NAND門進入觸發器2的時鐘 i/p。因此計數器將向上計數。
一旦控制 i/p (UP) 為0且DOWN為1,則觸發器 0 (FF0) 和觸發器 1 (FF) 的反相 o/ps分別被導通到FF1和FF2的時鐘i/ps。如果FF最初更改為0,則在應用i/p脈沖時,計數器將通過下圖所示序列。請注意,由于 NAND門引入了額外的傳播延遲,異步上下計數器比加計數器/減計數器慢。
同步計數器
在這種類型的計數器中,所有FF的CLK i/ps連接在一起并由i/p脈沖激活。因此,所有FF都會瞬間改變狀態。下面的電路圖是一個三位同步計數器。FF0的輸入J和K連接到高電平。FF1的J &K i/ps連接到FF0的 o/p,FF2的輸入J & K連接到與門的o/p由FF0和FF1的 o/ps饋電。當FF0和FF1的輸出都為高時。由于AND門,第四個CLK脈沖的上升沿將導致FF2改變其狀態。
下面給出了三位計數器表的序列,這些計數器的主要優點是沒有增加時間延遲,因為所有FF都是并行激活的。因此,該同步計數器的最大工作頻率將大大高于等效異步計數器。
同步十進制計數器
同步計數器從0到9計數,類似于異步計數器,然后再次循環為零。這個過程是通過將1010狀態驅動回0000狀態來完成的。這被稱為截斷序列,可以通過下面的電路設計。
從上圖的系列表中,可以觀察到:
Q0連接在每個CLK脈沖上
每次Q0=1 & Q3=0時,Q1在下一個時鐘脈沖上改變
每次Q0=Q1=1時,Q2在下一個時鐘脈沖上改變。
每次當 Q0=1、Q1=1和 Q2=1(計數 7)或Q0=1和Q3=1(計數 9)時,Q3都會在下一個CLK脈沖上改變。
上述特性可以用于與門或或門,其邏輯圖如上圖所示。
同步上下計數器
下面給出了一個三位同步上下計數器、表格形式和序列。這種計數器有一個類似于異步升降計數器的升降控制i/p,用于通過一定的系列來控制計數器的方向。
系列顯示:
向上和向下系列的每個CLK脈沖上的Q0關系
當Q0=1為up系列時,Q1的狀態在下一個CLK脈沖上改變。
當Q0=0為down系列時,Q1的狀態在下一個 CLK脈沖上改變。
當Q0=Q1=1用于向上系列時,Q2的狀態會在下一個CLK脈沖上發生變化。
當Q0=Q1=0用于下降系列時,Q2的狀態會在下一個CLK脈沖上發生變化。
與門、或門和非門采用上述特性,其邏輯圖如上圖所示。
計數器的應用
計數器的應用主要涉及數字時鐘和多路復用,計數器的最佳示例是下面討論的并行到串行數據轉換邏輯。
在并行線上同時執行的一組位稱為并行數據。在時間序列中的單行上執行的一組位稱為串行數據。并行到串行的數據轉換通常是通過使用計數器來提供二進制數據系列,選擇MUX的i/ps,如下面的電路中所示。
在上述電路中,8模計數器由Q o/ps組成,它們連接到數據,選擇8位MUX的i/ps 。第一個8位并行數據組應用于MUX的輸入。當計數器從0到7進行二進制序列時,每個位都以D0開頭,被串行選擇并通過MUX 傳遞到o/p線。經過8個CLK脈沖后,數據字節已變為串行格式并通過傳輸線發送出去。然后,計數器重新處理 0,并在類似的過程中再次串行更改另一個并行字節。
異步與同步計數器的比較
下面簡單比較一下同步和異步計數器的操作和特點,二者的主要區別如下:
總結
眾所周知,微控制器的應用需要對外部事件進行計數,例如精確的內部時間延遲生成和脈沖序列的頻率。這些事件經常用于數字系統和計算機。這兩個事件都可以通過軟件技術執行,但是用于計數的軟件循環不會給出確切的結果,更重要的功能沒有完成,而這些都可以通過微控制器中用作中斷的定時器和計數器來糾正。
其中,計數器是專門設計的同步時序電路,計數器的狀態等于觸發器在電路中保持的計數。計數器計算或記下事件發生的次數。另外,計數器是關鍵的硬件組件,被定義為“用于計算脈沖數的數字電路”,因為計數器是通過將觸發器分組并對其施加單個時鐘信號來設計的。
簡而言之,計數器就是那些具有一組存儲元件(如觸發器)來保存計數的電子器件。
-
計數器
+關注
關注
32文章
2256瀏覽量
94715 -
觸發器
+關注
關注
14文章
2000瀏覽量
61225 -
異步計數器
+關注
關注
0文章
10瀏覽量
8068
發布評論請先 登錄
相關推薦
評論