版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 一、實驗任務(wù)2</b></p><p><b> 實驗?zāi)康?</b></p><p><b> 實驗要求2</b></p><p><b> 二、設(shè)計思路2&l
2、t;/b></p><p><b> 硬件部分2</b></p><p><b> 軟件部分3</b></p><p><b> 三、完成情況6</b></p><p><b> 四、總結(jié)與收獲7</b></p><
3、;p><b> 具體分工7</b></p><p><b> 五、完整程序8</b></p><p><b> 一、實驗任務(wù)</b></p><p><b> 實驗?zāi)康?lt;/b></p><p> 深入了解基于EDA工具的復(fù)雜時序邏輯電路
4、的設(shè)計。</p><p> 理解并熟練利用EDA工具進(jìn)行綜合設(shè)計。</p><p> 熟練掌握芯片燒錄的流程及步驟。</p><p> 掌握Verilog HDL 語言的語法規(guī)范及時序電路描述方法。</p><p> 掌握多個數(shù)碼管動態(tài)掃描與鍵盤掃描的顯示原理及設(shè)計方法。</p><p><b>
5、實驗要求</b></p><p> 設(shè)計一個帶鬧鐘功能的24 小時數(shù)字鐘,它包括以下幾個組成部分:</p><p> ?、?顯示屏,由4 個七段數(shù)碼管組成,用于顯示當(dāng)前時間(時:分)或設(shè)置的鬧鐘時間;</p><p> ?、?數(shù)字鍵 ‘0’~‘9’,用于輸入新的時間或新的鬧鐘時間;</p><p> ③ TIME(時間)鍵
6、,用于確定新的時間設(shè)置;</p><p> ?、?ALARM(鬧鐘)鍵,用于確定新的鬧鐘時間設(shè)置,或顯示已設(shè)置的鬧鐘時間;</p><p> ⑤ 揚聲器,在當(dāng)前時鐘時間與鬧鐘時間相同時,發(fā)出蜂鳴聲。</p><p><b> 基本要求</b></p><p> (1) 計時功能:這是本計時器設(shè)計的基本功能,每隔一秒
7、計時一次,并在顯示屏上顯示當(dāng)前時間。</p><p> (2) 鬧鐘功能:如果當(dāng)前時間與設(shè)置的鬧鐘時間相同,則揚聲器發(fā)出蜂鳴聲。</p><p> (3) 設(shè)置新的計時器時間:用戶用數(shù)字鍵‘0’~‘9’輸入新的時間,然后按"TIME"鍵確認(rèn)。</p><p><b> 發(fā)揮部分</b></p><p
8、> (1) 設(shè)置新的鬧鐘時間:用戶用數(shù)字鍵“0”~“9”輸入新的時間,然后按“ALARM”鍵確認(rèn)。</p><p> (2) 顯示所設(shè)置的鬧鐘時間:在正常計時顯示狀態(tài)下,用戶直接按下“ALARM”鍵,則已設(shè)置的鬧鐘時間將顯示在顯示屏上。</p><p><b> 二、設(shè)計思路</b></p><p><b> 硬件部分&
9、lt;/b></p><p> 本次數(shù)字時鐘的設(shè)計主要在NC-EDA-2000C實驗箱上完成,應(yīng)用的芯片為Altara公司的EP1K10TC100—3芯片。該芯片具有低內(nèi)核電壓、低功耗的特點。芯片內(nèi)門電路高達(dá)1萬門,內(nèi)部使用RAM作電路結(jié)構(gòu),速度高達(dá)幾百MHZ,其輸出可用管腳已全部開放,位于芯片的四周,用戶可以根據(jù)自己的要求和芯片本身的功能自己任意定義管腳。同時為了體現(xiàn)實驗箱的可擴(kuò)展性,在芯片的兩邊各有一
10、個34腳的IDE插口,可以通過數(shù)據(jù)排線與其它應(yīng)用模塊相連接。</p><p> 除了主芯片外,主要包括三大部分:八個數(shù)碼管組成的顯示部分、4×4鍵盤構(gòu)成的按鍵輸入部分。以及其他輸入或輸出部分,如:"TIME"鍵、“ALARM”鍵、時鐘信號、蜂鳴器等。</p><p> 8位7段數(shù)碼管:采用2個進(jìn)口共陰高紅7段數(shù)碼管組成,其連接管腳位選信號在數(shù)碼管的左邊由連
11、接孔SEL0、SEL1、SEL2與其它模塊連接。</p><p> 數(shù)碼管顯示的設(shè)計示意圖如下:</p><p> 八位數(shù)碼管顯示設(shè)計示意圖</p><p> 4×4鍵盤: 4×4鍵盤主要是通過編程實現(xiàn)0~F的輸入,也可以作為一個控制鍵。在其上方的連接孔R1、R2、R3、R4控制橫向4位;C1、C2、C3、C4縱向4位。</p>
12、<p> 鍵盤輸入設(shè)計示意圖如下:</p><p> 4×4鍵盤輸入設(shè)計示意圖</p><p><b> 軟件部分</b></p><p> 軟件主要應(yīng)用軟件quartus,使用Verilog HDL語言來編寫程序。在老師所給的keyscan的基礎(chǔ)上加入計時部分、設(shè)置部分(時間的設(shè)置和鬧鐘的設(shè)置)以及鬧鈴部分。&
13、lt;/p><p><b> 計時部分</b></p><p> always@(posedge clkl) //計時過程</p><p><b> begin</b></p><p> hour<=Hour;minute<=Minute;</p><p&
14、gt; if(reset) begin hour<=0;minute<=0;second<=0;end</p><p><b> else</b></p><p> if(second==59)</p><p> if(minute==59)</p><p> if(hour ==23) be
15、gin second<=0;minute<=0;hour<=0;end</p><p> else begin second<=0;minute<=0;hour<=hour+1;end</p><p> else begin second<=0;minute<=minute+1;end</p><p> else
16、 second<=second+1;</p><p><b> end</b></p><p> 其中,clkl為1Hz的時鐘信號,當(dāng)每遇到一個時鐘信號的上升沿時,秒鐘就加1秒;當(dāng)加到59時,分鐘就加1,秒鐘自動回到0重新計時;當(dāng)分鐘加到59時,時鐘就加1,然后分鐘回到0;當(dāng)計時到23:59:59時,則回到00:00:00再進(jìn)入計時。reset為清零信號,高
17、電平有效。</p><p><b> 設(shè)置部分</b></p><p> always @(posedge clkh)</p><p><b> begin</b></p><p> if(w==1)//設(shè)置時間</p><p> begin Hour=num1*
18、10+num2; Minute=num3*10+num4; end</p><p> else if(p==1) //設(shè)置鬧鐘</p><p> begin Ahour=num1*10+num2; Aminute=num3*10+num4; end</p><p><b> end</b></p><p>
19、將按下的鍵值存在num1、num2、num3、num4中,再通過w和p即所謂的TIME(時間)鍵與ALARM(鬧鐘)鍵將輸入的數(shù)值賦給初始時間或鬧鐘時間。</p><p><b> 鬧鈴部分</b></p><p> always @(posedge clkh)//鬧鐘響</p><p><b> begin</b>
20、</p><p> if((hour==Ahour)&&(minute==Aminute)) ds=1; </p><p> else ds=0;</p><p><b> end</b></p><p> 當(dāng)設(shè)置的鬧鐘時間(時:分)與當(dāng)前的時間(時:分)相等時,則鬧鈴發(fā)出響聲;ds信號可以接在
21、蜂鳴器上或者發(fā)光二極管上。</p><p> 本次設(shè)計的完整程序已附在報告的最后。整體程序編譯無誤。</p><p> 程序中涉及的變量名稱及其對應(yīng)的變量意義:</p><p><b> 引腳配置圖</b></p><p><b> 三、完成情況</b></p><p&g
22、t; 在這次實驗過程中我們完成了24小時數(shù)字時鐘的設(shè)計。時鐘的顯示屏為七段數(shù)碼管。顯示出的時間格式為小時、分鐘、秒鐘(如圖1)。</p><p> 時鐘含有鬧鐘,可以在程序中設(shè)置鬧鐘時間,在實際時間和鬧鐘時間相吻合時蜂鳴器響。圖2中的二極管亮即可說明,在鬧鐘時間可以輸出高電平,該輸出接在蜂鳴器上即可使蜂鳴器響。</p><p> 本次設(shè)計的鬧鐘為響1分鐘自動關(guān)閉。圖3中二極管熄滅。&
23、lt;/p><p><b> 圖1 時間顯示</b></p><p> 圖2 鬧鐘響(體現(xiàn)為發(fā)光二極管發(fā)光)</p><p> 圖3 發(fā)光二極管熄滅(本次設(shè)計的鬧鐘為響1分鐘自動關(guān)閉)</p><p><b> 四、總結(jié)與收獲</b></p><p> 在實驗設(shè)計的過
24、程中,我們首先嘗試了樹上和老師上課時所講的例程,在熟悉軟件和設(shè)計流程后開始了數(shù)字時鐘的設(shè)計。在設(shè)計數(shù)字時鐘時,我們先分設(shè)計出來時鐘的自動計數(shù)顯示,實現(xiàn)了24小時時鐘。之后實驗了4*4鍵盤,實現(xiàn)了鍵盤輸入值的掃描讀取。最后設(shè)計了鬧鐘部分,包括設(shè)置鬧鐘時間和到時間鬧鈴響。</p><p> 我們通過本次實驗深入了解基于EDA工具的復(fù)雜時序邏輯電路的設(shè)計,理解并熟練利用quartus進(jìn)行Verilog HDL語言的設(shè)
25、計。掌握了建立工程項目,編譯調(diào)試程序,下載程序的流程和步驟。在應(yīng)用的過程中掌握了數(shù)碼管和鍵盤掃描的原理和方法。并且對Verilog HDL語言的語法規(guī)則和幾種常用語句有了更深入的理解。實驗過程中通過合作的方式,小組成員積極討論,對不同的語句進(jìn)行了對比,最終確定了本次實驗的完整程序。</p><p> 這次完成的數(shù)字時鐘只是EDA實驗箱中可以實現(xiàn)的眾多功能之一,我們也認(rèn)識到Verilog HDL語言可以實現(xiàn)的設(shè)計
26、還有很多,本次實驗激發(fā)了我們對Verilog HDL語言的興趣,也讓我們認(rèn)識到課堂的學(xué)習(xí)是有限的,想更加深入學(xué)習(xí)Verilog HDL語言,還要在今后的學(xué)習(xí)中多多自學(xué),勤加練習(xí)。</p><p><b> 五、完整程序</b></p><p> module zonghe (clkl,clkh,reset,q,w,p,kr,kc,a,b,c,d,e,f,g,sa,
27、sb,sc,ds);</p><p> input clkl,clkh,reset; //計數(shù)時鐘脈沖、掃描頻率脈沖與復(fù)位信號</p><p> input q,w,p; //啟動設(shè)置的控制信號、設(shè)置時間的控制信號及設(shè)置鬧鐘的控制信號 </p><p> inout [3:0]kr; //4*4鍵盤的行輸入/輸出信號&
28、lt;/p><p> inout [3:0]kc; //4*4鍵盤的列輸入/輸出信號</p><p> output a,b,c,d,e,f,g,sa,sb,sc,ds; //LED的7個片選信號與3個位選信號</p><p> reg a,b,c,d,e,f,g,sa,sb,sc,ds;</p><p> reg [3
29、:0]kr,kc;</p><p> reg [6:0] display ; </p><p> reg [2:0] dcount,kcount; </p><p> reg [3:0]keyr,keyc; </p><p> reg kflag1,kflag2; </p><
30、p> reg [6:0] buff7 ;</p><p> reg [3:0] shiwei1,gewei1,shiwei2,gewei2,shiwei3,gewei3;</p><p> reg[5:0] hour,minute,second,Ahour,Aminute,Hour,Minute; //儲存當(dāng)前時間的時分秒、鬧鐘的時分及設(shè)置的時間的時分</p>
31、<p> always@(posedge clkh) //累加兩個計數(shù)值</p><p> begin </p><p> dcount<=dcount+1; </p><p> kcount<=kcount+1;</p><p><b> end</b></p
32、><p> always @(posedge clkh) //掃描鍵盤 </p><p> begin </p><p> if(kcount==0) </p><p><b> begin</b></p><p> kr<=4'b1111;</p>
33、<p> kc<=4'b0000;</p><p><b> end</b></p><p> else if(kcount==1) </p><p><b> begin</b></p><p> keyr<=kr; </p><p&
34、gt; kr<=4'bZZZZ;</p><p><b> end</b></p><p> else if(kcount==2) </p><p><b> begin</b></p><p> kr<=4'b0000;</p><p>
35、; kc<=4'b1111;</p><p><b> end</b></p><p> else if(kcount==3) </p><p><b> begin</b></p><p><b> keyc<=kc;</b></p>
36、<p> kc<=4'bZZZZ;</p><p><b> end</b></p><p><b> end</b></p><p> always@(posedge clkh) //改變鍵的標(biāo)志位 </p><p><b> begin<
37、/b></p><p> if(kcount==4 & keyr==4'b1111) </p><p> kflag1<=0;</p><p> else if(kcount==4) </p><p> kflag1<=1; </p><p> kfla
38、g2<=kflag1;</p><p><b> end </b></p><p> always@(posedge clkh) // 獲取相應(yīng)按鍵按下的結(jié)果</p><p> begin </p><p> if(kcount==5) </p><p> i
39、f(keyr==4'b1110)</p><p> case (keyc) </p><p> 4'b1110:buff7<=7'b0111111; //在LED上顯示0</p><p> 4'b1101:buff7<=7'b0000110; //在LED上顯示1</p><p>
40、 4'b1011:buff7<=7'b1011011; //在LED上顯示2</p><p> 4'b0111:buff7<=7'b1001111; //在LED上顯示3</p><p> default :buff7<=buff7; //無變化</p><p><b> endca
41、se</b></p><p> else if (keyr==4'b1101) </p><p> case (keyc)</p><p> 4'b1110:buff7<=7'b1100110; //在LED上顯示4</p><p> 4'b1101:buff7<=7'
42、b1101101; //在LED上顯示5</p><p> 4'b1011:buff7<=7'b1111101; //在LED上顯示6</p><p> 4'b0111:buff7<=7'b0000111; //在LED上顯示7</p><p> default :buff7<=buff7; //
43、 無變化</p><p><b> endcase</b></p><p> else if(keyr==4'b1011) </p><p> case (keyc) </p><p> 4'b1110:buff7<=7'b1111111; // 在LED上顯示8</p>
44、<p> 4'b1101:buff7<=7'b1101111; // 在LED上顯示9</p><p> 4'b1011:buff7<=7'b1110111; //在LED上顯示a</p><p> 4'b0111:buff7<=7'b1111100; //在LED上顯示b</p>&l
45、t;p> default :buff7<=buff7; // 無變化</p><p><b> endcase</b></p><p> else if(keyr==4'b0111)</p><p> case (keyc) </p><p> 4'b1110:buff7&
46、lt;=7'b0111001; //在LED上顯示c</p><p> 4'b1101:buff7<=7'b1011110; //在LED上顯示d</p><p> 4'b1011:buff7<=7'b1111001; //在LED上顯示e</p><p> 4'b0111:buff7<=
47、7'b1110001; // 在LED上顯示f</p><p> default:buff7<=buff7; //無變化</p><p> endcase </p><p><b> end</b></p><p> always@(posedge clkh
48、) //顯示過程</p><p> begin </p><p> sa<=dcount[0]; //將dcount賦給LED的三個片選信號</p><p> sb<=dcount[1];</p><p> sc<=dcount[2];</p><p> shiwei1=h
49、our/10;</p><p> gewei1=hour%10;</p><p> shiwei2=minute/10;</p><p> gewei2=minute%10;</p><p> shiwei3=second/10;</p><p> gewei3=second%10;</p>&
50、lt;p> if(dcount==3'b111)//判斷位選dcount的值,并將此位上的值輸出到數(shù)碼管</p><p> case(shiwei1) //在第一數(shù)碼管上顯示時鐘的十位</p><p> 4'b0000: display <= 7'b0111_111;</p><p> 4&
51、#39;b0001: display<= 7'b0000_110;</p><p> 4'b0010: display <= 7'b1011_011;</p><p> 4'b0011: display <= 7'b1001_111;</p><p> 4'b010
52、0: display <= 7'b1100_110;</p><p> 4'b0101: display <= 7'b1101_101;</p><p> 4'b0110: display <= 7'b1111_101;</p><p> 4'b0111:
53、 display <= 7'b0000_111;</p><p> 4'b1000: display <= 7'b1111_111;</p><p> 4'b1001: display <= 7'b1101_111; </p><p> default: display
54、<= 7'b0000_000;</p><p><b> endcase</b></p><p> if(dcount==3'b000) //在第二個數(shù)碼管上顯示時鐘的個位</p><p> case(gewei1)</p><p> 4'b0000: disp
55、lay <= 7'b0111_111;</p><p> 4'b0001: display <= 7'b0000_110;</p><p> 4'b0010: display <= 7'b1011_011;</p><p> 4'b0011: display <
56、;= 7'b1001_111;</p><p> 4'b0100: display <= 7'b1100_110;</p><p> 4'b0101: display <= 7'b1101_101;</p><p> 4'b0110: display <= 7
57、9;b1111_101;</p><p> 4'b0111: display <= 7'b0000_111;</p><p> 4'b1000: display <= 7'b1111_111;</p><p> 4'b1001: display <= 7'b1101
58、_111; </p><p> default: display <= 7'b0000_000;</p><p><b> endcase</b></p><p> if(dcount==3'b001) //在第三個數(shù)碼管上顯示分鐘的十位</p><p> case(sh
59、iwei2)</p><p> 4'b0000: display <= 7'b0111_111;</p><p> 4'b0001: display <= 7'b0000_110;</p><p> 4'b0010: display <= 7'b1011_011;&
60、lt;/p><p> 4'b0011: display <= 7'b1001_111;</p><p> 4'b0100: display <= 7'b1100_110;</p><p> 4'b0101: display <= 7'b1101_101;</p&g
61、t;<p> 4'b0110: display <= 7'b1111_101;</p><p> 4'b0111: display <= 7'b0000_111;</p><p> 4'b1000: display <= 7'b1111_111;</p><
62、;p> 4'b1001: display <= 7'b1101_111; </p><p> default: display <= 7'b0000_000;</p><p><b> endcase</b></p><p> if(dcount==3'b010)
63、 //在第四個數(shù)碼管上顯示分鐘的個位</p><p> case(gewei2)</p><p> 4'b0000: display <= 7'b0111_111;</p><p> 4'b0001: display <= 7'b0000_110;</p><p> 4
64、'b0010: display <= 7'b1011_011;</p><p> 4'b0011: display <= 7'b1001_111;</p><p> 4'b0100: display <= 7'b1100_110;</p><p> 4'b0
65、101: display <= 7'b1101_101;</p><p> 4'b0110: display <= 7'b1111_101;</p><p> 4'b0111: display <= 7'b0000_111;</p><p> 4'b1000:
66、 display <= 7'b1111_111;</p><p> 4'b1001: display <= 7'b1101_111; </p><p> default: display <= 7'b0000_000;</p><p><b> endcase</b&g
67、t;</p><p> if(dcount==3'b011) //在第五個數(shù)碼管上顯示秒鐘的十位</p><p> case(shiwei3)</p><p> 4'b0000: display <= 7'b0111_111;</p><p> 4'b0001: disp
68、lay <= 7'b0000_110;</p><p> 4'b0010: display <= 7'b1011_011;</p><p> 4'b0011: display <= 7'b1001_111;</p><p> 4'b0100: display <
69、;= 7'b1100_110;</p><p> 4'b0101: display <= 7'b1101_101;</p><p> 4'b0110: display <= 7'b1111_101;</p><p> 4'b0111: display <= 7
70、9;b0000_111;</p><p> 4'b1000: display <= 7'b1111_111;</p><p> 4'b1001: display <= 7'b1101_111; </p><p> default: display <= 7'b0000_0
71、00;</p><p><b> endcase</b></p><p> if(dcount==3'b100) //在第六個數(shù)碼管上顯示秒鐘的個位</p><p> case(gewei3)</p><p> 4'b0000: display <= 7'b0111
72、_111;</p><p> 4'b0001: display <= 7'b0000_110;</p><p> 4'b0010: display <= 7'b1011_011;</p><p> 4'b0011: display <= 7'b1001_111;&l
73、t;/p><p> 4'b0100: display <= 7'b1100_110;</p><p> 4'b0101: display <= 7'b1101_101;</p><p> 4'b0110: display <= 7'b1111_101;</p>
74、;<p> 4'b0111: display <= 7'b0000_111;</p><p> 4'b1000: display <= 7'b1111_111;</p><p> 4'b1001: display <= 7'b1101_111; </p><
75、;p> default: display <= 7'b0000_000;</p><p><b> endcase </b></p><p> if(dcount==3'b101)display <=7'b1000_000; //在第七個數(shù)碼管上顯示“—”</p><p>
76、 if(dcount==3'b110)display <=buff7; //在第八個數(shù)碼管上顯示按下的鍵值</p><p><b> end</b></p><p> always @(posedge clkh) //將display中存的值賦給LED的七個片選信號 </p><p> begin
77、 </p><p> a<=display[0];</p><p> b<=display[1];</p><p> c<=display[2];</p><p> d<=display[3]; </p><p> e<=display[4];</p><
78、;p> f<=display[5];</p><p> g<=display[6];</p><p><b> end </b></p><p> always@(posedge clkl) //計時過程 clkl的頻率為1Hz</p><p><b> begin&l
79、t;/b></p><p> hour<=Hour;minute<=Minute; //將設(shè)置的時間(時、分)賦給hour和minute</p><p> if(reset) </p><p> begin hour<=0;minute<=0;second<=0; end //當(dāng)reset為1時,將時間清零即為00:
80、00:00</p><p> else //正常計時</p><p> if(second==59)</p><p> if(minute==59)</p><p> if(hour ==23) </p><p> begin second<=0;minute<=0;hour<=0;
81、end</p><p> else begin second<=0;minute<=0;hour<=hour+1;end</p><p> else begin second<=0;minute<=minute+1;end</p><p> else second<=second+1;</p><p>
82、;<b> end</b></p><p> integer i; //記錄按鍵按下的次數(shù)</p><p> reg [3:0]num1,num2,num3,num4; //儲存按鍵的鍵值</p><p> always @(posedge clkh)//儲存按下的鍵值</p><p><b&
83、gt; begin</b></p><p> if(q==1)//啟動設(shè)置</p><p><b> begin</b></p><p><b> i=0;</b></p><p> if(keyc!=4'b1111) i=i+1; //當(dāng)有鍵按下時,i自動加1<
84、;/p><p> if(i==1) //將第一個按下的按鍵值存入num1</p><p><b> begin</b></p><p> case ({keyr,keyc}) </p><p> 4'b1110_1110:num1=0; </p><p&
85、gt; 4'b1110_1101:num1=1; </p><p> 4'b1110_1011:num1=2; </p><p> 4'b1110_0111:num1=3; </p><p> 4'b1101_1110:num1=4; </p><p> 4'b1101_1101:nu
86、m1=5; </p><p> 4'b1101_1011:num1=6; </p><p> 4'b1101_0111:num1=7; </p><p> 4'b1011_1110:num1=8; </p><p> 4'b1011_1101:num1=9; </p><
87、p> default:num1=num1; </p><p><b> endcase</b></p><p><b> end</b></p><p> if(i==2) //將第二個按下的按鍵值存入num2</p><p><b> begi
88、n</b></p><p> case ({keyr,keyc}) </p><p> 4'b1110_1110:num2=0; </p><p> 4'b1110_1101:num2=1; </p><p> 4'b1110_1011:num2=2; </p><p>
89、; 4'b1110_0111:num2=3; </p><p> 4'b1101_1110:num2=4; </p><p> 4'b1101_1101:num2=5; </p><p> 4'b1101_1011:num2=6; </p><p> 4'b1101_0111:num2
90、=7; </p><p> 4'b1011_1110:num2=8; </p><p> 4'b1011_1101:num2=9; </p><p> default:num2=num2; </p><p><b> endcase</b></p><p><
91、b> end</b></p><p> if(i==3) //將第三個按下的按鍵值存入num3</p><p><b> begin</b></p><p> case ({keyr,keyc}) </p><p> 4'b1110_1110:num3=0;
92、</p><p> 4'b1110_1101:num3=1; </p><p> 4'b1110_1011:num3=2; </p><p> 4'b1110_0111:num3=3; </p><p> 4'b1101_1110:num3=4; </p><p> 4
93、'b1101_1101:num3=5; </p><p> 4'b1101_1011:num3=6; </p><p> 4'b1101_0111:num3=7; </p><p> 4'b1011_1110:num3=8; </p><p> 4'b1011_1101:num3=9;
94、 </p><p> default:num3=num3; </p><p><b> endcase</b></p><p><b> end</b></p><p> if(i==4) //將第四個按下的按鍵值存入num4</p><p>
95、;<b> begin</b></p><p> case ({keyr,keyc}) </p><p> 4'b1110_1110:num4=0; </p><p> 4'b1110_1101:num4=1; </p><p> 4'b1110_1011:num4=2; <
96、/p><p> 4'b1110_0111:num4=3; </p><p> 4'b1101_1110:num4=4; </p><p> 4'b1101_1101:num4=5; </p><p> 4'b1101_1011:num4=6; </p><p> 4'
97、;b1101_0111:num4=7; </p><p> 4'b1011_1110:num4=8; </p><p> 4'b1011_1101:num4=9; </p><p> default:num4=num4; </p><p><b> endcase</b></p>
98、;<p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p> always @(posedge clkh) //設(shè)置部分</p><p><b> begin<
99、;/b></p><p> if(w==1)//設(shè)置時間</p><p> begin Hour=num1*10+num2; Minute=num3*10+num4; end</p><p> else if(p==1) //設(shè)置鬧鐘時間</p><p> begin Ahour=num1*10+num2; Aminute
100、=num3*10+num4; end</p><p><b> end</b></p><p> always @(posedge clkh)//鬧鐘響</p><p><b> begin</b></p><p> if((hour==Ahour)&&(minute==Am
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda數(shù)字時鐘課程設(shè)計
- eda數(shù)字時鐘課程設(shè)計
- eda課程設(shè)計---數(shù)字時鐘(鬧鐘)
- eda課程設(shè)計——數(shù)字時鐘設(shè)計
- eda課程設(shè)計--數(shù)字時鐘的設(shè)計
- eda技術(shù)與veriloghdl課程論文
- eda課程設(shè)計---多功能數(shù)字時鐘報告
- eda時鐘設(shè)計
- eda_課程設(shè)計報告--數(shù)字時鐘設(shè)計
- eda課程設(shè)計報告---數(shù)字時鐘倒計時
- eda課程設(shè)計---關(guān)于多功能數(shù)字時鐘的設(shè)計
- eda課程設(shè)計——基于vhdl語言的數(shù)字時鐘設(shè)計
- eda課程設(shè)計報告(多功能數(shù)字時鐘的設(shè)計)
- veriloghdl課設(shè)(數(shù)字鐘)
- 基于eda的多功能數(shù)字時鐘的設(shè)計與仿真【開題報告】
- eda課程設(shè)計---電子時鐘
- eda課程設(shè)計--電子時鐘
- 數(shù)字時鐘
- veriloghdl高級數(shù)字設(shè)計課后答案michaeldciletti
- 數(shù)字時鐘54706
評論
0/150
提交評論