baidu_38302361 2017-05-09 03:15 采纳率: 100%
浏览 2254
已采纳

基于fpga的超声波测距数码管显示

hc—sr04超声波测距模块
50M的fpga板
求可用程序

  • 写回答

2条回答 默认 最新

  • 道亦无名 博客专家认证 2017-05-14 14:00
    关注
    reg    [19:0]  count_div;    //定义分频计数寄存器
    
    always @(posedge clk)       //分频产生1k时钟
    begin
        if(count_div>=20'd100000)
        begin
            count_div<=20'd0;
            clk_1k<=1'b0;
        end
        else
        begin
            count_div <= count_div + 20'b1;
            if(count_div<=20'd50000)
                clk_1k<=1'b0;
            else
                clk_1k<=1'b1;
        end  
    end
    assign dig = dig_r;     //输出数码管选择
    assign seg = {dip,seg_r};   //输出数码管译码结果 
    always @(posedge clk_1k)      //计数进程
    begin
        count <= count + 1'b1;
    end
    always @(posedge clk_1k)         
    begin
        case(count)      //选择扫描显示数据
        3'd0:disp_dat = seg_data1; //第一个数码管
        3'd1:disp_dat = seg_data2; //第二个数码管
        3'd2:disp_dat = seg_data3; //第三个数码管
        3'd3:disp_dat = seg_data4; //第四个数码管
        endcase
        case(count)      //选择数码管显示位
        3'd0:dig_r = 4'b1000;  //选择第一个数码管显示
        3'd1:dig_r = 4'b0100;  //选择第二个数码管显示
        3'd2:dig_r = 4'b0010;  //选择第三个数码管显示
        3'd3:dig_r = 4'b0001;  //选择第四个数码管显示
        endcase 
    end
    always @(disp_dat)
    begin
        case(disp_dat[3:0])    //七段译码  
        4'h0:seg_r=7'b0000001;  //显示0
        4'h1:seg_r=7'b1001111;  //显示1
        4'h2:seg_r=7'b0010010;  //显示2
        4'h3:seg_r=7'b0000110;  //显示3
        4'h4:seg_r=7'b1001100;  //显示4
        4'h5:seg_r=7'b0100100;  //显示5
        4'h6:seg_r=7'b0100000;  //显示6
        4'h7:seg_r=7'b0001111;  //显示7
        4'h8:seg_r=7'b0000000;  //显示8
        4'h9:seg_r=7'b0000100;  //显示9
        4'ha:seg_r=7'b0100000;  //显示a
        4'hb:seg_r=7'b1100000;  //显示b
        4'hc:seg_r=7'b0110001;  //显示c
        4'hd:seg_r=7'b1000010;  //显示d
        4'he:seg_r=7'b0010000;  //显示e
        4'hf:seg_r=7'b0111000;  //显示f
    endcase
        case(disp_dat[7])    //产生小数点
        1'b0:dip=1'b1;
        dip=1'b0;
        endcase
    end
    endmodule
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵