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

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

3天内不再提示

BJ-EPM240学习板之数码管显示实验

工程师 ? 来源:未知 ? 作者:姚远香 ? 2019-03-06 15:05 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一个带小数点的数码管的所有8个发光二极管的正极或负极有一个公共端,通常必须接GND(共阴极数码管)或者接VCC(共阳极数码管),而另一个非公共端的8个引脚就留给用户的I/O直接控制了。

所以,你做实验之前要明白自己的开发板的数码管是共阳极的还是共阴极的,由于板子是师兄留给我的,我就不知道我的板子是共阳极的还是供阴极的,所以显示数字出现乱码时,我就花了很长时间确定是共阳极的还是共阴极的,乱码是这个原因还是引脚约束出问题了等等,很烦恼,当然,最后成功的显示数字之后,心里还是很舒服的。

我的Spartan-6 FPGA开发板中的数码管是共阳极的,因此段选是低电平有效,也就是低电平时,每一段对应的发光二极管点亮。

如下图是数码管的示意图:

BJ-EPM240学习板之数码管显示实验

如果是共阴极的,那么译码表为:

BJ-EPM240学习板之数码管显示实验

每个数字或字符的编码是怎么得到的呢?

如下表:

BJ-EPM240学习板之数码管显示实验

上表举了0、1这两个数字的编码方式,应该很明白了吧,从dot开始到a,依次编码,亮为1,灭为0,如此规律,可以找到各个数字或字符对应的16进制编码,该16进制编码最高位赋值给dot,然后是g、f依次到a,这样的话,就应该到时候分配引脚的时候,dot引脚对应的编码位数是最高位,a引脚对应的是编码位数的最低位。

不明白这一点,弄错了,就会出现乱码。

上面说的是共阴极的情况,那么共阳极的情况呢?对应的编码是多少呢?

可知根据规律自己推,这里就直接给出了:

BJ-EPM240学习板之数码管显示实验

下面说说这个实验的要求,由于只是初步了解数码管的段选片选,所以就不要求那么复杂了,相对简单一些:

看看你的开发板上有几个数码管,让它们同时显示数字从0 到 F。

下面给出我的FPGA设计的Verilog HDL硬件描述语言:

这个代码是特权同学的,我改动了下,适应我的FPGA开发板,(数码管是共阳极的,片选是低电平有效,8个数码管。)

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer:

//

// Create Date: 14:03:17 08/17/2018

// Design Name:

// Module Name: leg_seg7

// Project Name:

// Target Devices:

// Tool versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//////////////////////////////////////////////////////////////////////////////////

module led_seg7(

clk,rst_n,

sm_cs1_n,sm_db

);

input clk; // 50MHz

input rst_n; // 复位信号,低有效

output[7:0] sm_cs1_n; //数码管片选信号,低有效

output[7:0] sm_db; //8段数码管(包括小数点)

reg[24:0] cnt; //计数器,最大可以计数到2的25次方*20ns=640ms

always @ (posedge clk or negedge rst_n)

if(!rst_n) cnt 《= 25‘d0;

else cnt 《= cnt+1’b1; //循环计数

reg[3:0] num; //显示数值

always @ (posedge clk or negedge rst_n)

if(!rst_n) num 《= 4‘d0;

else if(cnt == 25’h1ffffff) num 《= num+1‘b1; //每640ms增一

//-------------------------------------------------------------------------------

/* 共阳级 :带小数点

;0, 1, 2, 3, 4, 5, 6, 7,

db C0, F9, A4, B0, 99, 92, 82, F8

;8, 9, a, b, c, d, e, f , 灭

db 80, 90, 88, 83, C6, A1, 86, 8E, ff*/

parameter seg0 = 7’hC0,

seg1 = 7‘hF9,

seg2 = 7’hA4,

seg3 = 7‘hB0,

seg4 = 7’h99,

seg5 = 7‘h92,

seg6 = 7’h82,

seg7 = 7‘hF8,

seg8 = 7’h80,

seg9 = 7‘h90,

sega = 7’h88,

segb = 7‘h83,

segc = 7’hC6,

segd = 7‘hA1,

sege = 7’h86,

segf = 7‘h8E;

reg[7:0] sm_dbr; //8段数码管(包括小数点)

always @ (num)

case (num) //NUM值显示在数码管上

4’h0: sm_dbr 《= seg0;

4‘h1: sm_dbr 《= seg1;

4’h2: sm_dbr 《= seg2;

4‘h3: sm_dbr 《= seg3;

4’h4: sm_dbr 《= seg4;

4‘h5: sm_dbr 《= seg5;

4’h6: sm_dbr 《= seg6;

4‘h7: sm_dbr 《= seg7;

4’h8: sm_dbr 《= seg8;

4‘h9: sm_dbr 《= seg9;

4’ha: sm_dbr 《= sega;

4‘hb: sm_dbr 《= segb;

4’hc: sm_dbr 《= segc;

4‘hd: sm_dbr 《= segd;

4’he: sm_dbr 《= sege;

4‘hf: sm_dbr 《= segf;

default: ;

endcase

assign sm_db = sm_dbr;

assign sm_cs1_n = 8’b0000_0000; //数码管常开

endmodule

对上述代码需要解释的是片选信号有8个,低电平有效,我把8个数码区的片选全部赋值为0了,这样8个数码管就全部有效,同步显示0到F.(片选的意思是选择哪一个数码管有效)

这是我的数码管的电路图:

BJ-EPM240学习板之数码管显示实验

更多关于BJ-EPM240学习板之数码管显示实验请看视频

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

    关注

    1646

    文章

    22073

    浏览量

    619853
  • 数码管
    +关注

    关注

    32

    文章

    1889

    浏览量

    92777
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数码管的结构与原理

    数码管,也被称作辉光或LED数码管,是一种能够显示数字、字母、符号等信息的电子设备。它广泛应用于各种电子设备中,如计算器、电子钟表、电子秤、数码
    的头像 发表于 02-05 17:32 ?2046次阅读

    基于FPGA实现数码管显示

    本文介绍数码管显示译码基本工作原理及Verilog HDL驱动代码编写,进一步熟练掌握FPGA入门基础知识。
    的头像 发表于 10-24 14:44 ?1902次阅读
    基于FPGA实现<b class='flag-5'>数码管</b><b class='flag-5'>显示</b>

    数码管的使用方法和接线步骤

    数码管的基本单元是发光二极(LED),通过控制不同LED的亮灭来显示数字和字符。根据段数,数码管可分为七段和八段,其中八段数码管比七段多一
    的头像 发表于 08-29 18:22 ?7300次阅读

    共阳极数码管的结构和功能

    共阳极数码管是一种广泛应用的显示器件,主要用于显示数字和字母。以下是对共阳极数码管的结构和功能的详细解析,旨在满足对深入了解该器件的需求。
    的头像 发表于 08-29 18:18 ?4242次阅读

    简述led数码管的类型和显示原理

    LED数码管是一种常见的显示设备,广泛应用于各种电子设备和系统中。本文将介绍LED数码管的类型和显示原理,以帮助读者更好地了解这种设备。 LED数码
    的头像 发表于 08-29 09:11 ?2505次阅读

    led数码管显示器分哪两种结构类型

    LED数码管显示器是一种广泛应用于各种领域的显示设备,具有高亮度、低功耗、长寿命等优点。根据其结构类型,LED数码管显示器主要分为两种:点阵
    的头像 发表于 08-28 17:55 ?2337次阅读

    数码管显示屏的静态显示编程是什么

    数码管显示屏的静态显示编程是一种简单的显示方式,它指的是在任意时刻,数码管上的所有段(a, b, c, d, e, f, g, dp等,具体
    的头像 发表于 08-28 17:14 ?1140次阅读

    数码管显示屏的作用和功能是什么

    数码管显示屏是一种广泛应用于各种电子设备中的显示技术,它具有多种作用和功能。 一、数码管显示屏的基本概念 1.1
    的头像 发表于 08-28 17:11 ?2877次阅读

    驱动器数码管显示不良原因

    驱动器数码管显示不良的原因可能有很多,涉及到硬件、软件、环境等多个方面。 一、引言 驱动器数码管是一种广泛应用于工业自动化、电子设备等领域的显示设备。它具有
    的头像 发表于 08-28 16:38 ?1828次阅读

    什么原因造成数码管显示错误

    数码管显示错误是一个常见的问题,可能由多种原因引起。 一、引言 数码管是一种常用的显示设备,广泛应用于各种电子设备中,如电子钟、计算器、温度计等。然而,在使用过程中,
    的头像 发表于 08-28 16:36 ?3738次阅读

    8位数码管怎么不显示数字

    8位数码管是一种常见的电子显示设备,用于显示数字或字符。然而,有时8位数码管可能无法正常显示数字。 电源问题 电源是8位
    的头像 发表于 08-28 16:34 ?1965次阅读

    7段数码管共阴共阳如何显示数字

    7段数码管是一种常见的显示设备,用于显示数字和部分字母。它由7个LED发光二极组成,每个LED可以独立控制,从而实现数字和字母的显示。 一
    的头像 发表于 08-28 16:19 ?5395次阅读

    数码管怎么看共阴共阳标记

    段可以独立控制以显示不同的数字和字符。数码管广泛应用于电子钟表、计算器、仪表等设备中。 在数码管中,共阴共阳是指数码管的公共端(COM)与
    的头像 发表于 08-28 16:12 ?3298次阅读

    数码管驱动芯片引脚功能

    数码管驱动芯片是一种用于驱动数码管显示数字或字符的集成电路。数码管驱动芯片的引脚功能是实现数码管正常显示
    的头像 发表于 08-28 16:08 ?2191次阅读

    数码管驱动芯片原理是什么

    数码管驱动芯片是一种广泛应用于数字显示领域的电子元件,它能够将数字信号转换为可视的数字显示。 一、数码管驱动芯片概述 1.1 数码管驱动芯片
    的头像 发表于 08-28 16:07 ?2083次阅读