LED数码管动态显示控制器设计.docx
文本预览下载声明
PAGE \* MERGEFORMAT10
LED数码管动态扫描显示控制器设计
姓名 唐浩月
学号 2903101013
日期 2011/7/4
地点 科A304
【摘要】
当多个LED数码管用静态方式显示时,需要相当多的引出端线,而器件的引脚由于实际加工水平和使用需求,往往哪个仅有极为有限的引脚数。利用循环显示的方法,可以通过人眼的视觉暂留,达到使用极为有限的引脚使得多个数码管同时显示的效果。
【正文】
1.实验任务与原理
1.1任务指标
采用扫描方式LED数码管的动态显示,控制好数码管之间的延迟,根据视觉暂留原理对数据进行连续计数。
1.2功能需求
(1)能够通过动态扫描显示数据。
1.3原理阐述
(1)LED数码管显示原理
LED七段数码管原理图如下,当采用共阴极(采用共阳极时反向)时,共阴极接地,另一管脚接高电平的发光二极管被点亮。
(2)动态扫描原理
动态扫描要求在点亮多个各不同的数码管的同时输入数据,但是由于要显示多个不同的数字,需要在多个周期内才能完成,即将时间分隔为多个周期的循环。当频率达到一定程度时(如1khz),其延时可达到较好的效果,利用视觉暂留可以达到动态显示的目的。
2.设计思路,方法及方案
2.1系统功能需求分析
在时钟脉冲clk的作用下,计数器开始计数,再通过译码器生成数据选择器的片选信号,来控制LED管显示。同时选出一路BC码数据,通过显示译码器控制数码管a-g管脚和共阴极,使得每次只有一个数码管在工作。这样进入clk循环计数后,可以在较高的频率下轮流显示。
4.FPGA模块程序设计
4.1提交模块VHDL程序
由于程序较长,见附录。
5.结束语
5.1故障分析处理
动态扫描现实的优势是明显的,不但减少了引脚,增加了使用性和可操作性,而且更加高效。但是其难点是对频率的设置在不同的环境和需求下需要仔细选择调试。
5.2收获及改进意见
(1)对VHDL和modesim有了进一步的认识。
(2)对波形的调试仿真有了一定的经验。
(3)了解了VHDL语言,接触了初级的的硬件描述性语言。
6.附录
七段译码显示驱动电路
-- Company:
-- Engineer:
--
-- Create Date: 13:35:05 07/04/2011
-- Design Name:
-- Module Name: yimaxianshi - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
Uncomment the following library declaration if instantiating
any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity yimaxianshi is
Port ( a : in STD_LOGIC_VECTOR (3 downto 0);
led7s : out STD_LOGIC_VECTOR (7 downto 0));
end yimaxianshi;
architecture Behavioral of yimaxianshi is
begin
process(a)
begin
case a is
when 0000=led7s
when 0001=led7s
when 0010=led7s
when 0011=led7s
when 0100=led7s
when 0101=led7s
when 0110=led7s
when 0111=led7s
when 1000=led7s
when 1001=led7s
when others=led
显示全部