7段数码管显示电路
八位七段数码管动态显示电路设计

八位七段数码管动态显示电路的设计一七段显示器介绍七段显示器,在许多产品或场合上经常可见。
其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为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 ) 。
七段数码管显示数字电路

七段数码管显示数字电路学习 2008—11—02 15:15:18 阅读2837 评论0 字号:大中小CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器,特点如下:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流.可直接驱动LED显示器.CD4511 是一片 CMOS BCD-锁存/7 段译码/驱动器,引脚排列如图 2 所示。
其中a b c d 为 BCD 码输入,a为最低位。
LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。
BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平.另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。
LE是锁存控制端,高电平时锁存,低电平时传输数据。
a~g是 7 段输出,可驱动共阴LED数码管。
另外,CD4511显示数“6”时,a段消隐;显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观图3是 CD4511和CD4518配合而成一位计数显示电路,若要多位计数,只需将计数器级联,每级输出接一只 CD4511 和 LED 数码管即可。
所谓共阴 LED 数码管是指 7 段 LED 的阴极是连在一起的,在应用中应接地。
限流电阻要根据电源电压来选取,电源电压5V时可使用300Ω的限流电阻。
用CD4511实现LED与单片机的并行接口方法如下图: (略)CD4511 引脚图其功能介绍如下:BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字.LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8"。
它主要用来检测数码管是否损坏。
LE:锁定控制端,当LE=0时,允许译码输出. LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。
七段LED数码管显示电路设计(精)

实验七七段LED数码管显示电路设计一、实验目的1.学习EDA软件的基本操作2.学习使用原理图进行设计输入3.初步掌握软件输入、编译、仿真和编程的过程4.学习实验开发系统的使用方法二、实验说明本实验通过七段LED数码管显示电路的设计,初步掌握EDA 设计方法中的设计输入、编译、综合、仿真和编程的基本过程。
七段LED数码管显示电路有四个数据输入端(D0-D3),七个数据输出端(A-G。
三、实验要求1、完成七段LED数码管显示电路的原理图输入并进行编译2、对设计的电路经行仿真验证3、编程下载并在实验开发系统上验证设计结果四、实验步骤1、新建工程2、新建Verilog HDL文件3、在文本输入窗口键入代码4、保存HDL文件5、编译文件直至没有错误6、新建波形文件7、添加观察信号8、添加输入激励,保存波形文件9、功能仿真七段LED数码管显示电路真值表:输入D3D2D1D0G F E D C B A 000000111111 100010000110 200101011011 300111001111 401001100110 501011101101 601101111101 701110001111 810001111111910011101111 A10101110111 B10111111100 C11001111001 D110111011110 E11101111001 F11111110001五、电路原理图啊Verilog代码描述:module qiduan(data_in,data_out;input [3:0]data_in;output [6:0]data_out;reg [6:0]data_out;always @(data_inbegincasex(data_in4'b0000:data_out<=7'b0111111;4'b0001:data_out<=7'b0000110; 4'b0010:data_out<=7'b1011011; 4'b0011:data_out<=7'b1001111; 4'b0100:data_out<=7'b1100110; 4'b0101:data_out<=7'b1101101; 4'b0110:data_out<=7'b1111100; 4'b0111:data_out<=7'b0000111; 4'b1000:data_out<=7'b1111111; 4'b1001:data_out<=7'b1100111; 4'b1010:data_out<=7'b1110111; 4'b1011:data_out<=7'b1111100; 4'b1100:data_out<=7'b0111001; 4'b1101:data_out<=7'b1011110; 4'b1110:data_out<=7'b1111001; 4'b1111:data_out<=7'b1110001; default:data_out<=7'b0000000; endcaseendendmodule仿真波形:六、实验体会七段LED数码管显示电路是常用的数码管之一,它有四个数据输入端(D0-D3),七个数据输出端(A-G。
可编程逻辑器件实验EDA-七段数码管显示电路

实验四 七段数码管显示电路
一、实验目的
实现十六进制计数显示。
二、硬件需求
EDA/SOPC 实验箱一台。
三、实验原理
七段数码管分共阳极与共阴极两种。
共阳极数码管其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。
共阴极数码管则与之相反,它是将发光二极管的阴极短接后作为公共阴极,当驱动信号为高电平、公共阴极接低电平时,才能发光。
图2-13为共阳极数码管和共阴极数码管的内部结构图。
a b c d e f g h
a
b
c
d
e
f
g
h
a b c d e f g h
DIG
DIG
共阴极七段数码管
共阳极七段数码管
图2-13 共阳极数码管和共阴极数码管的内部结构图
用七段数码管除了可以显示0~9的阿拉伯数字外,还可以显示一些英语字母。
下表是常见的字母与7段显示关系(共阴极数码管)。
编写一个0~F 轮换显示的电路(注意:选用实验箱中的共阳数码管DP1A ,FPGA 上
P25引脚连接50MHz时钟。
实验时为了便于观察,要将50MHz时钟经过分频得到1Hz时钟)。
五、实验步骤
(1)实验程序
(2)仿真结果
为方便观察程序功能,分频改为6分频,从上图可以看出数码管输出能够连续变化,同时输出正确稳定的七位码。
(3)管脚绑定
(4)实验实际结果
从实际的上电结果可以看出,每过一秒,数码管数值增1,并发生跳变显示。
实验28255七段数码管静动态显示

微机实验报告书同组名单:实验日期:2012.12.21实验题目:七段数码管的静态显示实验目标:掌握数码管显示数字的原理(功能:键盘输入一位十进制数字(0~9),用七段数码管显示。
)解题思路:1.静态显示:按图10 (a)连接好电路,将8255的A口 PAO-PA鲂别与七段数码管的断码驱动输入端a-g项链,位码驱动输入端S1接+5V, SO dp2.动态显示:按图10 (b)连接好电路,七段数码管段码连接不变,位码驱动输入端S1, S0接8255C口的PC1, PCQ编程在两个数码管上显示“56” 程序框图:静态显示见图11( a),动态显示见图11 (b)。
学号:_______ 姓名: 班级:________S 10琵接电路图图11流程图关键问题分析(静态显示):1、按键判断和程序结束判断按键来说,由于程序中必须输入数字,所以没有必要对是否按键进行判断, 只需要判断按键是否在0-9之间即可。
用以下程序即可:条件转移指令,即在小于时转移 条件转移指令,即在大于时转移程序中还要用到“ cmp'即比较指令,用来比较输入数与0、9的大小关系 程序结束:如若输入的数字小于0或者大于9,必须直接跳出程序,即结束指令必 须单独占用一个程序段,这样,程序顺序执行完毕也可以顺利返回DOS 2、七段码显示。
始丿将所得字符的 ASCII 码减如H1查表求出对应的盅码将段码自8药5A 口输出(b)cmp al,'0'jl exit; jl,cmp al,'9' 从键盘接收字符实验指导书中给出了七段码的字型代码。
这样一来, 七段码的显示只需要用换码 指令“XLAT 便可以轻松实现。
前提是必须将七段码字型编成数码表以字符串的 形式写进程序中。
3、数字键ASCII 码与数值间的转换。
因为0的ASCII 码为30H,所以数字键ASCII 码与数值间的转换时只需减去30F 即可, 可用下列语句实现:sub al,30h 程序清单:静态显示:data segmentioport equ 0c800h-0280hio8255aequ ioport+288h io8255b equ ioport+28bhled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db dataends codesegment0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$' assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255b从键盘接收字符 是否小于 0 如若小于 0,则跳转到 exit 退岀程序 是否大于 9 如若大于 9,则跳转到 exit 退岀程序 将所得字符的ASCII 码减30H,数字键ascii 码同数值转换 为数码表的起始地址 求岀相应的段码 从8255的A 口输岀 转 zbymov al,80hout dx,al ;10000000B ,控制字PA 以方式0输岀 使8255的A 口为输岀方式zby: mov dx,offset mesg1 ;mov ah,09h int 21h movah,01 ;int 21h cmp al,'0' ;jl exit ;cmp al,'9'; jg exit ;sub al,30h ; movbx,offset led ;bxxlat ;mov dx,io8255a ; outdx,al jmp zby ;exit: mov ah,4ch ; 显示提示信息 返回 DOSint 21h code ends end start动态显示:data segmentioport equ 0c800h-0280hio8255a equ ioport+28ahio8255b equ ioport+28bhio8255c equ ioport+288hled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ; 段码buffer1 db 5,6 ; 存放要显示的个位和十位bz dw ? ; 位码data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255bmov al,80h ;10000000B out dx,almov di,offset buffer1 ;loop2: mov bh,02 zby: mov byte ptr bz,bhpush di dec di add di, bz movbl,[di] ;bl pop di mov al,0 movdx,io8255a out dx,al mov bh,0mov si,offset led ; add si,bx ;mov al,byte ptr [si] movdx,io8255c ;out dx,al mov al,byte ptr bz ;mov dx,io8255a out dx,al movcx,3000delay: loop delay ;,控制字PA以方式0输岀设di 为显示缓冲区为要显示的数置led 数码表偏移地址为SI 求岀对应的led 数码自8255A的口输岀使相应的数码管亮延时将8255设为A口输岀mov bh,byte ptr bzshr bh,1jnz zbymov dx,0ffhmov ah,06int 21hje loop2 ; 有键按下则退出mov dx,io8255amov al,0 ; 关掉数码管显示out dx,almov ah,4ch ; 返回int 21hcode endsend start运行结果:静态显示:在键盘上输入一个 0-9 的任意数字,会显示在数码管上。
BCD7段数码管显示译码器电路设计

以上语句等效为: process(indicator, sig)
variable temp : std_logic ; begin
temp := ‘0’ ; temp :=temp xor (sig(0) and indicator(0)); temp :=temp xor (sig(1) and indicator(1)); temp :=temp xor (sig(2) and indicator(2)); temp :=temp xor (sig(3) and indicator(3)); output <= temp ; end process ;Biblioteka 例:变量赋值实现循环语句功能
process(indicator, sig) variable temp : std_logic;
begin temp := ‘0’ ; for i in 0 to 3 loop
temp:=temp xor (sig(i) and indicator(i));
end loop ; output <= temp; end process;
PROCESS (a,b) BEGIN
--sequential statements END PROCESS;
PROCESS BEGIN
-- sequential statements WAIT ON (a,b) ; END PROCESS;
BCD-7段显示译码器工作原理
• BCD-7段译码器是由7个发光二极(LED) 管构成,LED由特殊的半导体材料砷化镓、 磷砷化镓等制成,组装成分段式或点阵式 LED显示器件(半导体显示器)。分段式显示 器(LED数码管)由7条线段围成8型,每一段 包含一个发光二极管。外加正向电压时二 极管导通,发出清晰的光,有红、黄、绿 等色。只要按规律控制各发光段的亮、灭, 就可以显示各种字形或符号。
EDA实验二 八位七段数码管动态显示电路的设计

实验名称八位七段数码管动态显示电路的设计一、实验目的1、了解数码管的工作原理。
2、学习七段数码管显示译码器的设计。
3、学习Verilog的CASE语句及多层次设计方法。
二、实验原理七段数码管是电子开发过程中常用的输出显示设备。
在实验系统中使用的是两个四位一体、共阴极型七段数码管。
其单个静态数码管如下图4-1所示。
图4-1 静态七段数码管由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。
反之则不亮。
共阳极性的数码管与之相么。
四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。
八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。
三、实验内容本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。
在实验中时,数字时钟选择1KHZ作为扫描时钟,用四个开关做为输入,当四个开关置为一个二进制数时,在数码管上显示其十六进制的值。
实验箱中的拨动开关与FPGA的接口电路,以及开关FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。
数码管显示模块的电路原理如图4-2所示,表4-1是其数码管的输入与FPGA的管脚连接表。
图4-2 数字时钟信号模块电路原理信号名称对应FPGA管脚名说明7SEG-A G6 七段码管A段输入信号7SEG-B G7 七段码管B段输入信号7SEG-C H3 七段码管C段输入信号7SEG-D H4 七段码管D段输入信号7SEG-E H5 七段码管E段输入信号7SEG-F H6 七段码管F段输入信号7SEG-G J4 七段码管G段输入信号7SEG-DP L8 七段码管dp段输入信号7SEG-SEL0 G5 七段码管位选输入信号7SEG-SEL1 G3 七段码管位选输入信号7SEG-SEL2 F4 七段码管位选输入信号表4-1 数码管与FPGA的管脚连接表四、实验步骤1、打开QUARTUSII软件,新建一个工程。
实验四 七段数码管显示实验报告

实验四七段数码管显示实验一、实验目的掌握数码管显示数字的原理。
二、实验内容1.静态显示:数码管为共阴极,通过BCD码译码驱动器CD4511驱动,其输入端A~D输入4位BCD码,位码输入低电平选中。
按图4-1连接好电路,将8255的A口PA0~PA3与七段数码管LED1的BCD码驱动输入端A1~D1相连,8255的A口PA4~PA7与七段数码管LED2的BCD码驱动输入端A2~D2相连,8255的B口PB0~PB3与七段数码管LED3的BCD码驱动输入端A3~D3相连,8255的B口PB4~PB7与七段数码管LED4的BCD码驱动输入端A4~D4相连,8255的C口PC0~PC3分别与七段数码管LED4~LED4的位驱动输入端DG1~DG4相连。
编程从键盘上每输入4个0~9数字,在七段数码管LED4~LED4上依次显示出来。
图4-12.动态显示:数码管为共阴极,段码采用相同驱动,输入端加高电平,选中的数码管对应段点亮,位码采用同相驱动,位码输入端低电平选中,按图4-2连接好电路,图中只画了2个数码管,实际是8个数码管,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~g相连(32TCI0模块上的J1连32LED8模块J2),8255的C口的PC0~PC7接七段数码管的段码驱动输入(32TCI0模块上的J3连32LED8模块J1),跳线器K1连2和3。
编程在8个数码管上显示“12345678”。
按任意键推出运行。
图4-2三、编程提示1.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不用,编程时需要了解当前的微机使用那段IO地址并进行处理。
2.对实验内容1,七段数码管字型代码与输入的关系如下表:四、参考流程图1.实验内容一的参考流程图图4-3 2.实验内容二的参考流程图图4-4五、参考程序1.内容一的参考程序源程序清单如下:data segmentioport equ 0c400h-0280hio8255a equ ioport+288hio8255b equ ioport+289hio8255c equ ioport+28ahio8255k equ ioport+28bhled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db 0dh,0ah,'Input a num (0--9),other key is exit:',0dh,0ah,'$'bz db ?cz db 04hdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255k ;使8255的A口为输出方式mov ax,80hout dx,alsss0: mov si,offset bzmov cx,04hsss1: mov dx,offset mesg1 ;显示提示信息mov ah,09hint 21hmov ah,01 ;从键盘接收字符int 21hcmp al,'0' ;是否小于0jl exit ;若是则退出cmp al,'9' ;是否大于9jg exit ;若是则退出sub al,30h ;将所得字符的ASCII码减30Hmov [si],al ;存入显示缓冲区inc si ;显示缓冲区指针加1dec cx ;判断输入满4个数字吗?jnz sss1 ;不满继续mov si,offset bz ;从显示缓冲区取第一个数字的BCD 码mov al,[si]and al,0fh ;屏蔽高四位暂存ALinc si ;显示缓冲区指针加1mov ah,[si] ;取第二个数字的BCD码到AHsal ah,4h ;右移4次到高四位add al,ah ;两个BCD码合并成一个字节mov bl,al ;暂存入BLinc simov al,[si] ;取第三个数字的BCD码and al,0fhinc simov ah,[si] ;取第四个数字的BCD码到AHsal ah,4hadd ah,almov al,ahmov dx,io8255a ;从8255的A口输出(后两个数字)out dx,almov al,blmov dx,io8255b ;从8255的B口输出(前两个数字)out dx,almov al,0f0hmov dx,io8255c ;从8255的C口输出位码out dx,almov dl,0ffhmov ah,06int 21hje sss0 ;有键按下则退出exit: mov ah,4ch ;返回int 21hcode endsend start2.内容二的参考程序源程序清单如下:data segmentioport equ 0C400h-0280hio8255c equ ioport+28ahio8255k equ ioport+28bhio8255a equ ioport+288hled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码buffer1 db 01h,02h,03h,04h,05h,06h,07h,08h ;存放要显示的十位和个位con db ? ;位码data endscode segmentassume cs:code, ds:datastart: mov ax,datamov ds,axmov dx,io8255k ;将8255设为A口C口输出mov al,80hout dx,alloop2: mov al,08h ;设置数码管位计数器初值到CON mov byte ptr con,almov si,offset buffer1 ;置显示缓冲器指针SImov ah,7fh ;置位码初值disp0: mov cx,0ffffhmov bl,ds:[si] ;取显示缓冲区显示值存BXmov bh,0hpush simov dx,io8255c ;位码从C口输出mov al,ahout dx,almov dx,io8255amov si,offset led ;置led数码表偏移地址为SIadd si,bx ;求出对应的led数码mov al,byte ptr [si]out dx,al ;段码从A口输出disp1: loop disp1 ;延时mov cx,0ffffhdisp2: loop disp2ror ah,01h ;位码右移1位pop siinc si ;显示缓冲区指针加1mov al,byte ptr condec almov byte ptr con,aljnz disp0 ;数码管位计数器减1为0吗?,不为0继续mov dx,io8255a ;为0,关数码管显示mov al,0out dx,almov dl,0ffhmov ah,06int 21hje loop2 ;有键按下则退出mov ah,4ch ;返回int 21hcode endsend start实验总结:通过这次试验,我了解到自定义数据类型可以根据自己的需要方便设定,有很大的灵活性。
七段数码管显示实验

实验一七段数码管显示实验(1)实验目的学习7段数码显示译码器设计;学习VHDL的CASE语句应用及多层次设计方法。
(2)实验原理7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是 16进制的,为了满足16进制的译码显示,最方便的方法就是利用译码程序在 FPGA/CPLD中来实现。
7段译码器输出信号 LED7S的7位分别接如图数码管的 7个段,高为在左,低位在右。
如LED7S 输出为“1101101 ”时,数码管的7个段:g、f、e d、c、b、a分别接1、1、0、1、1、0、 1;接有高电平的段发亮,于是数码管显示“ 5”。
(3)实验内容说明下面源代码中各语句的含义,以及该程序的整体功能。
在Quartusll上对该程序进行编辑、编译、综合、适配、仿真,给出起所有信号的时序仿真波形。
提示:用输入总线的方式给出输入信号的仿真数据,仿真波形示例图如图:源代码: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";END CASE;END PROCESS;END;编译得到模块DECL7S:程序运行后可以看到 7段数码管以每秒一次的跳变速度往上自加,到“F”后归“0”。
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译码器。
7段数码管静态显示实验说明

#include "xplatform_info.h" //平台定义头文件
3.2 程序代码
/************************** Constant Definitions ****************************/
/* * The following constants map to the XPAR parameters created in the * xparameters.h file. They are defined here such that a user can easily * change all the needed parameters in one place.
*
- XST_FAILURE if the example has failed.
*
* @note
None
*
******************************************************************************/
int main(void)
{ int Status; int led_bus0,led_bus1,led_sel; xil_printf("Start to display the 7segment leds\r\n"); XGpioPs_Config *ConfigPtr; int Type_of_board; /*Test the target board chip*/ Type_of_board = XGetPlatform_Info(); switch (Type_of_board) { case XPLAT_ZYNQ_ULTRA_MP: printf("It's a ZYNQ_ULTRA board\r\n"); break;
vhdl七段数码管显示0到9计数器显示电路设计

vhdl七段数码管显示0到9计数器显示电路设计在 VHDL 中,可以使用进程`PROCESS`和状态机来实现七段数码管显示 0 到 9 的计数器显示电路设计。
以下是一个示例代码:```vhdl-- 七段数码管显示 0 到 9 的计数器显示电路设计-- 定义七段数码管的显示编码CONSTANT seven_seg : STD_LOGIC_VECTOR(6 DOWNTO 0) := "1111110";CONSTANT seg_map : STD_LOGIC_VECTOR(6 DOWNTO 0) := "0000011";-- 定义计数器的位数和初始值CONSTANT count_width : NATURAL := 4;CONSTANT count_init : NATURAL := 0;-- 声明计数器和七段数码管显示的信号Signal count : STD_LOGIC_VECTOR(count_width - 1 DOWNTO 0);Signal seg : STD_LOGIC_VECTOR(6 DOWNTO 0);-- 计数器的进程Process (clk)BeginIf clk'event and clk = '1' ThenIf count = count_init - 1 Thencount <= count_init;Elsecount <= count + 1;End If;End If;End Process;-- 七段数码管显示的进程Process (count)BeginCase count IsWhen count_init - 1 => seg <= seven_seg;When count_init => seg <= seg_map;When count_init + 1 => seg <= seven_seg;When count_init + 2 => seg <= seg_map;When count_init + 3 => seg <= seven_seg;When count_init + 4 => seg <= seg_map;When count_init + 5 => seg <= seven_seg;When count_init + 6 => seg <= seg_map;When count_init + 7 => seg <= seven_seg;When count_init + 8 => seg <= seg_map;When count_init + 9 => seg <= seven_seg;When Others => seg <= seven_seg;End Case;End Process;-- 连接计数器和七段数码管显示的信号Output seg;```上述代码中,使用了两个进程`PROCESS`来实现计数器和七段数码管的显示。
七段译码器显示电路.doc

七段译码器显示电路.doc七段译码器显示电路是一种常见的数字显示电路,它可以将数字信号转换为七段数码管可以显示的信号。
在这种电路中,数字信号经过七段译码器解码后,将产生与数字相应的七个片段输出信号,这七个片段用于控制数码管的显示。
该电路由以下几部分组成:1.七段译码器七段译码器是将二进制代码转换为七段数码管显示的芯片。
通常,七段译码器有4位二进制输入和7位输出,每个输出对应一个数码管的片段,称为“a”、“b”、“c”、“d”、“e”、“f”、“g”,而其余输出为“dp”,作为十进制点的控制器。
2. 7490计数器7490计数器是一种可实现数字信号计数的芯片。
在该电路中,7490计数器与七段译码器相结合,其输出作为七段译码器的输入,使其能够显示数字信号。
3. 7447特殊驱动芯片7447是一种特殊的数码管驱动芯片,与七段译码器配合使用,用于数码管的数码输出。
7447芯片的输出通过NPN晶体管到达数码管的象限管,控制其亮度。
4. 2N3906 PNP晶体管PNP晶体管的输出与七段译码器的输入进行连接,用于控制七段译码器的输出段。
5. 10μF电容电容器用于过滤输入信号,避免噪声产生干扰。
7. 1K电阻电阻用于将输入信号和晶体管之间的电流限制在一个安全范围内。
该电路基于二进制计数,可从0到9逐个显示数字。
在7490计数器和七段译码器之间的输出信号滞后1,可以在保证数字显示正确的情况下使显示更加流畅。
七段译码器通过特殊驱动芯片和PNP晶体管控制数码管的显示,保证显示效果稳定而清晰。
总之,七段译码器显示电路在数字技术中具有广泛的应用,并可通过合理的设计和调试,为数字信号在显示上提供高效而稳定的解决方案。
共阴极七段数码显示驱动电路

共阴极七段数码显示驱动电路一、实验目的了解EDA实验箱8位八段数码管显示模块的工作原理,设计标准扫描驱动电路模块,以备后面实验用。
二、硬件要求主芯片Altera EPM7128SLC84-15,时钟,8位八段数码管显示器,四位拨码开关。
三、实验内容描述一个七段数码显示的驱动电路。
该电路有BCD码输入端db,两个输入控制端lt、bi,控制输出端bio,输出端segout(7位)。
四、实验连线输入:将芯片输入管角分别接4个拨码开关;输出:将芯片输出管角分别接到数码管7段驱动信号a、b、c、d、e、f、g上。
五、实验源程序library ieee;use ieee.std_logic_1164.all;entity display isport(lt:in bit;bi:in bit;bio:out bit;db:in std_logic_vector(3 downto 0);segout:out std_logic_vector(6 downto 0));end ;architecture a of display isbeginprocessbeginif lt='0' and bi='0' thensegout<="0000000";bio<='0';elsif lt='0' and bi='1' thensegout<="1111111";bio<='1';elsif lt='1' and bi='0' and db="0000" thensegout<="0000000";bio<='0';elsif lt='1' and bi='1' and db="0000" thensegout<="0111111";bio<='1';elsif lt='1' and db="0001" thensegout<="0000110";bio<='1';elsif lt='1' and db="0010" then segout<="1011011";bio<='1';elsif lt='1' and db="0011" then segout<="1001111";bio<='1';elsif lt='1' and db="0100" then segout<="1100110";bio<='1';elsif lt='1' and db="0101" then segout<="1101101";bio<='1';elsif lt='1' and db="0110" then segout<="1111101";bio<='1';elsif lt='1' and db="0111" then segout<="0000111";bio<='1';elsif lt='1' and db="1000" then segout<="1111111";bio<='1';elsif lt='1' and db="1001" then segout<="1101111";bio<='1';elsif lt='1' and db>"1001" then segout<="0000000";bio<='0';end if;end process;end;六、波形仿真结果。
7段数码管显示电路

4.4显示模块4.4.1 7段数码管的结构与工作原理7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成 数字显示,另外一个圆形的发光二极管显示小数点。
当发光二极管导通时,相应的一个点或一个笔画发光。
控制相应的二极管导通,就能 显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限, 但其控制简单,使有也方便。
发光二极管的阳极连在一起的称为共阳极数码管, 阴极连在一起的称为共阴极数码管,如图4.9所示。
共阴极4.4.2 7段数码 ___________________发光二极管(LED 图4.9 7段数码管结构图 体材料制成的,能直接将电能转变成光能的发光显示器件。
就会发光。
------------------------------ 7段数码管每段的驱动电流和其他单个 段LED 和引脚分布 向电压随发光材料不 7段数码管的 (1)静太显示所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。
这 种显示方法为每一们都需要有一个8位输出口控制。
对于 51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。
静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU 才执行一次显示更新子程序,这样大大节省了 CPU 的时间,提高了 CPU 的工作效率;缺点是位数较多时,所需 I/O口太多,硬件开销太大,因此常采用另外一种显示方式一一动态显示。
(2)动态显示所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
虽然在同一时刻只有一位显示器在工作(点亮) ,但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。
显示器亮度既与点亮时的导通电流有关, 也与点亮时间和间隔时间的比例有关。
调整电流和时间参烽,可实现亮度较高较稳定的显示。
七段数码管的显示原理

七段数码管的显示原理
数码管是一种能够显示数字的电子元件,常用于计时器、电子钟、温度计等设备中。
七段数码管由七个小段组成,它们可以显示数字0-9的所有组合。
数码管的每一小段都代表数字的一个线段,通过控制这些线段的通断状态,可以显示不同的数字。
每个数字的显示都可通过组合不同的小段状态来实现。
例如,数字0就是所有小段全亮,而数字1则是左边第二个小段亮,其余小段都熄灭。
控制七段数码管显示数字的原理是通过给不同的小段加上电压来实现。
小段分别用a、b、c、d、e、f、g来表示,其中a~g
对应着七个小段。
如果某个小段需要点亮,则给它加上高电平;如果不需要点亮,则给它加上低电平。
为了控制不同的小段,需要使用译码器。
译码器是一种电路元件,能够将输入的数字信号转换成相应的控制信号。
常见的译码器有BCD-7段译码器、74LS47等。
使用译码器的方式是,先将待显示的数字转化成二进制编码,然后将二进制编码输入到译码器的输入端口。
译码器会根据输入信号的编码,输出对应的控制信号给七段数码管的不同小段,从而实现数字的显示。
通过译码器,我们可以控制不同的小段点亮,从而实现数码管的数字显示。
例如,当我们要显示数字1时,输入二进制编码0001给译码器,译码器会将对应的控制信号输出给数码管,
使得左边第二个小段亮,其余小段熄灭。
总的来说,七段数码管通过控制小段的通断状态来实现数字的显示。
通过使用译码器,我们可以将输入的数字信号转换成相应的控制信号,从而控制七段数码管显示不同的数字。
这种原理广泛应用于各种电子设备中。
7段数码管显示原理

7段数码管显示原理七段数码管是一种常用的数字显示器,由七个LED(发光二极管)组成,可以显示0到9的数字以及一些字母和符号。
每个LED都有三个引脚,分别是公共阳极(COM)和七个阴极(A、B、C、D、E、F、G),共有八个引脚。
通过控制每个LED的亮灭状态,可以显示不同的数字和字符。
七段数码管的显示原理如下:1.公共阳极:在常规的七段数码管中,公共阳极是连接到正电源的。
当公共阳极接通电源时,将会照亮以低电平为"亮"和高电平为"灭"。
2.段选:每个LED被称为一个段,例如A、B、C等。
通过控制段选引脚的电平,可以使得一些特定的LED点亮或熄灭。
当段选引脚为高电平时,对应的LED点亮;当段选引脚为低电平时,对应的LED熄灭。
3.共阴极和共阳极:数码管有两种类型,一种是共阴极,一种是共阳极。
在共阴极的数码管中,阴极是连接到负电源的,当其中一个LED需要点亮时,将对应的段选引脚设为低电平,其他段选引脚设为高电平。
此时,对应的LED灯会呈现出低电平亮,其他LED灯则会呈现高电平熄灭的状态。
共阳极的数码管与之相反。
4.编码表:为了方便操作,每个数字和字符都有对应的编码表,指示了哪些LED需要点亮以显示特定的数字或字符。
例如,数字"0"的编码为(1,1,1,1,1,1,0),表示A~F引脚要设为低电平,G引脚设为高电平。
5.多位显示:通常,七段数码管不只有一个,可以通过串联多个数码管来显示更多位的数字或字符。
例如,一个四位的数码管可以显示0到9999的数字。
6.数码管显示控制:为了实现多位显示,需要对每个数码管进行分时控制。
通过快速切换每个数码管的段选引脚电平,我们可以造成人眼的视觉暂留现象,即便是每个数码管只显示一部分时间,我们也会觉得它们同时显示。
7.通过控制位选引脚,我们可以选择要显示的位。
例如,对于一个四位的数码管,如果想要显示数字"1234",我们可以分别将位选引脚依次设为低电平,然后根据编码表依次点亮对应的LED,以实现数字的显示。
EDA实验二八位七段数码管动态显示电路的设计

EDA实验二八位七段数码管动态显示电路的设计八位七段数码管动态显示电路是一种常用的显示电路,用于将数字信号转换成七段数码管的显示形式。
本文将详细介绍八位七段数码管动态显示电路的设计原理和实现方法。
首先,我们先介绍一下七段数码管的基本原理和工作方式。
一、七段数码管的基本原理和工作方式七段数码管通常由七个独立的LED组成,分别代表数字0到9和字母A到F。
这七个LED分别为a,b,c,d,e,f,g,用于显示不同的数字。
通过控制每个LED的亮灭状态,可以显示出不同的数字。
七段数码管通常采用共阳极或共阴极的方式控制。
在共阳极的情况下,数码管的共阳极引脚接Vcc,每个LED的阴极引脚分别通过控制芯片上的开关来控制灯的亮灭;在共阴极的情况下,数码管的共阴极引脚接GND,每个LED的阳极引脚通过控制芯片上的开关来控制灯的亮灭。
根据实际需要选择共阳极或共阴极的七段数码管。
在七段数码管中,每个LED代表一个计算机的位数。
例如,数码管中的aLED表示计算机数据的最低位,而gLED表示计算机数据的最高位。
二、八位七段数码管动态显示电路的设计原理八位七段数码管动态显示电路的设计原理是将八个七段数码管连接在一起,通过改变每个数码管的亮灭状态,实现数字的动态显示。
具体的设计原理是通过一个计数器生成7个时序信号,然后再通过逻辑控制器将这些时序信号分配给各个数码管。
可以用三个个位计数器来实现生成的7个时序信号。
其中,一个计数器用于控制7个段的扫描,即a,b,c,d,e,f,g;另外两个计数器用于控制8位数码管中的8个数位,即1,2,3,4,5,6,7,8具体实现时,可以通过一个时钟信号来驱动计数器,每个计数器都有一个计数使能信号和一个计数复位信号。
通过适当的设计时钟信号的频率和计数使能/复位信号的控制,可以实现不同的动态显示效果。
三、八位七段数码管动态显示电路的实现方法八位七段数码管动态显示电路的实现方法可以分为三个步骤:计数器设计、逻辑控制器设计和电路布线。
七段数码管显示电路的设计与实现

深圳大学实验报告
课程名称:VHDL数字电路设计教程
实验项目名称:七段数码管显示电路的设计与实现
学院:信息工程学院
专业:电子信息工程
指导教师:邓小莺
报告人:陈林泳学号:2011130101 班级:电子1班实验时间:2013.05.30
实验报告提交时间:2013.06.06
教务部制
实验目的与要求:
1.掌握带7段显示器的模100计数器设计。
方法、步骤:
1.点击图标,运行Xilinx ISE软件,新建文件并保存。
2.编写程序,检验无误后,进行仿真。
3.仿真出波形,并进行相关的比较。
4.运行获得设计完成的电路。
实验过程及内容:(1)程序编写:
(2)仿真波形:
(3)设计电路
指导教师批阅意见:
成绩评定:
指导教师签字:
年月日备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。
共阴极
7段数码管内部字段LED 和引脚分布 共阳极
图4.9 7段数码管结构图
(2)动态显示
所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。
显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。
调整电流和时间参烽,可实现亮度较高较稳定的显示。
若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。
动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序,这占用了CPU的大量时间,降低了CPU工作效率,同时显示亮度较静态显示器低。
综合以上考虑,由于温度显示为精确到小数点后两位,故只需4个数码管,又考虑到CPU 工作效率与电源效率,本毕业设计采用静态显示。
为共阳极显示。
4.4.3 硬件编码
动74LS47是一款BCD码转揣为7段输出的集成电路芯片,利用它可以直接驱动共阳极的7段数码管。
它的引脚分部和真值表分别下图。
74LS47管脚定义7段数码管静态显示电路原理图之锁存电路7段数码管静态显示电跩原理图之锁存译码电路
上述设计中,单片机工作时钟由18.432MHZ 的晶振产生;电路中共有4位7段共阳极数码管,用于显示数据;
74HC573是8位锁存器,用于锁存各个数码管的显示数据;74HC138是3——8线译码器,它和6反相器74HC04一起实现地各个数码管的锁存器控制地址的译码。
4.4.4 软件设计
上述设对于共阳极数码管,控制端置0使数码管点亮,控制端置1使数码管不亮。
根字型 dp g f e d c b a 编码共阴 编码共阳 0 0 0 1 1 1 1 1 1 3F C0 1 0 0 0 0 1 1 0 0 0C F3 2 0 1 1 1 0 1 1 0 76 89 3 0 1 0 1 1 1 1 0 5E A1 4 0 1 0 0 1 1 0 1 4D B2 5 0 1 0 1 1 0 1 1 5B A4 6 0 1 1 1 1 0 1 1 7B 84 7 0 0 0 0 1 1 1 0 0E F1 8 0 1 1 1 1 1 1 1 7F 80 9 0 1 1 1 1 1 1 1 5F A0 A 0 1 0 0 1 1 1 1 6F 90 B 0 1 1 1 1 0 0 1 79 86 C 0 0 1 1 0 0 1 1 33 CC D 0 1 1 1 1 1 0 0 7C 83 E 0 1 1 1 0 0 1 1 73 8C F
1
1
1
1
63
9C
7段数码管静态显示电路原理图之CPU 电路 MCS-51单片
软件实现过程如下:
/***************************************************
7段数码管静态显示程序
***************************************************/
#include <reg52.h>
#include <stdio.h>
#include <stdlib.h>
#include <absacc.h>
#include <ctype.h>
#include <string.h>
#include <stddef.h>
#include <intrins.h>
#include <absacc.h>
#include <stdarg.h>
/* 4个7段数码管锁存器地址*/
#define LED1ADDR 0x8000
#define LED2ADDR 0x8100
#define LED3ADDR 0x8200
#define LED4ADDR 0x8300
// 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
/* 0-9 a-f 的7段数码管显示编码*/
unsigned char ledcode[16]={0xC0,0xF3,0x89,0xA1,0xB2,0xA4,0x84,0xF1,0x80,0xA0,0x90,0x86,0xCC,0x83,0 x8C,0x9C};
/* 存放要显示的数字值*/
unsigned char val[4];//
/* 写锁存器的子程序*/
void wraddr(unsigned int addr,unsigned char d)
{ unsigned char xdata *pa;
pa=(unsigned char xdata *)addr;
*pa=d;
}
/* 显示子程序*/
void display(void)
{ unsigned int addr[4]={LED1ADDR,LED2ADDR,LED3ADDR,LED4ADDR};
int i;
for(i=0;i<4;i++)
{ if((val[i]>=0)&&(val[i]<=15))
{ wraddr(addr[i],ledcode[val[i]]);
}
else
{ wraddr(addr[i],0xff);
}
}
}
/* 初始化子程序*/
void init(void)
{ wraddr(LED1ADDR,0XFF);
wraddr(LED2ADDR,0XFF);
wraddr(LED3ADDR,0XFF);
wraddr(LED4ADDR,0XFF);
//输入要显示的数值
val[0]=1;
val[1]=2;
val[2]=3;
val[3]=4;
}
/* 主程序入口*/
int main(void)
{ init();
while(1)
{ display();
}
}。