【正文】
nd if。end process。② 按下校分鍵,分計數(shù)器迅速遞增以調(diào)至所需要的分位。因而需要屏蔽此時分計數(shù)器的進(jìn)位信號以防止小時計數(shù)器計數(shù)。所謂的“抖動”是指一次按鍵時的彈跳現(xiàn)象,通常實驗板中按鍵所用的開關(guān)為機械性開關(guān),由于機械觸點的彈性作用,按鍵開關(guān)在閉合時并不能馬上接通,而斷開的時候也不能馬上斷開,使得閉合及斷開的瞬間伴隨一系列的電壓抖動,從而導(dǎo)致本來一次按鍵,希望計數(shù)一次,結(jié)果因為抖動計數(shù)多次,且次數(shù)隨機,這樣嚴(yán)重影響了時間的校對。顯然,這兩種計數(shù)脈沖之間需要進(jìn)行相應(yīng)的選擇切換。3.整點報時模塊該模塊的功能要求是:計時到59分52秒時,每兩秒一次低音報時,整點時進(jìn)行高音報時,可以將報時信號接到實驗板上的揚聲器輸出。use 。end zdbs。else 39。 when mh=0000and ml=0000and sh=0000and sl=0000 else 39。4.分頻模塊在本系統(tǒng)中需要用到多種不同頻率的脈沖信號,上至高音報時,下至1Hz的計秒脈沖。USE 。 hz1 : OUT STD_LOGIC。END freq_divider。139。 ELSE Count = count +1。 hz512 = count(0)。每1024個時鐘產(chǎn)生一個時鐘輸出END rtl。具體來講,可以在6個不同的時間段分別將每組時間經(jīng)過七段譯碼后輸出到6個數(shù)碼管,當(dāng)某一組時間的七段碼到達(dá)時,只點亮對應(yīng)位置上的數(shù)碼管,顯示相應(yīng)的數(shù)字;下一個循環(huán)將相鄰一組時間的七段碼送至數(shù)碼管,同樣只點亮相應(yīng)位置的數(shù)碼管,6次一個循環(huán),形成一個掃描序列。USE 。 s:in std_logic_vector(7 downto 0)。ARCHITECTURE beha of dtsm is signal key:std_logic_vector(3 downto 0)。 END IF。 PROCESS(sel) BEGIN CASE sel IS多路選擇代碼 when 000=key=h(7 downto 4)。 when 100=key=s(7 downto 4)。 END PROCESS。 when0011=seg7out=1001111。 when0111=seg7out=0000111。 when1011=seg7out=1111100。 when1111=seg7out=1110001。 END beha。use 。end alarmset。 當(dāng)sel輸入端為低電平時,把時鐘信號傳遞到輸出端 m=mclo。 s=salr。(當(dāng)選擇開關(guān)輸入為低電平時,把時鐘信號傳遞到動態(tài)顯示模塊;當(dāng)選擇開關(guān)輸入為高電平時,把鬧鐘信號傳遞到動態(tài)顯示模塊。use 。 end alarmcmp。039。 then sig=39。 當(dāng)時鐘傳來的信號與鬧鐘置入的信號不一致時,輸出為低電平 end if。三、總結(jié) 通過這次的數(shù)邏課程設(shè)計后,我學(xué)到了很多,對于VHDL語言有了進(jìn)一步的認(rèn)識,掌握了實驗板上某些按鍵的功能。然后因為這次實驗,我也明白了自己需要學(xué)的東西還是很多的,畢竟很多東西都需要詢問和查資料才懂,但對于QuartusⅡ還是會比之前更加熟練了,熟能生巧的緣故吧,反正操作起來