原理 1. 計(jì)時(shí)器 24 小時(shí)計(jì)時(shí)器的電路框圖如圖 8.1 所示。 24 小時(shí)計(jì)時(shí)器由 2 個(gè) 60 進(jìn)制加計(jì)數(shù)器和 1 個(gè) 24 進(jìn)制加計(jì)數(shù)器構(gòu)成,輸入 CLK 為 1Hz (秒)的時(shí)鐘,經(jīng)過60 進(jìn)制加計(jì)數(shù)后產(chǎn)生 1 分鐘的進(jìn)位時(shí)鐘信號(hào),再經(jīng)過 60 進(jìn)制加計(jì)數(shù)后產(chǎn)生 1 小時(shí)的進(jìn)位時(shí)鐘信號(hào)送給 24 進(jìn)制加計(jì)數(shù)器進(jìn)行加計(jì)數(shù),當(dāng)加計(jì)數(shù)到達(dá) 23:59:59 后, 再來一個(gè)秒脈沖,產(chǎn)生時(shí)的進(jìn)位輸出。將兩個(gè) 60 進(jìn)制加計(jì)數(shù)器和一個(gè) 24 進(jìn)制加計(jì)數(shù)器的輸 出送數(shù)碼管顯示,得到計(jì)時(shí)器的顯示結(jié)果。其中,秒脈沖由 EDA 實(shí)訓(xùn)儀上的 20MHz 晶振分 頻得到。 2. 倒計(jì)時(shí)器 24 小時(shí)倒計(jì)時(shí)器的電路框圖如圖 8.2 所示。 24 小時(shí)倒計(jì)時(shí)器由 2 個(gè) 60 進(jìn)制減計(jì)數(shù)器和 1 個(gè) 24 進(jìn)制減計(jì)數(shù)器構(gòu)成,輸入 CLK 為 1Hz (秒)的時(shí)鐘,經(jīng)過60 進(jìn)制減計(jì)數(shù)后產(chǎn)生 1 分鐘的借位時(shí)鐘信號(hào),再經(jīng)過 60 進(jìn)制減計(jì)數(shù)后產(chǎn)生 1 小時(shí)的借位時(shí)鐘信號(hào)送給 24 進(jìn)制減計(jì)數(shù)器進(jìn)行減計(jì)數(shù),當(dāng)減計(jì)數(shù)到達(dá) 00:00:00 后, 產(chǎn)生時(shí)的借位輸出,同時(shí) 24 小時(shí)倒計(jì)時(shí)器停止倒計(jì)時(shí),并發(fā)出提醒信號(hào)。將兩個(gè) 60 進(jìn)制減 計(jì)數(shù)器和一個(gè) 24 進(jìn)制減計(jì)數(shù)器的輸出送數(shù)碼管顯示,得到 倒計(jì)時(shí)的顯示結(jié)果。其中,秒脈沖 由 EDA實(shí)訓(xùn)儀上的 20MHz 晶振分頻得到。 三、實(shí)驗(yàn)設(shè)備 ① EDA 實(shí)訓(xùn)儀 1 臺(tái)。 ② 計(jì)算機(jī) 1 臺(tái)(裝有 Quartus II 軟件)。 四、實(shí)驗(yàn)內(nèi)容 1. 計(jì)時(shí)器 在 Quartus II 軟件中,按照實(shí)驗(yàn)原理中 24 小時(shí)計(jì)時(shí)器的電路框圖,用 Verilog HDL 編程 設(shè)計(jì)計(jì)時(shí)器電路,然后進(jìn)行編輯、編譯(綜合)、仿真,引腳的鎖定,并下載到 EDA 實(shí)訓(xùn)儀 中進(jìn)行驗(yàn)證。 注: 用 EDA 實(shí)訓(xùn)儀上的 20MHz 晶振作為計(jì)時(shí)器的時(shí)鐘輸入端,按鍵 S8~S6 分別作為計(jì) 時(shí)器的校時(shí)、校分、校秒輸入端,撥動(dòng)開關(guān) S0 作為計(jì)時(shí)器的清零輸入端,撥動(dòng)開關(guān) S1 作為 計(jì)時(shí)器的暫停輸入端,用數(shù)碼管 SEG5~SEG0 分別作為時(shí)、分、秒的輸出端,用發(fā)光二極管 L0 作為進(jìn)位輸出端 COUT。 2. 倒計(jì)時(shí)器 在 Quartus II 軟件中,按照實(shí)驗(yàn)原理中 24 小時(shí)倒計(jì)時(shí)器的電路框圖,用 Verilog HDL 編 程設(shè)計(jì)倒計(jì)時(shí)器電路,然后進(jìn)行編輯、編譯(綜合)、仿真,引腳的鎖定,并下載到 EDA 實(shí) 訓(xùn)儀中進(jìn)行驗(yàn)證。 注: 用 EDA 實(shí)訓(xùn)儀上的 20MHz 晶振作為倒計(jì)時(shí)器的時(shí)鐘輸入端,按鍵 S8~S6 分別作為 倒計(jì)時(shí)器的校時(shí)、校分、校秒輸入端,撥動(dòng)開關(guān) S0 作為倒計(jì)時(shí)器的復(fù)位輸入端,撥動(dòng)開關(guān) S1 作為倒計(jì)時(shí)器的暫停輸入端,用數(shù)碼管 SEG5~SEG0 分別作為時(shí)、分、秒的輸出端,用發(fā)光二極管 L0 作為借位輸出端 COUT。 五、實(shí)驗(yàn)預(yù)習(xí)要求 ① 復(fù)習(xí)理論課本有關(guān)計(jì)數(shù)器及分頻器的內(nèi)容,并認(rèn)真閱讀實(shí)驗(yàn)指導(dǎo)書,分析、掌握實(shí)驗(yàn)原理,熟悉理論課本中 QuartusII 軟件的使用方法。 ② 按照實(shí)驗(yàn)內(nèi)容的要求,編寫相應(yīng)的實(shí)驗(yàn)程序和畫出相應(yīng)的頂層電路連線圖,寫出相應(yīng)的實(shí)驗(yàn)步驟。 - module cnt60(q,cout,clk,clrn,en,sel,j);
- input clk,clrn,en,sel,j;
- output reg[7:0] q;
- output reg cout;
- always @(posedge clk^j or negedge clrn)
- begin
- if(~clrn) q=0; //清0
- else if(en) //使能
- begin
- if(sel) //加減(加)
- begin
- if(q=='h59) q=0;
- else q=q+1;
- if(q[3:0]=='ha) begin
- q[3:0]=0; q[7:4]=q[7:4]+1; end
- if(q=='h59) cout=1;
- else cout=0;
- end
-
- else //加減(減)
- begin
- if(q[3:0])
- q[3:0]=q[3:0]-1;
- else if(q[3:0]==0)
- begin
- if(q[7:4]!=0)
- begin
- q[3:0]='h9;
- q[7:4]=q[7:4]-1;
- end
- else //00
- begin
- cout=cout-1;
- q='h59;
- end
- end
- end
- end
- end
- endmodule
復(fù)制代碼
24 進(jìn)制加減法計(jì)數(shù)器 - module cent24(q,cout,clk,clrn,en,sel,j);
- input clk,clrn,en,sel,j;
- output reg[7:0] q;
- output reg cout;
- always @(posedge clk^j or negedge clrn)
- begin
- if(~clrn) q=0; //清0
- else if(en) //使能
- begin
- if(sel) //加減(加)
- begin
- if(q=='h23) q=0;
- else q=q+1;
- if(q[3:0]=='ha) begin
- q[3:0]=0; q[7:4]=q[7:4]+1; end
- if(q=='h23) cout=1;
- else cout=0;
- end
-
- else //加減(減)
- begin
- if(q[3:0])
- q[3:0]=q[3:0]-1;
- else if(q[3:0]==0)
- begin
- if(q[7:4]!=0)
- begin
- q[3:0]='h9;
- q[7:4]=q[7:4]-1;
- end
- else //00
- begin
- cout=cout-1;
- q='h23;
- end
- end
- end
- end
- end
- endmodule
復(fù)制代碼
圖8.5 仿真電路圖 引腳鎖定 clk Input PIN_132 3 B3_N0 PIN_132 3.3-V LVTTL (default) 24mA (default) clrn Input PIN_8 1 B1_N0 PIN_8 3.3-V LVTTL (default) 24mA (default) cout Output PIN_115 3 B3_N1 PIN_115 3.3-V LVTTL (default) 24mA (default) en Input PIN_10 1 B1_N0 PIN_10 3.3-V LVTTL (default) 24mA (default) jf Input PIN_13 1 B1_N0 PIN_13 3.3-V LVTTL (default) 24mA (default) jm Input PIN_12 1 B1_N0 PIN_12 3.3-V LVTTL (default) 24mA (default) js Input PIN_14 1 B1_N0 PIN_14 3.3-V LVTTL (default) 24mA (default) qf[7] Output PIN_99 4 B4_N0 PIN_99 3.3-V LVTTL (default) 24mA (default) qf[6] Output PIN_97 4 B4_N0 PIN_97 3.3-V LVTTL (default) 24mA (default) qf[5] Output PIN_96 4 B4_N0 PIN_96 3.3-V LVTTL (default) 24mA (default) qf[4] Output PIN_95 4 B4_N0 PIN_95 3.3-V LVTTL (default) 24mA (default) qf[3] Output PIN_94 4 B4_N0 PIN_94 3.3-V LVTTL (default) 24mA (default) qf[2] Output PIN_92 4 B4_N0 PIN_92 3.3-V LVTTL (default) 24mA (default) qf[1] Output PIN_59 4 B4_N1 PIN_59 3.3-V LVTTL (default) 24mA (default) qf[0] Output PIN_58 4 B4_N1 PIN_58 3.3-V LVTTL (default) 24mA (default) qm[7] Output PIN_57 4 B4_N1 PIN_57 3.3-V LVTTL (default) 24mA (default) qm[6] Output PIN_56 4 B4_N1 PIN_56 3.3-V LVTTL (default) 24mA (default) qm[5] Output PIN_48 1 B1_N1 PIN_48 3.3-V LVTTL (default) 24mA (default) qm[4] Output PIN_47 1 B1_N1 PIN_47 3.3-V LVTTL (default) 24mA (default) qm[3] Output PIN_46 1 B1_N1 PIN_46 3.3-V LVTTL (default) 24mA (default) qm[2] Output PIN_45 1 B1_N1 PIN_45 3.3-V LVTTL (default) 24mA (default) qm[1] Output PIN_44 1 B1_N1 PIN_44 3.3-V LVTTL (default) 24mA (default) qm[0] Output PIN_43 1 B1_N1 PIN_43 3.3-V LVTTL (default) 24mA (default) qs[7] Output PIN_114 3 B3_N1 PIN_114 3.3-V LVTTL (default) 24mA (default) qs[6] Output PIN_113 3 B3_N1 PIN_113 3.3-V LVTTL (default) 24mA (default) qs[5] Output PIN_112 3 B3_N1 PIN_112 3.3-V LVTTL (default) 24mA (default) qs[4] Output PIN_110 3 B3_N1 PIN_110 3.3-V LVTTL (default) 24mA (default) qs[3] Output PIN_104 4 B4_N0 PIN_104 3.3-V LVTTL (default) 24mA (default) qs[2] Output PIN_103 4 B4_N0 PIN_103 3.3-V LVTTL (default) 24mA (default) qs[1] Output PIN_102 4 B4_N0 PIN_102 3.3-V LVTTL (default) 24mA (default) qs[0] Output PIN_101 4 B4_N0 PIN_101 3.3-V LVTTL (default) 24mA (default) sel Input PIN_11 1 B1_N0 PIN_11 3.3-V LVTTL (default) 24mA (default) |