您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 时间可设的数字时钟(VHDL)
±¾³ÌÐò·ÖΪÈý¸öÄ£¿é:1.CLOCK_TEST.VHD(¶¥²ãÄ£¿é)2.°´¼üÑÓʱģ¿é3.ÏÔʾ´úÂë²é±íÄ£¿é¡£--ÎļþÃû£ºCLOCK_TEST.VHDʱÖÓ³ÌÐò¶¥²ãÄ£¿é--ÎļþÃèÊö:--¶¯Ì¬ÏÔʾˢÐÂƵÂÊΪ5K¡£--ÏÔʾʱ¼ä¿ÉÉèÖã¬ÉèÖÃλÉÁ˸Ìáʾ¡£--°´Ï¹¦ÄܼüÍê³ÉÉèÖÃÓë×ßʱµÄ״̬Çл»£¬ÉèÖÃʱ°´ÒÆλ¼ü±ä¸üÉèÖÃ룬°´×ÔÔö¼üÐÞ¸Äʱ¼äÖµ¡£--µ±Ð¡Ê±¸ßλΪ2ʱ,·ÖÖÓÉèÖ÷¶Î§Îª0~3;µ±Ð¡Ê±µÍλ´óÓÚ3ʱ,Сʱ¸ßλÉèÖ÷¶Î§Îª0~1.LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCLOCK_TESTISPORT(CLT_MCLK:INSTD_LOGIC;--Ö÷¿ØʱÖÓ(50MHZ)CLT_RESET:INSTD_LOGIC;--¸´Î»°´¼üCLT_KEY_MENU:INSTD_LOGIC;--¹¦ÄÜ°´¼üCLT_R_SHIFT:INSTD_LOGIC;--ÉèÖÃλÓÒÒÆ°´¼üCLT_D_ADD:INSTD_LOGIC;--ÉèÖÃÖµ×ÔÔö°´¼üCLT_LED_BIT_SEL:OUTSTD_LOGIC_VECTOR(7DOWNTO0);--ÏÔʾÊýÂë¹ÜλѡÊä³öCLT_LED_SEG:OUTSTD_LOGIC_VECTOR(7DOWNTO0)--ÊýÂë¹ÜÏÔʾ´úÂëÊä³ö);ENDENTITY;ARCHITECTURERTLOFCLOCK_TESTIS-----------------------------------------------------------------------COMPONENTKEY_DELYISPORT(KD_MCLK:INSTD_LOGIC;KD_DIN:INSTD_LOGIC;KD_DOUT:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTSEG_DECODEISPORT(SDEC_MCLK:INSTD_LOGIC;SDEC_RESET:INSTD_LOGIC;SDEC_DIN:INSTD_LOGIC_VECTOR(3DOWNTO0);SDEC_DOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0)--ÊýÂë¹ÜÏÔʾ´úÂëÊä³ö);ENDCOMPONENT;-------------------------------------------------------------------------ÉèÖÃÀàÐÍÑ¡ÔñSIGNALSET_EN:STD_LOGIC;--ʱ¼äÉèÖÃÔÊÐíSIGNALSET_BIT_SEL:INTEGERRANGE0TO5;--ÉèÖÃλѡÔñSIGNALHOUR_H_SEN:STD_LOGIC;--Сʱ¸ßλÉèÖÃÔÊÐíSIGNALHOUR_L_SEN:STD_LOGIC;SIGNALMIN_H_SEN:STD_LOGIC;SIGNALMIN_L_SEN:STD_LOGIC;SIGNALSEC_H_SEN:STD_LOGIC;SIGNALSEC_L_SEN:STD_LOGIC;--ʱ¼äÉèÖûº´æSIGNALHOUR_H_SBUF:INTEGERRANGE0TO2;SIGNALHOUR_L_SBUF:INTEGERRANGE0TO9;SIGNALMIN_H_SBUF:INTEGERRANGE0TO5;SIGNALMIN_L_SBUF:INTEGERRANGE0TO9;SIGNALSEC_H_SBUF:INTEGERRANGE0TO5;SIGNALSEC_L_SBUF:INTEGERRANGE0TO9;--ʱ¼äÊý¾Ý·¶Î§¶¨ÒåSIGNALTIME_SEC_L:INTEGERRANGE0TO9;SIGNALTIME_SEC_H:INTEGERRANGE0TO5;SIGNALTIME_MIN_L:INTEGERRANGE0TO9;SIGNALTIME_MIN_H:INTEGERRANGE0TO5;SIGNALTIME_HOUR_L:INTEGERRANGE0TO9;SIGNALTIME_HOUR_H:INTEGERRANGE0TO2;--ʱ¼ä½øλ±êÖ¾SIGNALTIME_SEC_LCA:STD_LOGIC;SIGNALTIME_SEC_HCA:STD_LOGIC;SIGNALTIME_MIN_LCA:STD_LOGIC;SIGNALTIME_MIN_HCA:STD_LOGIC;SIGNALTIME_HOUR_LCA:STD_LOGIC;--´ý²é±íµÄÏÔʾÊý¾ÝSIGNALTIME_SEC_LBUF:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALTIME_SEC_HBUF:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALTIME_MIN_LBUF:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALTIME_MIN_HBUF:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALTIME_HOUR_LBUF:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALTIME_HOUR_HBUF:STD_LOGIC_VECTOR(3DOWNTO0);--ÏÔʾ´úÂ뻺´æÇø¶¨ÒåSIGNALDISP_LED1:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDISP_LED2:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDISP_LED3:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDISP_LED4:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDISP_LED5:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDISP_LED6:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDISP_LED7:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDISP_LED8:STD_LOGIC_VECTOR(7DOWNTO0);--SIGNALKEY_MENU:STD_LOGIC;SIGNALKEY_SHIFT:STD_LOGIC;SIGNALKEY_ADD:STD_LOGIC;SIGNALDIV_5K_COUNT:INTEGERRANGE0TO10000;SIGNALCLK_5K:STD_LOGIC;SIGNALDIV_1H_COUNT:INTEGERRANGE0TO2500;SIGNALCLK_1H:STD_LOGIC;SIGNALBITS_COUNT:INTEGERRANGE0TO7;--λѡ¼ÆÊýSIGNALTIME_SET_COUNT:INTEGERRANGE0TO7;--ʱ¼äÉèÖÃÑ»·¼ÆÊýSIGNALTIME_SET_FLAG:STD_LOGIC;BEGINDISP_LED3=01101111;--':'--µÚÈýλ¹Ì¶¨ÏÔʾ':'DISP_LED6=11111110;--'.'-------------------------------------------------------------------------¹¦ÄÜÑ¡Ôñ°´¼ü´¦ÀíPROCESS(CLT_RESET,KEY_MENU)BEGINIF(CLT_RESET='0')THENSET_EN='0';ELSIF(KEY_MENU'EVENTANDKEY_MENU='0')THENSET_EN=NOTSET_EN;ENDIF;ENDPROCESS;--ÉèÖÃλѡÔñPROCESS(CLT_RESET,KEY_SHIFT,SET_EN)BEGINIF(CLT_RESET='0')OR(SET_EN='0')THENSET_BIT_SEL=0;ELSIF(KEY_SHIFT'EVENTANDKEY_SHIFT='1')THENIF(SET_BIT_SEL5)THENSET_BIT_SEL=SET_BIT_SEL+1;ELSESET_BIT_SEL=0;ENDIF;ENDIF;ENDPROCESS;-------------------------------------------------------------------------ÉèÖÃλÔÊÐíPROCESS(CLT_RESET,CLT_MCLK,SET_EN,SET_BIT_SEL)BEGINIF(CLT_RESET='0')OR(SET_EN='0')THENHOUR_H_SEN='0';HOUR_L_SEN='0';MIN_H_SEN='0';MIN_L_SEN='0';SEC_H_SEN='0';SEC_L_SEN='0';ELSIF(CLT_MCLK'EVENTANDCLT_MCLK='1')THENCASESET_BIT_SELISWHEN0=--HOUR_H_SEN='1';HOUR_L_SEN='0';MIN_H_SEN='0';MIN_L_SEN='0';SEC_H_SEN='0';SEC_L_SEN='0';WHEN1=--HOUR_H_SEN='0';HOUR_L_SEN='1';MIN_H_SEN='0';MIN_L_SEN='0';SEC_H_SEN='0';SEC_L_SEN='0';WHEN2=--HOUR_H_SEN='0';HOUR_L_SEN='0';MIN_H_SEN='1';MIN_L_SEN='0';SEC_H_SEN='0';SEC_L_SEN='0';WHEN3=--HOUR_H_SEN='0';HOUR_L_SEN='0';MIN_H_SEN='0';MIN_L_SEN='1';SEC_H_SEN='0';SEC_L_SEN='0';WHEN4=HOUR_H_SEN='0';HOUR_L_SEN='0';MIN_H_SEN='0';MIN_L_SEN='0';SEC_H_SEN='1';SEC_L_SEN='0';WHEN5=HOUR_H_SEN='0';HOUR_L_SEN='0';MIN_H_SEN='0';MIN_L_SEN='0';SEC_H_SEN='0';SEC_L_SEN='1';WHENOTHERS=HOUR_H_SEN='0';HOUR_L_SEN='0';MIN_H_SEN='0';MIN_L_SEN='0';SEC_H_SEN='0';SEC_L_SEN='0';ENDCASE;ENDIF;ENDPROCESS;-------------------------------------------------------------------------Сʱ¸ßλÉèÖÃPROCESS(CLT_RESET,SET_EN,TIME_HOUR_H,HOUR_H_SEN,KEY_ADD,HOUR_L_SBUF)BEGINIF(CLT_RESET='0')THENHOUR_H_SBUF=0;ELSIF(SET_EN='0')THENHOUR_H_SBUF=TIME_HOUR_H;ELSIF(HOUR_H_SEN='1')THENIF(KEY_ADD'EVENTANDKEY_ADD='1'
本文标题:时间可设的数字时钟(VHDL)
链接地址:https://www.777doc.com/doc-4980482 .html