基于VHDL的數(shù)字時(shí)鐘設(shè)計(jì)_第1頁(yè)
基于VHDL的數(shù)字時(shí)鐘設(shè)計(jì)_第2頁(yè)
基于VHDL的數(shù)字時(shí)鐘設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.目 錄1 概述11.1數(shù)字時(shí)鐘的工作原理11.2設(shè)計(jì)任務(wù)12 系統(tǒng)總體方案設(shè)計(jì)23 VHDL模塊電路設(shè)計(jì)33.1模塊實(shí)現(xiàn)33.1.1分頻模塊pinlv33.1.2按鍵去抖動(dòng)模塊qudou53.1.3按鍵控制模塊self163.1.4秒、分六十進(jìn)制模塊cantsixty73.1.5時(shí)計(jì)數(shù)模塊hourtwenty93.1.6秒、分、時(shí)組合后的模塊93.1.7數(shù)碼管顯示模塊103.2數(shù)字時(shí)鐘的頂層設(shè)計(jì)原理圖133.3系統(tǒng)仿真與調(diào)試14完畢語(yǔ)16參考文獻(xiàn)17致謝18附錄 源程序代碼191 概述1.1數(shù)字時(shí)鐘的工作原理數(shù)字鐘電路的根本構(gòu)造由兩個(gè)60進(jìn)制計(jì)數(shù)器和一個(gè)24進(jìn)制計(jì)數(shù)器組成,分別對(duì)秒、分、小時(shí)

2、進(jìn)展計(jì)時(shí),當(dāng)計(jì)時(shí)到23時(shí)59分59秒時(shí),再來(lái)一個(gè)計(jì)數(shù)脈沖,那么計(jì)數(shù)器清零,重新開場(chǎng)計(jì)時(shí)。秒計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘CLK為1Hz的標(biāo)準(zhǔn)信號(hào),可以由晶振產(chǎn)生的50MHz信號(hào)通過(guò)分頻得到。當(dāng)數(shù)字鐘處于計(jì)時(shí)狀態(tài)時(shí),秒計(jì)數(shù)器的進(jìn)位輸出信號(hào)作為分鐘計(jì)數(shù)器的計(jì)數(shù)信號(hào),分鐘計(jì)數(shù)器的進(jìn)位輸出信號(hào)又作為小時(shí)計(jì)數(shù)器的計(jì)數(shù)信號(hào),每一秒鐘發(fā)出一個(gè)中斷給CPU,CPU采用NIOS,它響應(yīng)中斷,并讀出小時(shí)、分、秒等信息。CPU對(duì)讀出的數(shù)據(jù)譯碼,使之動(dòng)態(tài)顯示在數(shù)碼管上。1.2 設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)基于VHDL的數(shù)字時(shí)鐘,具體功能要求如下:1在七段數(shù)碼管上具有時(shí)-分-秒的依次顯示。2時(shí)、分、秒的個(gè)位記滿十向高位進(jìn)一,分、秒的十位記滿五向

3、高位進(jìn)一,小時(shí)按24進(jìn)制計(jì)數(shù),分、秒按60進(jìn)制計(jì)數(shù)。3整點(diǎn)報(bào)時(shí),當(dāng)計(jì)數(shù)到整點(diǎn)時(shí)揚(yáng)聲器發(fā)出響聲。4時(shí)間設(shè)置:可以通過(guò)按鍵手動(dòng)調(diào)節(jié)秒和分的數(shù)值。此功能中可通過(guò)按鍵實(shí)現(xiàn)整體清零和暫停的功能。5LED燈循環(huán)顯示:在時(shí)鐘正常計(jì)數(shù)下,LED燈被依次循環(huán)點(diǎn)亮。2 系統(tǒng)總體方案設(shè)計(jì)設(shè)計(jì)一個(gè)基于VHDL的數(shù)字時(shí)鐘,我采用自頂向下分模塊的設(shè)計(jì)。底層為實(shí)現(xiàn)個(gè)弄能的模塊,各模塊由vhdl語(yǔ)言編程實(shí)現(xiàn):頂層采用原理圖形式調(diào)用。其中底層模塊包括秒、分、時(shí)三個(gè)計(jì)數(shù)器模塊、按鍵去抖動(dòng)模塊、按鍵控制模塊、時(shí)鐘分頻模塊、數(shù)碼管顯示模塊共7個(gè)模塊。設(shè)計(jì)框圖如下:圖2.1數(shù)字時(shí)鐘設(shè)計(jì)框圖由圖2.1可以清晰的看到數(shù)字鐘系統(tǒng)設(shè)計(jì)中各功能

4、模塊間連接關(guān)系。系統(tǒng)時(shí)鐘50MHZ經(jīng)過(guò)分頻后產(chǎn)生1秒的時(shí)鐘信號(hào),1秒的時(shí)鐘信號(hào)作為秒計(jì)數(shù)模塊的輸入信號(hào),秒計(jì)數(shù)模塊產(chǎn)生的進(jìn)位信號(hào)作為分計(jì)數(shù)模塊的輸入信號(hào),分計(jì)數(shù)模塊的進(jìn)位信號(hào)作為時(shí)計(jì)數(shù)模塊的輸入信號(hào)。秒計(jì)數(shù)模塊、分計(jì)數(shù)模塊、時(shí)計(jì)數(shù)模塊的計(jì)數(shù)輸出分別送到顯示模塊。由于設(shè)計(jì)中要使用按鍵進(jìn)展調(diào)節(jié)時(shí)間,而按鍵的動(dòng)作過(guò)程中存在產(chǎn)生得脈沖的不穩(wěn)定問(wèn)題,所以就牽扯到按鍵去抖動(dòng)的問(wèn)題,對(duì)此系統(tǒng)中設(shè)置了按鍵去抖動(dòng)模塊,按鍵去抖動(dòng)模塊產(chǎn)生穩(wěn)定的脈沖信號(hào)送入按鍵控制模塊,按鍵控制模塊根據(jù)按鍵的動(dòng)作對(duì)秒、分、時(shí)進(jìn)展調(diào)節(jié)。3 VHDL模塊電路設(shè)計(jì)3.1 模塊實(shí)現(xiàn)由數(shù)字鐘的頂層設(shè)計(jì)原理圖可知:系統(tǒng)的外部輸入即為系統(tǒng)的時(shí)鐘

5、信號(hào)CLK =50MHZ,系統(tǒng)的外部輸出有蜂鳴器信號(hào)buzzer,LED顯示信號(hào)LED3.1和shan與按鍵去抖動(dòng)模塊的o3相連,數(shù)碼管顯示信號(hào)xianshi7.0,數(shù)碼管位選信號(hào)xuanze7.0。下面將對(duì)內(nèi)部功能模塊進(jìn)展詳細(xì)說(shuō)明,本設(shè)計(jì)共包含5個(gè)模塊:3.1.1分頻模塊pinlv對(duì)系統(tǒng)的時(shí)鐘50MHZ進(jìn)展分頻,設(shè)置不同長(zhǎng)度的計(jì)數(shù)值,當(dāng)系統(tǒng)時(shí)鐘clk有變化時(shí)計(jì)數(shù)器開場(chǎng)計(jì)數(shù),當(dāng)計(jì)數(shù)到某個(gè)值時(shí)輸出一個(gè)信號(hào),計(jì)數(shù)值不同輸出信號(hào)的周期也就不同,從而實(shí)現(xiàn)了對(duì)系統(tǒng)時(shí)鐘進(jìn)展不同的分頻,產(chǎn)生不同頻率的信號(hào)。由VHDL語(yǔ)言生成的模塊圖和程序說(shuō)明如下:圖3.1分頻模塊library ieee;use ieee.

6、std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pinlv isport( clk:in std_logic;-系統(tǒng)時(shí)鐘輸入端口 clk2ms:out std_logic; clk500ms:out std_logic; clk1s:out std_logic);-各頻率信號(hào)的輸出端口 end; architecture beh of pinlv isbeginp1:process(clk); -進(jìn)程p1variable count1:integer range 0 to 49999999;begin if(clkevent

7、and clk=1)then count1:=count1+1;-在clk 的上升沿計(jì)數(shù) if count1=24999999 then clk1s=0; elsif count1=49999999 then clk1s=1; else count1:=0;-產(chǎn)生周期為1s的時(shí)鐘信號(hào)clk500ms=0; elsif count3=24999999 then clk500ms=1;else count3:=0;-產(chǎn)生周期為500ms的時(shí)鐘信號(hào)end if; end if; end process p1;-完畢進(jìn)程p1 p2:process(clk);-進(jìn)程p2 variable count2:

8、integer range 0 to 99999; begin if(clkevent and clk=1)then count2:=count2+1;-在clk上升沿計(jì)數(shù)if count2=49999 then clk2ms=0;elsif count2=99999 then clk2ms=1;-產(chǎn)生周期為2ms的掃描信號(hào) end if; end if; end process p2;-完畢進(jìn)程p2 p3:process(clk); -進(jìn)程p3 variable count3:integer range 0 to 24999999; begin if(clkevent and clk=1)t

9、hen count3:=count3+1; -在clk上升沿計(jì)數(shù) if count32499999 then o1=0; else o12499999 then o2=0; else o22499999 then o3=0; else o32499999 then o4=0; else o4=1; -延時(shí)0.5s end if;cant1:=cant1+1; -加一計(jì)數(shù)cant2:=cant2+1; -加一計(jì)數(shù)cant3:=cant3+1; -加一計(jì)數(shù)cant4:=cant4+1; -加一計(jì)數(shù) end if;end process;end beh;3.1.3按鍵控制模塊self1本設(shè)計(jì)中使用了

10、兩個(gè)按鍵進(jìn)展對(duì)時(shí)鐘的暫停和調(diào)秒操作,當(dāng)ok2按下時(shí)時(shí)鐘暫停,再按ok3那么進(jìn)展秒個(gè)位的加一計(jì)數(shù),每按一次進(jìn)展加一處理。當(dāng)調(diào)節(jié)好時(shí)間后,在按ok2鍵重新開場(chǎng)計(jì)數(shù)。由VHDL語(yǔ)言生成的模塊圖和程序說(shuō)明如下:圖3.3按鍵控制模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity self1 isport(c:in std_logic;ok2:in std_logic;ok3:in std_logic;ck:out std_logic);end ;-設(shè)置端口architecture bea of

11、 self1 issignal m:std_logic;signal t:std_logic;beginp1:process(ok2,ok3,c); -ok2和ok3觸發(fā)進(jìn)程beginif ok2event and ok2=0 then m=not m;-由ok2 的動(dòng)作產(chǎn)生m的電平信號(hào) end if; if m=1 then ck=not(ok3);-把按鍵ok3的脈沖信號(hào)給輸出 else ck=c;-否那么把正常計(jì)數(shù)時(shí)鐘給輸出 end if;end process p1;-完畢進(jìn)程end bea;3.1.4秒、分六十進(jìn)制模塊cantsixty本設(shè)中秒、分的六十進(jìn)制是由個(gè)位的十進(jìn)制和十位的六

12、進(jìn)制進(jìn)展組合實(shí)現(xiàn)的。當(dāng)個(gè)位記到9時(shí)自動(dòng)向高位進(jìn)一,同時(shí)個(gè)位自動(dòng)清零。當(dāng)十位記到5并且個(gè)位記到9時(shí),自動(dòng)產(chǎn)生一個(gè)進(jìn)位脈沖,同時(shí)個(gè)位和十位分別從零開場(chǎng)重新計(jì)數(shù)。由VHDL語(yǔ)言生成的模塊圖和程序說(shuō)明如下:圖3.4六十進(jìn)制模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cantsixty isport(clk:in std_logic; reset:in std_logic; out1:out std_logic_vector(3 downto 0); out2:out std_logi

13、c_vector(3 downto 0); c:out std_logic); end;architecture beh of cantsixty issignal ss1,ss2:std_logic_vector( 3 downto 0);beginp1:process(clk,reset) beginif(reset=0)then ss1=0000;ss2=0000; elsif(clkevent and clk=1)then if ss1=1001 and ss2=0101 then c=1;-當(dāng)計(jì)數(shù)到59時(shí)產(chǎn)生進(jìn)位信號(hào) else c=0;-否那么不產(chǎn)生 end if; if ss1=1

14、001 then ss1=0000; if ss2=0101 then ss2=0000; else ss2=ss2+1; end if; else ss1=ss1+1;-計(jì)數(shù)過(guò)程 end if;end if;end process p1;-完畢進(jìn)程out1=ss1;out2=ss2;-把信號(hào)送輸出end beh;3.1.5時(shí)計(jì)數(shù)模塊hourtwenty時(shí)計(jì)數(shù)模塊是二十四進(jìn)制相對(duì)復(fù)雜一點(diǎn),因?yàn)楫?dāng)十位0或著1時(shí)個(gè)位需要記到9并產(chǎn)生進(jìn)位信號(hào),當(dāng)十位是2時(shí),個(gè)位記到3時(shí),就全部從零開場(chǎng)重新計(jì)數(shù)。即是在十位為不同值時(shí)個(gè)位兩種計(jì)數(shù)過(guò)程。由VHDL語(yǔ)言生成的模塊圖和程序說(shuō)明如下:圖3.5時(shí)計(jì)數(shù)模塊3.1.

15、6秒、分、時(shí)組合后的模塊把設(shè)計(jì)的秒、分、時(shí)模塊連接起來(lái),再通過(guò)仿真驗(yàn)證,各模塊間的進(jìn)位是否正確連接后的原理圖如下圖3.6秒、分、時(shí)組合后原理圖3.1.7數(shù)碼管顯示模塊本模塊中包含數(shù)碼管的段選和位選設(shè)計(jì),Led燈循環(huán)設(shè)計(jì),以及整點(diǎn)報(bào)時(shí)的設(shè)計(jì)。模塊的輸入信號(hào)有數(shù)碼管掃描頻率clk2ms,秒、分、時(shí)各模塊的個(gè)位和十位輸入,以及由分模塊向時(shí)模塊產(chǎn)生的進(jìn)位脈沖信號(hào)。由VHDL語(yǔ)言生成的模塊圖和程序說(shuō)明如下:圖3.7數(shù)碼管顯示原理圖library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qudong i

16、sport(s1,s2,m1,m2,h1,h2:in std_logic_vector(3 downto 0); clk2ms: in std_logic; xiang:in std_logic;signal sel:std_logic_vector( 2 downto 0);signal A:std_logic_vector( 3 downto 0);signal t:std_logic_vector ( 11 downto 0);signal f:std_logic_vector(1 downto 0);signal count1:std_logic_vector(1 downto 0);

17、beginp1:process(clk2ms)beginif clk2msevent and clk2ms=1 then sel=sel+1;t=t+1; if t=0 then t0);end if;end if;f=t(11)&t(10);if f=01 then led(3)=0;else led(3)=1;end if;if f=10 then led(2)=0;else led(2)=1;end if;if f=11 then led(1)=0; else led(1)xuanze=11111110; Axuanze=11111101; Axuanze=11111011; Axuan

18、ze=11110111; Axuanze=11101111; Axuanze=11011111; Axuanze=10111111; Axuanze=01111111; Anull;end case;end process p2;p3:process(A)begincase A iswhen 0000 = xianshi xianshi xianshi xianshi xianshi xianshi xianshi xianshi xianshi xianshi xianshi xianshi null; -數(shù)碼管的段選設(shè)計(jì)end case;end process p3;P4:process(

19、xiang)begin if xiang=1 then buzzer=0; -當(dāng)進(jìn)位信號(hào)xiang為1時(shí)就把低電平給buzzer讓蜂鳴器響 else buzzer=1; -否那么把高電平給buzzer不給蜂鳴器觸發(fā)信號(hào)end if;end process p4; -完畢進(jìn)程end behav;3.2 數(shù)字鐘的頂層設(shè)計(jì)原理圖圖3.8數(shù)字鐘的頂層設(shè)計(jì)原理圖3.3 系統(tǒng)仿真與調(diào)試將調(diào)試好的程序下載到實(shí)驗(yàn)板上進(jìn)展驗(yàn)證,到達(dá)了設(shè)計(jì)的各項(xiàng)功能。時(shí)鐘準(zhǔn)確計(jì)數(shù),各模塊的進(jìn)位也正確,當(dāng)按下實(shí)驗(yàn)板上的key1鍵時(shí)系統(tǒng)復(fù)位清零,實(shí)驗(yàn)板上的key2鍵可實(shí)現(xiàn)系統(tǒng)的暫停和開場(chǎng),在系統(tǒng)暫停的狀態(tài)下,按key3鍵可實(shí)現(xiàn)調(diào)節(jié)秒

20、計(jì)數(shù),每按一次計(jì)數(shù)加一,key4鍵可實(shí)現(xiàn)調(diào)節(jié)分模塊,每按一次計(jì)數(shù)加一,長(zhǎng)按那么一直加,當(dāng)?shù)竭_(dá)整點(diǎn)時(shí),蜂鳴器發(fā)聲。其中一些模塊在Quartus II下的仿真如下:1. 按鍵去抖動(dòng)仿真:圖3.9按鍵去抖動(dòng)仿真效果圖由于0.5s太長(zhǎng),在本仿真中設(shè)置了很小的一個(gè)量10clk,從圖中可以看出根本實(shí)現(xiàn)了按鍵去抖動(dòng)的效果。無(wú)論按鍵怎么抖動(dòng),輸出總是保持穩(wěn)態(tài)10clk,當(dāng)下一個(gè)觸發(fā)來(lái)了以后,就可以觸發(fā)單穩(wěn)態(tài)。2. 六十進(jìn)制波形仿真:圖3.10六十進(jìn)制波形仿真圖由上圖可見,當(dāng)1s的時(shí)鐘信號(hào)參加時(shí),個(gè)位out1從0到9不斷循環(huán),而且當(dāng)個(gè)位out1記到9時(shí)產(chǎn)生一個(gè)進(jìn)位信號(hào) 使十位out2加一,以此類推就實(shí)現(xiàn)了六十進(jìn)

21、制計(jì)數(shù)。根本到達(dá)了正確計(jì)數(shù)的理想效果。3. 二十四進(jìn)制波形仿真:圖3.11二十四進(jìn)制波形仿真圖由上圖看出十位為0或1時(shí),個(gè)位記到9時(shí),十位才進(jìn)展加一計(jì)數(shù),但當(dāng)十位為2時(shí),個(gè)位記到3時(shí),十位變成了0,個(gè)位又從0重新開場(chǎng)計(jì)數(shù),這樣就實(shí)現(xiàn)了二十四進(jìn)制的計(jì)數(shù)。從圖形的顯示波形可知,設(shè)計(jì)根本到達(dá)了正確計(jì)數(shù)的功能。4. 秒、分、時(shí)組合后波形仿真:圖3.12秒、分、時(shí)組合后仿真波形圖完畢語(yǔ)這個(gè)實(shí)驗(yàn)帶給我的體會(huì)很多也很深,我以前沒有對(duì)數(shù)字時(shí)鐘進(jìn)展系統(tǒng)的設(shè)計(jì),這次獨(dú)立的設(shè)計(jì),我遇到了很多問(wèn)題,也走了很多彎路,還好最后終于通過(guò)自己的努力看到了理想的結(jié)果。通過(guò)實(shí)驗(yàn),我對(duì)EDA技術(shù)和FPGA技術(shù)有了更進(jìn)一步的理解,掌

22、握了FPGA的層次化設(shè)計(jì)電路的方法,掌握了用VHDL語(yǔ)言編寫各個(gè)功能模塊并通過(guò)波形確定電路設(shè)計(jì)是否正確。掌握了下載驗(yàn)到目標(biāo)器件的過(guò)程。實(shí)驗(yàn)中遇到的問(wèn)題很多,有的是很根底的但我卻不知道,例如數(shù)碼管的掃描頻率,剛開場(chǎng)時(shí)數(shù)碼管不顯示,我找了很多原因都沒想到是掃描頻率的問(wèn)題,浪費(fèi)了很多時(shí)間。還有分頻的時(shí)候,看過(guò)很多分頻的電路程序,但那些并不是都可以實(shí)現(xiàn)準(zhǔn)確的分頻,需要通過(guò)波形進(jìn)展驗(yàn)證。還有計(jì)數(shù)器的設(shè)計(jì),我用了很長(zhǎng)時(shí)間才編寫出來(lái),現(xiàn)在看看,也沒有那么難了??傊?,我很感謝這次實(shí)驗(yàn)可以給我這樣的時(shí)機(jī),這個(gè)實(shí)驗(yàn)給了我很對(duì)的收獲,我相信這會(huì)對(duì)我以后的學(xué)習(xí)和工作都有幫助。參考文獻(xiàn)1周立功,SOPC嵌入式系統(tǒng)根底教

23、程,航空航天大學(xué),2021.42 周立功,SOPC嵌入式系統(tǒng)實(shí)驗(yàn)教程,航空航天大學(xué),2006.73 X志剛,F(xiàn)PGA與SOPC設(shè)計(jì)教程DE實(shí)踐,XX電子科技大學(xué),20074 潘松 黃繼業(yè),EDA技術(shù)實(shí)用教程,科學(xué),2006.85 華XX見嵌入式培訓(xùn)中心,F(xiàn)PGA應(yīng)用開發(fā)入門與典型實(shí)例,人民郵電,2021.6致 非常感謝李教師對(duì)我們的細(xì)心詳細(xì)的指導(dǎo),要不是李教師很仔細(xì)的檢查我的課程設(shè)計(jì),并從中發(fā)現(xiàn)我的諸多錯(cuò)誤,我現(xiàn)在也沒法這么快的把課程設(shè)計(jì)完成。 李教師為人隨和親切,上課時(shí)總是不忘記鼓勵(lì)我們,教師非常耐心地給我們講了這次課程設(shè)計(jì)應(yīng)該要注意的地方,我們應(yīng)該用什么心態(tài)去對(duì)待這次的課程設(shè)計(jì),他說(shuō)對(duì)課程

24、設(shè)計(jì)對(duì)于電子科學(xué)與技術(shù)專業(yè)的學(xué)生是有很大幫助的,這可以提高我們的動(dòng)手能力和協(xié)同能力,所以李教師要求我們一定要認(rèn)真對(duì)待!教師的鼓勵(lì)使我認(rèn)識(shí)到以后還要多學(xué)習(xí)各種電子方面的書籍,多進(jìn)展操作,提高動(dòng)手能力和理論水平!在這次課程設(shè)計(jì)中我也遇到了比擬多的問(wèn)題,不過(guò)李教師每次都是不厭其煩給我們批改了,經(jīng)過(guò)李教師的仔細(xì)批改,大局部的錯(cuò)誤都解決了。教師無(wú)微不至的關(guān)心和諄諄的教導(dǎo),高深的學(xué)術(shù)造詣讓我獲益匪淺,也讓我學(xué)到了很多的關(guān)于課程設(shè)計(jì)的珍貴的經(jīng)歷,這是一生受益的事情!所以,再一次由衷的的感謝李教師,謝謝!附錄 源程序代碼library ieee;use ieee.std_logic_1164.all;use

25、ieee.std_logic_unsigned.all;entity szz isport( clk,k1,k2,k3,k4,c1,c2,ok2,ok3,reset1,reset2,clk2ms,xiang:in std_logic; s1,s2,m1,m2,h1,h2:in std_logic_vector(3 downto 0); clk2ms,clk500ms,clk1s,o1,o2,o3,o4,ck:out std_logic; out1,out2,out3,out4:out std_logic_vector(3 downto 0); xuanze,xianshi:out std_lo

26、gic_vector(7 downto 0);end szzarchitecture one of szz issignal m,t1:std_logic;signal hh1,hh2,ss1,ss2,A:std_logic_vector( 3 downto 0);signal sel:std_logic_vector( 2 downto 0);signal t2:std_logic_vector ( 11 downto 0);signal f,count1:std_logic_vector(1 downto 0);begin-分頻模塊pinlvp1:process(clk); -進(jìn)程p1va

27、riable count1:integer range 0 to 49999999;begin if(clkevent and clk=1)then count1:=count1+1;-在clk 的上升沿計(jì)數(shù) if count1=24999999 then clk1s=0; elsif count1=49999999 then clk1s=1; else count1:=0;-產(chǎn)生周期為1s的時(shí)鐘信號(hào)clk500ms=0; elsif count3=24999999 then clk500ms=1;else count3:=0;-產(chǎn)生周期為500ms的時(shí)鐘信號(hào)end if; end if; e

28、nd process p1;-完畢進(jìn)程p1 p2:process(clk);-進(jìn)程p2 variable count2:integer range 0 to 99999; begin if(clkevent and clk=1)then count2:=count2+1;-在clk上升沿計(jì)數(shù) if count2=49999 then clk2ms=0;elsif count2=99999 then clk2ms=1;-產(chǎn)生周期為2ms的掃描信號(hào) end if; end if; end process p2;-完畢進(jìn)程p2 p3:process(clk); -進(jìn)程p3 variable coun

29、t3:integer range 0 to 24999999; begin if(clkevent and clk=1)then count3:=count3+1; -在clk上升沿計(jì)數(shù) if count32499999 then o1=0; else o12499999 then o2=0; else o22499999 then o3=0; else o32499999 then o4=0; else o4=1; -延時(shí)0.5s end if;cant1:=cant1+1; -加一計(jì)數(shù)cant2:=cant2+1; -加一計(jì)數(shù)cant3:=cant3+1; -加一計(jì)數(shù)cant4:=cant

30、4+1; -加一計(jì)數(shù)end if;end process p4;-按鍵控制模塊self1p5:process(ok2,ok3,c1); -ok2和ok3觸發(fā)進(jìn)程 begin if ok2event and ok2=0 then m=not m;-由ok2 的動(dòng)作產(chǎn)生m的電平信號(hào) end if; if m=1 then ck=not(ok3);-把按鍵ok3的脈沖信號(hào)給輸出 else ck=c1;-否那么把正常計(jì)數(shù)時(shí)鐘給輸出 end if;end process p5;-完畢進(jìn)程-六十進(jìn)制模塊cantsixtyp6:process(clk,reset1) beginif(reset1=0)the

31、n ss1=0000;ss2=0000; elsif(clkevent and clk=1)then if (ss1=1001 and ss2=0101) then c2=1;-當(dāng)計(jì)數(shù)到59時(shí)產(chǎn)生進(jìn)位信號(hào) else c2=0;-否那么不產(chǎn)生 end if; if ss1=1001 then ss1=0000; if ss2=0101 then ss2=0000; else ss2=ss2+1; end if; else ss1=ss1+1;-計(jì)數(shù)過(guò)程 end if;end if;end process p6;-完畢進(jìn)程out1=ss1;out2=ss2;-把信號(hào)送輸出-二十四進(jìn)制模塊hourtwentyp7:process(clk,reset2)beginif(reset2=0)then hh1=0000;hh2=0000; elsif(clkevent and clk=1)thenif (hh1=0011 and hh2=0010)and(ss1=1001 and ss2=0101) thenhh2=0000;end if;if (hh1=1001)and(ss2=0101 and ss1=1001) thenhh2=hh2+1;end if;end if;end process p7;p8:process(clk,re

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論