文档库 最新最全的文档下载
当前位置:文档库 › VHDL数码管扫描显示驱动电路

VHDL数码管扫描显示驱动电路

VHDL数码管扫描显示驱动电路
VHDL数码管扫描显示驱动电路

静态显示

library ieee;

use ieee.std_logic_1164.all;

entity bcd_seg is

port(

a,b,c,d:in std_logic;

seg:out std_logic_vector(7 downto 0)

);

end entity bcd_seg;

architecture one of bcd_seg is

signal bcd:std_logic_vector(3 downto 0);

begin

bcd<=a&b&c&d;

process(bcd)

begin

case bcd is

when "0000"=>seg<="00111111";

when "0001"=>seg<="00000110";

when "0010"=>seg<="01011011";

when "0011"=>seg<="01001111";

when "0100"=>seg<="01100110";

when "0101"=>seg<="01101101";

when "0110"=>seg<="01111101";

when "0111"=>seg<="00000111";

when "1000"=>seg<="01111111";

when "1001"=>seg<="01101111";

when others=>null;

end case;

end process;

end architecture one;

动态显示

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity bcd_seg is

port(

clk:in std_logic;

a,b,c,d:in std_logic;

com:out std_logic_vector(2 downto 0);

seg:out std_logic_vector(7 downto 0)

);

end entity bcd_seg;

architecture one of bcd_seg is

signal cnt:std_logic_vector(2 downto 0);

signal bcd:std_logic_vector(3 downto 0);

begin

process(clk)

begin

if clk'event and clk='1' then

if cnt="111" then

cnt<="000";

else

cnt<=cnt+'1';

end if;

end if;

end process;

com<=cnt;

bcd<=a&b&c&d;

process(bcd)

begin

case bcd is

when "0000"=>seg<="00111111";

when "0001"=>seg<="00000110";

when "0010"=>seg<="01011011";

when "0011"=>seg<="01001111";

when "0100"=>seg<="01100110";

when "0101"=>seg<="01101101";

when "0110"=>seg<="01111101";

when "0111"=>seg<="00000111";

when "1000"=>seg<="01111111";

when "1001"=>seg<="01101111";

when "1010"=>seg<="01110111";

when "1011"=>seg<="01111100";

when "1100"=>seg<="00111001";

when "1101"=>seg<="01011110";

when "1110"=>seg<="01111001";

when "1111"=>seg<="01110001";

end case;

end process;

end architecture one;

七段数码管显示

七段数码管显示设计报告 目录 一、设计任务 二、题目分析与整体构思 三、硬件电路设计 四、程序设计 五、心得体会

一.设计任务 数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显示器。它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。 数码管动态扫描显示,是将所用数码管的相同段(a~g 和p)并联在一起,通过选位通 信号分时控制各个数码管的公共端,循环依次点亮各个数码管。当切换速度足够快时,由于人眼的“视觉暂留”现象,视觉效果将是数码管同时显示。 根据七段数码管的显示原理,设计一个带复位的七段数码管循环扫描程序,本程序需要着重实现两部分: 1. 显示数据的设置:程序设定4 位数码管从左至右分别显示1、2、3、4; 2. 动态扫描:实现动态扫描时序。 利用EXCD-1 开发板实现七段数码管的显示设计,使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA相应引脚。四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接。 二.题目分析与整体构思 使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,呈“”字状,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA 相应引脚。SEG_SEL1、SEG_SEL2、SEG_SEL3 和SEG_SEL4 为四位7 段数码管的位选择端。当其值为“1”时,相应的7 段数码管被选通。当输入到7 段数码管SEG_A~ SEG_G 和SEG_DP 管脚的数据为高电平时,该管脚对应的段变亮,当输入到7 段数码管 SEG_A~SEG_G 和SEG_DP 管脚的数据为低电平时,该管脚对应的段变灭。该四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接,当DIP 开关全部拨到上方时(板上标示为:7SEGLED),FPGA 的相应IO 引脚和四位7 段数码管连接,7 段数码管可以正常工作;当DIP 开关全部拨到下方时(板上标示为:EXPORT5),FPGA 的相应IO引脚与7 段数码管断开,相应的FPGA 引脚用于外部IO 扩展。 注意:无论拨码开关断开与否,FPGA 的相应IO 引脚都是与外部扩展接口连接的,所 以当正常使用数码管时,不允许在该外部扩展接口上安装任何功能模块板。 数码管选通控制信号分别对应4 个数码管的公共端,当某一位选通控制信号为高电平时,其对应的数码管被点亮,因此通过控制选通信号就可以控制数码管循环依次点亮。一个数码管稳定显示要求的切换频率要大于50Hz,那么4 个数码管则需要50×4=200Hz 以上的切换频率才能看到不闪烁并且持续稳定显示的字符。 三.硬件电路设计 设计结构图如下:

4位7段数码管驱动电路设计要求

4位7段数码管驱动电路 图1 开发板电路原理图 信号说明

1. iRST_N(异步复位) 当iRST_N信号为低时,Seg7_Driver模块中的所有寄存器异步复位为初值。 2. iCLK 模块的输入时钟40MHz。 3. iSeg_Val[15:0] 7段数码管输入二进制值,0x0~0xF iSeg_Val[15:12],左侧第一位7段数码管的值。 iSeg_Val[11: 8],左侧第两位7段数码管的值。 iSeg_Val[ 7: 4],左侧第三位7段数码管的值。 iSeg_Val[ 3: 0],左侧第四位7段数码管的值。 4. iDot_Val[3:0] 各位7段数码管小数点的显示,值为1表示显示小数点,0表示不显示小数点。 iDot_Val[3],左侧第一位7段数码管的小数点。 iDot_Val[2],左侧第两位7段数码管的小数点。 iDot_Val[1],左侧第三位7段数码管的小数点。 iDot_Val[0],左侧第四位7段数码管的小数点。 5. oDisplay[7:0] 7段数码管的数据信号。4位7段数码管共用数据信号。7段数码管为共阳极连接,各段数据线为0时,对应段发光。 6. oDis_En[3:0] 各位7段数码管的使能信号,低有效。

oDis_En[3],左侧第一位7段数码管的使能信号。 oDis_En[2],左侧第两位7段数码管的使能信号。 oDis_En[1],左侧第三位7段数码管的使能信号。 oDis_En[0],左侧第四位7段数码管的使能信号。 建议的分块: 将整个驱动电路分成Seg7_Ctrl模块与Seg7_Hex2seg模块 Seg7_Ctrl模块负责产生数码管动态显示的控制信号oDis_En的时序 Seg7_Hex2Seg模块负责将二进制值转换成数据码管显示的数据值,包括小数点的值。 注意点: 1. 动态显示过程是利用人眼的视觉残留现象来实现的,应选择适当的数码管扫描频率。可先 选择数码管的扫描显示的刷新率为125Hz(8ms),即每位数码管用2ms。 2. 完成基本功能后,可实验改变刷新率,观察数码管显示的效果,并思考原因。 3. 如果要使得数码管能够显示,A,b,C,n,o等其他字符,模块应该作怎样的修改?

实验四八位七段数码管动态显示电路的设计

八位七段数码管动态显示电路的设计 一、实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、学习VHDL的CASE语句及多层次设计方法。 二、实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-4-1所示。 图4-1 静态七段数码管 由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 三、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1024HZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。 四、实验步骤 1、打开QUARTUSII软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光 盘中提供的示例程序。 4、编写完VHDL程序后,保存起来。方法同实验一。

5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译 一次,以使管脚分配生效。 7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。 如果是调用的本书提供的VHDL代码,则实验连线如下: CLK:FPGA时钟信号,接数字时钟CLOCK3,并将这组时钟设为1024HZ。 KEY[3..0]:数码管显示输入信号,分别接拨动开关的S4,S3,S2,S1。 LEDAG[6..0]:数码管显示信号,接数码管的G、F、E、D、C、B、A。 SEL[2..0]:数码管的位选信号,接数码管的SEL2、SEL1、SEL0。 8、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与 自己的编程思想一致。 五、实验现象与结果 以设计的参考示例为例,当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1464HZ,拨动四位拨动开关,使其为一个数值,则八个数码管均显示拨动开关所表示的十六进制的值。

7段数码管显示电路

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)动态显示 所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄 灭时的余辉效应,看到的却是多个字符“同时”显示。显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参烽,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O 口(称为扫描口或字位口),控制各位LED 显示器所显示的字形也需要一个8位口(称为数据口或字形口)。 动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU 必须每隔一段时间执行一次显示子程序,这占用了CPU 的大量时间,降低了CPU 工作效率,同时显示亮度较静态显示器低。 综合以上考虑,由于温度显示为精确到小数点后两位,故只需4个数码管,又考虑到CPU 工作效率与电源效率,本毕业设计采用静态显示。为共阳极显示。 4.4.3 硬件编码 动74LS47是一款BCD 码转揣为7段输出的集成电路芯片,利用它可以直接驱动共阳 极的7段数码管。它的引脚分部和真值表分别下图。

驱动大尺寸数码管的方法与电路

驱动大尺寸数码管的方法与电路 相信大家都见过数码管,数码管上面有abcdefg七个笔画,构成一个“日”字,一般还有一个小数点dp。 数码管的外形有不同的大小,其度量标准是其中“日”字的高度,单位一般都是英寸。 市场上数码管的尺寸范围一般为0.25~8 英寸。 图片链接:https://www.wendangku.net/doc/388406136.html,/%D7%F6%B6%F8%C2%DB%B5%C0/album/驱动大尺寸数码管 在实验室中,常见的数码管是0.5 英寸的,它的高和宽分别为0.7 英寸和0.5 英寸。 这种数码管,每个笔画的内部,仅仅含有一个LED,驱动一个笔画,和驱动一个普通的发光二极管无异。 在大厅或者户外,就要使用大尺寸的数码管。 做而论道用过最大的数码管是8 英寸的。 8 英寸数码管中的每个笔画内部,都含有8 个LED,它们之间是两两并联后再串联;小数点dp的内部,仅仅用了两个LED 进行串联。

8 英寸共阳数码管内部的简图如下: 8 英寸数码管也有多种颜色,一般的工作参数如下: 每个笔段的导通电压约为8~10V;静态电流10~15mA;动态时,1/8动态扫描时,平均电流为8~10mA,峰值电流60~80mA。 小数点的电压、电流酌减,视亮度均衡情况而定。 要想驱动8 英寸数码管,显然不能用单片机本身的+5V电源,通常都是使用+12V。 想要驱动+12V的共阳数码管,电路设计,就是一个典型的电子线路方面的问题。 很多搞单片机的,编编软件还可以,设计电路时,明显暴露出不足。 很多搞电子的,并不明白单片机有高电平的输出能力问题,设计的电路结构,以及限流电阻、上拉电阻都不尽合理,呵呵 下面说说做而论道的设计思路。 对于+12V 到数码管之间的通断控制,显然应该用PNP 型的晶体管,用8550 最好。 为了控制8550 的截止与饱和,在其基极约要有+12V 的电压才行,单片机最大只能输出+5V,这就需要有电平转换电路。 +5V 到+12V 的转换,方法很多了: 可以使用NPN 型的晶体管,用8050 就可以; 可以使用集成电路74LS07,它是六同相OC输出的驱动门电路,输出端最大可以外接+30V;可以使用集成电路ULN2803(或ULN2003),它是八(七)反相OC输出的驱动门电路。这几种电路,做而论道都进行过实验和应用,都是成功的,安全性、可靠性均为100%。 下面看一段网络对话,即可看到大尺寸数码管的驱动电路与应用效果。 ===============================================

10_关于数码管动态扫描的问题

关于数码管动态扫描的问题 关于数码管的动态扫描,相信玩单片机的都不陌生。而什么是动态扫描,怎样扫描,扫描时间为多少最佳,这是一个值得深究的问题。 大家知道驱动一个或者两三个数码管,如果单片机有足够的IO口,我们可以用静态显示,至于什么是静态显示(动态显示的基础),这里不做阐述。 但如果,或者假如我们要点亮8个数码管或者更多,而恰恰单片机IO口不够用的情况下(扩展IO口的不讲),这是就必须用到动态扫描的显示方式了。 什么是数码管动态扫描?所谓的数码管动态扫描,就是在静态显示的基础上,逐一点亮每个数码管,由于点亮的时间非常短暂,由于人眼暂留现象使得我们看到所有的数码管像被点亮一样。其中还有一点就是数码管熄灭后的余晖现象的关系。 那么,这又牵扯到一个问题了,什么是人眼暂留现象,我也码了一下解释,如下: (Visual staying phenomenon,duration of vision) 人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

是光对视网膜所产生的视觉在光停止作用后,仍保留一段时间的现象,其具体应用是电影的拍摄和放映。原因是由视神经的反应速度造成的.其时值是二十四分之一秒。是动画、电影等视觉媒体形成和传播的根据。视觉实际上是靠眼睛的晶状体成像,感光细胞感光,并且将光信号转换为神经电流,传回大脑引起人体视觉。感光细胞的感光是靠一些感光色素,感光色素的形成是需要一定时间的,这就形成了视觉暂停的机理。 物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。是人眼具有的一种性质。人眼观看物体时,成像于视网膜上,并由视神经输入人脑,感觉到物体的像。但当物体移去时,视神经对物体的印象不会立即消失,而要延续0.1 -0.4秒的时间,人眼的这种性质被称为“眼睛的视觉暂留”。 很简单,说白点,就是逐一显示数码管,根据图像在人眼的暂留时间0.1-0.4秒计算,如果要点亮10个数码管,那动态扫描的时间只要在0.1秒之内就可以看到全部点亮的数码管了。(这里以位来扫描,就是所有ABCDEFGH段并联做段选,留下每个数码管COM端做位选) 操作流程如下: 1.送数码管段码 2.打开位选(点亮数码管) 3.延时点亮(具体情况具体分析) 4.关闭位选(熄灭数码管) 接着就进行下一个数码管的显示了 也就是在某个时刻,只有一个数码管被点亮。当这个时间在人眼暂留现象的时间之内,人就能看到连续点亮的数码管了。 这个是我将扫描时间片加到0.2秒的效果(也就是0.2*17=3.4秒钟扫完17个数码管)。而大家看到数码管全部亮,是因为将扫描时间片降低到0.0005秒(500微秒),由于人眼暂留现象,所以看到数码管全部亮了。 关于动态扫描的时间片问题,是的,这个问题非常关键。时间片也就是点亮一个数码管的时间,由于时间比较短,所以称为时间片。时间片对于点亮数码管的亮度有影响,也同时会影响整体动态扫描的时间,或许造成动态扫描闪烁也与此有关。 掌握适合的时间片,对于动态扫描的效果尤为重要。时间片过短,数码管太暗了。(至于为什么暗,这里可以想象一下PWM的方式,与PWM具有异曲同工之妙)。时间片太长,数码管就可能会闪烁。

数码管的驱动原理

数码管的驱动原理 所谓共阳共阴,是针对数码管的公共脚而言的。一个1位典型的数码管,一般有10个脚,8个段码(7段加1个小数点),剩下两个脚接在一起。各个段码实际上是一个发光二极管,既然是发光二极管,就有正负极。所谓共阳,也就是说公共脚是正极(阳极),所有的段码实际上是负极,当某一个或某几个段码位接低电平,公共脚接高电平时,对应的段码位就能点亮,进而组合形成我们看到的数字或字母。共阴刚好相反,也就是公共脚是负极(阴极),段码位是阳极,当公共脚接地,段码位接高电平时,对应段码位点亮。 1位数码管是这样,更多位的数码管也基本跟这个原理类似。 共阴共阳与电路接线密切相关,决定了驱动电路的接法,因此在电路设计前要考虑好数码管的类型,否则就不能实现显示的效果了。 驱动共阴数码管一般用PNP,共阳的用NPN 图一低电平有效,图二高电平有效

现在让我们用实验板上的两个数码管来做一个循环显示00~99数字的实验,先来完成必要的硬件部分, 数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。 首先我们来介绍两位共阳数码管的单片机驱动方法,电路如下图: 网友可以看到:P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。 因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1 毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。 下面我们再介绍一种共阴数码管的单片机驱动方法,电路如下图: 网友可以看到:+5V通过1K的排阻直接给数码管的8个段位供电,P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,相应的位可以吸入电流。单片机的P0口输出的数据相当于将数码管不要显示的数字段对地短路,这样数码管就会显示需要的数字。

LED数码管的结构及工作原理

LED数码管的结构及工作原理 LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图。 图1 这是一个7段两位带小数点10引脚的LED数码管 图2 引脚定义

每一笔划都是对应一个字母表示 DP 是小数点. 数码管分为共阳极的LED 数码管、共阴极的LED 数码管两种。下图例举的是共阳极的LED 数码管,共阳就是7段的显示字码共用一个电源的正。led 数码管原理图示意: 图3 引脚示意图 从上图可以看出,要是数码管显示数字,有两个条件:1、是要在VT 端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。这样才能显示的。 共阳极LED 数码管的内部结构原理图图4: 图4 共阳极LED 数码管的内部结构原理图 a b c d e f g dp

共阴极LED数码管的内部结构原理图: a b c d e f g dp 图5 共阴极LED数码管的内部结构原理图 表1.1 显示数字对应的二进制电平信号 LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。 A、静态显示驱动:

8位数码管动态显示电路设计.

电子课程设计 — 8位数码管动态显示电路设计 学院:电子信息工程学院 专业、班级: 姓名: 学号: 指导老师: 2014年12月

目录 一、设计任务与要求 (3) 二、总体框图 (3) 三、选择器件 (3) 四、功能模块 (9) 五、总体设计电路图 (10) 六、心得体会 (12)

8位数码管动态显示电路设计 一、设计任务与要求 1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。 2. 要求在某一时刻,仅有一个LED 数码管发光。 3. 该数码管发光一段时间后,下一个LED 发光,这样8只数码管循环发光。 4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。 5、研究循环地址码发生器的时钟频率和显示闪烁的关系。 二、总体框图 设计的总体框图如图2-1所示。 图2-1总体框图 三、选择器件 1、数码管 数码管是一种由发光二极管组成的断码型显示器件,如图1所示。 U13 DCD_HEX 图1 数码管 数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出 不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个 74LS161计数器 74LS138译码 器 数码管

LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。 2、非门 非门又称为反相器,是实现逻辑非运算的逻辑电路。非门有输入和输出两个端,电路符号如图2所示,其输出端的圆圈代表反相的意思,当其输入端为高电平时输出端为低电平,当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。其真值表如表1所示。 图2 非门 表1 真值表 输入输出 A Y 0 1 1 0 3、5V电源 5V VCC电源如图3所示。 图3 5V电源

VHDL数码管扫描显示驱动电路

静态显示 library ieee; use ieee.std_logic_1164.all; entity bcd_seg is port( a,b,c,d:in std_logic; seg:out std_logic_vector(7 downto 0) ); end entity bcd_seg; architecture one of bcd_seg is signal bcd:std_logic_vector(3 downto 0); begin bcd<=a&b&c&d; process(bcd) begin case bcd is when "0000"=>seg<="00111111"; when "0001"=>seg<="00000110"; when "0010"=>seg<="01011011"; when "0011"=>seg<="01001111"; when "0100"=>seg<="01100110"; when "0101"=>seg<="01101101"; when "0110"=>seg<="01111101"; when "0111"=>seg<="00000111"; when "1000"=>seg<="01111111"; when "1001"=>seg<="01101111"; when others=>null; end case; end process; end architecture one; 动态显示 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity bcd_seg is port( clk:in std_logic; a,b,c,d:in std_logic; com:out std_logic_vector(2 downto 0); seg:out std_logic_vector(7 downto 0) ); end entity bcd_seg; architecture one of bcd_seg is signal cnt:std_logic_vector(2 downto 0);

LED数码管结构及工作原理

L E D数码管结构及工作原理-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

LED数码管的结构及工作原理 沈红卫 LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图。 图1 这是一个7段两位带小数点 10引脚的LED数码管 图2 引脚定义 每一笔划都是对应一个字母表示 DP是小数点. 数码管分为共阳极的LED数码管、共阴极的LED数码管两种。下图例举的是共阳极的LED数码管,共阳就是7段的显示字码共用一个电源的正。led 数码管原理图示意:

图3 引脚示意图 从上图可以看出,要是数码管显示数字,有两个条件:1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。这样才能显示的。 共阳极LED数码管的内部结构原理图图4: 图4 共阳极LED数码管的内部结构原理图共阴极LED数码管的内部结构原理图: 图5 共阴极LED数码管的内部结构原理图

BCD七段数码管显示译码器电路

BCD七段数码管显示译码器电路 7段数码管又分共阴和共阳两种显示方式。如果把7段数码管的每一段都等效成发光二极管的正负两个极,那共阴就是把abcdefg这7个发光二极管的负极连接在一起并接地;它们的7个正极接到7段译码驱动电路74LS48的相对应的驱动端上(也是abcdefg)!此时若显示数字1,那么译码驱动电路输出段bc为高电平,其他段扫描输出端为低电平,以此类推。如果7段数码管是共阳显示电路,那就需要选用74LS47译码驱动集成电路。共阳就是把abcdefg的7个发光二极管的正极连接在一起并接到5V电源上,其余的7个负极接到74LS47相应的abcdefg输出端上。无论共阴共阳7段显示电路,都需要加限流电阻,否则通电后就把7段译码管烧坏了!限流电阻的选取是:5V电源电压减去发光二极管的工作电压除上10ma到15ma得数即为限流电阻的值。发光二极管的工作电压一般在1.8V--2.2V,为计算方便,通常选2V即可!发光二极管的工作电流选取在10-20ma,电流选小了,7段数码管不太亮,选大了工作时间长了发光管易烧坏!对于大功率7段数码管可根据实际情况来选取限流电阻及电阻的瓦数! 发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。只要按规律控制各发光段的亮、灭,就可以显示各种字形或符号。图4 - 17(a)是共阴式LED数码管的原理图,图4-17(b)是其表示符号。使用时,公共阴极接地,7个阳极a~g由相应的BCD七段译码器来驱动(控制),如图4 - 17(c)所示。 BCD七段译码器的输入是一位BCD码(以D、C、B、A表示),输出是数码管各段的驱动信号(以F a~F g表示),也称4—7译码器。若用它驱动共阴LED数码管,则输出应为高有效,即输出为高(1)时,相应显示段发光。例如,当输入8421码DCBA=0100时,应显示,即要求同时点亮b、c、f、g段,熄灭a、d、e段,故译码器的输出应为F a~F g=0110011,这也是一组代码,常称为段码。同理,根据组成0~9这10个字形的要求可以列出8421BCD七段译码器的真值表,见表4 - 12(未用码组省略)。

锁存器,数码管

锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。 锁存器就是把当前的状态锁存起来,使CPU送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。还有些芯片具有锁存器,比如芯片74LS244就具有锁存的功能,它可以通过把一个引脚置高后,输出就会保持现有的状态,直到把该引脚清0后才能继续变化。 在LED和数码管显示方面,要维持一个数据的显示,往往要持续的快速的刷新。尤其是在四段八位数码管等这些要选通的显示设备上。在人类能够接受的刷新频率之内,大概每三十毫秒就要刷新一次,这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗。 锁存器的使用可以大大的缓解处理器在这方面的压力。当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止。这样在数码管的显示内容不变之前,处理器的处理时间和IO 引脚便可以释放。可以看出,处理器处理的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分。而处理器在处理完后可以有更多的时间来执行其他的任务。这就是锁存器在LED和数码管显示方面的作用:节省了宝贵的MCU时间。 按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。如驱动5 个数码管静态显示则需要5×8=40根I/O端口来驱动,而一个89S51单片机可用的I/O端口才32个呢,实际应用时可增加译码驱动器进行驱动。 动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个

8位8段LED数码管动态扫描显示

项目名称:8位8段LED数码管动态扫描显示班级:09电二姓名:解健学号:09020313 一.实验目的 1.掌握数码管动态扫描显示原理及实现方法。 2.掌握动态扫描显示电路驱动程序的编写方法。 二.实验电路 三.元器件 四.实验步骤 第一步:先在Proteus软件中设计仿真电路原理图。 第二步:再在Keil C51软件中编写且编译程序,程序后缀必须是.c。然后在打开的“Option for Target‘Target 1’”选项卡,“Target”标签下频率设置为“11.0592”,“Output”标签下,将“Creat HEX File”项打勾选中,设置生成一个.hex文件。 第三步:接着将.hex文件导入原理图中U1芯片。双击U1,打开Edit Component对话框,选择生成的hex文件。 第四步:最后观察设计的电路图是否能得到预想的效果,若不能,进行检查,找到毛病且纠正。

流程图 实验现象: 显示器点亮所有段,持续约1s,然后灭显示器,持续2s,最后显示“hello-93”,保持。 附:程序 #include #include #define TRUE 1 #define dataPort P0 #define ledConPort P2 unsigned char code ch[8]={0x76,0x79,0x38,0x38,0x3f,0x40,0x6f,0x4f}; void time(unsigned int ucMs); void main(void) {unsigned char i,counter=0;

驱动数码管程序

//GPIO define //FUNCTION:用595完成八位数码管显示 -------------------------------------------------------------------------- */ #include /* STM32F10x Library Definitions */ #include "UET_GPIO.h" //unsigned char seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e ,0x8c,0xc1,0xce,0x91,0x89,0xc7,0xff}; unsigned char seg[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x78,0x5c,0x54, 0x40,0x81,0x88,0x3e,0x70,0x00 } ; //0,1,2,3,4,5,6,7,8,9, //A,b,C,d,E,F,P,t,o,n, //-,~,_,U,r,SP, //unsigned char DAT[]={0x7f,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位选择unsigned char BitSelect_Code[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //因为ULN2803驱动反相,所以位码要用共阳极的位码 //COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 // B0 B1 B2 B3 B4 B5 B6 B7 unsigned char Disp_buffer[]={0,1,2,3,4,5,6,7}; //段缓冲区 unsigned char Bit_NO=0 ; // 选择第Bit_NO 位数码管 unsigned char Buffer_NO=0; // 缓冲区的第Buffer_NO u32 LED_DATA=01234567; #define SER(x) GPIOA->ODR=(GPIOA->ODR&~GPIO_Pin_7) | (x ? GPIO_Pin_7 : 0) #define SCK(x) GPIOA->ODR=(GPIOA->ODR&~GPIO_Pin_5) | (x ? GPIO_Pin_5 : 0) #define RCK(x) GPIOA->ODR=(GPIOA->ODR&~GPIO_Pin_6) | (x ? GPIO_Pin_6 : 0)

数码管动态扫描显示01234567

实验5 数码管动态扫描显示01234567 原理图:8个数码管它的数据线并联接到JP5, 位控制由8个PNP型三级管驱动后由JP8引出。 相关原理: 数码管是怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为 A,B,C,D,E,F,G,H。

搞懂了这个原理, 我们如果要显示一个数字2, 那么 A,B,G,E,D这5个段的发光管亮就可以了。也就是把B,E,H(小数点)不亮,其余全亮。根据硬件的接法我们编出以下程序。当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2.7。 LOOP: CLR P2.7 ;选中最后的数码管 SETB P0.7 ;B段不亮 SETB P0.5 ;小数点不亮 SETB P0.1 ;C段不亮 CLR P0.2 ;其他都亮 CLR P0.3 CLR P0.4 CLR P0.6 CLR P0.0 JMP LOOP ;跳转到开始重新进行

END 把这个程序编译后写入单片机,可以看到数码管的最后一位显示了一个数字2。 也许你会说:显示1个2字就要10多行程序,太麻烦了。 显示数字2则是C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为0(低电平)是亮 为1(高电平)是灭。从高往低排列,(p0.7_p0.0)写成二进制为01111110, 把他转化为16进制则为A2H。我们可以根据硬件的接线把数码管显示数字编制成一个表格, 以后直接调用就行了。 有了这个表格上面显示一个2的程序则可简化为: LOOP: CLR P2.7 ;选中左边的数码管 MOV P0,#0A2H ;送数字2的代码到P0口 JMP LOOP ;跳转到开始重新进行 END

CD4511与数码管结合显示电路

现代电子技术综合实训 实训报告 专业: 年级/班级: 姓名: 实训时间: 实训地点:

指导教师: 一、前言: 近些年,人们对数字钟的要求越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,如电子闹钟、数字闹钟等。单片机在多功能数字钟中的应用已是非常普遍,人们对数字钟的功能及工作顺序都非常熟悉,但是却很少知道它的内部结构及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时,实现数字钟的各种功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时。输出设备显示器可以为液晶显示器或数码管。 本次设计以AT89S52芯片为核心,辅以必要的外围电路,设计了一个简易的电子时钟,它由5V直流电源供电。在硬件方面,除了CPU外,使用CD4511驱动六个7段LED数码管来进行显示,LED 采用的是动态扫描显示,使用三极管9015进行驱动。通过LED能够比较准确地显示时间。四个简单的按键实现对时间的调整。软件方面采用C语言编程。整个电子时钟系统计时比较准确并且方便实用。 二、需求分析 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注应用很广、发展很快、单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛的应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型的和最有代表性的一种。这次设计通过对它的学习、应用,以AT89S52芯片为核心,加以辅助电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显示时间。 2.1设计要求: 1.以AT89S52单片机为核心设计一个时钟控制器。

51单片机并行口驱动LED数码管显示电路及程序

51单片机并行口驱动LED数码管显示电路及程序 介绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序。 1 硬件电路 多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由另一个8位I/O口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。本文将介绍一种利用单片机的一个并行I/O口实现多个LED显示的简单方法,图1所示是该电路的硬件原理图。其中,74LS138是3线-8线译码器,74LS164是8位并行输出门控串行输入移位寄存器,LED采用L05F型共阴极数码管。 显示时,其显示数据以串行方式从89C52的P12口输出送往移位寄存器74LS164的A、B 端,然后将变成的并行数据从输出端Q0~Q7输出,以控制开关管WT1~WT8的集电极,然后再将输出的LED段选码同时送往数码管LED1~LED8。位选码由89C52的P14~P16口输出并经译码器74LS138送往开关管Y1~Y8的基极,以对数码管LED1~LED8进行位选控制,这样,8个数码管便以100ms的时间间隔轮流显示。由于人眼的残留效应,这8个数码管看上去几乎是同时显示。

<51单片机并行口驱动LED数码管显示电路> 2 软件编程 该系统的软件编程采用MCS-51系列单片机汇编语言完成,并把显示程序作为一个子程序,从而使主程序对其进行方便的调用。图2所示是其流程图。具体的程序代码如下:

<51单片机并行口驱动LED数码管显示程序>

7段数码管实验报告

EDA 实验报告 实验名称: 7段数码管控制接口学院:信息工程学院 专业: 11级电子信息工程2班年级、班: 2009级2班 学生姓名:王璐 指导教师:郭华 2014 年 6 月24 日

7段数码管控制接口 一、实验要求。 用设计一个共阴7 段数码管控制接口,要求:在时钟信号的控制下,使 6 位数码管动态刷新显示0—F,其中位选信号为8-3 编码器编码输出。 二、实验内容。 在实验仪器中,8 位7 段数码显示的驱动电路已经做好,并且其位选信(SEL[7..0])为一3-8 译码器的输出,所以我们在设计7 段数码管控制接口时,其位选信号输出必须经8-3编码。 显示控制器的引脚图如图40-1: 图1 图中CP 为时钟输入端,SEGOUT[7..0]为段驱动输出;SELOUT[2..0]为位选信号输出;NUMOUT[3..0]为当前显示的数据输出。 图40-2 7段显示控制器仿真波形图 从图40-2可以看出,6位数码管是轮流点亮的,我们以NUMOUT=1 这段波形为参考:当SELOUT为000时,点亮第一位显示器,显示的数字为1,同时,NUMOUT 输出的数据也为“0001”。同理,当SELOUT 为001 时,点亮第二位显示器,显示数字为1,直到 6 位显示器全都显示完毕,等待进入下一个数字的显示。 同时,还有一个问题不可忽视,位扫描信号的频率至少需要多少以上,才能使显示器不闪烁?简单的说,只要扫描频率超过眼睛的视觉暂留频率24HZ以上就可以达到点亮单个显示,却能享有6个同时显示的视觉效果,而且显示也不闪烁。当我们输入频率为5MHZ时,我们通过加法计数器来产生一个约300HZ 的信号,并且由它来产生位选信号,请参考下面程序段:

相关文档
相关文档 最新文档