0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA设计驱动八位数码管显示电路方案

454398 来源:博客园 作者:zerine 2020-11-14 12:02 次阅读

实现的功能:8个数码管轮流显示8个数字,若频率合适,可以实现8个数码管同时被点亮的视觉效果

1.CL5461AS

CL5461AS 数码管管脚图如下图所示,它将四个数码显示管的a~g 及小数点dp 管脚并联在一起,作为数码管数据输入端;分别引出各个数码管的阴极A1~A4。

只要在A1~A4 管脚上轮流加低电平其频率大于40Hz,可实现四个数码管同时被点亮的视觉效果。在点亮不同数码管的同时输入不同的数据,即可在数码管上同时显示四位不同的数字。

2.驱动八位数码管显示电路框图

3.模块及模块功能

3.1时钟脉冲计数器模块

cnt8模块输入信号为时钟脉冲clk,每遇到一个clk上升沿,内部累加器加1,并把累加器的所得结果以二进制数的形式输出。

 1 module cnt8(clk,cout);
 2 
 3 input clk;
 4 output reg [2:0] cout;
 5 
 6 always @(posedge clk)
 7   begin
 8     if(cout==7)
 9        cout<=0;
10     else
11       cout<=cout+1;
12   end
13 
14 endmodule

3.2 3-8译码器模块

3-8模块的输入端A用于接收时钟脉冲计数器cnt8模块的输出信号,经过译码后,输出信号Q分别接8个数码管的阴极,是对应的数码管阴极为低电平,

对应的数码管被点亮。

 1 module decoder3_8(A,vss);
 2 
 3 input [2:0] A;
 4 output reg [7:0] vss;
 5 
 6 always @(A)
 7   begin
 8     case(A)
 9          3'b000:vss=8'b11111110;
10          3'b001:vss=8'b11111101;
11          3'b010:vss=8'b11111011;
12          3'b011:vss=8'b11110111;
13          3'b100:vss=8'b11101111;
14          3'b101:vss=8'b11011111;
15          3'b110:vss=8'b10111111;
16          3'b111:vss=8'b01111111;
17     endcase
18   end
19 
20 endmodule
21  

3.3 八选一数据选择模块

地址码SEL来自时钟脉冲计数器cnt8,由地址码SEL[2:0]决定输出哪个输入数据,输出信号是Q[3..0].

 1 module SEL81(sel,a,b,c,d,e,f,g,h,Q);
 2 
 3 input [2:0] sel;
 4 input [3:0] a,b,c,d,e,f,g,h;
 5 output reg [3:0] Q;
 6 
 7 always @(sel)
 8   begin
 9     case(sel)
10          3'b000:Q=a;
11          3'b001:Q=b;
12          3'b010:Q=c;
13          3'b011:Q=d;
14          3'b100:Q=e;
15          3'b101:Q=f;
16          3'b110:Q=g;
17          3'b111:Q=h;
18      endcase
19   end
20 endmodule

3.4 七段译码器模块

DISP 模块是七段译码器,将输入的4 位二进制数转换为数码显示管所对应的数字。DISP 模块输入信号D[3..0]接到八选一数据选择模块的输出信号Q[3..0];

七段译码器输出信号Q[6..0]接数码管的a~g 管脚。

 1 module DISP(D,Q);
 2 
 3 input [3:0] D;
 4 output reg [6:0] Q;
 5 
 6 always @(D)
 7   begin
 8     case(D)
 9          4'b0000:Q=0111111;
10          4'b0001:Q=0000110;
11          4'b0010:Q=1011011;
12          4'b0011:Q=1001111;
13          4'b0100:Q=1100110;
14          4'b0101:Q=1101101;
15          4'b0110:Q=1111101;
16          4'b0111:Q=0100111;
17          4'b1000:Q=1111111;
18          default:Q=1101111;
19     endcase
20   end
21 endmodule
22          

3.5 整体电路

 1 module DisplayLED(clk,a,b,c,d,e,f,g,h,vss,Q);
 2 
 3 input clk;
 4 input [3:0] a,b,c,d,e,f,g,h;
 5 output [7:0] vss;
 6 output [6:0] Q;
 7 
 8 wire [2:0] cnsel;
 9 wire [3:0] qd;
10 
11 
12 
13 cnt8 cnt (.clk(clk),.cout(cnsel));
14 decoder3_8 decoder(.A(cnsel),.vss(vss));
15 SEL81 sel(.sel(cnsel),.a(a),.b(b),.c(c),.d(d),.e(e),.f(f),
16                .g(g),.h(h),.Q(qd));  
17 DISP disp(.D(qd),.Q(Q));
18  
19 endmodule

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数码管
    +关注

    关注

    31

    文章

    1827

    浏览量

    89949
收藏 人收藏

    评论

    相关推荐

    【基于Lattice MXO2的小脚丫FPGA核心板】03数码管显示控制

    数码管可以用于显示数字信息,一个七段数码管分别由a、b、c、d、e、f、g控制和表示小数点的dp段组成。实际是由8个LED灯组成的,控制
    发表于 02-29 09:01

    51单片机数码管静态显示

    的工作原理和编程方法。 一、电路原理图 备注:这是一个6位数码管电路,在本项目中我们只用到其中的一个,电路中74LS04电路在这里主要是用
    的头像 发表于 02-26 11:05 523次阅读
    51单片机<b class='flag-5'>数码管</b>静态<b class='flag-5'>显示</b>

    将9984的RGB的高八位数据分别连接到DS90C85的输入端,输出显示屏是闪屏状态怎么解决?

    目前情况是按照官方推荐寄存器配置的为1024*768的60HZ的vga通道0输入,我想将RGB888转换成3组数据+1组时钟 问题是: 我将9984的RGB的高八位数据分别连接到DS90C85
    发表于 11-29 06:33

    动态数码管显示原理详解

    作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示
    的头像 发表于 11-10 11:38 2578次阅读
    动态<b class='flag-5'>数码管</b><b class='flag-5'>显示</b>原理详解

    51单片机数码管驱动

    1.共阳极/共阴极数码管内部组成结构 2.设计共阴/共阳数码管驱动电路 3.数码管显示的字符与段
    发表于 11-06 11:06

    单片机-数码管驱动学习笔记

    ) 按段数分为七段数码管八段数码管八段数码管比七段数码管多一个发光二极单元(多一个小数点显示
    发表于 11-04 23:53

    数码管驱动电路讲解

    根据项目需求可以用I/O外部上拉,用来驱动数码管;也可以74HC138(38译码器)+74HC245(8路信号收发器)驱动数码管。本文会以后者为数码
    的头像 发表于 11-01 17:34 1947次阅读
    <b class='flag-5'>数码管</b><b class='flag-5'>驱动</b><b class='flag-5'>电路</b>讲解

    位数码管驱动电路介绍

    电子发烧友网站提供《多位数码管驱动电路介绍.doc》资料免费下载
    发表于 10-27 10:22 0次下载
    多<b class='flag-5'>位数码管</b><b class='flag-5'>驱动</b><b class='flag-5'>电路</b>介绍

    关于数码管选问题

    每一个数码管就是数字的一。只要位选端口置,那么这位数码管才能显示段选端口控制的信号。选端口
    发表于 10-25 07:45

    紫光同创FPGA入门指导:数码管静态显示——紫光盘古系列22K开发套件实验教程(三)

    、项目开发,一板多用,满足多方位的开发需求。 二:实验目的 四八段数码管同时循环显示数字 0~9。 三:实验原理 数码管是一种半导体发光器件,其基本单元是发光二极
    发表于 08-23 18:02

    基于FPGA数码管静态显示

    设计一个8位数码管静态显示:采用共阳极(低电平点亮)8段数码管,控制八位数码管让其以00000000、11111111、22222222一直到FFFFFFFF循环
    的头像 发表于 07-28 10:03 1742次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>数码管</b>静态<b class='flag-5'>显示</b>

    基于定时器的八位数显示

    使用定时器中断动态显示8位数码管。基于定时器的八位数显示器实验电路如图所示。
    的头像 发表于 07-12 11:51 676次阅读
    基于定时器的<b class='flag-5'>八位数</b>字<b class='flag-5'>显示</b>器

    从零开始学习紫光同创FPGA——PGL22G开发板之数码管动态显示(五)

    一、数码管动态显示 1、实验目的 在数码管静态显示的基础上让数码管各个位显示不同的数字,即学会以
    发表于 06-19 16:08

    从零开始学习紫光同创FPGA——PGL22G开发板之数码管静态显示(四)

    驱动,或使用串口转并口芯片来拓展端口。因而对于多位数码管的使用,一般都采用前一种方式进行电路设计,这种电路设计更为方便的是以动态方式驱动
    发表于 06-15 18:48

    请问003f4可以直接驱动3位数码管动态显示吗?

    003f4可以直接驱动3位数码管动态显示吗 还有003f4我用5V供电可以吗?有大佬麻烦帮我解答一下疑惑好不好,谢谢
    发表于 06-15 07:04