此次試驗為我們的一次課程練習,僅供參考。
所用硬體為老師基於maxll系列emp240t100c5晶元設計的電路板,包含振盪器、64個發光二極體、按鈕,4個七段解碼顯示器等相關器件。要求編寫程式完成電子鐘功能。
程式介面:
pin_50, pin_51,未用。
cp,振盪器脈衝輸入。rst,ch,cm,三個按鈕 這裡設計為 復位 校時 校分。hc,未用。
wire [7:0] sh,sl,用於控制60個發光二極體顯示秒針(硬體上為8×8的行列矩陣)。
wire [3:0] w,用於選擇顯示4個七段解碼顯示器(每次只亮乙個顯示器)。
wire [7:0] ddo,控制七段解碼顯示器顯示的數字。
引腳連線:
主模組程式:
module clk
( input pin_50, pin_51,
input cp,rst,ch,cm,hc,
output wire [7:0] sh,sl,
output wire [3:0] w,
output wire [7:0] ddo
);wire sp,mp,hp,dp; //秒脈衝,分脈衝,時脈衝,天脈衝。
wire [14:0]q; //振盪器計數,所用振盪器為32768hz。
wire [5:0]s; //秒計數。
wire [5:0]m; //分計數。
wire [3:0]h; //時計數。
wire [6:0] hhdo,hldo,mhdo,mldo; //4個七段解碼顯示器訊號。
//從振盪器脈衝開始依此分頻得到秒、分、時。
pulse#(15,32768) secp(cp,rst,1,0,sp,q);
pulse#(6,60) minp(sp,rst,1,0,mp,s);
pulse#(6,60) hourp(mp,rst,cm,q[13],hp,m);
pulse#(4,12) dayp(hp,rst,ch,q[13],dp,h);
//將分與時轉換為4片七段解碼器訊號。
led_7seg#(1) hh(w[3],cp,h/10,hhdo);
led_7seg#(4) hl(w[2],cp,h%10,hldo);
led_7seg#(3) mh(w[1],cp,m/10,mhdo);
led_7seg#(4) ml(w[0],cp,m%10,mldo);
//根據秒數s置sh、sl接通相應的發光二極體。
assign sh=8'b00000001<
assign sl=~(8'b00000001<
//按合適頻率依此顯示各個七段解碼顯示器。
assign w=4'b0001<
assign ddo=;
endmodule
分頻模組:
實現高頻脈衝分頻,用於得到秒分時。
module pulse
#( parameter w, //暫存器位數
parameter n //進製數)(
input op, //源脈衝
input rs, //復位脈衝
input rv, //校時脈衝
input sp, //秒脈衝
output reg gp, //目的脈衝
output reg[w-1:0]r //源脈衝計數
);wire tp;
assign tp=op|(~rv&sp);
always @(posedge tp or negedge rs)
begin
if(~rs)
begin
r<=0;
endelse
begin
if(r七段解碼器訊號轉換模組:
實現個位數七段解碼器訊號的輸出。
module led_7seg
#( parameter n //所表示的個位數最大所需位數)(
input w, //片選訊號
input op, //振盪器脈衝
input [n-1:0]num, //目標個位數
output [6:0]line //該數的七段解碼器訊號
);reg [6:0]sig;
always @(posedge op)
case (num)
4'd0:sig<=7'b0111111;// 1111110;
4'd1:sig<=7'b0000110;// 0110000;
4'd2:sig<=7'b1011011;// 1101101;
4'd3:sig<=7'b1001111;// 1111001;
4'd4:sig<=7'b1100110;// 0110011;
4'd5:sig<=7'b1101101;// 1011011;
4'd6:sig<=7'b1111101;// 1011111;
4'd7:sig<=7'b0000111;// 1110000;
4'd8:sig<=7'b1111111;// 1111111;
4'd9:sig<=7'b1101111;// 1111011;
default:sig<=7'b0;
endcase
assign line=&};
endmodule
編譯邏輯**:
主要部分電路圖(老師設計繪製):
最終實現12小時制電子鐘,包含復位校時功能。
FPGA數字電子鐘
1.實驗內容 1 整體功能 數字電子鐘應能以秒為最小單位計時,同時用數字直觀的顯示當前時 分 秒。2 系統結構 數字電子鐘的系統結構框圖如圖7 1 1所示。圖中秒訊號產生電路產生1hz的標準計時訊號,計時電路記錄當前的時 分 秒,數字顯示以數字的方式顯示當前時間,報時電路用於整點報時,時分調整電路用...
電子鐘延時的實現
可以發現這個 相當簡潔,1 show函式,把當前時間值,比如08 10 15把上面這些數字和 分別送到緩衝區。2 display,就是把緩衝區中的值,動態顯示到各自的數碼管中。3 reflashtime,這個函式可以通過second的增加來重新整理當前時間值。在2與3之間就是1秒的延時。如何實現對電...
用C C 寫的簡易電子鐘
先來看看簡易電子鐘的效果圖 程式所包含的函式如下表所示 函式名輸入 輸出main無無 numdisplay num,x,y 無setposition x,y無 separatenum numnumgroup dotdisplay x,y無 整個程式都不是特別難,下面就直接上流程圖和 了 的dev c...