《设计数字显示电路.doc》由会员分享,可在线阅读,更多相关《设计数字显示电路.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流设计数字显示电路.精品文档. 大连理工大学城市学院数字电路与系统课程设计设计题目:设计数字显示电路学 院:电子与自动化学专 业: 学 生: 同 组 人: 指导教师: 完成日期: 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输入输出引脚及其
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设计一个八位
3、数码管显示电路;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进制数的形式输出
4、。要显示8位数字,所以用3位2进制数作为输出。输出信号为cout0.2。2、八选一数据选择模块:模块输入信号一个是数据选择器的地址码SEL2.0,另一部分是数据信息A3.0F3.0.地址码是SEL2.0来自时钟脉冲计数器CN6,由地址码SEL2.0决定输出哪个输入数据。输出信号是q3.0; 3、扫描显示译码器:完成对7字段数码管显示的控制。第三章 设计原理3.1 设计原理采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输
5、出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定
6、地显示。总之,多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环一次点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率较大,将看不到闪烁现象。将会看到6个数码管持续稳定点亮的现象。3.2 MAXPLUSII介绍 MAX+PLUS II 是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。它支持Altera公司不同结构的器件,可在多平台上运行。MAX+PLUS II 具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSI
7、I软件。 MAX+PLUSII 具有的强大功能极大地减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。用于可在一个工作日内完成实现设计项目的多次修改,直至最终设计定型。 MAX+PLUS II 开发系统众多突出的特点,使它深受广大用户的青睐。 MAX+PLUSII支持 Altera公司的 Classic、ACEX 1K、 MAX 3000、 MAX 5000、 MAX 7000、 MAX 9000、 FLEX 6000和 FLEX 10K等系列的可编程逻辑器件,门数为600250000
8、门,提供了工业界真正与结构无关的可编程逻辑设计环境。MAX+PLUSII的编辑器还提供了强大的逻辑综合与优化功能以减轻用户的设计负担。MAX+PLUSII软件的设计输入、处理、校验功能完全集成于可编程逻辑开发工具内,从而可以更快的进行调试,缩短开发周期。设计者可以从各种设计输入、编辑、校验及器件编程工具中作出选择,形成用户风格的开发环境,必要时还可以在保留原始功能的基础上添加新的功能。由于MAX+PLUSII支持多种器件系列,设计者无须学习新的开发工具即可对新结构的器件进行开发。MAX+PLUSII软件支持多种HDL的设计输入,包括标准的VHDL、 Verilog HDL及Altera公司自己
9、开发的硬件描述语言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输入输出引脚及其
10、功能说明CN8模块输入信号是时钟脉冲clk,每遇到一个时钟脉冲clk上升沿时,内部累加器便加一,再把累加器所得结果与2进制数的形式输出。要显示八位数字,所以用3位2进制数作为输出。输出信号为cout0.2。总之是通过输入输出信号来对数码管进行位选控制。4.1.3程序代码实现library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cn8 is port(clr,start,clk: in bit; cout: out std_logic_vector(2 downto 0));end cn8;
11、architecture a of cn8 is signal temp:std_logic_vector(2 downto 0);begin process(clk,clr) begin if clr=0 then temp=000; cout=111 then temp=000; cout=1; else temp=temp+1; cout=0; end if; end if; end if; end process; coutcout:=a; When001=cout:=b;When010=cout:=c; When011=cout:=d; When100=cout:=e; When10
12、1=cout:=f; When110=cout:=g; When others =cout:=h; End case; Qqqqqqqqqqq=1101111; End case; End process;End rtl;第五章调试并分析结果5.1输入说明clk时钟输入 Clr计数器清零(低电平有效) Start打开计数器(低电平有效)A3.0.H3.0 输入要显示的数字5.2预计输出 Cout2.0数码管位选控制 Q6.0数码管段选控制5.3测试结果记录同时显示0,1,2,3,4,5,6,7这八个不同的数字图形到八个数码管上。5.4测试结果分析 输入一个时钟,驱动计数器工作。选用模值为8的计
13、数器,依次控制8个数码管的亮灭,使得某一时刻有且仅有一个数码管点亮,同时产生对应的,将点亮的数码管赋值显示为相应的数码予以显示。由于扫描频率较高,8位数码管序列将显示持续稳定的0至7的数码。第六章 结论6.1心得体会在课程设计之前,我学过51单片机,对硬件与软件的联系有初步的了解,其次我的题目相对较简单-设计8位数码管动态显示电路,所以上手特别的快。在编写程序之前,我到实验室实地考察了一下试验箱,发现8位数码管实验无法实现,只能实现6位,开关实现数码管数字变换也不现实,单单8位数码管的数字就需要32个开关控制,试验箱远远达不到这个要求,因此,我就设计全软件来控制并且做得非常成功。最后验收时听老
14、师分析,全软件的程序有很大的缺陷,然后对我的设计又进一步的改进,用开关来进行控制。目前为止已实现6位数码管循环显示0-F,即循环滚动,始终点亮6个数码管,左出右进。状态为:01234512345623456734567845678956789A6789AB789ABC89ABCD9ABCDEABCDEFBCDEF0.(代码见附录)。但未实现:向左滚动,用全灭的数码管充右边,直至全部变灭,然后再依次从右边一个一个地点亮。状态为:01234512345X2345XX345XXX45XXXX5XXXXXXXXXXXXXXXX0XXXX01XXX012XX0123X01234012345,其中X表示数
15、码管不显示。总之,通过这次课程设计,我对EDA技术有了更进一步的了解。也知道了如何把vhdl的程序装到实验的硬件中,然后如何的连接实验箱上的管脚。 通过在上网查询本次实验相关资料。丰富了对EDA的了解。6.2参考文献李云、侯传教、冯永浩。VHDL电路设计实用教程。机械工业出版社。附录:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div2k isport(clk_in : in std_logic; clk_out : out std_logic);end;architecture
16、 a of div2k issignal cnt : integer range 0 to 999;signal clk_tmp : std_logic;beginprocess(clk_in)beginif (clk_inevent and clk_in=1) thenif cnt=999 thencnt=0; clk_tmp= not clk_tmp;elsecnt=cnt+1;end if;end if;end process;clk_outCLK,clk_out=clk_tmp);-3线至6线译码器-A为位码-P1:process(CNT6) BEGIN CASE CNT6 IS WH
17、EN 0 = BT = 000 ; A BT = 001 ; A BT = 010 ; A BT = 011 ; A BT = 100 ; A BT = 101 ; A NULL ; END CASE ; END PROCESS P1;-拓展模块-P2:process(clk_tmp) BEGIN IF clk_tmpEVENT AND clk_tmp = 1 THEN -实现模6计数器 if CNT6 = 5 then CNT6 = 0; else CNT6 = CNT6 + 1; end if;IF (FLAG = 11) THEN-设置标志 FLAG = 0; END IF;IF COUNT = 5000 THEN-另一个时钟COUNT = 0; FLAG = FLAG + 1; -当记满5000时左移动一位 ELSECOUNT = COUNT + 1;END IF; END IF; END PROCESS P2;P3:process(A)BEGIN FLAG_A SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL ; END CASE ; END PROCESS P3; END arc;