![基于BASYS2的簡易數(shù)字鐘_第1頁](http://file4.renrendoc.com/view/e1cceca0a04c5746f48e333a8e7f23c0/e1cceca0a04c5746f48e333a8e7f23c01.gif)
![基于BASYS2的簡易數(shù)字鐘_第2頁](http://file4.renrendoc.com/view/e1cceca0a04c5746f48e333a8e7f23c0/e1cceca0a04c5746f48e333a8e7f23c02.gif)
![基于BASYS2的簡易數(shù)字鐘_第3頁](http://file4.renrendoc.com/view/e1cceca0a04c5746f48e333a8e7f23c0/e1cceca0a04c5746f48e333a8e7f23c03.gif)
![基于BASYS2的簡易數(shù)字鐘_第4頁](http://file4.renrendoc.com/view/e1cceca0a04c5746f48e333a8e7f23c0/e1cceca0a04c5746f48e333a8e7f23c04.gif)
![基于BASYS2的簡易數(shù)字鐘_第5頁](http://file4.renrendoc.com/view/e1cceca0a04c5746f48e333a8e7f23c0/e1cceca0a04c5746f48e333a8e7f23c05.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
../***********************************verilog*************************************/moduleclock_final(clk,clr,switch,ad,adj,o_seg,a); inputclk,clr,switch,ad; input[3:0]adj;// output[2:0]led;//led燈 output[6:0]o_seg;//7段數(shù)碼管 output[3:0]a;//掃描輸出 reg[6:0]segs;//數(shù)碼管存放器 reg[3:0]a; reg[15:0]temp;//顯示過程的中間變量 wire[23:0]t;//走時模式和校時模式臨時變量 wireen0,enp1,enp2,enp3,enp4,enp5,cp1hz,cp,out_500hz;//switch-N3轉換信號分兩個屏一個是小時/分鐘,一個是分鐘/秒//clr-E2清零信號//adj[3]控制小時的十位設置//adj[2]控制小時的個位設置//adj[1]控制分鐘的十位設置//adj[0]控制分鐘的個位設置 initialbegin a=4'b1110; end//初始化 assign cp=cp1hz,//判斷ad是否等于1,如果等于,cp就輸出cp10hz否那么就輸出cp1hz, en0=(~ad)|(switch&adj[0]), enp1=~ad"(t[3:0]==4'd9):(adj[1]&switch), enp2=~ad"(t[7:4]==4'd5)&(t[3:0]==4'd9):(adj[0]&switch==0), enp3=~ad"(enp2&(t[11:8]==4'd9)):(adj[1]&switch==0), enp4=~ad"(enp3&(t[15:12]==4'd5)):(adj[2]&switch==0), enp5=~ad"(enp4&((t[19:16]==4'd9)|(t[23:20]==4'b0010&t[19:16]==4'd3))):(adj[3]&switch==0), o_seg=segs;in50MHz_out1Hzu0(clk,cp1hz);//輸出頻率1HZ in50MHz_out_8MHzu7(clk,out_500hz);//輸出500HZ counter10u1(en0,clr,cp,t[3:0]);//second個位計數(shù) counter6u2(enp1,clr,cp,t[7:4]);//second十位計數(shù) counter10u3(enp2,clr,cp,t[11:8]);//minutes個位計數(shù) counter6u4(enp3,clr,cp,t[15:12]);//minutes十位計數(shù) counter10_hu5(enp4,clr,cp,t[19:16],t[23:20]);//hours個位計數(shù) counter3u6(enp5,clr,cp,t[23:20]);//hours十位計數(shù)// //// always(ad)begin//顯示模式選擇// if((~ad))begintemp[15:0]<=t1[15:0];temp[31:16]<=t1[23:8];end// elsebegintemp[15:0]<=t;temp[31:16]<=t[23:8];end// end always(posedgeclk) begin if(switch==1'b0) temp<=t[23:8]; elseif(switch==1'b1) temp<=t[15:0]; endalways(posedgeout_500hz) begin if(a==4'b1110) a<=4'b1101;//M13 elseif(a==4'b1101) a<=4'b1011;//J12 elseif(a==4'b1011) a<=4'b0111;//F12 else a<=4'b1110;//K14endalways(posedgeclk) //數(shù)碼管顯示譯碼if(switch==1'b0) begin if(a==4'b1110)//K14begin case(temp[3:0]) 4'd0:segs<=7'b1000000;//0 4'd1:segs<=7'b1111001;//1 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; 4'd6:segs<=7'b0000010; 4'd7:segs<=7'b1111000; 4'd8:segs<=7'b0000000; 4'd9:segs<=7'b0010000;//9 defaultsegs<=7'b1111111; endcase end elseif(a==4'b1101)//M13 begin case(temp[7:4]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; defaultsegs<=7'b1111111; endcaseend elseif(a==4'b1011) begin case(temp[11:8])//hours個位 4'h0:segs<=7'b1000000; 4'h1:segs<=7'b1111001; 4'h2:segs<=7'b0100100; 4'h3:segs<=7'b0110000; 4'h4:segs<=7'b0011001; 4'h5:segs<=7'b0010010; 4'h6:segs<=7'b0000010; 4'h7:segs<=7'b1111000; 4'h8:segs<=7'b0000000; 4'h9:segs<=7'b0010000; 4'ha:segs<=7'b0001000; defaultsegs<=7'b1111111; endcase end elseif(a==4'b0111)begin case(temp[15:12])//hours十位 4'h0:segs<=7'b1000000; 4'h1:segs<=7'b1111001; 4'h2:segs<=7'b0100100; defaultsegs<=7'b1111111; endcaseendendelseif(switch==1)begin if(a==4'b1110) begin case(temp[3:0]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; 4'd6:segs<=7'b0000010; 4'd7:segs<=7'b1111000; 4'd8:segs<=7'b0000000; 4'd9:segs<=7'b0010000; defaultsegs<=7'b1111111; endcase end elseif(a==4'b1101) begin case(temp[7:4]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; // 4'd6:segs<=7'b0000010; // 4'd7:segs<=7'b1111000; // 4'd8:segs<=7'b0000000; // 4'd9:segs<=7'b0010000; defaultsegs<=7'b1111111; endcase endelseif(a==4'b1011) begin case(temp[11:8]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; 4'd6:segs<=7'b0000010; 4'd7:segs<=7'b1111000; 4'd8:segs<=7'b0000000; 4'd9:segs<=7'b0010000; defaultsegs<=7'b1111111; endcase end elseif(a==4'b0111) begin case(temp[15:12]) 4'd0:segs<=7'b1000000; 4'd1:segs<=7'b1111001; 4'd2:segs<=7'b0100100; 4'd3:segs<=7'b0110000; 4'd4:segs<=7'b0011001; 4'd5:segs<=7'b0010010; defaultsegs<=7'b1111111;endcase endend endmodule/***************分頻模塊***********************************************///分頻模塊1Hz modulein50MHz_out1Hz(in_50MHz,out_1Hz); inputin_50MHz; outputout_1Hz; regout_1Hz; reg[31:0]t;//usettocount always(posedgein_50MHz) beginif(t<32'd24999999)//計數(shù)到24999999 begin t<=t+1'B1; end elsebegint<=32'b0; out_1Hz<=~out_1Hz;//頻率為1HZ end end endmodule modulein50MHz_out_8MHz(in_50MHz,out_500hz); inputin_50MHz; outputout_500hz; regout_500hz; reg[31:0]t;//usettocount always(posedgein_50MHz) beginif(t<32'd50000)// begin t<=t+1'B1; end elsebegint<=32'b0; out_500hz<=~out_500hz;//頻率為1HZ end end endmodule//counter10(0~9) modulecounter10(en,clr,clk,q); inputen,clr,clk; output[3:0]q; reg[3:0]q; always(posedgeclk) begin if(clr)q<=4'd0;//clr=0時,清零 elseif(~en)q<=q;//EN=0,暫停計數(shù) elseif(q==4'b1001)q<=4'b0000; elseq<=q+1;//計數(shù)器加1 end endmodule//counter10〔時針個位〕 modulecounter10_h(en,clr,clk,q,p); inputen,clr,clk; input[3:0]p; output[3:0]q; reg[3:0]q; always(posedgeclk) begin if(clr)q<=4'd0;//clr=0時,清零 elseif(~en)q<=q;//EN=0,暫停計數(shù) elseif(p==4'b0010&q==4'b0011)q<=4'b0000; elseif((q==4'b1001)&~(p==4'b0010))q<=4'b0000; elseq<=q+1;//計數(shù)器加1 end endmodule/*****************計數(shù)模塊********************************************///counter6.v(0~5) modulecounter6(en,clr,clk,q); inputen,clr,clk; output[3:0]q; reg[3:0]q; always(posedgeclk) begin if(clr)q<=4'b0000;//clr=0,清零 elseif(~en)q<=q;//EN=0,暫停計數(shù) elseif(q==4'b0101)q<=4'b0000; elseq<=q+1'b1;//計數(shù)器增1 end endmodule//counter3(0~2) modulecounter3(en,ncr,clk,q); inputen,ncr,clk; output[3:0]q; reg[3:0]q; always(posedgeclk) begin if(ncr)q<=4'b0000;//NCR=0,同步清零 elseif(en==0)q<=q;//EN=0,暫停計數(shù) elseif(q==4'd2) q<=4'b0000; elseq<=q+1'b1;//計數(shù)器增1 end Endmodule/***********************************ucf***************************************/NET"clk" LOC=B8|IOSTANDARD="LVCMOS33";NET"ad" LOC=G12|IOSTANDARD="LVCMOS33";NET"switch" LOC=N3|IOSTANDARD="LVCMOS33";NET"clr" LOC=E2|IOSTANDARD="LVCMOS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年按摩椅智能健康提醒企業(yè)制定與實施新質生產力戰(zhàn)略研究報告
- 2025年導流板項目投資可行性研究分析報告
- 2025年速干墨水行業(yè)深度研究分析報告
- 2025年電視機電子元件行業(yè)深度研究分析報告
- 2025年中國車輛集裝箱輻射成像檢查系統(tǒng)行業(yè)發(fā)展?jié)摿︻A測及投資策略研究報告
- 花光條行業(yè)深度研究報告
- 2025年高強度瓦楞原紙項目可行性研究報告
- 2025年中國包裝盒專用鉚釘機行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 河南省某有限公司10萬頭豬場擴建項目可行性研究報告
- 2025年度酒水廣告投放合同示范范本
- 福建省公路水運工程試驗檢測費用參考指標
- 2024-2030年中國化妝鏡行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 麻風病防治知識培訓課件
- SNT 1961.11-2013 出口食品過敏原成分檢測 第11部分:實時熒光PCR方法檢測麩質成分
- 員工安全健康手冊
- 華為客服制度
- 2024年湖南高速鐵路職業(yè)技術學院單招職業(yè)適應性測試題庫及答案1套
- 醫(yī)美面部抗衰老注射項目培訓課件
- 2024-2029年中國限幅器芯片行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 新產品研發(fā)工作總結匯報
- swagelok管接頭安裝培訓教程
評論
0/150
提交評論