【Kevin原创】《基于FPGA的简易计算器设计》第一_时尚生活导报
时尚生活导报
您的位置:时尚生活导报 > 玩转数码 > 文章

【Kevin原创】《基于FPGA的简易计算器设计》第一

来源:网络整理 发布时间:2019-07-30 20:25 查看数:次浏览

【Kevin原创】《基于FPGA的简易计算器设计》第一章:玩转数码管

微课堂 Kevin 3年前 (2016-02-17) 7883℃

数码管在我们的整个设计中,我们输入的数据与计算的结果都需要用数码管来显示,所以说数码管还是扮演着很重要的角色的。

1.1简析数码管的工作原理

关于数码管的工作原理,为了照顾零基础的朋友,Kevin还是再进行下简单的介绍,如果是已经了解了数码管工作原理的朋友可以直接跳过这一节。

下面我们先来一张数码管的图片:

seg

数码管是由多个发光二极管封装在一起组成的“8”字型器件,各发光二极管已经在器件内部完成连线。

对于数码管,有共阴极和共阳极之分,共阳极及共阴极数码管内部间的连线可以简化成下图:

seg2

图中的“COM”相当于是一个片选信号,例如,共阳极的位选“COM”为高时,即选中了该数码管,此时数码管才能工作起来。当“COM”选通之后,我们就可以选通相应的段选信号使数码管显示我们想要的字符了。比如说,我们想让数码管显示一个“0”(假设数码管是共阳极的),那我们相应的h~a的十六进制代码应为0xc0。

以下是共阴极与共阳极数码管的0~f编码(顺序是为h~a):
共阳:
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
共阴:
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71

1.2让数码管走起来

在这一节中,我们来做这样的一个小练习,Kevin也是想通过这样的一个小练习来让大家基本掌握数码管的工作原理,同时也了解如何使用FPGA来驱动数码管。

先说一下实验要求:数码管从0~9循环计数,变化时间的间隔为1S。

首先,咱们先画一个该设计的简单的逻辑框图:

mokuai

图中“Div_cnt”模块在1s计时到了之后,就让div_flag这个信号拉高一个时钟周期。“Seg_ctrl”为数码管控制模块,产生位选sel信号及数码管的显示字符信号seg,显然我们的seg信号的变化需要根据div_flag这个信号来控制。

下面可以根据我们的这个逻辑图框图来写代码了。

首先来写div_cnt这个模块:

/******************************************************************** * Module Name: div_cnt * Engineer : Kevin * Function : 1s计数模块 * Blog Website : * Version : v1.0 ********************************************************************/ module div_cnt( input wire sclk, //系统时钟为50MHz,即周期为20ns input wire s_rst_n, output reg div_flag ); parameter CNT_END = 26'd4999_9999; //1s计时结束 reg [25:0] cnt; //计数器 always @(posedge sclk or negedge s_rst_n) if(s_rst_n == 1'b0) cnt <= 26'd0; else if(cnt == CNT_END) cnt <= 26'd0; else cnt <= cnt + 1'b1; always @(posedge sclk or negedge s_rst_n) if(s_rst_n == 1'b0) div_flag <= 1'b0; else if(cnt == CNT_END) div_flag <= 1'b1; else div_flag <= 1'b0; endmodule

接下来,我们来写数码管的控制模块,在写控制模块之前,我们需要来看一下我们的电路原理图:

segdianlu

咱们先来简单的说一下这个数码管电路。电路图中总共有6位数码管,所以呢就有6个位选控制端,而这6个位选控制端是和三极管连在一块的,看着三极管的连法,应该知道,数码管是属于共阳极的。然而这6个数码管的位选是由3-8译码器来控制的,下面咱们再看一下3-8译码器与数码管位选端的连线图:

3-8

连线图已经出来了,可能有些朋友还不太清楚3-8译码器的原理,那咱们再来一张3-8译码器的真值表:

3-8truth

    娱乐新闻
    证券日报
    时尚主张
    美食休闲