FPGA对LED显示器_第1页
FPGA对LED显示器_第2页
FPGA对LED显示器_第3页
FPGA对LED显示器_第4页
FPGA对LED显示器_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8.2 FPGA对LED显示器的控制 1LED数码管的工作原理 LED数码管用8段发光二极管来显示数字,每一段都是一个发光二极管,如图8.2.1所示。一般把所有段的相同一端相连,连接到地(共阴极接法)或者是连接到电源(共阳极接法)。 共阴LED数码管的公共端连接到地,另一端分别接一个限流电阻后再接到控制电路的信号端,当信号端为高电平时,该段即被点亮,否则不亮。共阳极接法则相反,公共端连接到电源,另一端分别接一个限流电阻后再接到控制电路的信号端,只有信号端为低电平时才被点亮,否则不亮。2在数字逻辑电路中,可用74LS48(共阳)/74LS49(共阴)译码驱动电路来控制LED显示。在FPGA中,用

2、硬件描述语言设计一个译码驱动器,例如进行一个74LS48的功能设计。由于FPGA和硬件描述语言的灵活性,可以设计出能显示更多内容的译码驱动模块。 3FPGA实现LED静态显示控制运用硬件描述语言(如VHDL)设计一个显示译码驱动器,即将要显示的字符译成8段码。由于FPGA有相当多的引脚端资源,如果显示的位数N较少,可以直接使用静态显示方式,即将每一个数码管都分别连接到不同的8个引脚线上,共需要8N条引脚线控制,如左图所示。4采用FPGA实现LED数码管动态显示控制N个LED数码管以静态方式显示时,需用到8N条引脚线。在较为复杂的系统中,FPGA的引脚端资源是有限的。因此对于多个LED数码管显示

3、,可以采用扫描方式来实现LED数码管动态显示。实现方法是依次点亮各个LED数码管,循环进行显示,即一个数码管显示之后另一个数码管马上显示,利用人眼的视觉暂留特性,可以到多个数码管同时显示的效果。采用扫描方式来实现LED数码管动态显示,控制好数码管之间的延时是相当重要。接下页5根据人眼视觉暂留原理,LED数码管每秒的导通16次以上,人眼就无法分辨LED数码管短暂的不亮,认为是一直点亮的(其实LED数码管是以一定频率在闪动的)。但是,延时(导通频率)也不是越小越好,因为LED数码管达到一定亮度需要一定时间。如果延时控制的不好则会出现闪动,或者亮度不够。据经验,延时0.005秒可以达到满意的效果。接

4、下页6修改延时,亦能得到更多的显示效果,如加长延时,使得数码管显示一小段时间,再点亮下一个,即可得到数码管逐个显示的效果。另外,显示的字符有变化时,可在延时到达后送一个低电平(共阴极数码管)让LED数码管先短暂熄灭,再显示下一个字符,可使在视觉上字符的变化更清晰。 7FPGA实现LED动态方式显示的控制电路8FPGA驱动LED静态显示程序(1)library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity decoder isPort (se

5、g:in std_logic_vector(3 downto 0 ); -四位二进制码输入q3:out std_logic_vector(6 downto 0) ); -输出LED七段码end decoder;architecture Behavioral of decoder isbegin9FPGA驱动LED静态显示程序(1)process(seg)begincase seg iswhen 0000 = q3 q3 q3 q3 q3 q3 q3 q3 q3 q3 q3=1111111;end case; end process; end Behavioral;10FPGA驱动LED动态显示

6、(4位)entity dynamic is Port ( clk,reset: in std_logic; din1 : in std_logic_vector(6 downto 0);-译码后的数据信号1 din2 : in std_logic_vector(6 downto 0); -译码后的数据信号2 din3 : in std_logic_vector(6 downto 0); -译码后的数据信号3 din4 : in std_logic_vector(6 downto 0); -译码后的数据信号4 shift: out std_logic_vector(3 downto 0); -位

7、选信号 bus4 : out std_logic_vector(6 downto 0); -数据信号end dynamic;architecture Behavioral of dynamic issignal scan_clk:std_logic_vector(1 downto 0);11process(clk,scan_clk,reset) -分频进程variable scan:std_logic_vector(17 downto 0);beginif reset=1 then scan:=0000000; scan_clk=00;elsif clkevent and clk=1then scan:=scan+1;end if;scan_clk bus4=din1;shif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论