7段数码显示译码器设计方案
cpld实验

实验一基本门电路的设计[实验目的]1.学习MAX+PLUSII 软件的基本操作;2.学习使用原理图、文本文件进行设计输入;3.初步掌握器件设计、编译、仿真和编程的过程;4.学习掌握教学实验板的使用方法;4.学习掌握基本门电路的设计方法;[实验说明]基本门电路主要用来实现基本的输入/输出之间的逻辑关系,包括与门、或门、非门、与非门、或非门、异或门、同或门灯,下面为2输入端与非门的基本门电路的设计。
2输入端与非是组合逻辑电路中的基本逻辑器件,有2个输入端A、B和1个输出端Y。
其真值表如表所示。
2输入端与非门应具备的脚位:输入端:A、B;输出端:Y。
[实验要求]1用原理图方法实现2输入与非门2用VHDL语言实现2输入与非门3设计仿真文件,进行软件验证4通过下载线下载到实验板上进行验证[实验报告要求]1画出原理图2写出VHDL编程语言源文件3给出软件仿真和硬件测试结果4通过下载线下载到实验板上进行验证5写出学习总结附:1.原理图输入与非门原理图输入法的操作步骤介绍如下。
(1)建立新文件:选取窗口菜单File-New,出现对话框,选择Graphic Editor file选项,单击OK按钮,进入图形编辑画面。
(2)保存:选取窗口菜单File-Save,出现对话框,键入文件名nand2.gdf,单击OK按钮(3)指定项目名称,要求与文件名相同:选取窗口菜单File-Project-Name,键入文件名nand2,单击OK按钮。
(4)确定对象的输入位置:在图形窗口内单击鼠标左键。
(5)引入逻辑门:选取窗口菜单Symbol-Enter Symbol,在\Maxplus2\max2lib\prim处双击,在Symbol File菜单中选取NAND2逻辑门,单击OK按钮。
(6)引入输入和输出脚:按步骤(5)选出2个输入端和1个输出脚。
(7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名,输入脚位A、B,输出脚为Y。
BCD七段显示译码器

BCD七段显示译码器
授课人:许霞
教学目的:1、掌握BCD七段显示译码器的工作原理。
2、了解BCD七段显示译码器芯片知识及应用。
教学重点:BCD七段显示译码器的电路组成和工作原理
教学难点:BCD七段显示译码器的工作原理
教学手段:多媒体教学和实验演示结合
教学过程:
一、图片导入
1、十字路口红绿灯数字显示
2、电子手表时间数字显示
3、电脑人机信息处理过程
二、 BCD七段显示译码器
1、什么是BCD七段显示译码器
用4位二进制数0000-1001分别代表十进制数0-9,称为二—十进制数,又称为BCD码(Binary Coded Decimal)并用七段数码管显示出十进制数
问题1、七段的含义
问题2、4位二进制可编出几种码?
2、电路组成:
1
2
(1)数码管显示部分
举例:当显示4和6时数码管输入信号? 写出所有显示数字时的输入。
A B
ABCD: 输入信号0000-1001 二进制数 输出信号0-9十进制数
对输入信号完成译码
对译码输出进行显示
a
b
c
d
e
f
g
.
.
.
(2)七段数码管显示译码电路组成
1、译码显示电路的连接
2、译码电路芯片74LS48的介绍
3
4、电路动态演示+实验显示
三、小结
四、作业:
1、设计本译码器内部逻辑电路(了解)
2、给你一片74LS48芯片和七段数码显示管,你会制作这个小制作了吗?
3。
14-3 显示译码器

《数字电子技术基础》
LT =
0 时,输出 a ~ g 全“1”七段全亮。
第十四讲 若干常用中规模组合逻辑电路-译码器
表1 74LS48功能表
序 号 0 1 2 输入 输出
BI / RBO
LT RBI A3 A2 A1 A0
1 1 1 1 X X 0 0 0 0 0 0 0 0 1 0 1 0
《数字电子技术基础》
第十四讲 若干常用中规模组合逻辑电路-译码器
◆ LED (Light Emitting Diode)的显示电路——
半导体数码管(八段)外形图及等效电路
优点: 工作电压低、体积小、寿命长、可靠性高,响应时 间短(< 0.1μs ),亮度较高。 缺点: 工作电流较大,每一段工作电流在10mA左右。
《数字电子技术基础》
第十四讲 若干常用中规模组合逻辑电路-译码器
◆ LED 的驱动电路——
既可以用半导体三极管驱动,也可以用TTL与非门驱动。
TTL74SN IOL(max)=16mA
《数字电子技术基础》
第十四讲 若干常用中规模组合逻辑电路-译码器
◆ LCD (Liquid Crystal Display)的显示电路——
1 0 X 0 0 0 X X 0 0 X X
a
0 1 X 0 0 0 X X 0 1 X X
b
0 0 X 0 0 0 X X 1 0 X X
c
1 1 X 1 1 1 X X 0 0 X X
e
a = DC BA + C B A
DC BA 00 01 11 10 00 0 1 X 0 01 11 10
a f gb e c d
7段数码管显示电路

4.4.17段数码管的结构与工作原理
7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。
当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如图4.9所示。
段数码管内部字段led和引脚分布abcdefgdfdqwdq?edql共阳极bcbirbocrbicgnd1918171614131274ls47管脚定义段数码管静态显示电路原理图之锁存电路a9vccunicur2in2q13in3qjt4ri4lt5in5qi11111115pe210pe12peo2动态显示所谓动态显示就是一位一位地轮流点亮各位显示器扫描对于显示器的每一位而言每隔一段时间点亮一次
#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,f0011639C
软件实现过程如下:
/***************************************************
7段数码管静态显示程序
***************************************************/
#include <reg52.h>
七段显示译码器7448功能,引脚图及应用电路

七段显示译码器7448功能,引脚图及应用电路数字显示译码器是驱动显示器的核心部件,它可以将输入代码转换成相应的数字显示代码,并在数码管上显示出来。
图8-51所示为七段显示译码器7448的引脚图,输入A3 、A2 、A1和A0接收四位二进制码,输出a~g为高电平有效,可直接驱动共阴极显示器,三个辅助控制端、、,以增强器件的功能,扩大器件应用。
7448的真值表如表8-20所示。
从功能表可以看出,对输入代码0000,译码条件是:灯测试输入和动态灭零输入同时等于1,而对其他输入代码则仅要求=1,这时候,译码器各段a~g输出的电平是由输入代码决定的,并且满足显示字形的要求。
图8-51 7448引脚图表8-20 7448功能表灯测试输入低电平有效。
当 = 0时,无论其他输入端是什么状态,所有输出a~g均为1,显示字形8。
该输入端常用于检查7448本身及显示器的好坏。
动态灭零输入低电平有效。
当=1,,且输入代码时,输出a~g均为低电平,即与0000码相应的字形0不显示,故称“灭零”。
利用=1与= 0,可以实现某一位数码的“消隐”。
灭灯输入/动态灭零输出是特殊控制端,既可作输入,又可作输出。
当作输入使用,且= 0时,无论其他输入端是什么电平,所有输出a~g均为0,字形熄灭。
作为输出使用时,受和控制,只有当,,且输入代码时,,其他情况下。
该端主要用于显示多位数字时多个译码器之间的连接。
【例8-13】七段显示器构成两位数字译码显示电路如图8-52所示。
当输入8421BCD码时,试分析两个显示器分别显示的数码范围。
图8-52 两位数字译码显示电路解:图8-52所示的电路中,两片7448的均接高电平。
由于7448(1)的,所以,当它的输入代码为0000时,满足灭零条件,显示器(1)无字形显示。
7448(2)的,所以,当它的输入代码为0000时,仍能正常显示,显示器(2)显示0。
而对其他输入代码,由于,译码器都可以输出相应的电平驱动显示器。
74LS47译码器原理

译码器原理(74LS47)译码器的逻辑功能是将每个输入的二进制代码译成对应的输出的高、低电平信号。
常用的译码器电路有二进制译码器、二--十进制译码器和显示译码器。
译码为编码的逆过程。
它将编码时赋予代码的含义“翻译”过来。
实现译码的逻辑电路成为译码器。
译码器输出与输入代码有唯一的对应关系。
74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,表2.1列出了74LS47的真值表,表示出了它与数码管之间的关系。
表2.1 74LS47真值表74LS47是BCD-7段数码管译码器/驱动器, 74LS47的功能用于将BCD码转化成数码块中的数字,通过它解码,可以直接把数字转换为数码管的显示数字。
74LS47为低电平作用。
管脚图如2.3图所示。
图2.2 74LS47管脚图2.2.2引角功能(1)LT(——):试灯输入,是为了检查数码管各段是否能正常发光而设置的。
当LT(——)=0时,无论输入A3 ,A2 ,A1 ,A0为何种状态,译码器输出均为低电平,也就是七段将全亮,若驱动的数码管正常,是显示8。
(2)BI(—):灭灯输入,是为控制多位数码显示的灭灯所设置的。
当BI(—)=0时,不论LT(——)和输入A3 ,A2 ,A1,A0为何种状态,译码器输出均为高电平,使共阳极数码管熄灭。
(3)RBI(——):灭零输入,它是为使不希望显示的0熄灭而设定的。
当对每一位A3= A2 =A1 =A0=0时,本应显示0,但是在RBI(——-)=0作用下,使译码器输出全为高电平。
其结果和加入灭灯信号的结果一样,将0熄灭。
(4)RBO(———):灭零输出,它和灭灯输入BI(—)共用一端,两者配合使用,可以实现多位数码显示的灭零控制。
7段数码管显示驱动代码

7段数码管显⽰驱动代码数码管显⽰进⾏简单的介绍,数码管显⽰原理在数电中已经给出了⽐较详细的介绍,我就不赘述了,因为我们⽤的是⾄芯的开发板,其上的数码管显⽰模块采⽤的是共阳极的数码管,为低电平有效,0-F的显⽰码依次为:数码管的输⼊有3个位选和8个段选给出,位选信号sel来控制哪个数码管先亮,段选信号seg来控制数码管显⽰什么,位选本来应该是有6个的但是为了节约资源,采⽤了3-8译码器将6根线减少到3根,节约了FPGA的引脚资源。
因为⼈眼有⼀个视觉载留,所以60HZ来扫描的时候,数码管会让⼈眼觉得是同时点亮,所以时钟要⼤于60hz下⾯是具体的代码实现:module scan_led(input wire clk_1k,input wire rst_n,input wire [31:0] d,output wire [2:0] dig,//seloutput wire [7:0] seg);reg [7:0] seg_r;reg [2:0] dig_r;reg [3:0] disp_dat;reg [2:0] count;assign dig =dig_r;assign seg =sig_r;// 时钟不能直接接全局时钟,这⾥的时钟驱动给的是1k的always @(posedge clk_1k or negedge rst_n)beginif(!rst_n)count <=3'b000;else if(count == 3'd5)count <=3'b000;elsecount <=count +1'b1;endalways @(posedge clk_1k or negedge rst_n)begincase (count)3'd0:disp_dat = d[31:28];3'd1:disp_dat = d[27:24];3'd2:disp_dat = d[23:20];3'd3:disp_dat = d[19:16];3'd4:disp_dat = d[15:12];3'd5:disp_dat = d[11:8];3'd6:disp_dat = d[7:4];3'd7:disp_dat = d[3:0];endcasecase (count)3'd0:dig_r = 3'd0;3'd1:dig_r = 3'd1;3'd2:dig_r = 3'd2;3'd3:dig_r = 3'd3;3'd4:dig_r = 3'd4;3'd5:dig_r = 3'd5;3'd6:dig_r = 3'd6;3'd7:dig_r = 3'd7;endcaseendalways @(disp_dat)begincase(disp_dat)4'h0:seg_r = 8'hc0;4'h1:seg_r = 8'hf9;4'h2:seg_r = 8'ha4;4'h3:seg_r = 8'hb0;4'h4:seg_r = 8'h99;4'h5:seg_r = 8'h92;4'h6:seg_r = 8'h82;4'h7:seg_r = 8'hf8;4'h8:seg_r = 8'h80;4'h9:seg_r = 8'h90;4'ha:seg_r = 8'h88;4'hb:seg_r = 8'h83;4'hc:seg_r = 8'hc6;4'hd:seg_r = 8'ha1;4'he:seg_r = 8'h86;4'hf:seg_r = 8'h8e;endcaseendendmodule另⼀种写法:module display1 (clk, rst_n , sel, seg);input clk;input rst_n;//两个输出,位选sel和段选segoutput reg [2:0] sel;output reg [7:0] seg;//数码管扫描需要⼀个慢时钟 clk_slow,⽽产⽣慢时钟则需要⼀个计数器 cntreg [15:0] cnt;reg clk_slow;//这个always块⽤来产⽣慢时钟clk_slowalways @ (posedge clk)beginif(!rst_n)begincnt <= 0;clk_slow <= 1; //复位时clk_slow静⽌不动endelsebegincnt <= cnt + 1; //复位结束后cnt开始计数clk_slow <= cnt[12]; //扫描没有必要⾮得是60Hz整,⼤于60Hz即可endend//下⾯这个always块⽤于扫描数码管,也就是sel循环地变化,//时钟每⼀次上升沿sel变化⼀次,所以在括号⾥写上时钟上升沿作为触发条件always @ (posedge clk_slow or negedge rst_n)beginif(!rst_n)beginsel <= 0; //复位时sel静⽌endelsebeginsel <= sel + 1; //复位后sel开始扫描if(sel >= 5)sel <= 0; //因为只有6个数码管,所以让sel在0-5之间循环endendalways @ (*)beginif(!rst_n)seg <= 8'b11111111; //按下复位键时让数码管熄灭,共阳极数码管0亮1灭elsebegincase(sel)0: seg <= 8'b11111001; //右起第1个数码管上显⽰11: seg <= 8'b10100100; //右起第2个数码管上显⽰22: seg <= 8'b10110000;3: seg <= 8'b10011001;4: seg <= 8'b10010010;5: seg <= 8'b10000010; //右起第6个数码管上显⽰6default: seg <= 8'b11111111;endcaseendendendmodule。
七段显示译码器7448功能,引脚图及应用电路

七段显示译码器7448功能,引脚图及应用电路数字显示译码器是驱动显示器的核心部件,它可以将输入代码转换成相应的数字显示代码,并在数码管上显示出来。
图8-51所示为七段显示译码器7448的引脚图,输入A3 、A2 、A1和A0接收四位二进制码,输出a~g为高电平有效,可直接驱动共阴极显示器,三个辅助控制端、、,以增强器件的功能,扩大器件应用。
7448的真值表如表8-20所示。
从功能表可以看出,对输入代码0000,译码条件是:灯测试输入和动态灭零输入同时等于1,而对其他输入代码则仅要求=1,这时候,译码器各段a~g输出的电平是由输入代码决定的,并且满足显示字形的要求。
图8-51 7448引脚图表8-20 7448功能表灯测试输入低电平有效。
当 = 0时,无论其他输入端是什么状态,所有输出a~g均为1,显示字形8。
该输入端常用于检查7448本身及显示器的好坏。
动态灭零输入低电平有效。
当=1,,且输入代码时,输出a~g均为低电平,即与0000码相应的字形0不显示,故称“灭零”。
利用=1与= 0,可以实现某一位数码的“消隐”。
灭灯输入/动态灭零输出是特殊控制端,既可作输入,又可作输出。
当作输入使用,且= 0时,无论其他输入端是什么电平,所有输出a~g均为0,字形熄灭。
作为输出使用时,受和控制,只有当,,且输入代码时,,其他情况下。
该端主要用于显示多位数字时多个译码器之间的连接。
【例8-13】七段显示器构成两位数字译码显示电路如图8-52所示。
当输入8421BCD码时,试分析两个显示器分别显示的数码范围。
图8-52 两位数字译码显示电路解:图8-52所示的电路中,两片7448的均接高电平。
由于7448(1)的,所以,当它的输入代码为0000时,满足灭零条件,显示器(1)无字形显示。
7448(2)的,所以,当它的输入代码为0000时,仍能正常显示,显示器(2)显示0。
而对其他输入代码,由于,译码器都可以输出相应的电平驱动显示器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附表1:
广州大学学生实验报告
开课学院及实验室:物理与电子工程学院-电子楼317室 2016 年 4 月 28 日
学 院 物 电 年级、专业、班 姓名 Jason.P 学号
实验课程名称 EDA技术实验 成绩
实验项目名称 7段数码显示译码器设计
指 导
教 师
一、 实验目的:
学习7段数码显示译码器设计;学习VerilogHDL的多层次设计方法。
二、 实验内容:
1、实验原理:
7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都
是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。
2、实验步骤:
表4-1 7段译码器真值表 图4-1 共阴数码管及其电路
(1)首先按7段译码器真值表,完成7段BCD码译码器的设计。作为7段BCD码译码器,输出信号LED7S的7位分别接如图4-1数码管的
7个段,高位在左,低位在右。例如当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;
接有高电平的段发亮,于是数码管显示“5”。
(2)设计该译码器,在QuartusII上对其进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形(提示:用输入总线的方
式给出输入信号仿真数据)。引脚锁定及硬件测试。建议选实验电路模式6,用数码8显示译码输出, 键8/7/6/5四位控制输入,硬件验证译
码器的工作性能。
图4-2 7段译码器仿真波形
(3)将设计加入4位二进制计数器,经上面设计的16进制7段译码器显示。
图4-3计数器和译码器连接电路原理图
三、 实验HDL描述:
计数器:module adder(CLK,RST,EN,LOAD,COUT,DOUT,DATA);
input CLK,EN,RST,LOAD;
input[3:0] DATA;
output[3:0] DOUT;
output COUT;
reg[3:0] Q1;
reg COUT;
assign DOUT = Q1;
always @(posedge CLK or negedge RST) //CLK上升沿、RST下降沿触发
begin
if(!RST) Q1 <= 0; //RST为低电平时,Q1为0
else if(EN) begin //EN为高电平时,执行下步
if(!LOAD) Q1 <= DATA; //LOAD为低电平时Q1=DATA
else if(Q1<15) Q1 <=Q1+1; //Q1<15,计数加1
else Q1 <=4'b0000; end //Q1为其他值,计数置0
end
always @(Q1)
if (Q1==4'hf) COUT = 1'b1; else COUT = 1'b0; //Q1为15,COUT=1,否则为0
endmodule
16进制7段译码器:
module DECL7S (A,LED7S);
input[3:0] A; output[6:0] LED7S;
reg[6:0] LED7S;
always@(A)
case(A)
4'b0000 : LED7S <= 7'B0111111;
4'b0001 : LED7S <= 7'B0000110;
4'b0010 : LED7S <= 7'B1011011;
4'b0011 : LED7S <= 7'B1001111;
4'b0100 : LED7S <= 7'B1100110;
4'b0101 : LED7S <= 7'B1101101;
4'b0110 : LED7S <= 7'B1111101;
4'b0111 : LED7S <= 7'B0000111;
4'b1000 : LED7S <= 7'B1111111;
4'b1001 : LED7S <= 7'B1101111;
4'b1010 : LED7S <= 7'B1110111;
4'b1011 : LED7S <= 7'B1111100;
4'b1100 : LED7S <= 7'B0111001;
4'b1110 : LED7S <= 7'B1111001;
4'b1111 : LED7S <= 7'B1110001;
default : LED7S <= 7'B0111111;
endcase
endmodule
四、仿真结果:
7段数码显示译码器仿真测试结果
A为输入的数,LED7S输出对应的译码结果(与7段译码器真值表一致)
计数器仿真测试结果
含异步清零和同步时钟使能的加法计数器,CLK为上升沿时,DOUT计数(EN=LOAD=RST=1);EN为低电平时DOUT保持当前数值(LOAD=RST=1);
EN为高电平且CLK为上升沿时触发DOUT计数(LOAD=RST=1)。LOAD为低电平且CLK为上升沿时,DOUT置为DATA值(EN=RST=1)。RST为低电
平时,DOUT置为0,与CLK是否为上升沿无关。DOUT值计满15时COUT置1,DOUT为其他值时COUT为0。
组合电路(计数器+译码器)仿真测试结果
计数器和译码器连接的电路,led的译码输出和真值表相符合。en为低电平且clock为上升沿时led保持,en为高电平且clock为上升沿
时led显示的数字加一。load为低电平且clock为上升沿时,led显示data的数值。rst为低电平时,led显示数字0,与clock上升沿时间
无关。Led显示到数字15时cout为1,led显示其他数值时,cout为0。
五、引脚锁定:
六、硬件测试结果:
模式6:
en(键8控制)为低电平,保持显示数字3 计数满15(显示为F)LED-D8(cout)亮 rst(键7控制)为低电平,清零
七、实验心得:
通过本次实验,对QuartusII有了进一步的学习和认识,对Verilog也有了深入了解。学会了7段数码显示译码器的Verilog硬件设计,
学习了VHDL的CASE语句应用及多层次设计方法。实验中,要对每一个功能模块做时序仿真,检验是否符合设计需求,最后综合起来做仿真测
试,确认无误后再下载到目标机上进行硬件测试。
做实验时要耐心、认真,遇到问题争取自己解决,这样才能锻炼自己,提升自己。
说明:各学院(实验中心)可根据实验课程的具体需要和要求自行设计和确定实验报告的内容要求和栏目,但表头格式按照“实验
项目名称”栏以上部分统一。