数码管led【显示】器控制电路.pptVIP

  • 10
  • 0
  • 约8.73千字
  • 约 36页
  • 2018-08-10 发布于未知
  • 举报
专题二. 经典模块设计 数码管显示原理 数码管的组成:LED数码管是由发光二极管构成的,常用的有8段。 数码管的段码和位码 数码管的位码就是提供给公共端的电平。位码的作用是控制数码管的亮灭。 数码管的段码就是提供给a,b,c,d,e,f,g,h的电平。段码的作用是控制数码管显示什么字符。 单个数码管需要9个端口来控制。 举例:位码和段码 LED数码管显示控制电路 静态显示方式 动态显示方式 (1)LED静态显示控制电路 静态显示方式将每一个数码管的段码端a~h连接到CPLD/FPGA的IO端口上,公共端接地(对于共阴极LED)。每个数码管需要8个IO口线,N个数码管共需要N×8条IO口线。 当CPLD/FPGA有相当多的IO端口资源,并且显示的位数较少时(通常为1~2位),可以直接使用静态显示的方式。 数码管静态显示方式的优点是连线简单,软件编程简单。 缺点是需要耗费大量的IO端口资源。 CPLD/FPGA驱动LED静态显示译码程序 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Use ieee.std_logic_arith.all; Entity display is --共阴极数码管段码译码 port( data: IN std_logic_vector(3 downto 0); seg: OUT std_logic_vector(6 downto 0) --gfedcba ); End display; architecture a of display is begin process(data) begin case data is --gfedcba when 0000 = seg = 0111111; --0 when 0001 = seg = 0000110; --1 when 0010 = seg = 1011011; --2 when 0011 = seg = 1001111; --3 when 0100 = seg = 1100110; --4 when 0101 = seg = 1101101; --5 when 0110 = seg = 1111101; --6 when 0111 = seg = 0000111; --7 when 1000 = seg = 1111111; --8 when 1001 = seg = 1100111; --9 when 1010 = seg = 1110111; --A when 1011 = seg = 1111100; --b when 1100 = seg = 0111001; --c when 1101 = seg = 1011110; --d when 1110 = seg = 1111001; --E when 1111 = seg = 1110001; --F when others = seg = 0000000; --全灭 end case; end process; end a; 仿真结果 将要显示的数据译成段码在数码管上显示出来。 静态显示应用举例: 设计一个4路独立键盘输入电路,读取键盘的键值,并将键值在一位静态共阴极LED数码管中显示出来。 输入为时钟信号CLK(50MHz),按键状态KEY1,KEY2,KEY3,KEY4。 输出为LED数码管的段码SEG[6..0]。 电路模块 键盘扫描译码模块程序(1) 键盘扫描译码模块程序(2) keyscan程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity keyscan is port( clk10hz: IN std_logic; key1, key2, key3, key4: IN std_logic; keyvalue

文档评论(0)

1亿VIP精品文档

相关文档