首页 理论教育 FPGA系统设计:专题段显示译码器设计

FPGA系统设计:专题段显示译码器设计

时间:2023-10-20 理论教育 版权反馈
【摘要】:特别是楼道的显示器,有很多我们取名叫作7段数码显示器(数码管)的设备。图17.227段数码显示器的示意结构图要想在这7段显示器上显示十进制数,必须事先对十进制数进行译码,得到相应的译码信号之后,用该信号来驱动数码管,进而显示数字。下面我们就来编写7段显示译码器的程序。通过单片机、串口等的输出,搭配74系列的译码电路芯片来实现数码管显示。

FPGA系统设计:专题段显示译码器设计

大家如果平时走在马路上,过马路红灯的时候,可以近距离的观察一下人行横道两边的LED显示器。这些显示器有的地方显示数字,有的显示文字,有的显示图案。平时去居民小区找人,每个楼的每个单元楼道铁门上,基本都会有一个密码输入设备,根据你输入的数字和符号,在显示器上就会有相应的显示。特别是楼道的显示器,有很多我们取名叫作7段数码显示器(数码管)的设备。这个专题就是专门研究7段数码显示器的译码电路。

如图17.22(a)就是7段数码显示器的示意结构图。a~g共7段,外加1段小数点dp。这些段都是LED,你可以把LED看作简化的二极管。分为共阴极和共阳极两种类型。所谓共阴极,指的就是:每段LED都有两端,这7段都拿出二极管负极那一端来连着接地电平,这叫共阴;每段的另一端,你供给它高电平,那么电流就会流经这段LED,导致它点亮,反之无电流流过则该段不点亮。7段都拿出二极管正极那一端来接高电平的就是共阳极的类型。

图17.22 7段数码显示器的示意结构图

要想在这7段显示器上显示十进制数,必须事先对十进制数进行译码,得到相应的译码信号之后,用该信号来驱动数码管,进而显示数字。LED的控制信号是从高位到低位依次为dp-a-b-c-d-e-f-g,组成一个8位宽信号。如图17.22(b)所示就是分别点亮并显示了1248的结果。

举个例子,假如希望在数码管上显示数字1,则应该是b和c段点亮,其他段不点亮,对于共阴极数码管,给预备点亮的段驱动为1,应该译码为0-0-1-1-0-0-0-0,用Verilog描述就是“0011_0000”。

下面我们就来编写7段显示译码器的程序。

综合以后的RTL视图如图17.23所示。由于我们输出编码的最高位第7位为dp,本例中一直不点亮,所以给它驱动低电平0。因此在图17.23中右边就会显示out[7]为0。(www.xing528.com)

图17.23 7段数码显示器综合的电路

下图是著者几十年前还在学校念书的时候做的电路板,其中就用到了7段显示译码管。

图17.24 PCB板

很多年以前在做显示这一块电路的时候,还没有用到FPGA生成驱动电路,用到的驱动电路都是74系列的集成电路,也就是上图中黑色的双列直插封装的芯片。通过单片机串口等的输出,搭配74系列的译码电路芯片来实现数码管显示。

有的时候可能需要对多个数码管进行译码显示,每个数码管都单独分配8根驱动线,可能就不太合适,毕竟没那么多根线。这个时候就需要动态扫描。这就意味着还需要一些电路和驱动线作为数码管的选择。

虽然FPGA能生成驱动电路,但FPGA的管脚输出电流也许不够大。有些体积大的数码管就很难驱动。所以在用FPGA做驱动显示的时候,也要注意选择数码管的驱动电流,要相匹配。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈