何有為 沈祖斌 鄒光毅
(江漢大學(xué)數(shù)學(xué)與計算機(jī)學(xué)院,湖北 武漢430056)
本系統(tǒng)采用最原始的原理圖設(shè)計方案,采用原理圖設(shè)計能最大限度的了解內(nèi)部電路結(jié)構(gòu),了解其中的原理構(gòu)造,清晰易懂,而且在一定程度上很好的強(qiáng)化與鍛煉了“數(shù)字邏輯”知識。在一般的簡易時鐘基礎(chǔ)上有了比較明顯的改進(jìn)。如圖1所示,是該時鐘的整體實現(xiàn)框圖,實驗板采用CPLD芯片EPM240,它是一個中規(guī)模的實驗板,有很高的集成性,完全可以完成這個系統(tǒng)的需求。
圖1 整體框圖
該時鐘的晶振源由實驗板自帶的50MHz晶振源提供,對50MHz分頻得到1Hz的脈沖;然后對其計數(shù),“秒鐘”滿60清0向分位進(jìn)一,同樣“分”滿60進(jìn)一到“時”,小時采用12小時制,故時滿12清零。接著,使用刷新電路對其進(jìn)行動態(tài)刷新,并通過數(shù)碼管顯示出來。對于校時部分,直接通過校時電路對分、時部分進(jìn)行校時。最后,關(guān)于對控制電路的設(shè)計,控制電路通過使用模二進(jìn)制的循環(huán)狀態(tài)機(jī)實現(xiàn)四種模式循環(huán),不同模式的控制,對模式信號進(jìn)行處理,從而使MUX進(jìn)行不同的選擇實現(xiàn)顯示以及閃爍。關(guān)于防抖部分,在每個按鍵輸入處進(jìn)行消抖處理即可。
在確定整體思路基礎(chǔ)后,進(jìn)行模塊化設(shè)計,采用模塊化設(shè)計方便進(jìn)行局部調(diào)整,以及模塊的重用,便于開發(fā),節(jié)省開發(fā)流程。對于該系統(tǒng)劃分為以下幾個模塊去實現(xiàn):①分頻電路②秒鐘計時電路③時鐘計時電路④動態(tài)刷新和譯碼顯示電路⑤控制電路⑥防機(jī)械按鍵抖動電路⑦閃爍電路⑧校時電路⑨功能選擇電路。下面詳細(xì)介紹控制電路、防機(jī)械按鍵抖動電路的實現(xiàn)。
控制電路是該系統(tǒng)能實現(xiàn)各種模式切換以及閃爍的重要部分??刂齐娐肥潜鞠到y(tǒng)的核心電路,盡管結(jié)構(gòu)簡單但卻有著“四兩撥千斤”的作用。在控制電路中主要輸出模式切換信號、閃爍信號、校時信號。決定了模式的狀態(tài)和是否閃爍以及閃爍小時部分還是分鐘部分。本系統(tǒng)設(shè)計了正常顯示小時分鐘、正常顯示分秒、分鐘校時閃爍、小時校時閃爍這四種狀態(tài),四種狀態(tài)的實現(xiàn)通過一個狀態(tài)機(jī)循環(huán),即采用模二進(jìn)制計數(shù)器。對應(yīng)模式和模二計數(shù)器狀態(tài)如下:M1正常顯示小時分鐘(S1S0=00)、M2正常顯示分秒(S1S0=01)、M3分鐘校時閃爍(S1S0=10)、M4小時校時閃爍(S1S0=11);模式切換信號分兩種:①數(shù)碼管上顯示小時和分鐘②數(shù)碼管上顯示分鐘和秒鐘;閃爍信號也分兩種:①小時部分閃爍并校時②分鐘部分閃爍并校時。需要模式切換信號①的模式有M1、M3、M4,需要模式切換信號②的模式有M2。使模式切換信號①為低電平;模式切換信號②為高電平,那么采用一定的邏輯電路便可完成高電平和低電平的分離,獲取所需信號。采用的電路結(jié)構(gòu)為S1與非門連接然后和S0相與得到切換信號C1,并將C1信號輸出給MUX31_21,從而實現(xiàn)功能切換。
同理需要閃爍信號①的模式有M4,需要閃爍信號②的模式有M3,兩種閃爍信號都不需要的模式有M1、M2。使需要閃爍時的狀態(tài)為高電平,不需要閃爍時的狀態(tài)為低電平。采用電路結(jié)構(gòu)為,在M3模式下取閃爍信號為S0連接非門然后與S1相與得到高電平;M4模式下直接讓S0和S1相與得到高電平,輸出給閃爍電路和校時電路。由于閃爍時即代表該部分在校時,故閃爍電路和校時電路可以共用閃爍信號。既完成了對閃爍電路控制又完成了對校時電路的控制??刂齐娐返哪6嫈?shù)輸入由外部定義的機(jī)械按鍵輸入,該鍵即為module鍵。最后設(shè)計完成的控制電路原理圖如圖2所示,然后將其封裝成模塊,封裝方法:選中電路圖,F(xiàn)ile→Create/update→CreatesymbolfilesforcurrentFile保存即可。系統(tǒng)可直接調(diào)用封裝好的模塊。
圖2 控制電路
穩(wěn)定可靠的信號輸入是時鐘系統(tǒng)能可靠工作的重要條件,我們不能將任何有毛刺的輸入作為計時器的時鐘信號,因此需要設(shè)計機(jī)械按鍵防抖動電路。該系統(tǒng)涉及到兩個外部機(jī)械按鍵,要使它們每一次按下時都要產(chǎn)生單脈沖信號,以此提高可靠的信號。由于機(jī)械式開關(guān)的核心部件為彈性金屬簧片,因而在開關(guān)切換的瞬問會在接觸點出現(xiàn)來回彈跳的現(xiàn)象。雖然只是進(jìn)行了一次按鍵,但在按鍵信號穩(wěn)定的前后出現(xiàn)了多個脈沖,如圖3按鍵波形圖所示。為了確保按鍵識別的準(zhǔn)確性,在按鍵信號抖動的情況下不能進(jìn)入狀態(tài)輸入,為此就必須對按鍵進(jìn)行消抖處理。實驗開發(fā)板機(jī)械按鍵module鍵和check鍵常態(tài)下為高電平。如圖4為去抖電路所示硬件消抖電路,當(dāng)按鍵Y按下時產(chǎn)生抖動,此時若時鐘脈沖CP的上升沿不來則兩個D觸發(fā)器的Q端不變,保持初始狀態(tài)。設(shè)初始狀態(tài)為Q1=Q2=0,輸出。這時即使Y有抖動也不會影響輸出,如圖5消抖波形仿真圖所示:
圖3 按鍵波形圖
圖4 防機(jī)械按鍵抖動電路
圖5 波形仿真
當(dāng)?shù)趎個時鐘脈沖CP的到來時,觸發(fā)器DFF37翻轉(zhuǎn),Q1=1;DFF36不變,則S=1。當(dāng)n+1個時鐘脈沖到來時,DFF37不變,DFF36翻轉(zhuǎn),Q2=1,此時鎖存Q1=Q2=1,則S=1。此時按下按鍵Y,在n+2個脈沖時鐘到來時,觸發(fā)器DFF36、DFF37維持不變。當(dāng)按鍵Y松開時,D1=0,在第T個CLK脈沖到來時Q1=0,Q2不變,則S=0,產(chǎn)生了一個單脈沖信號。當(dāng)?shù)赥+1個脈沖到來時,Q2翻轉(zhuǎn),此時S=1回到常態(tài)。當(dāng)按鍵Y松開時,如果此時第m個時鐘脈沖CP上升沿到來,Q1=1,Q2=0,則S=1。第m+1個時鐘脈沖CP的上升沿帶來時,Q1=1,Q2=1,則S=1。所以只要Y松開,即使有時鐘脈沖出發(fā),輸出S仍保持不變。由此可得,按鍵Y按下一次,S端將獲得一個與時鐘脈沖同步的單次穩(wěn)定脈沖信號輸入給計數(shù)器。
這樣就有效解決了抖動問題的情況,使得每一次按下外部機(jī)械按鍵時都只產(chǎn)生一個穩(wěn)定的信號。為后面驗證工作打下了很好的基礎(chǔ),保證了實際操作的準(zhǔn)確性和靈敏度。
本文介紹了采用原理圖設(shè)計的方法,完成了數(shù)字時鐘系統(tǒng)的設(shè)計。并在核心為EPM240T100C5的實驗板上驗證良好通過。數(shù)字時鐘系統(tǒng)運行穩(wěn)定,計時精準(zhǔn)。注重設(shè)計時候的思想,采用自頂向下設(shè)計和模塊化思想,是進(jìn)行EDA設(shè)計的重要思想方法。鍛煉學(xué)生動手操作能力,熟悉相關(guān)器件功能和工作方式。具有很好的綜合鍛煉能力。
[1]謝自美.電子線路設(shè)計·實驗·測試[M].2版.武漢:華中科技大學(xué)出版社,2000.
[2]周潤景.基于QuartusII的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計實例(第一版)[M].北京:電子工業(yè)出版社,2007.