7段数码管动态显示实验说明
- 格式:pdf
- 大小:509.77 KB
- 文档页数:6
实验三:七段数码管显示译码一、实验目的:1 设计并实现一个7段数码管控制接口,要求:在输入四位数据为0~15时,数码管显示0~F;2设计并实现一个两位7段数码管控制接口,实现输入八位二进制,结果由两位7段数码管显示功能。
3 熟悉ISE9.1软件中电路的设计仿真及综合实现方法;4 熟悉下载方法及实验系统调试方法。
二、实验原理七段数码管显示译码程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY hex2led ISPORT(hex : IN STD_LOGIC_VECTOR(3 downto 0);ledout : OUT STD_LOGIC_VECTOR(6 downto 0));END hex2led;ARCHITECTURE rtl OF hex2led ISSIGNAL led :STD_LOGIC_VECTOR(6 downto 0);BEGINledout<= NOT led;WITH hex SELECTled<="1111001" when "0001","0100100" when "0010","0110000" when "0011","0011001" when "0100","0010010" when "0101","0000010" when "0110","1111000" when "0111","0000000" when "1000","0010000" when "1001","0001000" when "1010","0000011" when "1011","1000110" when "1100","0100001" when "1101","0000110" when "1110","0001110" when "1111","1000000" when others;END rtl;三、实验处理激励代码:tb : PROCESSBEGINhex<="0000";wait for 50 ns;for i in 0 to 15 loophex<=hex+1;wait for 50 ns;end loop;功能仿真图时序仿真图(图中黄线可以看出延时)延时报告:Data Sheet report:All values displayed in nanoseconds (ns) Pad to PadSource Pad |Destination Pad| Delay | hex<0> |ledout<0> | 5.963| hex<0> |ledout<1> | 5.963| hex<0> |ledout<2> | 5.963| hex<0> |ledout<3> | 5.958| hex<0> |ledout<4> | 5.963| hex<0> |ledout<5> | 5.958| hex<0> |ledout<6> | 5.958| hex<1> |ledout<0> | 5.963| hex<1> |ledout<1> | 5.963| hex<1> |ledout<2> | 5.963| hex<1> |ledout<3> | 5.958| hex<1> |ledout<4> | 5.963| hex<1> |ledout<5> | 5.958| hex<1> |ledout<6> | 5.958| hex<2> |ledout<0> | 5.963| hex<2> |ledout<1> | 5.963| hex<2> |ledout<2> | 5.963| hex<2> |ledout<3> | 5.958| hex<2> |ledout<4> | 5.963| hex<2> |ledout<5> | 5.958| hex<2> |ledout<6> | 5.958| hex<3> |ledout<0> | 5.963| hex<3> |ledout<1> | 5.963| hex<3> |ledout<2> | 5.963| hex<3> |ledout<3> | 5.958| hex<3> |ledout<4> | 5.963| hex<3> |ledout<5> | 5.958| hex<3> |ledout<6> | 5.958| ---------------+---------------+---------+可编程器件、拨码开关、与发光二极管关系#PACE: Start of PACE I/O Pin AssignmentsNET "hex<0>" LOC = "N17" ;NET "hex<1>" LOC = "H18" ;NET "hex<2>" LOC = "L14" ;NET "hex<3>" LOC = "L13" ;NET "ledout<0>" LOC = "B4" ;NET "ledout<1>" LOC = "A4" ;NET "ledout<2>" LOC = "D5" ;拨码开关状态数码管显示D1D2D3D4下下下下0下下下上1下下上下2下下上上3下上下下4下上下上5下上上下6下上上上7上下下下8上下下上9上下上下A 上下上上B 上上下下C 上上下上D 上上上下E 上上上上FNET "ledout<3>" LOC = "C5" ;NET "ledout<4>" LOC = "A6" ;NET "ledout<5>" LOC = "B6" ;NET "ledout<6>" LOC = "E7" ;设计表格记录实验结果,并分析其结果的正确性。
实验六数码管的动态显示
一、实验目的:
1.学习多位数码动态显示的原理。
2.培养综合运用多种中规模集成器件组合逻辑功能部件的能力及实验技能。
二、实验器材:
74LS139 74LS153 74LS00 74LS74 数字电子线路实验箱
三、实验原理:
数字电路中数据的显示方式有两种,一种为静态显示,一种为动态显示。
前面的实验中数码管的显示方式均为静态显示,数码管动态显示原理与静态显示不同,如果数码管采用共阳极接法一般在阴极接入数据信号,同时在阳极信号接入高电平则该数码管显示数据。
静态显示原理框图:
4路数据输入
数据
选择
2-4译
码器振荡器
秒脉冲
计数
器
七段
译码
4位
数码
管显
示
电路设计图:
测试:。
实验名称:十六进制7段数码显示译码器设计实验目的:1.设计七段显示译码器2.学习Verilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具的使用方法;工作原理:7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。
例如6-18作为7段译码器,输出信号LED7S 的7位分别接图6-17数码管的7个段,高位在左,低位在右。
例如当LED7S输出为“1101101”时,数码管的7个段g,f,e,d,c,b,a分别接1,1,0,1,1,0,1;接有高电平的段发亮,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,例6-18中的LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)应改为…(7 DOWNTO 0)。
实验内容1:将设计好的VHDL译码器程序在Quartus II上进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
实验步骤:步骤1:新建一个文件夹击打开vhdl文件;步骤2:编写源程序并保存步骤3:新建一个工程及进行工程设置步骤4:调试程序至无误;步骤5:接着新建一个VECTOR WAVEFOM文件及展出仿真波形设置步骤6:输入数据并输出结果(时序仿真图)步骤7:设置好这个模式步骤8:生成RTL原理图步骤9:引脚锁定及源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S ISPORT(A :IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END;ARCHITECTURE one OF DECL7S ISBEGINPROCESS(A)BEGINCASE A ISWHEN"0000"=> LED7S<="0111111";WHEN"0001"=> LED7S<="0000110";WHEN"0010"=> LED7S<="1011011";WHEN"0011"=> LED7S<="1001111";WHEN"0100"=> LED7S<="1100110";WHEN"0101"=> LED7S<="1101101";WHEN"0110"=> LED7S<="1111101";WHEN"0111"=> LED7S<="0000111";WHEN"1000"=> LED7S<="1111111";WHEN"1001"=> LED7S<="1101111";WHEN"1010"=> LED7S<="1110111";WHEN"1011"=> LED7S<="1111100";WHEN"1100"=> LED7S<="0111001";WHEN"1101"=> LED7S<="1011110";WHEN"1110"=> LED7S<="1111001";WHEN"1111"=> LED7S<="1110001";WHEN OTHERS =>NULL;END CASE;END PROCESS;END;实验内容二:1、硬件测试。
实验一、组合电路——7段数码管显示驱动电路设计一、实验目的了解EDA实验箱7位八段数码管显示模块的工作原理,设计标准扫描驱动电路模块,以备后面实验用。
二、硬件要求主芯片为Cyclone V E,型号为EP4CE22F17C8,7位八段数码管显示器,四位拨码开关。
三、实验内容用四位拨码开关产生8421BCD码,用CPLD分别产生7段数码管扫描驱动电路,然后进行仿真,观察波形,正确后编程下载实验测试。
四、实验原理1、72、动信号a,b,c,d,e,f,g。
通过调节四位拨码开关的状态,数码管应显示与之对应的字符。
五、实验连线输入:将芯片管角a0~a3分别接4个拨码开关;输出:将芯片管角led7s0~7分别接到数码管7段驱动信号a、b、c、d、e、f、g上。
六、实验源程序:decl7s.vhdlibrary ieee;use ieee.std_logic_1164.all;entity decl7s isport(a:in std_logic_vector(3 downto 0);led7s:out std_logic_vector(6 downto 0));end;architecture one of decl7s isbeginprocess(a)begincase a iswhen "0000" => led7s<="0111111"; when "0001" => led7s<="0000110"; when "0010" => led7s<="1011011"; when "0011" => led7s<="1001111"; when "0100" => led7s<="1100110"; when "0101" => led7s<="1101101"; when "0110" => led7s<="1111101"; when "0111" => led7s<="0000111"; when "1000" => led7s<="1111111"; when "1001" => led7s<="1101111"; when "1010" => led7s<="1110111"; when "1011" => led7s<="1111100"; when "1100" => led7s<="0111001"; when "1101" => led7s<="1011110"; when "1110" => led7s<="1111001"; when "1111" => led7s<="1110001"; when others => null;end case;end process;end;七、波形仿真结果。
实验十二数码管动态显示一、实验目的1、掌握数码管的显示原理。
2、掌握利用数码管显示计算数机内部信息。
3、掌握数码管动态显示的原理及使用。
二、实验技术准备1、数码管排列图实验箱共有8个共阴极数码管。
段码输入端:A、B、C、D、E、F、G、DP,8个数码管的段码是并联的,每个段码都通74LS244驱动器加以驱动。
位码控制端:S0、S1、S2、S3、S4、S5、S6、S7,8个位码是独立的,每个位码控制端经过一个与非门。
要使数码管显示数字,相应的段码应输入高电平,对于的位码也为高电平。
(注:位码段浮空均为高电平。
)2、 AL与段码的对应关系dp g f e d c b a3、特殊字符有H P C F E L h c d b等,要会写出对应的十六进制表示的七段代码。
三、动态显示原理因为实验箱8个数码管的段码是并联在一起的,一次只能显示一种字符。
要使多个数码管显示多个字符,先使第一个数码管显示第一种字符, 位码控制端S0保持几个毫秒之后, 使第二个数码管显示第二种字符, 第二个位码控制端S1保持几个毫秒后, 然后再指向下一个数码管…这样循环显示。
由于人眼的视觉惯性(暂留)作用,在感觉上好象是多个数码管“同时”显示不同的字符。
值得注意的是,为了不造成数码管显示上的混乱,在显示每个字符之前,•都必须将数码管上的所有显示清除掉,通过关闭显示来实现,即:使对应的位码为低电平。
若位码控制地址为280H,则关闭数码管的语句为:MOV DX,280H ;置位控地址MOV AL,00H ;使位码均为低电平OUT DX,AL ;输出位控信号2位数码管动态显示框图提示:第2题位码地址选用Y0,段码地址选用Y1。
第3题位码地址选用282H,不是直接引用Y0。
设计一个简单的逻辑电路,利用Y0、A0、A1信号来分离出282H。
四、硬件调试先接好位码部分线路,调试位码部分。
1、位码部分接线完毕检查无误后,点击工具栏中的“工具软件”,选“接口调试工具”。
4.4 显示模块4。
4。
1 7段数码管的结构与工作原理7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。
当发光二极管导通时,相应的一个点或一个笔画发光。
控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便.发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如图4.9所示.4。
4.2 7段数码管驱动方法发光二极管(LED 是一种由磷化镓(GaP)等半导体材料制成的,能直接将电能转变成光能的发光显示器件.当其内部有一一电流通过时,它就会发光.7段数码管每段的驱动电流和其他单个LED 发光二极管一样,一般为5~10mA ;正向电压随发光材料不同表现为1.8~2.5V 不等。
7段数码管的显示方法可分为静态显示与动态显示,下面分别介绍。
(1) 静太显示所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。
这种显示方法为每一们都需要有一个8位输出口控制。
对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。
静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU 才执行一次显示更新子程序,这样大大节省了CPU 的时间,提高了CPU 的工作效率;缺点是位数较多时,所需I/O 口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。
(2)动态显示所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄 灭共阴极7段数码管内部字段LED 和引脚分 共阳极图4.9 7段数码管结构图时的余辉效应,看到的却是多个字符“同时”显示.显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。
单片机实验报告
实验名称:数码管显示
姓名:
学号:
班级:
时间:2014.6
南京理工大学紫金学院电光系
一、实验目的
1、理解数码管显示的工作原理;
2、掌握静态显示和动态显示的基本处理方法;
3、学习I/O口驱动数码管的动态显示编程方法。
二、实验原理
MAT89C51单片机为控制器,八位7段数码管分别显示0~9.
三、实验内容
1、程序
#include<reg51.h>
void delay(void)
{
unsigned char i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
;
}
void main(void)
{
unsigned char i;
unsigned char code
Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; P2=0xfe;
while(1)
{
for(i=0;i<10;i++)
{
P0=Tab[i];
delay();
}
}
}
2、电路图
四、小结与体会
通过本次可的学习,让我能够更加熟练的编写单片机程序,对它有了更多的热情啊,同时让我们理解了数码管的段选跟位选的连接以及如何工作,初步掌握动态显示的方法。
班级_08网络__ 学号20080611052______ 姓名_袁晓洋__七段数码管驱动实验[实验目的]深入理解单片机IO口编程原理掌握七段数码管的原理和驱动方法掌握7段数码显示编码的方法[实验内容]采用单片机的IO驱动共阳极七段数码管,采用灌电流的方式使对应的LED 发光,并采用代码延时的方式实现七段数码管循环显示从0-9的数字,数字变化的间隔大约为1秒钟。
[实验步骤]在此填写在proteus中的操作步骤,并附绘制的电路图在此填写keil C51代码并附详细注释这是一个共阳极七段数码管将端口接至单片机P0 在共阳极接一个电源!及可实现;#include <reg51.h> //添加头文件#define SEG P0 //定义七段数码管LED连接P0Char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};//定义数字数组 0--9void delay(int); //声明delay函数main() //主函数{unsigned char i;while(1) 不停地循环for(i=0;i<10;i++){SEG=TAB[i]; 显示数字delay(1000); 延时1秒}}void delay(int x) //延时X*1ms{int i,j;for(i=0;i<x;i++)for(j=0;j<120;j++);}[实验总结]总结试验中遇到的问题和问题的解决方法。
刚开始接触单片机和数码管对电路图和代码不明白,不知道什么是共阳极和共阴极,有什么区别,后来通过反复的看代码,看书和老师的指导对其进行了了解,掌握!。