实验四 七段数码管显示电路一、实验目的实现十六进制计数显示。二、硬件需求EDA/SOPC实验箱一台。三、实验原理七段数码管分共阳极与共阴极两种。共阳极数码管其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极数码管则与之相反,它是将发光二极管的阴极短接后作为公共阴极,当驱动信号为高电平、公共阴极接低电平时,才能发光。图2-13为共阳极数码管和共阴极数码管的内部结构图。图2-13 共阳极数码管和共阴极数码管的内部结构图用七段数码管除了可以显示0~9的阿拉伯数字外,还可以显示一些英语字母。下表是常见的字母与7段显示关系(共阴极数码管)。
段字母 a b c d e f g

A 0 0 0 1 0 0 0
B 1 1 0 0 0 0 0
C 0 1 1 0 0 0 1
D 1 0 0 0 0 1 0
E 0 1 1 0 0 0 0
F 1 0 0 0 1 1 1
H 0 1 1 0 1 1 1
四、实验内容编写一个0~F轮换显示的电路(注意:选用实验箱中的共阳数码管DP1A,FPGA上P25引脚连接50MHz时钟。实验时为了便于观察,要将50MHz时钟经过分频得到1Hz时钟)。五、实验步骤(1)实验程序LIBRARY IEEE;USE IEEEstd_logic_1164all;USE IEEEstd_logic_unsignedall;ENTITY exp2 ISGENERIC(n:INTEGER :=6);port(clk: IN std_logic;led: OUT std_logic_vector(6 DOWNTO 0));END exp2;ARCHITECTURE example OF exp2 ISSIGNAL sel:INTEGER RANGE 0 TO n-1 :=0;SIGNAL f_out:std_logic;SIGNAL count:INTEGER RANGE 0 TO 15 :=0;
BEGINPROCESS(clk)BEGINIF clk'event and clk='1' THENIF sel>n-2 THEN sel<=0;ELSEIF sel>=n/2 THENf_out<='1';ELSEf_out<='0';END IF;sel<=sel+1;END IF;END IF;END PROCESS;PROCESS(f_out)BEGINIF f_out'event and f_out='1' THENIF count<=15 THENcount<=count+1;ELSEcount<=0;END IF;END IF;END PROCESS;PROCESS(count)BEGINCASE count ISWHEN 0 => led <="0000001";WHEN 1 => led <="1001111";WHEN 2 => led <="0010010";WHEN 3 => led <="0000110";WHEN 4 => led <="1001100";WHEN 5 => led <="0100100";WHEN 6 => led <="0100000";WHEN 7 => led <="0001111";WHEN 8 => led <="0000000";WHEN 9 => led <="0000100";WHEN 10 => led <="1110111";WHEN 11 => led <="0011111";WHEN 12 => led <="1001110";WHEN 13 => led <="0111101";WHEN 14 => led <="1001111";WHEN 15 => led <="0111000";
¥
59
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
可编程逻辑器件实验EDA-七段数码管显示电路
实验四 七段数码管显示电路
一、实验目的
实现十六进制计数显示。
二、硬件需求
EDA/SOPC实验箱一台。
三、实验原理
七段数码管分共阳极与共阴极两种。共阳极数码管其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极数码管则与之相反,它是将发光二极管的阴极短接后作为公共阴极,当驱动信号为高电平、公共阴极接低电平时,才能发光。图2-13为共阳极数码管和共阴极数码管的内部结构图
数码管动态显示工作原理
8位数码管可以看成是8个小灯泡。比如想显示1,则右侧上下两个小灯泡点亮即可。按一定顺序,把8个小灯泡编号,比如ABCDEFGH,当显示不同的数值,比如从0一直到9,把显示这十个数字时的小灯泡的编号记下来,也就形成了所谓的“编码”。在进一步的应用中,只要按之前所记的编码,按某个编码将小灯泡点亮,则显示的一定是对应的那个数字。
介绍:
数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个可分为1位、2位、3位、4位、5位、6位、7位等数码管。
结构:
led数码管是由多个发光二极管封装在一起组成"8"字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位"+1"型。led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
拓展:
数码管是显示屏其中一类, 通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数。由于它的价格便宜 使用简单 在电器特别是家电领域应用极为广泛,空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。
设计单片机控制6位数码管动态显示电路,并编程实现让数码管同时显示
1、多个数码管的段码连接在一起,位码分别控制。
2、由于段码连接在一起,如果数码管全亮,则显示的数据相同,所以为了显示不同的数字,任何时刻,只能有一个数码管显示,其余不显示。
3、用软件使这几个数码管轮流显示我们需要的数字。
4、只要更新频率足够快(>100Hz),肉眼看起来,这些数码管就同时显示我们需要的数字了。
扩展资料:
数码管的最常见形式有10个阴极,形状为数字0到9,某些数码管还有一个或两个小数点。然而也有其他类型的数码管显示字母、标记和符号。如一种“数码管”,其阴极为一个模板制成的面具,上面有数字形状的孔。一些俄罗斯的数码管,如IN-14,使用倒立的数字2代表5,大概是为了节约生产成本,而没有明显的技术或美学方面的原因。俄罗斯的数码管大部分都使用了倒立的2作为5。
将170伏的直流电压加在阴极和阳极之间,每一个阴极可以发出氖的的红橙色光。由于混合气体的不同,不同类型的数码管之间的颜色有所区别。寿命较长的数码管在制造中加入了汞,减少了溅射,结果发出的光的颜色为蓝色或紫色调。在某些情况下,这些颜色被玻璃上的红色或橙色过滤涂层过滤。
在单片机应用系统中。LED数码管显示电路通常有什么显示方式?
#include #include #define uchar unsigned char#define uint unsigned intuchar code DSY_CODE[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};void DelayMS(uint x){ uchar t;while(x--)for(t=120;t>0;t--);}void main(){ uchar i=0;P0=0x00;while(1){ P0=~DSY_CODE[i];i=(i+1)%16;/显示0-f/DelayMS(400);}}
数码管显示方式及特点?
1一个单片机应用系统用led数码管显示字符“8”的段码是80h,可以断定该显示系统用的是(
b
)。
a、不加反相驱动的共阴极数码管
b、加反相驱动的共阴极数码管或不加反相驱动的共阳极数码管
c、加反相驱动的共阳极数码管
d、以上都不对
2在共阳极数码管使用中,若要仅显示小数点,则其相应的字段码是(d
)。
a、80h
b、10h
c、40h
d、7fh
3按键开关的结构通常是机械弹性元件,在按键按下和断开时,触点在闭合和断开瞬间会产生接触不稳定,为消除抖动引起的不良后果常采用的方法有(
b
)。
a、硬件去抖动
b、软件去抖动
c、硬、软件两种方法
d、单稳态电路去抖动方法
判断:
1、at89s51单片机只有2个外部中断源。(

t
)
2、51系列单片机只有2个中断源。(
f
)
3、串口中断标志由硬件清0。(f
)
4、特殊功能寄存器的名字,在c51程序中,全部大写。(
t
)
5、“sfr”后面的地址可以用带有运算的表达式来表示。(
f
)
6、不能用“sfr16”
直接访问定时器/计数器0和1。
(
t
)
如何利用单片机让4位数码管显示?
数码管的显示方式有两种:静态显示和动态显示。
1.静态显示方式。所谓静态显示就是指无论是多少位数码管,同时处于显示状态。 当单片机系统中使用静态数码管显示时,需要在每一个数码管上添加一个锁存器,当需要某个数码管显示其他内容时,只需要修改与其相连的锁存器的值即可。 当数码管处于静态显示方式时,所有位选线(数码管的公共端)连接在一起,而各个数码管的段选线(数码管上各笔段的引出线)是相互分离的。
静态显示的优点是:数码管显示无闪烁,亮度高,软件控制比较容易;缺点是:需要的硬件电路较多(每一个数码管都需要一个锁存器),如果在全国大学生电子设计竞赛中使用,将造成很大的不便,同时由于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多时,对电源的要求也就随之增高。所以,在大部分的硬件电路设计中,很少采用静态显示方式。
2.动态显示方式。所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态,每个数码管轮流显示。 当数码管处于动态显示时,所有位选线分离,而每个数码管的各条段选线相连。当需要显示数字或字符时,需要将所有数码管轮流点亮,这时对每个数码管的点亮周期有了一个较严格的要求:由于发光体从通入电流开始点亮到完全发光需要一定的时间,叫做响应时间,这个时间对于不同的发光材质是不同的,通常情况下为几百微秒,所以数码管的刷新周期(所有数码管被轮流点亮一次的时间)不要过短,这也与数码管的数量有关,一般的数码管的刷新周期应控制在5ms~10ms,即刷新率为200Hz~100Hz,这样既保证了数码管每一次刷新都被完全点亮,同时又不会产生闪烁现象。
动态显示的优点是:硬件电路简单(数码管越多,这个优势越明显),由于每个时刻只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管亮度不如静态显示时的亮度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象;如果数码管直接与单片机连接,软件控制上会比较麻烦等。
在应用数码管进行显示时,首先需要考虑的问题就是驱动电流,与发光二极管相同,数码管的发光段也需要串联限流电阻,以共阳极数码管为例,串联的限流电阻阻值越大,电流越小,亮度越低;电阻值越小,电流越大,亮度越高。在使用限流电阻时需要在每一个段线上都串联限流电阻,而不要在公共端上串联电阻,如果只在公共端上串联一个限流电阻,则在显示不同的数字时,将会造成数码管亮度的不同。 由于在动态显示时,每个数码管的段选线是对应连接在一起的,同时由于数码管不存在同时点亮状态,所以之需要在段选线的引出端上串联限流电阻即可, 1.静态显示驱动电路。
数码管的静态显示虽然硬件电路较多,但与单片机之间的连接比较简单,例如可以使用串行转并行芯片74LS164作为数码管的驱动,74LS164之需要与单片机的串行接口相连接即可, 2.在动态显示时,如果将数码管直接与单片机连接,除了硬件电路简单外,似乎并没有太多的优点。但是当我们选用专用的数码管显示驱动芯片时,其优点就显现出来了。目前常见的数码管显示芯片有8279、MAX7219、HD7279、CH451等。这些芯片的主要特点是:数码管的显示全都采用动态扫描的方式,都可以连接8个数码管,控制方式都比较简单。现面对这几个芯片进行简单的介绍。
8279为Intel公司生产的较早期的产品,是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8×8=64ByteRAM,键盘控制部分可控制8×8=64个按键或8×8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16×8,即显示器最大配置可达16位LED数码显示(有关键盘部分内容将在24节中详细介绍)。8279与单片机之间采用三总线(数据总线、地址总线和控制总线)结构连接,在用8279与数码管连接时,还需要连接驱动器,同时由于价格较高,所以现在使用的很少。
程序如下(用的是STC89C52芯片):
#include<reg52h>//52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
uint x,y;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共阴极数码管编码
void display(uchar,uchar,uchar,uchar);//声明子函数
void delay(int);//声明子函数
void main()
{
while(1)
{
display(1,2,3,4);//主程序始终调用数码管显示子程序
}
}
void display(uchar a,uchar b,uchar c,uchar d)
{
P2=0xef;
P0=table[a];//给第一个数码管送"a"
delay(1);//延时1ms
P2=0xdf;
P0=table[b];//给第二个数码管送"b"
delay(1);//延时1ms
P2=0xbf;
P0=table[c];//给第三个数码管送"c"
delay(1);//延时1ms
P2=0x7f;
P0=table[d];//给第三个数码管送"d"
delay(1);//延时1ms
}
void delay(uint z)//延时子函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

扩展资料
led数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
-数码管


