設計過程
計數器的狀態轉換一般為順序轉換,電路也很成熟,例如S1→S2、S4→S5等。在實現模M的計數器時,一般也是利用連續狀態進行順序轉換。但如要實現復雜狀態機,則需要充分了解計數器的特性,利用置零端和置數端,完成非順序狀態轉換,例如S1→S0、S4→S6等,從而實現復雜狀態機。下面討論對計數器74LS161的功能進行擴展,實現非順序狀態轉換(圖2)。計數器狀態與符號的對照見表1.
表1 ?計數器狀態與符號的對照表
圖2中,74LS161(0)片和74LS161(1)片的初始狀態均設為0,兩片在CP脈沖到來時同時開始計數,當(1)片循環至狀態S4時,會給(0)片一個置位信號,當第5個CP脈沖到來時,(0)片被置位狀態S7.之后,一直到第9個CP脈沖到來前,由于(1)片Q2端始終為1,故(0)片始終保持狀態S7.當第9個CP脈沖到來時,(1)片和(0)片的狀態分別為S9和S8,此時,(1)片得到(0)片Q3端的置位信號,當下一個CP脈沖到來時,(1)片和(0)片的狀態分別為S4和S9.在第10個CP脈沖作用下,(1)片和(0)片的狀態分別為S4和S9.在第11個CP脈沖作用下,(1)片和(0)片的狀態分別為S4和S7,如此往復。這樣,兩片74LS161(1)片和(0)片并行輸出狀態變化為01000111→01010111→01100111→01110111→10000111→10011000→01001001→01000111,7種狀態非順序的轉換。
圖2 ?非順序狀態轉換電路
如實現非順序更多狀態的轉換,就需要使用更多MSI芯片,圖3為使用三個74LS161芯片實現的復雜狀態機。在圖3中,三個芯片的初始狀態均設為0,并且在CP脈沖到來時同時開始計數,當第7個CP脈沖到來后,實現有效狀態循環000001001001→000001001010→000001001011→000001001100→000001001101→000001001110→000001001111→000001000000→000001010001→000001100010→000001110011→000010000100→000110010101→001010100110→001110110111→010011000111→000011011000→000001001001,為17種非順序狀態的轉換。可見,實現越復雜的狀態機,轉換的非順序狀態越多,電路越復雜。
圖3 ?復雜狀態機電路圖
可能出現的問題
在實際的電路中,由于使用多個集成電路,可能會出現置0不可靠的情況,這是由多個觸發器的負載不同,置0時間也不完全相同引起的,此時需要在以上電路設計中做一些改進。另外,MSI與負載門電路的連接等問題,可以通過增加上拉電阻、接地電阻及電平轉換等措施解決。
評論
查看更多