【正文】
end behavior。 when others= null。 when 6= wei_sel=10111111。139。 else H:=39。 if(clk_1=39。 data_out=x82。amp。039。139。 when 1= wei_sel=11111101。 when others= null。 else data_out=xf9。139。 else data_out=bcd_to_seg7(hour_ge)。039。 when 6= wei_sel=10111111。139。 else H:=39。 if(clk_1=39。 end if。)then if(change=39。 end if。)then data_out=xa7。 if(up=39。amp。039。139。 else data_out=bcd_to_seg7(sec_shi)。039。 when 1= wei_sel=11111101。 else data_out=x80。139。 begin if(key_sel=39。 sec_min_hour(sec,sec_shi,sec_ge)。 else buzz=39。 buzz=not buzz。 begin if(buzz_freque/=0)then if(clk39。 else buzz_freque=0。 process(sec,min) begin if(min=0 and sec=0)then buzz_freque=20000。 when others= key_value=0。 when 110= if(delay=10)then delay:=0。 when 101= if(delay=10)then delay:=0。)then case key is when 011= if(delay=10)then delay:=0。cs。 process(clk_1000,ch,cm,cs) variable delay:integer range 0 to 10。 when others= null。 else up=39。039。 else sec=sec+1。 else hour=hour+1。 end if。 else min=min+1。event and clk_1=39。)then sec=0。 end process。 end if。 clk_1=not clk_1。 if(t=7)then t=0。139。2500 begin if(rst_n=39。 signal up,change:std_logic。 signal buzz_freque:integer。 signal min_shi:integer range 0 to 9。 signal sec_ge:integer range 0 to 9。end digitalclock。 key_sel:in std_logic。 rst_n:in std_logic。use 。 end sec_min_hour。 when 8|18|28|38|48|58 =ge=8。 when 4|14|24|34|44|54 =ge=4。 case n is when 0|10|20|30|40|50 =ge=0。 when 40|41|42|43|44|45|46|47|48|49 =shi=4。signal shi,ge:out integer)is begin case n is when 0|1|2|3|4|5|6|7|8|9 =shi=0。 when others= end case。 when 6= seg7:=x82。 when 2= seg7:=xa4。end my_package。use 。路漫漫其修遠兮,吾將上下而求索。圖連完后,編譯通過,對原理圖設(shè)計有了整題把握,以后做設(shè)計的時候,對于接口比較復(fù)雜的還是用原理圖設(shè)計比較方便。故本設(shè)計完全符合設(shè)計要求。連接硬件系統(tǒng)后,通上電源,經(jīng)QuartusⅡ中的PROGRAMMER菜單,調(diào)出編程器窗口,刪掉sof文件,現(xiàn)在轉(zhuǎn)換成功的jic文件。如下圖。圖314 數(shù)字鐘總原理圖4 編譯報告 數(shù)字鐘設(shè)計編譯報告將各模塊正確連線后,編譯無警告,生成編譯報告如圖。圖312 多路復(fù)用器 八段譯碼模塊設(shè)計一個數(shù)碼管是由8段LED顯示的,09對應(yīng)著不同的字形。圖311 鬧鐘及蜂鳴器將經(jīng)過七段譯碼后的時分秒,年月日在數(shù)碼管上顯示出來。其程序如附錄所示,其元件符號如圖3210所示。月12進制計數(shù)器的VHDL程序如附錄所示,完成程序后可以創(chuàng)建元件,其元件符號如圖35所示。在UP有效時,CHANGE為低電平,所有數(shù)碼管上部分熄滅,下部分顯示年月日的下半部分,CHANGE為高電平時,正常顯示年月日部分,直到UP 為低。圖33 時鐘電路秒60進制計數(shù)模塊的時鐘信號為1HZ的脈沖信號,每計數(shù)到59便會產(chǎn)生一次進位作為分60進制計數(shù)模塊的時鐘信號,該模塊加入一個清零端,當(dāng)CS為1時,秒計數(shù)模塊中的個位和十位同時為零,其通過一個增加鍵CM對其調(diào)整。[4]因而在閉合及斷開的瞬間均有一連串的抖動,抖動的時間的長短有按鍵的機械特性決定,一般為5ms~10ms。一般每一位的顯示時間為1~10ms。通過報時設(shè)計模塊可以實現(xiàn)整點報時及定時鬧鈴,譯碼顯示由七段譯碼器完成,顯示由數(shù)碼管構(gòu)成,采用的是動態(tài)顯示方式。秒計數(shù)器滿60后向分計數(shù)器進位,分計數(shù)器滿60后向小時計數(shù)器進位,小時計數(shù)器按照“24翻1”規(guī)律計數(shù)。 設(shè)計任務(wù)及要求 完成以下基本要求及進行提高:(1)設(shè)計一個6位LED動態(tài)掃描顯示的數(shù)字鐘,根據(jù)一個控制鍵能選擇顯示時、分、秒或年、月、日;(2)通過按鍵可以進行時、分、年、月、日的調(diào)整,可以實現(xiàn)翻屏;(3)可以設(shè)置鬧鐘時間及整點報時,鬧鈴蜂鳴器頻率為1000Hz,整點報時頻率為 2000Hz;(