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
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630181
  • 数码管
    +关注

    关注

    32

    文章

    1891

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    第5章 定时器与数码管基础(5.3)

    5.3 数码管学习 LED小灯是一种简单的LED,只能通过亮和灭来表达简单的信息。这节课学习一种能表达更复杂信息的器件——LED数码管。 5.3.1
    的头像 发表于 12-02 15:57 145次阅读
    第5章 定时器与<b class='flag-5'>数码管</b>基础(5.3)

    【瑞萨RA6E2】ADC数据采集与数码管显示

    模拟信号处理和显示控制方面的强大能力。 一、硬件设计与连接 1.1 硬件组件 主控 :瑞萨RA6E2评估 显示模块 :8位(启用4位)74HC595共阳极
    发表于 11-27 00:52

    原厂 FZH114C  一款LED(发光二极数码管、点阵屏)驱动控制专用芯片

    :驱动6位数码管,每位数码管7段(a-g)。8段×5位:驱动5位数码管,每位数码管8段(含小数点DP)。亮度调节:段驱动电流8级可调(建议≥2/8以确保亮度)。位占空比16级可调,灵活
    发表于 11-19 14:43

    FZH114  LED(发光二极数码管、点阵屏)驱动控制专用芯片,集成数字通讯电路、 解码电路、数据锁存器、震荡器

    显示、LED点阵屏、机顶盒显示等。 工业控制设备:需要多位数码管或LED点阵显示的场景。 注意事项 段驱动电流:建议设置为2/8及以上,以确保LED正常点亮。 共阴设计:仅适用于共阴
    发表于 11-19 11:13

    级联动态扫描显示数码管问题

    GD32F103C8T6 硬件SPI连接移位寄存器74HC595级联,动态扫描显示五位数码管 是否需要电平转换芯片TXB0104 数码管选择共阴极和共阳极区别是什么 若使用TXB0104,TXB0104的OE脚在代码书写时是否需
    发表于 10-07 20:36

    抗噪数显驱动数码管显示IC芯片VK1616

    产品品牌:永嘉微电/VINKA 产品型号:VK1616 封装形式:SOP16 产品年份:新年份 概述:VK1616是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据锁存器、LED
    发表于 08-18 17:27

    【应用】工业现场的“智能显示管家”:亿佰特EID051-1xx系列 Modbus数码管解析

    数码管。亿佰特新推出的EID051-1xx系列Modbus数码管,以多种核心优势,成为工业现场的一大助力。一.什么是Modbus数码管?Modbus数码管是一种通过R
    的头像 发表于 07-17 19:34 385次阅读
    【应用】工业现场的“智能<b class='flag-5'>显示</b>管家”:亿佰特EID051-1xx系列 Modbus<b class='flag-5'>数码管</b>解析

    【紫光同创盘古PGX-Lite 7K教程】——(盘古PGX-Lite 7K开发/PGC7KD-6IMBG256第七章)数字钟实验例程

    的扩展 IO、数码管、按键、led 灯等硬件资源,在提供用户基础的硬件环境 基础上,满足用户更加灵活的需求。 二:实验目的 设计一个具有计时功能和校时功能的数字时钟。 三:实验要求 数码
    发表于 02-12 11:04

    【紫光同创盘古PGX-Lite 7K教程】——(盘古PGX-Lite 7K开发/PGC7KD-6IMBG256第六章)密码锁实验例程

    的 密码锁; 三:实验要求 利用拨码开关设置密码,使用按键输入开锁密码。当开锁密码与设定密码相 同时开锁成功,数码管显示 8888,密码错误时显示 7777。 SW0~SW3 设置
    发表于 02-10 11:28

    数码管和单片机的连接方式

    在电子技术飞速发展的今天,数码管和单片机作为电子系统中的基础组件,被广泛应用于各种电子产品之中。数码管为人们提供直观的数字显示,而单片机则如同电子产品的 “大脑”,掌控着整个系统的运行逻辑。深入了解
    的头像 发表于 02-05 17:44 2227次阅读

    如何利用万用表检测数码管

    数码管,作为一种广泛应用于电子设备中的显示器件,其稳定性和可靠性对于设备的正常运行至关重要。为了确保数码管的质量,使用万用表进行检测是电子工程师和维修人员的常用手段。本文将详细介绍如何利用万用表检测
    的头像 发表于 02-05 17:39 2819次阅读

    数码管的结构与原理

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

    数码管共阴和共阳的区别

    在电子设备的众多显示元件中,数码管以其简单直观、成本低廉等特点,广泛应用于各类电子仪器仪表、数码时钟、电子秤等设备上,承担着数字和简单字符的显示任务。对于电子工程师和电子爱好者而言,深
    的头像 发表于 02-05 17:29 7710次阅读

    四位数码管12个引脚怎么分配

    在电子显示技术中,四位数码管作为一种常见的显示器件,广泛应用于各种数字显示系统。其通过控制不同段(A-G)的发光二极(LED)来
    的头像 发表于 01-30 15:00 5w次阅读

    要求为为供电电压的范围在2.7V-5V之间,用于驱动五位七段共阴极数码管,求推荐一款数码管驱动芯片?

    推荐一款TI的数码管驱动芯片,要求为为供电电压的范围在2.7V-5V之间,用于驱动五位七段共阴极数码管,最好能给出建议原理图。谢谢!
    发表于 12-16 08:35