• 方案介紹
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

基于FPGA的多功能數(shù)字鐘設計Verilog代碼ISE開發(fā)板

7小時前
193
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

名稱:基于FPGA的多功能數(shù)字鐘設計Verilog代碼ISE開發(fā)板

軟件:ISE

語言:Verilog

代碼功能:

1.能顯示時分秒,最大可顯示23:59:59,時間可調(diào),可以復位。

2.可以定時鬧鐘,鬧鐘有鈴聲。

3.數(shù)字鐘能實現(xiàn)整點報時功能。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

開發(fā)板.jpg

部分代碼展示:

module?display(
input?clk,
input?[3:0]?state_mode,////當前模式,4'd0:計時,4'd1設置時間?,4'd2顯示鬧鐘時間,4'd3設置鬧鐘時間
input?[7:0]?alarm_hour_time,//鬧鐘時
???input?[7:0]?alarm_minute_time,//鬧鐘分
???input?[7:0]?alarm_second_time,//鬧鐘秒
input?[7:0]?hour_time,//時
input?[7:0]?minute_time,//分
input?[7:0]?second_time,//秒
output?reg?[7:0]?bit_select,//數(shù)碼管位選
???output?reg?[7:0]?seg_select//數(shù)碼管段選
);
reg?[3:0]display?=?4'b0000;?
reg?[31:0]select_num?=32'd0;
reg?[2:0]geshu?=?3'd0;
reg?[7:0]?display_hour_time;//顯示時
reg?[7:0]?display_minute_time;//顯示分
reg?[7:0]?display_second_time;//顯示秒
always@(posedge?clk)
case(state_mode)
4'd0,4'd1:
begin//4'd0:計時,4'd1設置時間
display_hour_time<=hour_time;//顯示時
display_minute_time<=minute_time;//顯示分
display_second_time<=second_time;//顯示秒
end
4'd2,4'd3:
begin//4'd2顯示鬧鐘時間,4'd3設置鬧鐘時間
display_hour_time<=alarm_hour_time;//顯示時
display_minute_time<=alarm_minute_time;//顯示分
display_second_time<=alarm_second_time;//顯示秒
end
default:;
endcase
////////////////////////////////////////////位選////////////////////////////////////////////////
always?@(posedge?clk?)??//掃描頻率
begin
if(select_num?==?32'd99_999)??
begin
select_num?<=?32'd0;?
end?
else?begin
select_num?<=select_num?+1'd1;?//掃描頻率計時數(shù)字
end
end
always?@(posedge?clk?)??
begin
if(select_num?==?32'd99_999)
begin
if(geshu?==?3'd7)
begin
geshu?<=?3'd0;
end
else?begin
geshu?<=?geshu?+?1'd1;????//掃描那個管子的指示位
end
end
end
always?@(posedge?clk?)??//位選切換
begin
case?(geshu)
3'd0:
begin
bit_select<=~8'b01111111;
display<=?display_second_time?%8'd10;//秒個位
end
3'd1:
begin?
bit_select<=~8'b10111111;
display?<=?display_second_time?/8'd10;//秒十位
end
3'd2:
begin?//顯示-
bit_select<=~8'b11011111;
display?<=?4'd10;
end?
3'd3:
begin?
bit_select<=~8'b11101111;
display?<=?display_minute_time?%8'd10;//分個位
end????
3'd4:
begin
bit_select<=~8'b11110111;
display?<=?display_minute_time?/8'd10;//分十位
end
3'd5:
begin?//顯示-
bit_select<=~8'b11111011;
display?<=?4'd10;
end
3'd6:
begin
bit_select<=~8'b11111101;
display?<=?display_hour_time?%8'd10;//時個位
end
3'd7:
begin
bit_select<=~8'b11111110;
display?<=?display_hour_time?/8'd10;//時十位
end
default:;
endcase
end?
////////////////////////////////////////////////////段選輸出///////////////////////////////////////////
always?@(posedge?clk)
begin
case?(display)??//數(shù)字顯示碼
4'd0:?seg_select<=?~8'b1100_0000;
4'd1:?seg_select<=?~8'b1111_1001;
4'd2:?seg_select<=?~8'b1010_0100;
4'd3:?seg_select<=?~8'b1011_0000;
4'd4:?seg_select<=?~8'b1001_1001;
4'd5:?seg_select<=?~8'b1001_0010;
4'd6:?seg_select<=?~8'b1000_0010;
4'd7:?seg_select<=?~8'b1111_1000;
4'd8:?seg_select<=?~8'b1000_0000;
4'd9:?seg_select<=?~8'b1001_0000;
4'd10:?seg_select<=~8'b1011_1111;
default:;
endcase
end
endmodule

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=792

相關推薦