久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4006|回復: 0
收起左側

基于FPGA的秒表程序,可用,diamond

[復制鏈接]
ID:550608 發表于 2019-5-29 21:55 | 顯示全部樓層 |閱讀模式
QQ截圖20190526235409.png
//頂層
module timer_top(
                input         clk_12M,//12Mhz時鐘
                input        reset,//復位
                input        stop,//暫停
                output        [1:0]wela,//位選
                output        [7:0]dula1,//第一個數碼管段選
                output        [7:0]dula2//第二個數碼管段選
                );
        wire [7:0]sec;
               
        time_cnt u1(
                .clk_12M(clk_12M),
                .reset(reset),
                .stop(stop),
                .sec(sec)
                );//例化分頻計數模塊
        
        display u2(
                .clk_12M(clk_12M),
                .sec(sec),
                .wela(wela),
                .dula1(dula1),
                .dula2(dula2)
                );//例化顯示模塊
endmodule

//分頻計數
module time_cnt(
                input         clk_12M,
                input         reset,
                input        stop,
                output        [7:0] sec
                );
/*12M時鐘分頻1s  計數6M次*/

reg [23:0]cnt;
reg clk_1s;

always @(posedge clk_12M or negedge stop)
begin
        if(!stop)//暫停信號為0時有效
                begin
                        cnt <= 0;
                end//停止信號有效時,暫停
        else if(cnt == 24'h5b8d80)//計數為5999999
                        begin
                                clk_1s <= ~clk_1s;
                                cnt <= 0;
                        end
        else
                begin
                        cnt <= cnt+1;
                        clk_1s <= clk_1s;
                end//暫停信號無效時繼續計時
end        

/*用于產生1s的秒表計數*/

reg [7:0]sec_reg=0;

always @(posedge clk_1s or negedge reset)
        begin
                if(!reset)//復位信號為0時有效
                        begin
                                sec_reg <= 0;//復位信號有效時置0
                        end
                else if(sec_reg[3:0] == 4'd9)//秒個位計數到9
                        begin
                                if(sec_reg[7:4] == 4'd5)//秒十位計數到5
                                        begin
                                                sec_reg <= 0;//清0
                                        end        
                                else
                                        begin
                                                sec_reg[7:4] <= sec_reg[7:4] + 1;//秒十位加1
                                                sec_reg[3:0] <= 0;//秒個位清零
                                        end
                        end
                else
                        begin
                                sec_reg[3:0] <= sec_reg[3:0] + 1;
                        end
        end
assign sec = sec_reg;

endmodule

//顯示
module display(
                input        clk_12M,
                input        [7:0]sec,
                output        reg [1:0]wela=0,
                output        reg [7:0]dula1=0,
                output         reg [7:0]dula2=0
                );
               
/*數碼管需要動態掃描,所以產生一個1ms的時鐘*/
reg [12:0]cnt;
reg clk_1ms;
always @(posedge clk_12M)
        begin
                if(cnt == 13'h1770)
                        begin
                                cnt <= 0;
                                clk_1ms <= ~clk_1ms;
                        end
                else
                        begin
                                cnt <= cnt + 1;
                                clk_1ms <= clk_1ms;
                        end
        end
reg state;
reg [3:0]sec_reg1;
reg [3:0]sec_reg2;
always @(posedge clk_1ms)
case(state)//位選
        0:begin
                wela<=2'b01;state<=1;sec_reg2 <= sec[3:0];
          end
        1:begin
                wela<=2'b10;state<=0;sec_reg1 <= sec[7:4];
          end
endcase
always @(posedge clk_12M)
        begin
        case(sec_reg1)
                0:dula1 <= 8'h3f;
                1:dula1 <= 8'h06;
                2:dula1 <= 8'h5b;
                3:dula1 <= 8'h4f;
                4:dula1 <= 8'h66;
                5:dula1 <= 8'h6d;
                6:dula1 <= 8'h7d;
                7:dula1 <= 8'h07;
                8:dula1 <= 8'h7f;
                9:dula1 <= 8'h6f;
        endcase
        end//第一個數碼管段選0~9
always @(posedge clk_12M)
        begin
        case(sec_reg2)
                0:dula2 <= 8'h3f;
                1:dula2 <= 8'h06;
                2:dula2 <= 8'h5b;
                3:dula2 <= 8'h4f;
                4:dula2 <= 8'h66;
                5:dula2 <= 8'h6d;
                6:dula2 <= 8'h7d;
                7:dula2 <= 8'h07;
                8:dula2 <= 8'h7f;
                9:dula2 <= 8'h6f;
        endcase
        end//第二個數碼管段選0~9
endmodule

//測試文件
module timer_tb();
reg clk_12M;
reg stop;
reg reset;
wire [7:0]dula1;
wire [7:0]dula2;
wire [1:0]wela;

timer_top u1(
                .clk_12M(clk_12M),
                .stop(stop),
                .reset(reset),
                .dula1(dula1),
                .dula2(dula2),
                .wela(wela)
                );
                initial
                begin
                        clk_12M=1;
                        reset=0;
                        stop=0;
                        #10 reset=1;stop=1;
                        #20 stop=0;
                        #5        reset=0;
                        #20 $stop;
                end
                always #1 clk_12M=~clk_12M;

endmodule

全部資料51hei下載地址:
timer.zip (677.37 KB, 下載次數: 31)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级片在线看 | 久久综合一区 | 亚洲伦理自拍 | 一区视频 | 国产精品夜色一区二区三区 | 一区二区伦理电影 | 无码日韩精品一区二区免费 | 黑人性hd | 久久99精品久久久久久国产越南 | 天天操夜夜操 | 天天射天天操天天干 | 国产欧美在线观看 | 国产精品久久久久久中文字 | 国产一区二区三区在线视频 | av中文字幕网站 | 亚洲国产欧美在线 | 99热在这里只有精品 | 在线亚洲精品 | 91麻豆精品国产91久久久久久 | 精品1区2区3区 | 免费日韩网站 | 色噜噜狠狠色综合中国 | 日韩中文字幕一区二区三区 | 老司机精品福利视频 | 日韩aⅴ在线观看 | 超碰成人av | 国产一区不卡在线观看 | 日韩中文字幕视频在线 | 精品欧美一区二区三区免费观看 | 欧美精品欧美精品系列 | 亚洲天堂网站 | 国产日韩一区二区三区 | 久久极品| 一区二区三区在线 | 欧 | 亚洲一区视频在线 | 国产精品免费在线 | 夜夜爽99久久国产综合精品女不卡 | 亚洲啪啪 | 亚洲成人精| 国产精品久久久久久久久久 | 亚洲福利在线观看 |