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

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

3天内不再提示

通过小脚丫板载的两个数码管来显示字符

电子森林 来源:FPGA入门到精通 作者:FPGA入门到精通 2021-01-06 17:17 次阅读
今天我们任务是通过小脚丫板载的两个数码管来显示字符,所以首先我们要了解一下数码管的基本工作原理,接下来再研究怎么通过捣鼓小脚丫把数码管给点亮,并且显示出有效信息

小脚丫板载的数码管是7段数码管(如果包括右下的小点可以认为是8段),它分别由abcdefg位段和表示小数点的dp位段组成,见图1

ffad0330-4628-11eb-8b86-12bb97331649.png图1 7段数码管

数码管的各个段位是由LED灯组成的,控制每个LED的点亮或熄灭实现数字显示。通常数码管分为共阳极数码管和共阴极数码管,结构如图所示。共阴8段数码管的信号端低电平有效,而共阳端接高电平有效。比如,使共阳端数码管的a段发光,则在a段信号端加上低电平即可。共阴极的数码管则相反。ffca9cba-4628-11eb-8b86-12bb97331649.png000002d8-4629-11eb-8b86-12bb97331649.png    

小脚丫的板载数码管为7段共阴极数码管,可以显示数字0-9以及字母A-F共计16种选择。因此,如果我们需要数码管能显示所有的16种选择,需要至少4位输入码(24=16)。表1列出了各个数码管字符所对应的LED灯段位。

1各数码管字符所对应的LED灯段位

003c3a96-4629-11eb-8b86-12bb97331649.png

2标注了小脚丫板载的两个数码管的各LED段位以及小脚丫上所对应的引脚。其中SEG_DIP为公共端,因此在共阴极数码管的设计中需要接低电平。可以看出,每一个数码管都含有9个引脚,因此每一个字符的显示都需要由一个9位的输出信号来实现。

00622f94-4629-11eb-8b86-12bb97331649.png

2

接下来我们通过Verilog实现对数码管的控制。其中,我们将模块的输出定义为两个7段数码管,每个数码管有9个引脚,分别由9位信号控制。输入端由4路信号控制,可以分别对应0-F等十六个字符选择。
module segment   (    input  wire[3:0] seg_data_1,      //四位输入数据信号,可通过4个拨码开关控制    input  wire[3:0] seg_data_2,      //四位输入数据信号,可通过4个按键开关控制    output wire[8:0] segment_led_1,   //数码管1,MSB~LSB =SEG,DP,G,F,E,D,C,B,A    output wire[8:0] segment_led_2    //数码管2,MSB~LSB =SEG,DP,G,F,E,D,C,B,A   );
   reg[8:0] seg [15:0];                //存储7段数码管译码数据   initial  begin       seg[0]=9'h3f;   //  0       seg[1]=9'h06;   //  1       seg[2]=9'h5b;   //  2       seg[3]=9'h4f;   //  3       seg[4]=9'h66;   //  4       seg[5]=9'h6d;   //  5       seg[6]=9'h7d;   //  6       seg[7]=9'h07;   //  7       seg[8]=9'h7f;   //  8       seg[9]=9'h6f;   //  9       seg[10]=9'h77;   //  A       seg[11]=9'h7C;   //  b       seg[12]=9'h39;   //  C       seg[13]=9'h5e;   //  d       seg[14]=9'h79;   //  E       seg[15]=9'h71;   //  F  end   assign segment_led_1 = seg[seg_data_1];   // 将对应字符导入数码管1并显示   assign segment_led_2 = seg[seg_data_2];   // 将对应字符导入数码管2并显示endmodule

上述代码是定义7段共阴极数码管的通用模块,可以保存起来作为一个独立模块。这样,在以后遇到需要用数码管显示的实验时我们可以直接调用(之后我们还会讲解如何调用子模块),而不用再重新写一遍代码。

接下来是提问环节:

当我们指定用拨码开关SW1-SW4来控制左边数码管,按键开关K1-K4来控制右侧数码管,此时如果开关的状态分别如下图所示,数码管应该显示什么字符?

注:拨码开关调至上方为1,下方为0。按键开关白色为1(松开),黑色为0(按下)。大家可以当作课后练习来巩固一下知识,也欢迎在公众号留言给出自己的答案。

而为了帮助更多老师快速上手FPGA的使用和教学,在即将到来的寒假,我们针对高校从事教学/实验室一线工作的教师,推出一个为期5(2021年1月25日-1月29日)的FPGA设计及应用快速培训,通过实用性非常强的典型案例动手实践,帮助大家快速、有效地上手FPGA,并能够在未来的教学、实践、电赛中大显身手,硬禾实战营也将成为参加培训的老师们长期的教学后援。

责任编辑:xj

原文标题:基于FPGA的数字电路实验3:点亮数码管

文章出处:【微信公众号:FPGA入门到精通】欢迎添加关注!文章转载请注明出处。


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

    关注

    1599

    文章

    21273

    浏览量

    592803
  • 数码管
    +关注

    关注

    31

    文章

    1826

    浏览量

    89930
  • 数字电路
    +关注

    关注

    192

    文章

    1379

    浏览量

    79718

原文标题:基于FPGA的数字电路实验3:点亮数码管

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

    ] seg_led_1;//在小脚丫上控制一个数码管需要9个信号 MSB~LSB=DIG、DP、G、F、E、D、C、B、A output [8:0] seg_led_2;//在小脚丫上第二个数
    发表于 02-29 09:01

    proteus数码管元件符号怎么找

    、时钟等。它由多个发光二极管(LED)组成,每个发光二极管可以显示1个数字或1个字符通过控制不同组合的LED,可以实现显示
    的头像 发表于 02-23 17:10 1306次阅读

    【基于Lattice MXO2的小脚丫FPGA核心板】工程创建和固件烧录

    功能块(硬核):一路SPI、一路定时器、2路I2C 支持DDR/DDR2/LPDDR存储器; 104个可热插拔I/O; 内核电压2.5-3.3V; 板载资源: 位7段数码管两个
    发表于 01-31 21:01

    单片机是如何控制数码管显示各种字符的?

    单片机是一种集成电路,它由中央处理器、存储器、输入输出接口和定时器等组成。它用于在电子设备中控制各种功能,包括数码管显示数码管是一种常见的显示装置,用于
    的头像 发表于 12-15 10:22 555次阅读

    单片机是如何控制数码管显示各种字符的?

    单片机控制数码管显示各种字符的过程是一个相对复杂的过程,涉及到硬件电路设计和软件编程两个方面。下面我将详细介绍单片机如何控制数码管
    的头像 发表于 12-13 10:47 610次阅读

    【每周一练】盘古1K开发板+动态数码管+小数点显示

    相应的说明,这次我们还是参考相关介绍介绍demo的工作原理,并做一些补充。 程序包括按键处理和数码管显示两个主要部分,下面分别介绍。 一、按键处理 键盘处理部分包括键盘防抖和键盘计数
    发表于 12-09 20:30

    数码管及工作原理解析

    个8位I/O口控制;各个数码管的位选线(数码管的公共端)由另外的I/O口控制。通过控制公共端是否有效,逐个循环点亮各位显示器。由于人眼具有视觉暂留效应。虽然任一时刻只有一位
    发表于 11-06 23:12

    51单片机数码管驱动

    1.共阳极/共阴极数码管内部组成结构 2.设计共阴/共阳数码管驱动电路 3.数码管显示字符与段选/位选之间的关系 共阴从左往右第三
    发表于 11-06 11:06

    BST-M51单片机数码管的基础学习

    单片机中,通过控制段选引脚的电平,可以选择要点亮的LED段。 位选:数码管通常由多位数字或字符组成,每一位都有一个对应的段选控制引脚。位选是指选择要显示哪一位的
    发表于 11-05 23:38

    基于FPGA的数码管静态显示

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

    基于FPGA采用模块化思路设计一个译码器

    本次实验的任务是构建一个3-8译码器,且将译码结果通过小脚丫的LED灯显示
    发表于 06-20 16:10 750次阅读
    基于FPGA采用模块化思路设计一个译码器

    怎么通过捣鼓FPGA板把数码管给点亮并显示有效信息?

    今天我们任务是通过小脚丫板载两个数码管显示字符,所以首先我们要了解一下数码管的基本工作原理,
    发表于 06-20 16:01 690次阅读
    怎么<b class='flag-5'>通过</b>捣鼓FPGA板把<b class='flag-5'>数码管</b>给点亮并<b class='flag-5'>显示</b>有效信息?

    怎么去设计一个基于FPGA的二进制比较器呢?

    前一篇文章我们介绍了通过小脚丫FPGA核心开发板来进行门电路的实验过程。当然,我们还可以画出更多复杂的门电路组合,并且通过小脚丫FPGA轻松实现对应的输入/输出特性的定义。现在,我们利用小脚丫来学习更多具有特定功能的实用组合逻辑
    发表于 06-20 15:48 1247次阅读
    怎么去设计一个基于FPGA的二进制比较器呢?

    如何读取数码管显示的字母?

    请问各位大佬,我有一个电路板,具有1个80C51的单片机,然后电路板上有6个LED数码管,我想读出其中1个数码管显示的字母,有什么好的方法?
    发表于 05-04 13:33

    proteus仿真-8只数码管滚动显示数字串

      名称:8只数码管滚动显示数字串   软件:proteus   keil 4   语言:C 语言   使用说明:本例中,通过proteus 仿真8 只数码管滚动
    发表于 04-26 17:09