设计数字显示电路_第1页
设计数字显示电路_第2页
设计数字显示电路_第3页
设计数字显示电路_第4页
设计数字显示电路_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大连理工大学城市学院数字电路与系统课程设计设计题目:设计数字显示电路学院:电子与自动化学专业:学生:同组人:指导教师:达成日期:2012年3目录第一章设计任务项目名称项目设计说明设计任务和要求进度安排项目整体功能模块图第二章需求剖析问题基本描绘系统模块分解系统各模块功能的基本要求第三章设计原理设计原理MAXPLUSII介绍第四章系统功能模块设计计数模块计数模块流程图输入输出引脚及其功能说明程序代码实现数据选择模块数据选择模块流程图输入输出引脚及其功能说明程序代码实现七段译码显示模块七段译码显示模块流程图输入输出引脚及其功能说明程序代码实现第五章调试并剖析结果输入说明估计输出测试结果记录测试结果剖析第六章结论心得领会参照文件第一章设计任务项目名称:设计数字显示电路本项目的主要内容是设计并实现8位数码管轮番显示8个数字。该电路将所学的数字电路与系统大多数知识和VHDL语言联合。项目设计说明设计任务和要求A、用CPLD设计一个八位数码管显示电路;B、8位数码管轮番显示8个数字,选择适合的时钟脉冲频次实现8个数码管同时被点亮的视觉成效。进度安排第一周至第二周每周二2课时,共10课时。详细安排为:第一周至第三周课时自行设计、第周围实验结果查收、第五周交报告并进行辩论。项目整体功能模块图第二章需求剖析问题基本描绘基本系统流程图以下系统模块分解动向扫描显示电路的主要构成为:计数器、显示译码器、32选4数据选择器、扫描电路构成。系统各模块功能的基本要求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字段数码管显示的控制。第三章设计原理设计原理采纳动向扫描的方式实现设计要求。动向扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输出对各位数码管来说都是同样的。所以在同一时刻假如各位数码管的位选线都处于选通状态的话,6位数码管将显示同样的字符。若要各位数码管能够显示出与本位相应的字符,就一定采纳扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其余各位的位选线处于封闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其余各位则是熄灭的,这样循环下去,就能够使各位数码管显示出将要显示的字符。固然这些字符是在不一样时刻出现的,并且同一时刻,只有一位显示,其余各位熄灭,但因为数码管拥有余辉特征和人眼有视觉暂留现象,只需每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳固地显示。总之,多个数码管动向扫描显示,是将所有数码管的同样段并联在一同,经过选通讯号分时控制各个数码管的公共端,循环一次点亮多个数码管,并利用人眼的视觉暂留现象,只需扫描的频次较大,将看不到闪耀现象。将会看到6个数码管连续稳固点亮的现象。MAXPLUSII介绍MAX+PLUSII是一个完整集成化的可编程逻辑环境,能知足用户各种各种的设计需要。它支持Altera企业不一样构造的器件,可在多平台上运转。MAX+PLUSII拥有突出的灵巧性和高效性,为设计者供给了多种可自由选择的设计方法和工具。丰富的图形界面,可随时接见的在线帮助文档,使用户能够迅速轻松地掌握和使用MAX+PLUSII软件。MAX+PLUSII拥有的强盛功能极大地减少了设计者的负担,使设计者能够迅速完成所需的设计,使用该软件,用户从开始设计逻辑电路到达成器件下载编程一般只需要数小不时间,此中设计的编译时间常常仅需数分钟。用于可在一个工作日内完成实现设计项目的多次改正,直至最后设计定型。MAX+PLUSII开发系统众多突出的特色,使它深受广大用户的喜爱。MAX+PLUSII支持Altera企业的Classic、ACEX1K、MAX3000、MAX5000、MAX7000、MAX9000、FLEX6000和FLEX10K等系列的可编程逻辑器件,门数为600~250000门,供给了工业界真实与构造没关的可编程逻辑设计环境。MAX+PLUSII的编写器还供给了强盛的逻辑综合与优化功能以减少用户的设计负担。MAX+PLUSII软件的设计输入、办理、校验功能完整集成于可编程逻辑开发工具内,进而能够更快的进行调试,缩短开发周期。设计者能够从各种设计输入、编写、校验及器件编程工具中作出选择,形成用户风格的开发环境,必需时还能够在保存原始功能的基础上增添新的功能。因为MAX+PLUSII支持多种器件系列,设计者不必学习新的开发工具即可对新构造的器件进行开发。MAX+PLUSII软件支持多种HDL的设计输入,包含标准的VHDL、VerilogHDL及Altera企业自己开发的硬件描绘语言AHDL。MAX+PLUSII由设计输入、项目办理、项目查验和器件编程等4部分构成,所有这些部分都集成在一个可视化的操作环境下。MAX+PLUSII管理窗口包含项目路径、工作文件标题条、MAX+PLUSII菜单条、快捷工具条和工作区等几个部分。设置好受权码后,启动MAX+PLUSII即进入MAX+PLUSII管理窗口,以下图。MAX+PLUSII还为用户供给了功能强盛的在线帮助功能。经过使用在线帮助,用户能够获取设计中所需的所有信息。第四章系统功能模块设计计数(数码管位选控制)模块数码管位选控制模块流程图输入输出引脚及其功能说明CN8模块输入信号是时钟脉冲clk,每碰到一个时钟脉冲clk上涨沿时,内部累加器便加一,再把累加器所得结果与2进制数的形式输出。要显示八位数字,所以用3位2进制数作为输出。输出信号为cout[0..2]。总之是经过输入输出信号来对数码管进行位选控制。程序代码实现libraryieee;use

entitycn8isport(clr,start,clk:inbit;cout:outstd_logic_vector(2downto0)endcn8;architectureaofcn8issignaltemp:std_logic_vector(2downto0);beginprocess(clk,clr)beginifclr='0'thentemp<="000";cout<='0';elsif(clk'eventandclk='1')thenifstart='0'theniftemp>="111"thentemp<="000";cout<='1';else

);temp<=temp+1;cout<='0';endif;endif;endif;endprocess;cout<=temp;enda;数据选择模块数据选择模(八选一模块)块流程图输入输出引脚及其功能说明SEL81模块输入信号一个是数据选择器SEL81的地址码SEL[2..0],另一部分是数据信息A[3..0]~H[3..0].地址码是SEL[2..0]来自时钟脉冲计数器CN8,由地址码SEL[2..0]决定输出哪个输入数据。输出信号是q[3..0]。程序代码实现Libraryieee;Usesel81isPort(sel:instd_logic_vector(2downto0);A,b,c,d,e,f,g,h:instd_logic_vector(3downto0);Q:outstd_logic_vector(3downto0));Endsel81;Architecturertlofsel81isbeginProcess(a,b,c,d,e,f,g,h,sel)Variablecout:std_logic_vector(3downto0);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;Whenothers=>cout:=h;Endcase;Q<=cout;Endprocess;Endrtl;七段译码器模块七段译码器模块模块流程图输入输出引脚及其功能说明DISP模块是七段译码器,将输入的4位二进制数变换为数码显示管对应的数字。比如输入为4进制数0000的时候,使数码显示管显示0,则要七段译码器输出为011111。即g段为0,g段发光二极管不亮,其余发光二极管被点亮,显示成效为0。DISP模块输入信号D[3..0],输出信号是Q[6..0]。程序代码实现Libraryieee;Usedispisport(d:instd_logic_vector(3downto0);q:outstd_logic_vector(6downto0));enddisp;ArchitecturertlofdispisBeginProcess(d)BeginCasedisWhen"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";Whenothers=>q<="1101111";Endcase;Endprocess;Endrtl;第五章调试并剖析结果输入说明clk时钟输入ClrStartA[3..0]..H[3..0]

计数器清零(低电平有效)翻开计数器(低电平有效)输入要显示的数字估计输出Cout[2..0]Q[6..0]

数码管位选控制数码管段选控制测试结果记录同时显示0,1,2,3,4,5,6,7这八个不一样的数字图形到八个数码管上。测试结果剖析输入一个时钟,驱动计数器工作。采纳模值为8的计数器,挨次控制8个数码管的亮灭,使得某一时刻有且仅有一个数码管点亮,同时产生对应的,将点亮的数码管赋值显示为相应的数码予以显示。因为扫描频次较高,8位数码管序列将显示连续稳固的0至7的数码。第六章结论心得领会在课程设计以前,我学过51单片机,对硬件与软件的联系有初步的认识,其次我的题目相对较简单---设计8位数码管动向显示电路,所以上手特其他快。在编写程序以前,我到实验室实地观察了一下试验箱,发现8位数码管实验没法实现,只好实现6位,开关实现数码管数字变换也不现实,单单8位数码管的数字就需要32个开关控制,试验箱远远达不到这个要求,所以,我就设计全软件来控制并且做得特别成功。最后查收时听老师剖析,全软件的程序有很大的缺点,而后对我的设计又进一步的改良,用开关来进行控制。当前为止已实现6位数码管循环显示0-F,即循环转动,一直点亮6个数码管,左出右进。状态为:012345-123456-234567-345678-456789-56789A-6789AB-789ABC-89ABCD-9ABCDE-ABCDEF-BCDEF0-.....(代码见附录)。但未实现:向左转动,用全灭的数码管充右侧,直至所有变灭,而后再挨次从右侧一个一个地址亮。状态为:012345-12345X-2345XX-345XXX-45XXXX-5XXXXXXXXXXX-XXXXX0-XXXX01-XXX012-XX0123-X01234-012345,此中’X’表示数码管不显示。总之,经过此次课程设计,我对EDA技术有了更进一步的认识。也知道了怎样把vhdl的程序装到实验的硬件中,而后怎样的连结实验箱上的管脚。经过在上网查问本次实验有关资料。丰富了对EDA的认识。参照文件李云、侯传教、冯永浩。VHDL电路设计适用教程。机械工业第一版社。附录:libraryieee;useuseentitydiv2kisport(clk_in:instd_logic;clk_out:outstd_logic);end;architectureaofdiv2kissignalcnt:integerrange0to999;signalclk_tmp:std_logic;beginprocess(clk_in)beginif(clk_in'eventandclk_in='1')thenifcnt=999thencnt<=0;clk_tmp<=notclk_tmp;elsecnt<=cnt+1;endif;endif;endprocess;clk_out<=clk_tmp;end;------BLIBRARYIEEE;USEENTITYscan_ledISPORT(CLK:INSTD_LOGIC;SG:OUTSTD_LOGIC_VECTOR(6DOWNTO0);BT:OUTSTD_LOGIC_VECTOR(2DOWNTO0));END;ARCHITECTUREarcOFscan_ledIScomponentdiv2kport(clk_in:instd_logic;clk_out:outstd_logic);endcomponent;SIGNALCNT6:INTEGERRANGE0TO5;SIGNALA:INTEGERRANGE0TO5;SIGNALCOUNT:INTEGERRANGE0TO5000:=0;SIGNAlFLAG:INTEGERRANGE0TO10:=0;SIGNAlFLAG_A:INTEGERRANGE0TO15;SIGNALclk_tmp:STD_LOGIC;BEGINu1:div2kportmap(clk_in=>CLK,clk_out=>clk_tmp);-------------3线至6线译码器----A为位码-------------P1:process(CNT6)BEGINCASECNT6ISWHEN0=>BT<="000";A<=0;WHEN1=>BT<="001";A<=1;WHEN2=>BT<="010";A<=2;WHEN3=>BT<="011";A<=3;WHEN4=>BT<="100";A<=4;WHEN5=>BT<="101";A<=5;WHENOTHERS=>NULL;ENDCASE;ENDPROCESSP1;-------------------------拓展模块-------------------------------------P2:process(clk_tmp)BEGINIFclk_tmp'EVENTANDclk_tmp='1'THEN

--

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论