2019/06/06
!轉載請注明出處
1.設計任務目的與要求
1.1 展示器件
10路彩燈分別用10個發光二極管L0、L1…..L9模擬,發光二極管L0、L1…..L9從左到右排列。
1.2 要求顯示三種不同的花型
1) 10路彩燈按照L0、L1…..L9的順序依次點亮至全亮,再按照L9、L8…..L0的順序依次熄滅至全滅。
2) 10路彩燈按照L0L1亮、L1 L2亮、L2L3亮、…L8L9亮、L9L0亮的順序輪流點亮。
3) 10路彩燈按照L0L9、L1L8、L2L7、L3L6、L4L5的順序依次點亮,然后按相反的順序依次滅掉。
1.3 控制電路設有啟動、切換、復位按鈕
按下啟動按鈕,進入花型(1)並反復循環運行。按下切換按鈕,進入花型(2)並反復循環運行;再次按下切換按鈕,進入花型(3)並反復循環運行;再次按下切換按鈕,則三個花型順序運行並反復循環;若再次按下切換按鈕,則又進入花型(1)並反復循環;不斷按下切換按鈕,則按上面順序進行花型切換。任何時候按下復位按鈕,全部燈滅。
2.模塊及其原理介紹
2.1 計數電路單元
該電路單元用74192計數器來實現。74192是雙時鍾十進制計數器。本電路用74192來實現0000—1001的十進制計數,同時用另外一個74192的來對第一片芯片進位進行計數,第二個芯片計數到2時同時對兩個計數器進行清0操作。其電路圖如下圖所示
2.2 編碼電路單元
編碼電路全局如圖:
2.2.1 花型1編碼電路
由於我最后燈泡的輸出電路前面接了一個反相器,所以這里用0來表示燈泡亮。
該序列對應了20種狀態,這個序列的狀態如表所示:
A2 |
D1C1B1A1 |
L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 |
0 |
0000 |
0 1 1 1 1 1 1 1 1 1 |
0 |
0001 |
0 0 1 1 1 1 1 1 1 1 |
0 |
0010 |
0 0 0 1 1 1 1 1 1 1 |
0 |
0011 |
0 0 0 0 1 1 1 1 1 1 |
0 |
0100 |
0 0 0 0 0 1 1 1 1 1 |
0 |
0101 |
0 0 0 0 0 0 1 1 1 1 |
0 |
0110 |
0 0 0 0 0 0 0 1 1 1 |
0 |
0111 |
0 0 0 0 0 0 0 0 1 1 |
0 |
1000 |
0 0 0 0 0 0 0 0 0 1 |
0 |
1001 |
0 0 0 0 0 0 0 0 0 0 |
1 |
0000 |
0 0 0 0 0 0 0 0 0 1 |
1 |
0001 |
0 0 0 0 0 0 0 0 1 1 |
1 |
0010 |
0 0 0 0 0 0 0 1 1 1 |
1 |
0011 |
0 0 0 0 0 0 1 1 1 1 |
1 |
0100 |
0 0 0 0 0 1 1 1 1 1 |
1 |
0101 |
0 0 0 0 1 1 1 1 1 1 |
1 |
0110 |
0 0 0 1 1 1 1 1 1 1 |
1 |
0111 |
0 0 1 1 1 1 1 1 1 1 |
1 |
1000 |
0 1 1 1 1 1 1 1 1 1 |
1 |
1001 |
1 1 1 1 1 1 1 1 1 1 |
根據表格可知,編號數較低的燈泡在編號數較高的燈泡亮時也必須亮,故可用與門將較低燈泡的電路與較高燈泡的輸出電路相關聯起來。
為了實現三個花型的順序輸出,該自然序列顯示電路還是要經過7442譯碼器和74153多路選擇器。7442譯碼器的作用在於將4位BCD碼的10組代碼翻譯成10個與十進制數字符號對應的輸出信號,圖中輸入端ABCD為8421碼,輸出端O0N—O9N分別代表十進制數字0—9。74153是個雙4路選擇器,其功能是選擇輸出四個編碼單元電路的值。本電路中用了5個74153來對應10個燈泡。74153的器件上用1C0和2C0來連接對應的輸出端O0N—O9N。當74153器件的A和B為00時,順序輸出自然序列的值。最后經過指示燈和數碼管顯示出來。
與門實現電路截圖:
1)前10種狀態:
2)后10種狀態
2.2.2 花型2編碼電路
為了使燈泡按照順序01,12,23,34,45,56,67,78,89,90的輸出,可以使用與門同時關聯譯碼器對應的兩種狀態,比如L0要在計數器為0和9的時候亮。
序列的狀態如表:
DCBA |
L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 |
0000 |
0 0 1 1 1 1 1 1 1 1 |
0001 |
1 0 0 1 1 1 1 1 1 1 |
0010 |
1 1 0 0 1 1 1 1 1 1 |
0011 |
1 1 1 0 0 1 1 1 1 1 |
0100 |
1 1 1 1 0 0 1 1 1 1 |
0101 |
1 1 1 1 1 0 0 1 1 1 |
0110 |
1 1 1 1 1 1 0 0 1 1 |
0111 |
1 1 1 1 1 1 1 0 0 1 |
1000 |
1 1 1 1 1 1 1 1 0 0 |
1001 |
0 1 1 1 1 1 1 1 1 0 |
電路截圖:
2.2.3 花型3編碼電路
為了使按照L0L9、L1L8、L2L7、L3L6、L4L5的順序依次點亮,然后按相反的順序依次滅掉,要使用與門相關聯。
序列的狀態如表:
DCBA |
L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 |
0000 |
0 1 1 1 1 1 1 1 1 0 |
0001 |
0 0 1 1 1 1 1 1 0 0 |
0010 |
0 0 0 1 1 1 1 0 0 0 |
0011 |
0 0 0 0 1 1 0 0 0 0 |
0100 |
0 0 0 0 0 0 0 0 0 0 |
0101 |
0 0 0 0 1 1 0 0 0 0 |
0110 |
0 0 0 1 1 1 1 0 0 0 |
0111 |
0 0 1 1 1 1 1 1 0 0 |
1000 |
0 1 1 1 1 1 1 1 1 0 |
1001 |
1 1 1 1 1 1 1 1 1 1 |
電路與門實現截圖:
2.3 花型控制端輸出電路
主要由加法器和一些基本門電路組成。AB從00-11計數,分別對應三個花型和三個花型循環播放,再結合前面計數電路單元中的第二個芯片A端輸出0/1以及循環播放時控制花型的計數器芯片,可以畫出對應的真值表:
QA(計數電路) QB QA (U3) QB QA (U63) |
A B (多路選擇器) |
0 0 0 0 0 |
0 0 |
1 0 0 0 0 |
1 1 |
d 0 1 0 0 |
0 1 |
d 1 0 0 0 |
1 0 |
0 1 1 0 1 |
0 0 |
1 1 1 0 1 |
1 1 |
0 1 1 1 0 |
0 1 |
1 1 1 1 1 |
1 0 |
其他 |
d d |
可以畫出對應的卡諾圖:(這里為了便於區分將輸入三個值設為D0 D1 D2,輸出仍為A B)
根據上圖中AB的式子,在電路中用基本門連接到多路選擇器的AB端。
2.4 彩燈顯示電路
通過連接對應多路選擇器的輸出端口,再加一個非門,即可得到燈泡的亮滅情況。
2.5 幾個按鈕的功能實現
2.5.1 啟動按鈕
通過控制計數電路單元兩片計數器的清零來控制啟動。
2.5.2 切換按鈕
切換開關一次或點擊空格,就相當於輸出一次電平,可使計數器進行計數操作。
當到達三個花型循環切換之后,再按一次,三種花型自動循環播放,通過另外一片74192來控制。
當U3計數到3時,U63進1,當記錄狀態的芯片計數到20時且U63為1時,U63進2,當記錄狀態計數到10時且U63為2或3時,U63計數。這幾個通過基本邏輯門電路來實現。
2.5.3 復位按鈕
每個燈泡前面連接着一個與門,只有當復位按鈕連接高電平一端時燈泡才能正常顯示,當復位按鈕連接低電平一端時燈泡全部都熄滅。
3.設計方案
3.1 設計思路
根據老師給出的設計要求,彩燈循環控制器主要是完成10個燈泡的亮滅。由此可想到用74192計數器從0-9計數,可以分別對應每一種花型不同時刻下對應燈泡的亮滅情況。其中花型1較為特殊,需要計數兩輪才能完成花型的展示。由於74192芯片的輸出對應的是8421編碼,可以用7442譯碼器將計數值輸出。由於一共有三種花型,可以通過74153多路選擇器來控制花型的切換。
3.2 設計框圖及原理
彩燈循環控制器的結構框圖:
該彩燈循環控制器的原理是:由方波信號發生器產生穩定的高頻脈沖信號,作為計時基准。用兩個計數器來實現電路計數,第一個花型需要20個狀態來展示彩燈,故需要兩片計數器,而另外兩種花型只需要10個狀態來實現花型,不考慮第二片計數器的位數。計數器的實時狀態同時輸出到數碼管。接下來由譯碼器輸出對應狀態,通過不同的編碼電路(主要由與門實現)接到對應的多路選擇器。多路選擇器的控制端由花型控制電路來控制,花型控制電路主要由兩個計數器的低兩位實現0-4計數和0-3計數,再結合前面計數電路的第二個芯片的輸出值進行邏輯電路的設計完成選擇器控制端相對應的值。由於74153有兩個輸出值,故本次一共需要5個多路選擇器輸出到對應的彩燈顯示電路。
3.3 流程圖
3.4 總電路圖
總電路如圖所示: