当前位置:   article > 正文

杭电数字电路课程设计——出租车计费器_出租车计费器数字电路设计

出租车计费器数字电路设计

杭电数字电路课程设计——出租车计费器

实验目的

(1)学习数码管动态扫描方法,进一步熟悉模块调用的方法,锻炼编程设计数字系统的能力。
(2)掌握灵活运用Verilog HDL语言进行各种描述与建模的技巧和方法。

模块设计

(1)分频模块:因出租车计费器模拟以秒为单位,即分频1秒产生一个clk_out,控制其他模块工作。
(2)计程模块:用于根据有效的单位时间、速度来增加相应的里程数。
(3)出租车等红绿灯模块:用于进行等红绿灯时的计时,若为10秒,产生一个time_enable信号控制计费器是否进行等红绿灯计费。
(4)计费模块:根据传入的里程来计算相应的费用,以及根据time_enable信号判断是否增加额外的等红绿灯计费。
(5)数码管刷新模块:用于刷新数码管,以62.5Hz为刷新率保证人视觉上感受不到数码管的闪烁。
(6)二进制转BCD码模块:用于将传入的里程、费用转换成BCD码以便于数码管显示。
(7)数码管显示模块:根据相应的控制信号来将里程或费用转换成位选、段选信号来实现数码管的实现。
程序模块关系
(1)分频模块的分频1s有效的时钟信号控制计程模块、出租车等红绿灯模块、计费模块工作。
(2)计程模块的里程数用于计费模块的费用计算。
(3)出租车等红绿灯模块的time_enable用于控制计费模块是否产生出租车等红绿灯额外费用。
(4)数码管刷新模块产生的位选信号用于控制数码管显示。
(5)二进制转BCD码模块产生的里程BCD码、费用BCD码用于数码管显示。

程序源代码

module sy_last_code(reset, clk_M, start, pause, waitL, speedup, d_m, Seg, AN);
    input reset;
    input clk_M;
    input start;
    input pause;
    input waitL;
    input [1:0] speedup;
    input d_m;
    //段选
    output [7:0] Seg;
    //位选
    output [3:0] AN;
     
    wire [9:0] fee_before;
    wire [9:0] distance_before;
    wire [15:0] distance_b;
    wire [15:0] fee_b;
    wire time_enable;
    wire clk_out;
    wire [1:0] Bit_Sel;
    Fdiv u1(reset, clk_M, clk_out);
    // 计程
    Distance u2(clk_out, reset, start, speedup, waitL, pause, distance_before);
    // 等待红绿灯时间
    Time u3(clk_out, reset, pause, waitL, time_enable);
    // 计费
    Fee u4(clk_out, reset, waitL, pause, time_enable, distance_before, start, fee_before);
    // 分频刷新数码管
    Delay_4ms u5(clk_M, Bit_Sel);
    // 二进制转换为BCD码
    Binary u6(distance_before, distance_b);
    Binary u7(fee_before, fee_b);
    // 显示数码管
    Smg u8(d_m, fee_b, distance_b, Bit_Sel, Seg, AN);
 
endmodule
 
 
//分频模块
// 1s
module Fdiv(
    input wire reset,
    input wire clk_M,
    output reg clk_out
);
    // 定义计数器
    reg [31:0] counter;
    initial begin counter = 32'd0; end
    initial begin clk_out = 0; end
    always @(posedge reset or posedge clk_M)
        begin
            if(reset)
                
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/896739
推荐阅读
相关标签
  

闽ICP备14008679号