当前位置:文档之家› 设计数字显示电路

设计数字显示电路

大连理工大学城市学院数字电路与系统课程设计设计题目:设计数字显示电路学院:电子与自动化学专业:学生:同组人:指导教师:完成日期: 2012年3目录第一章设计任务1.1项目名称1.2项目设计说明1.2.1设计任务和要求1.2.2进度安排1.3项目总体功能模块图第二章需求分析2.1问题基本描述2.2系统模块分解2.3系统各模块功能的基本要求第三章设计原理3.1 设计原理3.2 MAXPLUSII介绍第四章系统功能模块设计4.1计数模块4.1.1计数模块流程图4.1.2输入输出引脚及其功能说明4.1.3程序代码实现4.2数据选择模块4.2.1数据选择模块流程图4.2.2输入输出引脚及其功能说明4.2.3程序代码实现4.3七段译码显示模块4.3.1七段译码显示模块流程图4.3.2输入输出引脚及其功能说明4.3.3程序代码实现第五章调试并分析结果5.1输入说明5.2预计输出5.3测试结果记录5.4测试结果分析第六章结论6.1心得体会6.2参考文献第一章设计任务1.1 项目名称:设计数字显示电路本项目的主要内容是设计并实现8位数码管轮流显示8个数字。

该电路将所学的数字电路与系统大部分知识和VHDL语言结合。

1.2项目设计说明1.2.1设计任务和要求A、用CPLD设计一个八位数码管显示电路;B、8位数码管轮流显示8个数字,选择合适的时钟脉冲频率实现8个数码管同时被点亮的视觉效果。

1.2.2进度安排第一周至第二周每周二2课时,共10课时。

具体安排为:第一周至第三周 6课时自行设计、第四周实验结果验收、第五周交报告并进行答辩。

1.3项目总体功能模块图第二章需求分析2.1问题基本描述基本系统流程图如下2.2系统模块分解动态扫描显示电路的主要组成为:计数器、显示译码器、32选4数据选择器、扫描电路组成。

2.3系统各模块功能的基本要求1、计数器:CN8模块输入信号是时钟脉clk,每遇到一个时钟脉冲clk上升沿时,内部累加器便加一,再把累加器所得结果与2进制数的形式输出。

要显示8位数字,所以用3位2进制数作为输出。

输出信号为cout[0..2]。

2、八选一数据选择模块:模块输入信号一个是数据选择器的地址码SEL[2..0],另一部分是数据信息A[3..0]~F[3..0].地址码是SEL[2..0]来自时钟脉冲计数器CN6,由地址码SEL[2..0]决定输出哪个输入数据。

输出信号是q[3..0];3、扫描显示译码器:完成对7字段数码管显示的控制。

第三章设计原理3.1 设计原理采用动态扫描的方式实现设计要求。

动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。

各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。

因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。

若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。

同时,段线上输出相应位要显示字符的字型码。

这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。

虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。

总之,多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环一次点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率较大,将看不到闪烁现象。

将会看到6个数码管持续稳定点亮的现象。

3.2 MAXPLUSII介绍MAX+PLUS II 是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。

它支持Altera公司不同结构的器件,可在多平台上运行。

MAX+PLUS II 具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。

丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。

MAX+PLUSII 具有的强大功能极大地减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。

用于可在一个工作日内完成实现设计项目的多次修改,直至最终设计定型。

MAX+PLUS II 开发系统众多突出的特点,使它深受广大用户的青睐。

MAX+PLUSII支持 Altera公司的 Classic、ACEX 1K、 MAX 3000、 MAX 5000、MAX 7000、 MAX 9000、 FLEX 6000和 FLEX 10K等系列的可编程逻辑器件,门数为600~250000门,提供了工业界真正与结构无关的可编程逻辑设计环境。

MAX+PLUSII 的编辑器还提供了强大的逻辑综合与优化功能以减轻用户的设计负担。

MAX+PLUSII软件的设计输入、处理、校验功能完全集成于可编程逻辑开发工具内,从而可以更快的进行调试,缩短开发周期。

设计者可以从各种设计输入、编辑、校验及器件编程工具中作出选择,形成用户风格的开发环境,必要时还可以在保留原始功能的基础上添加新的功能。

由于MAX+PLUSII支持多种器件系列,设计者无须学习新的开发工具即可对新结构的器件进行开发。

MAX+PLUSII软件支持多种HDL的设计输入,包括标准的VHDL、 Verilog HDL 及Altera公司自己开发的硬件描述语言AHDL。

MAX+PLUS II 由设计输入、项目处理、项目检验和器件编程等4部分组成,所有这些部分都集成在一个可视化的操作环境下。

MAX+PLUS II 管理窗口包括项目路径、工作文件标题条、MAX+PLUS II菜单条、快捷工具条和工作区等几个部分。

设置好授权码后,启动MAX+PLUS II即进入MAX+PLUS II 管理窗口,如图6.4所示。

MAX+PLUS II 还为用户提供了功能强大的在线帮助功能。

通过使用在线帮助,用户可以获得设计中所需的全部信息。

第四章系统功能模块设计4.1计数(数码管位选控制)模块4.1.1数码管位选控制模块流程图4.1.2输入输出引脚及其功能说明CN8模块输入信号是时钟脉冲clk,每遇到一个时钟脉冲clk上升沿时,内部累加器便加一,再把累加器所得结果与2进制数的形式输出。

要显示八位数字,所以用3位2进制数作为输出。

输出信号为cout[0..2]。

总之是通过输入输出信号来对数码管进行位选控制。

4.1.3程序代码实现library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cn8 isport(clr,start,clk: in bit;cout: out std_logic_vector(2 downto 0));end cn8;architecture a of cn8 issignal temp:std_logic_vector(2 downto 0);beginprocess(clk,clr)beginif clr='0' thentemp<="000";cout<='0';elsif (clk'event and clk='1') then if start='0' thenif temp>="111" thentemp<="000";cout<='1';elsetemp<=temp+1;cout<='0';end if;end if;end if;end process;cout<=temp;end a;4.2数据选择模块4.2.1.数据选择模(八选一模块)块流程图4.2.2输入输出引脚及其功能说明SEL81模块输入信号一个是数据选择器SEL81的地址码SEL[2..0],另一部分是数据信息A[3..0]~H[3..0].地址码是SEL[2..0]来自时钟脉冲计数器CN8,由地址码SEL[2..0]决定输出哪个输入数据。

输出信号是q[3..0]。

4.2.3程序代码实现Library ieee;Use ieee.std_logic_1164.all;Entity sel81 isPort(sel:in std_logic_vector(2 downto 0);A,b,c,d,e,f,g,h:in std_logic_vector(3 downto 0);Q:out std_logic_vector(3 downto 0));End sel81;Architecture rtl of sel81 isbeginProcess(a,b,c,d,e,f,g,h,sel)Variable cout:std_logic_vector(3 downto 0);BeginCase(sel)isWhen"000"=>cout:=a;When"001"=>cout:=b;When"010"=>cout:=c;When"011"=>cout:=d;When"100"=>cout:=e;When"101"=>cout:=f;When"110"=>cout:=g;When others =>cout:=h;End case;Q<=cout;End process;End rtl;4.3七段译码器模块4.3.1七段译码器模块模块流程图4.3.2输入输出引脚及其功能说明DISP模块是七段译码器,将输入的4位二进制数转换为数码显示管对应的数字。

例如输入为4进制数0000的时候,使数码显示管显示0,则要七段译码器输出为011111。

即g段为0,g段发光二极管不亮,其它发光二极管被点亮,显示效果为0。

DISP模块输入信号D[3..0],输出信号是Q[6..0]。

4.3.3程序代码实现Library ieee;Use ieee.std_logic_1164.all;Entity disp isport(d:in std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0));end disp;Architecture rtl of disp isBeginProcess(d)BeginCase d isWhen"0000"=>q<="0111111";When"0001"=>q<="0000110";When"0010"=>q<="1011011";When"0011"=>q<="1001111";When"0100"=>q<="1100110";When"0101"=>q<="1101101";When"0110"=>q<="1111101";When"0111"=>q<="0100111";When"1000"=>q<="1111111";When others=>q<="1101111";End case;End process;End rtl;第五章调试并分析结果5.1输入说明clk 时钟输入Clr 计数器清零(低电平有效)Start 打开计数器(低电平有效)A[3..0]..H[3..0] 输入要显示的数字5.2预计输出Cout[2..0] 数码管位选控制Q[6..0] 数码管段选控制5.3测试结果记录同时显示0,1,2,3,4,5,6,7这八个不同的数字图形到八个数码管上。

相关主题