[答案&解析]華工數電實驗:簡易交通燈控制電路的設計
題目:
答案:
用3個JK觸發器實現的3位二進位制計數器電路:
模擬結果:
只需要答案的同學們可以離開了o(* ̄▽ ̄*)o
—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —
解析:
題目要求用3個JK觸發器和6個與非門實現電路,
而提示中將電路分為了兩部分:1.將CLK時鐘訊號轉換為3位二進位制資料的計數器
2.通過邏輯函式用3位二進位制資料控制電路
其中的第2點在前面幾章中我們就已經會將二進位制資料通過真值表寫出邏輯函式、化簡,便可得控制電路,這裡不做贅述。
而第1點將CLK時鐘訊號轉換為3位二進位制資料需用到第五章新學的觸發器。
如何將CLK時鐘訊號通過觸發器轉換為二進位制資料?
觸發器原理:
首先我們知道觸發器的功能是在CLK和輸入訊號的作用下能實現輸出訊號高低電平的轉換
對於SR主從觸發器,當CLK=1時,S=R=0時保持原輸出,S=1,R=0時置1,S=0,R=1時置0
而JK觸發器比其他觸發器特殊在J=K=1時為原輸出的反轉(Q*=Q‘)
JK觸發器的狀態方程:Q*=JQ’+K‘Q
二進位制計數器原理:
二進位制計數器實際就為加法器,只是在觸發器中變成每產生一個CLK=1的上升沿時,讓二進位制資料加1
Q1是最低位,每一個CLK=1到來時就應該反轉一次,這正對應前面所說的 “ J=K=1時為原輸出的反轉 ” 。
所以輸出Q1的觸發器J、K都接Vcc即可。
Q2是第二位,當Q1是0時,下個CLK=1時Q1變1,無進位,Q2不變;當Q1是1時,下個CLK時Q1產生進位,Q2=原Q2+1
再考慮原Q2為0或1的情況,有以下真值表:
Q1 | Q2 | Q2* |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Q2*為下一個CLK=1時的Q2的值
上表為二進位制簡單的進位關係,轉化為邏輯方程得:Q2*=Q1Q2’+Q1‘Q2
對應JK觸發器的狀態方程可知輸出Q2的觸發器只要滿足輸入J=Q1,K’=Q1‘(即K=Q1)即可實現該真值表
所以第二個JK觸發器的輸入端J、K連線第一個JK觸發器的輸出
Q3同理,用二進位制進位寫出真值表:
Q1 | Q2 | Q3 | Q3* |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
Q3*為下一個CLK=1時的Q3的值
轉化為邏輯方程並化簡得:Q3*=(Q1Q2)'Q3+(Q1Q2)Q3'
對應狀態方程可知第三個JK觸發器的輸入應為J=K=Q1Q2
由題目要求限制,需用兩個與非門(其中一個當非門使用)實現。
這樣,這題的難點就被攻克了(●ˇ∀ˇ●)
(注意:Quartus中的JK觸發器名為jkee,為上升沿觸發(與課本示例不同))