7段数码管控制接口的设计
- 格式:ppt
- 大小:123.00 KB
- 文档页数:5


八位七段数码管动态显示电路的设计一七段显示器介绍七段显示器,在许多产品或场合上经常可见。
其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。
目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。
七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角)。
图4.1、七段显示器俯视图由于发光二极管只有在顺向偏压的时候才会发光。
因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作)与共阴极( 高电位动作)七段显示器,如下图4.2所示。
( 共阳极) ( 共阴极)图4.2、共阳极(低电位动作)与共阴极(高电位动作)要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ Sink Current ”方式,亦即是共同接脚COM为VCC,并由Cyclone II FPGA使接脚成为高电位,进而使外部电源将流经七段显示器,再流入Cyclone II FPGA的一种方式本实验平台之七段显示器模块接线图如下图4.5所示。
此平台配置了八组共阳极之七段显示器,亦即是每一组七段显示器之COM接脚,均接连至VCC电源。
而每一段发光二极管,其脚位亦均与Cyclone II FPGA接连。
四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。
八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。
图4.5、七段显示器模块接线图七段显示器之常见应用如下可作为与数值显示相关之设计。
⏹电子时钟应用显示⏹倒数定时器⏹秒表⏹计数器、定时器⏹算数运算之数值显示器二七段显示器显示原理七段显示器可用来显示单一的十进制或十六进制的数字,它是由八个发光二极管所构成的( 每一个二极管依位置不同而赋予不同的名称,请参见图4.1 ) 。
EDA基础及应用实验项目报告项目题目:七段数码管显示电路设计姓名:胡小琴院系:电子信息工程学院专业:电子信息工程(对口高职)学号: 201315294127指导教师:徐正坤综合成绩:完成时间: 2015年5月22日一、项目实验内容摘要1、设计一个共阴7段数码管控制接口,要求:在时钟信号的控制下,使8位数码管动态刷新显示0—9。
2、设计一个基本功能十进制计数器,实现十进制计数器输出的动态显示。
二、项目实验源代码程序1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY countbasic ISPORT(CLK:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END countbasic ;ARCHITECTURE behav OF countbasic ISBEGINPROCESS(CLK)V ARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLK'EVENT AND CLK='1' THENIF Q<9 THEN Q:=Q+1;ELSE Q:=(OTHERS=>'0');END IF;END IF;IF Q="1001" THEN COUT<='1';ELSE COUT<='0';END IF;DOUT<=Q;END PROCESS;END behav;程序2 ENTITY countbasic_vhd_tst ISEND countbasic_vhd_tst;ARCHITECTURE countbasic_arch OF countbasic_vhd_tst IS -- constants-- signalsSIGNAL CLK : STD_LOGIC;SIGNAL COUT : STD_LOGIC;SIGNAL DOUT : STD_LOGIC_VECTOR(3 DOWNTO 0); constant clk_cycle : time := 100 ns;COMPONENT countbasicPORT (CLK : IN STD_LOGIC;COUT : OUT STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;BEGINi1 : countbasicPORT MAP (-- list connections between master ports and signalsCLK => CLK,COUT => COUT,DOUT => DOUT);processbeginclk <= '1';wait for clk_cycle;clk <= '0';wait for clk_cycle;end process;END countbasic_arch;程序3LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Seg7_Dsp isPORT(CP : IN STD_LOGIC; -- CLOCKSEGOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -- SEG7 Display O/PSELOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -- Select SEG7 O/PNUMOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -- Number Display Signal OUTNUM : IN STD_LOGIC_VECTOR( 3 DOWNTO 0); -- Number Display Signal INM : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END Seg7_Dsp;ARCHITECTURE a OF Seg7_Dsp ISSIGNAL SEG : STD_LOGIC_VECTOR( 7 DOWNTO 0); -- SEG7 Display Signal SIGNAL SEL : STD_LOGIC_VECTOR( 7 DOWNTO 0); -- Select SEG7 Signal BEGINConnection : BlockBeginM <= "0010";SELOUT <= SEL; -- Seg7 Disp Selection SEGOUT(7 DOWNTO 0) <= SEG; -- Seven Segment Display NUMOUT <= NUM;End Block Connection;Free_Counter : Block -- 计数器-- 产生扫描信号Signal Q : STD_LOGIC_VECTOR(24 DOWNTO 0);Signal S : STD_LOGIC_VECTOR(2 DOWNTO 0);BeginPROCESS (CP) -- 计数器计数BeginIF CP'Event AND CP='1' thenQ <= Q+1;END IF;END PROCESS;S <= Q(15 DOWNTO 13); --about 300 Hz--扫描信号SEL <= "11111110" WHEN S=0 ELSE"11111101" WHEN S=1 ELSE"11111011" WHEN S=2 ELSE"11110111" WHEN S=3 ELSE"11101111" WHEN S=4 ELSE"11011111" WHEN S=5 ELSE"10111111" WHEN S=6 ELSE"01111111" WHEN S=7 ELSE"11111111";End Block Free_Counter;SEVEN_SEGMENT : Block -- Binary Code -> Segment 7 CodeBegin--SEG <= "00111111"WHEN NUM = 0 ELSE"00000110"WHEN NUM = 1 ELSE"01011011"WHEN NUM = 2 ELSE"01001111"WHEN NUM = 3 ELSE"01100110"WHEN NUM = 4 ELSE"01101101"WHEN NUM = 5 ELSE"01111101"WHEN NUM = 6 ELSE"00000111"WHEN NUM = 7 ELSE"01111111"WHEN NUM = 8 ELSE"01101111"WHEN NUM = 9 ELSE"01110111"WHEN NUM = 10 ELSE"01111100"WHEN NUM = 11 ELSE"00111001"WHEN NUM = 12 ELSE"01011110"WHEN NUM = 13 ELSE"01111001"WHEN NUM = 14 ELSE"01110001"WHEN NUM = 15 ELSE"00000000";End Block SEVEN_SEGMENT;END a;三、项目实验工具软件项目试验工具:EL-SOPC400试验箱、主芯片:EP4CE22F17C8、计算机与QUARTUS Ⅱ软件四、实验步骤1、建立项目文件以及VHDL文件同前几个实验一样2、将前两个程序按照一点的步骤设置然后进行仿真3、将三个实验添加到项目中来并设置为顶层文件4、建立顶层图,选择“File→New→Block Diorgram Schematic File”按OK 就可以建立一个顶层图,我们在把他进行保存,名字为默认的文件名,并将“Add file to current project”选项选中,让他加入到工程中去。
十六进制七段数码显示管设计电子科技大学实验报告学生姓名:学号:指导教师:王振松一、实验室名称:现代测试技术实验室二、实验项目名称:3位十六进制七段数码显示管设计三、实验原理:对4个7段LED数码管的每个LED显示屏都是按照一个“数字8”的模式安排了7个发光二极管组成部分。
每段LED可以单独照明,这7个段的每个LED的阳极是连接在一起,成为一个共同的阳极电路节点,但LED的阴极保持独立。
如需要每一位显示不同的数字,则需利用人眼的视觉残留效应进行动态刷新显示,以30次/秒的速度以此显示4个十六进制数。
所以是s[1:0]的数值必须以此速度从0~3计数。
同时输出an[3:0]的数值必须和s[1:0]同步,这样就保证在正确的时间显示正确的数字。
当然同时要使用使能端控制第三位数码管使其熄灭。
四、实验目的:1. 进一步熟悉Xilinx公司EDA开发系统软件平台的操作。
2. 学会将50M的晶振经多次分频后得到低频脉冲信号。
3. 学会用Verilog HDL中的case语句来创建七段译码器。
4. 学会使用原理图作为顶层图实现数字电路。
5. 掌握数码管动态扫描显示技术。
6. 学会用BASYS2 FPGA开发板下载执行并验证代码。
五、实验内容:1)利用HDL代码输入方式在Xilinx ISE 13.4平台上实现一个十六进制七段数码显示管设计;2)使用原理图作为顶层图实现数字电路,使用模块实例语句连接前面所设计的七段译码器模块;3)生成比特流文件下载到开发板上进行验证。
六、实验器材(设备、元器件):1)计算机(安装Xilinx ISE 13.4软件平台);2)BASYS2 FPGA开发板一套(带USB-MiniUSB下载线)。
七、实验步骤:1、在Xilinx ISE 13.4平台中,新建一个工程LED。
我们选用的BASYS2 FPGA开发板采用的是Spartan3E XC3S100E芯片和CP132封装,设置好器件属性。
7段数码管控制接口一、实验目的1.掌握7段共阴极数码管工作的基本原理;2.进一步掌握VHDL语言的基本语句。
二、硬件要求主芯片Altera EPM7128SLC84-15,时钟信号,7段数码管显示器,拨码开关。
三、实验内容设计一个数码管显示的控制电路,使其驱动EDA实验箱上数码管显示模块正常工作。
具体要求如下:1)在时钟信号的驱动下,八个数码管选通工作,显示0~F的数值。
选通信号为sel0~sel2。
2)控制模块输出给显示模块a~g,从而控制显示模块的显示内容。
四、实验原理数码管为共阴极数码管。
本模块的输入口共有21个,为11个段信号输入口和3个位信号输入口,分别为A、B、C、D、E、F、G、DP、SEL0、SEL1、SEL2。
其中SEL0、SEL1、SEL2位于16×16点阵模块区,它们经3-8译码器后送给数码管作位选信号,其对应关系如表1。
表1 LED数码管显示接口及对应的显示状态五、实验源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY shumaguan ISPORT ( CLK :IN STD_LOGIC;T:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SG :OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END;ARCHITECTURE BHV OF shumaguan ISSIGNAL CNT8:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINP1:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK ='1' THEN CNT8 <= CNT8 + 1; END IF;END PROCESS P1;SEL <= CNT8;P2:PROCESS(T)BEGINCASE T ISWHEN "0000"=>SG<="0111111";WHEN "0001"=>SG<="0000110";WHEN "0010"=>SG<="1011011";WHEN "0011"=>SG<="1001111";WHEN "0100"=>SG<="1100110";WHEN "0101"=>SG<="1101101";WHEN "0110"=>SG<="1111101";WHEN "0111"=>SG<="0000111";WHEN "1000"=>SG<="1111111";WHEN "1001"=>SG<="1101111";WHEN "1010"=>SG<="1110111";WHEN "1011"=>SG<="1111100";WHEN "1100"=>SG<="0111001";WHEN "1101"=>SG<="1011110";WHEN "1110"=>SG<="1111001";WHEN "1111"=>SG<="1110001";WHEN OTHERS =>NULL;END CASE;END PROCESS P2;END;六、波形仿真结果。