zoukankan      html  css  js  c++  java
  • 数码管自动显示

    数码管自动显示:利用计数器原理,先做一个分频计数器,每隔1s钟,由LED自动加一,再选择数码管显示数字;1s=1_000_000_000ns= 1_000_000_000ns/20ns=50_000_000

    程序代码:
    module hex3(rst_n,clk,seg);
    
    input clk;//50M
    input rst_n;
    output reg [6:0]seg;//段选(控制数码管显示什么数据)
    
    
    //分频器的代码,这里为了完整,不做多个文件来写模块了
    reg[25:0] diviter_cnt; //25000-1
    
    reg [3:0]led;
    
    //生成一个分频计数器计数
    always@(posedge clk or negedge rst_n)
    if (!rst_n)
    diviter_cnt<=15'd0;
    else if (diviter_cnt==25'd50_000_000)
    diviter_cnt<=15'd0;
    else 
    diviter_cnt<=diviter_cnt+1'b1;
    
    
    
    //位选移位寄存器
    always@(posedge clk or negedge rst_n)
    if (!rst_n)
    led<=4'b0000;
    else if(led==4'b1111)
    led<=4'b0000;
    else if(diviter_cnt==25'd50_000_000)
    led<=led+4'b0001;
    
    //设计一个6选一多路器
    
    always@(led)
    begin
    case (led)//
    4'h0:seg=7'b1000000;//这里按数码管码表来
    4'h1:seg=7'b1111001;
    4'h2:seg=7'b0100100;
    4'h3:seg=7'b0110000;
    4'h4:seg=7'b0011001;
    4'h5:seg=7'b0010010;
    4'h6:seg=7'b0000010;
    4'h7:seg=7'b1111000;
    4'h8:seg=7'b0000000;
    4'h9:seg=7'b0010000;
    4'ha:seg=7'b0001000;
    4'hb:seg=7'b0000011;
    4'hc:seg=7'b1000110;
    4'hd:seg=7'b0100001;
    4'he:seg=7'b0000110;
    4'hf:seg=7'b0001110;
    
    endcase 
    end
    endmodule
  • 相关阅读:
    .NetCore教程之 EFCore连接Mysql DBFirst模式
    .Net EF6+Mysql 环境搭建
    SQL实用
    前端文章分享
    mac怎样运行vue项目
    Cadence 操作技巧总结3:拼板技巧总结
    TCL语言控制Modelsim仿真 2
    TCL语言控制Modelsim仿真 1
    Cadence 操作技巧总结2:模块化布局
    Cadence 操作技巧总结1:测试点的生成1
  • 原文地址:https://www.cnblogs.com/fcfc940503/p/10412701.html
Copyright © 2011-2022 走看看