簡易數字鍾設計
一、摘要
信息時代,時間觀念深入人心,所以掌握數字鍾的設計具有一定的時代意義,並且使用Multisim進行分立元件設計數字鍾,可以大大提升個人數字電路的素養。
設計思路是從上至下,先進行數字鍾整體框架的設計,考慮各個子芯片的預留端口,再逐個設計各個子電路模塊。最終完成了時鍾顯示,調時,鬧鍾,定點報時以及萬年歷的功能。並且總的控制點預留了新功能的接入口,這樣子就可以十分方便的進行新功能的加入。
目錄
二、前期准備
1、數電知識的復習
門電路,計數器,觸發器,555觸發器以及卡諾圖等相關知識。
2、Multisim相關知識的學習
除基本操作之外,還應該學習兩個設計大型電路的相關知識。
(1)總線技術:
圖2-2-1 總線功能選擇
A、 點擊總線按鈕,然后進行繪制,便可以得到總線。
圖2-2-2 總線圖樣。
B、 雙擊總線進行總線端口的添加:
圖2-2-3 總線端口添加圖
C、 單擊添加后,可以進行端口的添加,有2種方式,第一種便是一次只能加一種端口,第二種是可以加入前綴相同,但是標號不同的多個端口
圖2-2-4 總線端口方式二添加圖
D、 之后選擇連線確認即可
圖2-2-5 總線連線圖
(2)子電路技術:
A、新建一個子模塊
圖2-3-1 子電路添加方法圖示
B、添加管腳
圖2-3-2 子電路管腳添加圖示
三、電路總設計思路
圖3-1 電路總設計思路圖示
首先考慮數字鍾所有的功能:有時鍾顯示,調時,秒表,萬年歷,定點報時和鬧鍾一共6個功能,所以切換電路要預留6個以上的功能切換項。(切換鍵設為“=”)
其次,對於數字鍾必須要有精確的秒發生器作為基礎,由於Multisim本身軟件的刷新頻率問題,所以只好使用信號發生器作為數字鍾的秒發生器。
最后,考慮顯示功能,由於只能使用4個數碼管,所以需要一個顯示切換功能,然后再接入數碼管。(切換鍵設為“E”)。
四、子電路設計
1、控制電路(切換功能電路)
圖4-1-1 控制電路搭建圖
(1)使用的是CD4017十路十節拍順序脈沖發生器,由於暫時只有6個功能,所以改接為六路六節拍順序脈沖發生器。這樣還可以方便新功能的擴展。
(2)通過按下功能切換按鈕(“=”)進行功能的選擇。
(3)功能端口如下:
輸出端 |
功能 |
Q0 |
時鍾顯示 |
Q1 |
時鍾調時 |
Q2 |
秒表 |
Q3 |
鬧鍾 |
Q4 |
萬年歷 |
Q5 |
定點報時開關 |
表4-1-1 切換電路端口功能表
2、基本計數功能的實現:
(1)總體構想
圖4-2-1 基本計數功能總體構想
首先,根據現實因素,采用8421BCD碼進行編制,然后按照生活習慣分離成7個計數片,采用片內同步,片間異步的設計方法。
其次,星期計數有兩種模式,模式一為正常時鍾計數所使用的,即24小時后星期數進一,模式二為萬年歷查詢模式,即需要查詢相應日期對應的星期時所使用的模式。
最后,預留出調時所需要的端口。
(2)秒、分和時計數的設計:
圖4-2-2-1 秒(分)計數器的設計
圖4-2-2-2 秒(分)計數器封裝芯片圖
端口 |
功能 |
Q7-Q0 |
數值輸出,用於接入到數碼管 |
CTEN |
片選開關 |
CVON |
片內計數器級聯開關 |
Co |
進位輸出 |
GND |
接地端 |
CLOCK0-1 |
片內計數器時鍾端 |
表4-2-2-1 秒(分)計數器封裝芯片功能表
需要注意的地方是:
A、由於調時功能需要每一位都進行調節,所以必須預留每一位的時鍾端進行調時。
B、由於片內為了避免競爭冒險而使用同步級聯,所以必須有級聯的開關端口(CVON)。
C、 由於時計數器和分(秒)計數器只是進制的不同,所以不再詳細敘述時計數器電路圖。
(3)年計數器的設計
同樣采用片內同步級聯的設計思路,預留調時所需的CVON和CLOCK0-3端口。
圖4-2-3-1 年計數器的級聯電路圖
為了日計數的正確需要判斷閏年的預留端口。
A、 計算閏年的方法為:能被4整除且不能被100整除與能被400整除的是閏年。
B、 考慮使用邏輯電路來實現此邏輯。
① 被400整除可以拆成被4且被100整除,所以需要實現的功能為能被4和能被100整除的功能的判斷。
② 能被100整除,只要滿足Q0到Q7都為0就可以被100整除。
③ 能被4整除的實現:
首先觀察能被4整除的數字規律,總結為:
定義一個數字的十位和各位組成的數字為AB,Y=1定義為能被4整除,Y=0不可以。則有
A |
B |
Y |
奇數 |
2,6 |
1 |
偶數 |
0,4,8 |
1 |
其他 |
0 |
表4-2-3-1 能被4整除的規律
然后列真值表,化簡卡諾圖,得到的控制電路如下:
圖4-2-3-2 能被4整除電路圖
③ 判斷能被400整除,首先由能被100整除,且設千位和百位為A和B,同樣符合上述規律時,即可被400整除。
年計數器總電路如下:
圖4-2-3-3 年計數器總電路圖和芯片封裝圖
年計數器功能表如下
端口 |
功能 |
Q15-Q0 |
數值輸出,用於接入到數碼管 |
CTEN |
片選開關 |
CVON |
片內計數器級聯開關 |
Vcc |
電源端 |
GND |
接地端 |
CLOCK0-3 |
片內計數器時鍾端 |
Leapyear |
閏年判斷端口 |
表4-2-3-2 年計數功能表
(4)月計數器的設計
同樣采用片內同步級聯的設計思路,預留調時所需的CVON和CLOCK0-1端口。
圖4-2-4-1 月計數器的級聯電路圖
為了日計數的正確需要判斷擁有不同月份天數的預留端口。
A、 統計不同月份天數:
月份 |
天數 |
1、3、5、7、8、10、12 |
31 |
4、6、9、11 |
30 |
2 |
閏年為29,平年為28 |
表4-2-4-1 月份天數統計表
B、 對月份采用8421BCD碼進行編制,通過列真值表,卡諾圖化簡,得到控制邏輯電路為:
圖4-2-4-2 月份分類電路圖
月計數器總電路如下:
圖4-2-4-3 月計數器總電路圖和芯片封裝圖
月計數器功能表如下:
端口 |
功能 |
Q17-Q0 |
數值輸出,用於接入到數碼管 |
CTEN |
片選開關 |
CVON |
片內計數器級聯開關 |
Vcc |
電源端 |
GND |
接地端 |
CLOCK0-3 |
片內計數器時鍾端 |
Y31 |
天數為31的月份輸出為1 |
Y30 |
天數為30的月份輸出為1 |
Y2829 |
天數為28、29的月份輸出為1 |
表4-2-4-2 月計數器統計表
(5)日計數器的設計
日計數器設計思路一樣是級聯,再但是由於每個月的天數不同,所以我們需要使用預留的閏年,Y31,Y30和Y2829端口進行置數。
通過列真值表,卡諾圖化簡得下面電路設計圖:
圖4-2-5 日計數器電路設計圖
(6)星期計數的設計:
圖4-2-6 星期計數電路設計圖
先設計一個8421BCD的加計數器,選0到6作為一個循環,這是為了后面的萬年歷查詢方便。
(7)基本計數功能總電路:
圖4-2-7 基本計數功能總電路
注意的地方是,如何切換正常計數和調時,我們需要斷開原來片選端輸入的時鍾,改為手動輸入時鍾。因此,加級聯端需要加入一個級聯開關,這樣子就可以斷開原來異步級聯的片,進行手動調時。
3、時鍾調時設計
(1)思路總括:
圖4-3-1 時鍾調時的設計思路
首先需要做一個11位的環形計數器對應年、月、日、星期、時、分和秒的每一位,當某一位為“1”時,便對其進行調時。
其次,便是加入手動調時的方法,需要引入一個按鈕“W”,按一下計數加一。
(2)環形計數器的實現:
使用四片74194四位移位寄存器構成11位環形移位寄存器。電路圖如下:
圖4-3-2-1 11位環形移位寄存器電路設計:
如何使之一開始有一個且只有一個“1”進入有效環形是一個關鍵問題。這里提供2鍾解決方法:
A、首先由74194的功能表得到,當S0=1,S1=1時,並行輸入,當S0=1,S0=0時,向右移動。所以我們使用一個積分電路,使得在切換到這個功能的時候產生一個短暫的脈沖,進行並行輸入。
圖4-3-2-2 積分電路設計:
B、另一種方法是使用一個RS觸發器。
圖4-3-2-3 采用RS觸發器實現並行輸入設計:
通過Vcc在供電的瞬間使得R端口產生一個1-0的越變,這樣子,置入一個有效數字“1”,再進入右移功能。
(3)手動調時功能
當CTEN(功能切換輸入)為“0”時,表示沒有進入此功能,Q0輸出為時鍾信號。
當CTEN(功能切換輸入)為’’1’’時,表示進入手動調試功能,Q0輸出的是手動調時信號。在此情況下,若D0(環形移位寄存器輸入)為’’1’’時,則允許按鈕“W”產生的脈沖通過Q0輸出,否則只能輸出為低電平,即無法調時。
其余位也是相同的連接方法。
圖4-3-3 手動調時
(4)手動調時功能子芯片連接
圖4-3-4 手動調時功能子芯片連接圖
4、秒表功能設計
(1)設計總思路
首先根據要求“能夠為馬拉松長跑計時”,所以需要能夠計數到小時以上,然后選擇計數器設計小時-分鍾-秒鍾設計計數器。
其次,需要預留一個CLR和一個STOP的端口進行秒表的清零和暫停。
圖4-4-1 秒表設計總思路
(2)電路設計:
圖4-4-2 秒表電路設計圖
5、定點報時功能設計
(1)設計思路:
圖4-5-1 定點報時功能設計圖
根據要求“需要報時的時間五短一長,不需要報時的時間不報時”,所以需要進入時鍾的一些輸出端進行一些邏輯判斷。做出在需要報時的時段59分55秒到59秒輸出一段高電平的一個輸出端,還有在00分00秒輸出一個高電平。
然后將其輸入到2個不同頻率的蜂鳴器中,就可以實現定點報時的功能。
(2)電路設計圖:
圖4-5-2 定點報時電路搭接圖
其中CTEN為功能輸入,左邊的端口為時鍾對應輸入,Switch表示定點報時功能的開關,CIO表示秒表的進位端。
6、鬧鍾功能設計
(1)設計思路:
圖4-6-1 鬧鍾功能設計思路
首先需要搭建一個計數器能夠儲存設定的報鬧時間,做出一個比較電路進行比較,如果相同的話構建一個鬧鍾響一分鍾。
(2)計數功能搭建:
圖4-6-2 計數功能搭建圖
跟基礎的計數器級聯相同,但是做了一個小改變,就是在調節計數時,當時的十位為2時,個位只是4進制計數器。
(3)比較電路搭建:
圖4-6-3 比較電路搭建
采用74LS85四位比較器芯片,將時鍾和設定的時間進行比較,如果相同就輸出為“1”,不同就輸出為“0”。
(4)調整設定時間電路設計:
圖4-6-4 設定時間電路設計
與調整始終時間的電路相同,只不過將三態門構建的時鍾切換控制改成了用與門來進行搭建的。
7、萬年歷查詢功能:
(1)思路設計:
圖4-7-1 萬年歷查詢星期設計思路
首先,再每次進入萬年歷查詢星期功能時,需要把當前日期導入萬年歷子芯片,考慮的方法就是在沒有進入此功能時,直接置數,一但進入此功能關閉置數端功能即可。
其次,查詢分為3鍾情況,調節日,調節月,調節年,在進行對應調節的時候,星期要進行相應的改變。
最后,要加入顯示功能的匹配輸出口。
(2)年查詢設計:
首先搭建一個年計數器,直接重用原來在時鍾使用的年計數器,然后以加一年為例子:
A、 分析情況:
情況 |
結果 |
閏年的3月1號之后到平年的對應日期 |
星期加一 |
閏年的3月1號之前到平年的對應日期 |
星期加二 |
平年的3月1號之后到閏年的對應日期 |
星期加二 |
平年的3月1號之前到閏年的對應日期 |
星期加一 |
平年到平年對應的日期 |
星期加一 |
表4-7-2 年對應星期規律總結
B、 通過卡諾圖化簡,可以得到電路設計為:
圖4-7-2 年對應星期設計電路圖
即使用加計器,通過控制電路,控制在不同情況下,B4B3B2B1端口對應的是數值。
(3)月對應日期查詢
首先搭建一個月計數器,直接重用原來在時鍾使用的月計數器,然后以加一個月為例子:
A、 分析情況:
情況 |
結果 |
上個月是31天的 |
加3天 |
上個月是30天的 |
加2天 |
上個月是29天的 |
加1天 |
上個月是28天的 |
加0天 |
從12月跳到1月(同31天) |
加3天 |
表4-7-3 月對應星期規律總結
B、 通過卡諾圖化簡,可以得到電路設計如下:
圖4-7-3 月對應星期查詢電路查詢設計
(4)日對應日期查詢:
首先搭建一個日計數器,直接重用原來在時鍾使用的日計數器,然后以加一個日為例子:
A、 分析情況:
分類 |
情況 |
結果 |
從31號跳到1號 |
上個月是31天的 |
加2天 |
上個月是30天的 |
加1天 |
|
上個月是29天的 |
加0天 |
|
上個月是28天的 |
加6天 |
|
其他 |
加一天 |
加1天 |
表4-7-4 日對應星期查詢規律總結
B、 通過卡諾圖化簡可得電路設計圖如下:
圖4-7-4 日對應星期查詢電路設計圖
(5)3種查詢方式的切換:
首先同調時電路一樣,需要有相應的調整切換按鈕,並且還需要選擇運算輸出的結果:
圖4-7-5 運算輸出的結果電路設計圖
選擇輸出的數值,且如果超過6的時候,進行減7的操作。保證輸出的星期都在0到6(即星期一到星期日之中)。
(6)閥值開關:
圖4-7-6 閥值開關設計圖
假如不加入一個閥值開關,就會形成一個閉環,變成一個環形計數器,但是我們可以通過假如一個計數器來做一個開關,當置數端打開時,才會進行置數輸出,否則不會繼續輸出。而置數端的開啟則是由調時按鈕觸發的脈沖得到的。
8、顯示功能設計
圖4-8-1 顯示功能預覽圖
(1)顯示功能及設計思路
圖4-7-1-2 顯示功能介紹圖
A、 左上角:表示鬧鍾和定點報時的開關,燈亮表示有開,否則則沒有打開。
B、 上方:表示在時鍾顯示和調時功能下,數碼管所顯示的內容是:
1:表示分和秒
2:表示時和分
3:表示月和日
4:表示年和月
C、 右邊:表示功能選擇,哪一個燈亮說明在哪一個功能下。
D、 中間:數顯,直接顯示數字
E、 下方:星期輸出,星期幾就是哪一個燈亮
(2)切換顯示功能
A:分析:
由於只有4個數碼管,所以必須進行數據的選擇輸出,顯而易見應該采用數據選擇器來完成,更好的是可以采用74AS157N進行數據選擇。
B:以年月日時分秒的切換作為例子:
圖4-7-2 年月日時分秒功能選擇輸出
左邊的方框:又一個順序脈沖發生器構成,當按下按鈕時會進行不同路脈沖的輸出。我們通過不同路賣出的輸出,進行對數據選擇控制端的編程。
上面的方框:三態門,控制端為相應功能切換電路使能,表示只有在當前功能時,才會輸出這個芯片內的數據,意味着每個需要接數碼管的子電路都需要有這個電路。
數據搭建的選擇電路:主要是使用順序脈沖發生器的輸出進行編程,對數據選擇器進行編程,這樣子的話可以選擇輸出相應的所需值。
(3)調時位閃爍功能:
圖4-7-3 調時位閃爍功能電路設計圖
A、 首先判斷需要閃爍的位要滿足的條件:
① 必須在當前顯示頁
② 調時所用的順序脈沖發生器輸出端對應有效
③ 進入調時功能選項
B、 因此,分塊完成對應功能
從下往上分別為第1,2,3,4模塊
模塊一:對應A所提的功能項所設計的邏輯電路來作為模塊二的控制端
模塊二:當輸入的控制端為1,則輸出閃爍信號,否則輸出不閃爍信號(接地)。
模塊三:當在時鍾顯示功能時無論如何不閃爍,只有在調試功能下才閃爍。
模塊四:只有當進入此功能時,才會有輸出。
五、心得體會
1、更深刻更熟練的掌握數電技術進行設計,熟練掌握各種基本電路,比如說計數器,觸發器,寄存器,555以及單穩多諧等等知識的總和運用。
2、巧妙使用微積分電路,可以造出一個所需的脈沖,化簡電路。
3、所有的仿真都忽略了實際器件的參數,其實很多地方需要加入電阻,電容,這樣子才可以使電路正常工作,例如七段數碼管,需要在輸入端口加入電阻,否則會發生閃爍不同步的問題。
4、Multisim軟件的局限性很大,刷新頻率不夠大,每次改變都要完全遍歷數組,如此不科學的方法實在讓大型電路的設計難以進行。但是在我們沒有辦法改變規則的情況下,只好自己做出妥協:
(1)每個子電路都在一個新的設計中設計,這樣子不會產生連線卡頓的問題。
(2)當出現邏輯功能對卻沒有產生對應的效果,例如進位,這樣的時候是因為器件的參數沒匹配,但是Multisim不會進行報錯提示,需要我們自己進行解決,一種是加入電阻電容使之匹配,另一種方法是加入探針,它會進行自適配。
(3)在進行端口連接時,一次性盡量連接多個口,因為遍歷一次數組就可以將所有的加入。所以必須如此。
5、設計電路的時候最好先構思,從上而下先宏觀布局,從下而上修改布局。然后反復幾遍,確認思路可行之時,開始從基礎搭起,預留端口。做好備注。
6、電路設計是一件耗時的事情,需要大家一起討論,每個人的想法都不同,大家討論,互相改進,最后就會使得效率提高。