我是靠谱客的博主 贪玩天空,最近开发中收集的这篇文章主要介绍FPGA:0~9999数码管计数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

module test(seg,dig,clk,rst,key);
input clk;
input rst;
input key;

output [7:0] seg; //数码管段码输出
output [7:0] dig; //数码管位码输出
reg clk_1s;
reg [7:0]seg;//定义段码寄存器
reg [3:0]dig;//定义位码寄存器

reg [24:0]cnt_1s;

reg [36:0]cnt;
reg [1:0]state;
reg [3:0]qianwei_reg,baiwei_reg,shiwei_reg,gewei_reg;

reg [7:0]qianwei_code;
reg [7:0]baiwei_code;
reg [7:0]shiwei_code;
reg [7:0]gewei_code;
always@(posedge clk)//分频出周期为1s的信号
begin
        cnt<=cnt+1'b1;
            if(cnt==25'd25000000)begin cnt<=1'b0; clk_1s=~clk_1s; end
            //使用的是50MHZ;计数0.5秒需要次数为:0.5/50MHZ=25000000;
end
always@(posedge clk_1s)
begin
             cnt_1s<=cnt_1s+1'b1;
             if(cnt_1s==25'd9999)cnt_1s<=1'b0;      
end

always@(cnt_1s)//计数器 1s
begin
    qianwei_reg=cnt_1s/1000;
    baiwei_reg=cnt_1s%1000/100;
    shiwei_reg=cnt_1s%100/10;
    gewei_reg=cnt_1s%10;
end
always@(gewei_reg)
case(gewei_reg)
    4'h0:gewei_code<=8'hc0;
    4'h1:gewei_code<=8'hf9;
    4'h2:gewei_code<=8'ha4;
    4'h3:gewei_code<=8'hb0;
    4'h4:gewei_code<=8'h99;
    4'h5:gewei_code<=8'h92;
    4'h6:gewei_code<=8'h82;
    4'h7:gewei_code<=8'hf8;
    4'h8:gewei_code<=8'h80;
    4'h9:gewei_code<=8'h90;
    endcase

always@(shiwei_reg)
case(shiwei_reg)
    4'h0:shiwei_code<=8'hc0;
    4'h1:shiwei_code<=8'hf9;
    4'h2:shiwei_code<=8'ha4;
    4'h3:shiwei_code<=8'hb0;
    4'h4:shiwei_code<=8'h99;
    4'h5:shiwei_code<=8'h92;
    4'h6:shiwei_code<=8'h82;
    4'h7:shiwei_code<=8'hf8;
    4'h8:shiwei_code<=8'h80;
    4'h9:shiwei_code<=8'h90;
    endcase

always@(baiwei_reg)
case(baiwei_reg)
    4'h0:baiwei_code<=8'hc0;
    4'h1:baiwei_code<=8'hf9;
    4'h2:baiwei_code<=8'ha4;
    4'h3:baiwei_code<=8'hb0;
    4'h4:baiwei_code<=8'h99;
    4'h5:baiwei_code<=8'h92;
    4'h6:baiwei_code<=8'h82;
    4'h7:baiwei_code<=8'hf8;
    4'h8:baiwei_code<=8'h80;
    4'h9:baiwei_code<=8'h90;
    endcase

always@(qianwei_reg)
case(qianwei_reg)
    4'h0:qianwei_code<=8'hc0;
    4'h1:qianwei_code<=8'hf9;
    4'h2:qianwei_code<=8'ha4;
    4'h3:qianwei_code<=8'hb0;
    4'h4:qianwei_code<=8'h99;
    4'h5:qianwei_code<=8'h92;
    4'h6:qianwei_code<=8'h82;
    4'h7:qianwei_code<=8'hf8;
    4'h8:qianwei_code<=8'h80;
    4'h9:qianwei_code<=8'h90;
    endcase

always@(posedge cnt[15])
begin
    case(state[1:0])
    2'h0:begin seg=gewei_code;dig<=4'b1110;state<=state+1'b1;end
    2'h1:begin seg=shiwei_code;dig<=8'b1101;state<=state+1'b1;end
    2'h2:begin seg=baiwei_code;dig<=8'b1011;state<=state+1'b1;end
    2'h3:begin seg=qianwei_code;dig<=8'b0111;state<=state+1'b1;end
    endcase
end
endmodule

最后

以上就是贪玩天空为你收集整理的FPGA:0~9999数码管计数的全部内容,希望文章能够帮你解决FPGA:0~9999数码管计数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部