设计思路:由于一个数码管可以显示0-f这16个字符,与3_8译码器思路一致,选择四个拨动开关组成选择器,从0000-1111波动。分别显示0-f这16个字符。
建立工程:
程序: module hex2(a,b,c,d,seg); input a,b,c,d; output reg [6:0]seg;//定义一个8位的位宽.只要是在always块中进行赋值的都要定义为reg类型。 always@(a,b,c,d) begin case ({a,b,c,d})//{}位为位拼接,将信号拼接成一个4位的信号 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
分配引脚:
全运行,烧写程序;实验现象:波动对应的开关,数码管显示对应的字符;