BCD码七段数码管显示译码器的设计
仿真代码
module BCDtoSevenSeg(
input [3:0] BCD, // 输入的BCD码,4位
output reg [6:0] seg // 输出的七段数码管码,7位
);
always @ (BCD) begin
case (BCD)
// 根据输入的BCD码,选择相应的七段数码管码输出
4'b0000: seg = 7'b1000000; // 0
4'b0001: seg = 7'b1111001; // 1
4'b0010: seg = 7'b0100100; // 2
4'b0011: seg = 7'b0110000; // 3
4'b0100: seg = 7'b0011001; // 4
4'b0101: seg = 7'b0010010; // 5
4'b0110: seg = 7'b0000010; // 6
4'b0111: seg = 7'b1111000; // 7
4'b1000: seg = 7'b0000000; // 8
4'b1001: seg = 7'b0010000; // 9
default: seg = 7'b0111111; // 错误码,显示“-”
endcase
end
endmodule
仿真波形
波形图说明:当输入的BCD码为“0000”,则seg输出“1000000”,即显示0;当输入的BCD码为“0001”,则seg输出“1111001”,即显示1;当输入的BCD码为“0010”,则seg输出“0100100”,即显示2;当输入的BCD码为“0011”,则seg输出“0110000”,即显示3;当输入的BCD码为“0100”,则seg输出“0011001”,即显示4;当输入的BCD码为“0101”,则seg输出“0010010”,即显示5;当输入的BCD码为“0110”,则seg输出“0000010”,即显示6;当输入的BCD码为“0111”,则seg输出“1111000”,即显示7;当输入的BCD码为“1000”,则seg输出“0000000”,即显示8;当输入的BCD码为“1001”,则seg输出“0010000”,即显示9;当输入的BCD码为其它时,则seg输出“0111111”,即显示“-”。