图1 七段数码管的显示单元 图2.1 共阴极 图2.2 共阳极 a b c d e f g h Gnd +5v a b c d e f g h 七段式数码管就是使用七段点亮的线段来拼成常见的数字和某些字母。再加上右下角的小数点。实际上一个显示单元包含了 8 根控制信号线。 如上图所示,a,b,c,d,e,f,g,h 对应 8 根控制信号线。一般数码管有 8 个如图1 所示的显示单元,称为七段八位数码管。由此引入段码和位码的概念。 段码(seg):在本文中段码对应单独的显示单元。或者说段码代表显示单元上显示的具体数值或符号。 位码(sel):在本文中位码对应 8 个显示单元。或者说位码代表相应位置上的显示单元被选通。 为什么数码管需要位码呢? 因为数码管利用视觉暂留效应让人们觉得每一位上的数字一直保持着发亮。其实各个位上的显示单元是按照顺序交替亮灭的,只是频率比较高,看起来就像是一直亮着的。而位码就是用来按位循环扫描的。 段码与显示内容又是怎样对应的呢? 这就要说到显示原理了。每一个显示单元中可以被控制亮灭的线段其实是LED 发光二极管。他们以共阴极或者共阳极的方式接入。如下图2.1 和2.2。 a b c d e f g d clk rst Data[31:0] Tu rn_off[7:0] Seg[7:0] Sel[2:0] 如果想显示数字 0,图 1 中的线段 a,b,c,d,e,f 应当点亮,g,h 应该熄灭。共阴极接入方式的话,输入端接高电平 LED 才会亮。abcdefgh 对应的电平状态是 11111100 。编码时顺序反过来 a 对应最低位,h 对应最高位。 所以在共阴极接入方式下,显示数字 0 对应的段码是 00111111,即 0x 3f; 在共阳极接入方式下,显示数字 0 对应的段码是 11000000,即 0x c0; 图 2.1 和 2.2 中的 a,b,c,d,e,f, g,h 称为段选线。另一边的公共端称为位选线。 以此类推,以共阳极接入方式为例,段码与显示的数字对应关系如下表 显示数字 高电平信号 低电平信号 二进制编码 段码(16 进制) 0 gh abcdef 11000000 C0 1 bc 11111001 F9 2 abged 10100100 A4 3 abgcd 10110000 B0 4 fbgc 10011001 99 5 afgcd 10010010 92 6 afgcde 10000010 82 7 abc 11111000 F8 8 abcdefg 10000000 80 9 abcdfg 10010000 90 显示字母 A,B,C,D,E,F 分别对应段码:8’h88, 8’h83, 8’hC6, 8’hA1, 8’h86, 8’h8E; 特别的,显示单元全灭对应的段码为:8’b1111_1111 即是 8’hFF; 至...