七段显示译码器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学光电信息学院课程设计论文课程名称《数字逻辑设计及应用》题目名称七段显示译码器设计学号2010072010024
姓名王殷洁
指导老师陈德军
起止时间2012/5/20-2012/6/23
2012年6 月 20日
电子科技大学光电信息学院
课程设计任务书
一、课程名称《数字逻辑设计及应用》
二、课程设计题目七段显示译码器器设计
三、课程设计目的
1、熟练数字逻辑设计的基本方法。应用课程所学的基本逻辑设计思想完成简单的逻辑设计过程;
2、提高学生利用软件完善设计的基本能力。要求学生自学HDL语言或者其他仿真工具对所完成的设计进行验证和仿真。
3、提高学生对所设计内容的文本描述能力。要求学生对设计思想、设计过程以及结果进行描述。
四、课程设计要求
1、要求有一定的组合逻辑和时序逻辑的设计能力;
2、要求对未用编码1010~1111进行讨论;
五、课程设计任务和内容
设计一个2421BCD计数器。基本要求如下:无启动风险。
该课程设计的应包括如下的内容:
a)设计过程的文字描述。设计过程应该包括设计思路的简单描述、系统子模块的
定义以及功能描述、逻辑变量的定义、逻辑状态的定义等。必要的真值表、功能表和状态表等;该部分要求提供word文本。
b)电路原理图或者verilog HDL语言描述。该部分要求提供所选择仿真软件的编
译文件。
c)仿真结果。该部分要求提供所选择仿真软件的编译结果或者word文档。
d)团队分工情况说明,团队课包括1~3人。请描述个人在设计中所承担的任务,
以word文档提交。
六、参考文献
1、《数字设计——原理及实践》John F. Wakerly编机械工业出版社 2003年8月第四版
2、《数字电子技术基础》阎石主编高等教育出版社第五版
指导教师签名:陈德军
日期:2012年5月12日
七段显示译码器设计
摘要:本课程设计的七段译码器主要以BCD译码器或LED显示器为主要部件,应用集成门电路的一个具有译码和显示的装置。其中七段显示器就是使用发光二极管或液晶显示器元件,在手表、计算器和仪器中显示十进制数码,通过点亮7
个线段的子集就可以显示数码。七段译码器把4位BCD码作为其输入编码,而把“七段码”作为其输出代码。此设计就是对未用编码1011-1111进行的讨论。关键词:七段译码器,译码器,显示器
引言:在数字测量仪表和各种数字系统中,都需要将数字量直观地显示出来,一方面供人们直接读取测量和运算的结果;另一方面用于监视数字系统的工作情况。因此,数字显示电路是许多数字设备不可缺少的部分。数字显示电路通常由译码器、驱动器和显示器等部分组成。码显示器是用来显示数字、文字或符号的器件,现在已有多种不同类型的产品,广泛应用于各种数字设备中,目前数码显示器件正朝着小型、低功耗、平面化方向发展。
数码的显示方式一般有三种:第一种是字形重叠式,它是将不同字符的电极重叠起来,要显示某字符,只须使相应的电极发亮即可,如辉光放电管、边光显示管等。第二种是分段式,数码是由分布在同一平面上若干段发光的笔划组成,如荧光数码管等。第三种是点阵式,它由一些按一定规律排列的可发光的点阵所组成,利用光点的不同组合便可显示不同的数码,如场致发光记分牌。
数字显示方式目前以分段式应用最普遍。
正文:此设计就是利用VHDL设计七段数码管显示译码电路,并在VHDL描述的测试平台下对译码器进行功能仿真,给出仿真的波形。
七段译码器的Verilog程序
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 09:03:26 06/23/2012
// Design Name:
// Module Name: decode_7
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module decode_7(a, b, c, d, en, sega, segb, segc, segd,sege,segf,segg ); input a, b, c, d, en;
output reg sega, segb, segc, segd,sege,segf,segg;
reg [1:7] segs;
always @(a or b or c or d or en) begin
if (en)
case ({d, c, b, a})
0:segs = 7'b1111110; //0
1:segs = 7'b0110000;
2:segs = 7'b1101101;
3:segs = 7'b1111001;
4:segs = 7'b0110011;
5:segs = 7'b1011011;
6:segs = 7'b0011111;
7:segs = 7'b1110000;
8:segs = 7'b1111111;
9:segs = 7'b1110011; //9
10:segs = 7'b0;
11:segs = 7'b0;
12:segs = 7'b0;
13:segs = 7'b0;
14:segs = 7'b0;
15:segs = 7'b0;
default segs = 7'bx;
endcase
else
segs = 7'b0;
{sega, segb, segc, segd,sege,segf,segg} = segs;
end
endmodule