计数器及数码显示综合设计..

  • 格式:docx
  • 大小:325.11 KB
  • 文档页数:17

北华航天工业学院《EDA技术综合设计》课程设计报告报告题目: 计数器及数码显示综合设计作者所在系部: 电子工程系作者所在专业: 自动化专业作者所在班级: B11222作者姓名:指导教师姓名: 崔瑞雪完成时间:内容摘要在quatrusll 中利用VHDL语言编写数码管显示程序,然后进行功能仿真,然后进行锁定引脚,然后硬件进行下载,调试。

关键词:VHDL,数码管显示,quatrusll ,时序仿真图。

内容摘要.....................目录.......................... 课程设计任务书 ................一、实验目的................二、硬件要求..................三、方案论证..................四、模块说明..................1.计数器(COUnter60) .....2.计数器(COUnter16) .....3.计数器(COUnter12) .....4.计数器(COUnter10) .....6.译码器(deled) .............7.分频器(div) ...............8.顶层文件...............五、图7计数显示的整体连接图六、实验步骤.................七、实验结果..................八、总结......................九、参考文献..................II III.19 111112 12 12-03课程设计任务书总体设计要求和技术要点利用VHDL 进行数字钟设计,主要完成以下功能: 一、 实验目的1、 设计一个带使能输入、进位输出及同步清 0的增1十进制计数器。

2、 设计一个带使能输入及同步清 0的增1十二进制计数器。

3、 设计一个带使能输入及同步清 0的六十进制同步加法计数器。

4、 设计一个四位二进制可逆计数器。

5、 设计一个共阴7段数码管控制接口,要求:在时钟信号的控制下,使 显示上述计数器的计数结果。

工作内容及时间进度安排课程设计成果课题名称 计数器及数码显示综合设计完成时间2013-12指导教师隹瑞雪 职称 副教授 学生姓名B112227位数码管动态刷新实验目的二、硬件要求1. 主芯片 EPF10K10LC84-42. 7个八段扫描共阴极数码显示管。

3.三个按键开关(使能端,清零端,可逆端)三、方案论证本次设计中将任务分成几个部来完成分别是:分频部分、十进制计数器、十二进 制计数器、十六进制可逆计数器、六十进制计数器、译码部分、时间扫描模块和顶层 文件。

分频部分:在这个部分里,接受20mhz 的频率,然后分出1hz 的计数频率和lOOhz 的扫描频率。

十进制计数器、十二进制计数器、六十进制计数器:在这个部分中要实现带使能 输入、同步清0的增1十进制、十二进制、六十进制的计数器计数功能。

使能端 en 高电平有效计数器开始计数,高电平停止计数,清零端 CLR 高电平清零低电平正常计数。

十六进制可逆计数器:在这个部分中要实现带使能输入、同步清0的增1十六进制的可逆计数器计数功能。

计数部分分为计数的个位和十位,使能端en 高电平有效计 数器开始计数,低电平停止计数,清零端 rst 高电平清零低电平计数,可逆计数器的 控制端plus_sub 低电平实现加法计数器的功能,高电平实现减法计数器的功能。

分时扫描及译码部分:在这个部分需设计一个共阴 7段数码管控制接口,在时钟信号的控制下,分时选择数码管显示相应计数器的计数脉冲,使7位数码管动态刷新显示4个计数器的计数结果,并将送来的计数器的计算值转换为相应的段码在数码管 上显示计数脉冲的个数。

1. 2. 3. 4. 5.熟悉QUARATE n 工具软件 熟悉VHDL 语言设计 学习EDA 课程的综合设计 学习计数器的VHDL 语言设计了解器件编程和下载及硬件接口连接.顶层文件:在这一部分确定上述几个部分中相应输入输出端口的连接关系。

四、模块说明计数器及数码显示的设计共化分为3个模块:计数器,扫描电路(seltime ),译码电路(deled )。

下面具体分析各个模块的原理、内容和功能。

1.计数器(counter60)能够实现60进制循环计数,带有清零端clr ,受时钟上升沿信号控制,其文本语言(文件名:count60er.vhd )为底层文本,图1为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all;en tity coun ter60 isp ort(e n,clr,clk:in std_logic;ql,qh:buffer std_logic_vector(3 dow nto 0));end coun ter60;architecture behave of coun ter60 is beginpro cess(e n, clr,clk)beginif(en='1')the n if(clk'eve nt and clk='1')then if(clr='1')the nql<=(others=>'0'); qh<=(others=>'0'); elsif(ql=9)the n if(qh=5)the n qh<="0000"; ql<="0000";elseqh<=qh+1; ql<="0000"; end if;else ql<=ql+1;end if;end if;end if;end pro cess; end behave;图1. 六十进制秒计数器的仿真波形2.计数器(counter16)能够实现16进制可逆循环计数,带有清零端clr ,受时钟上升沿信号控制,其文本语言(文件名:count16er.vhd )为底层文本,图2为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all;en tity coun ter16 isp ort(e n,clr,clk:i n std_logic;plu s_sub:i n std_logic;ql,qh:buffer std_logic_vector(3 dow nto 0)); end coun ter16;architecture behave of coun ter16 isbeginpro cess(e n, clr,clk ,pl us_sub)beginif(en='1')the nif(clk'eve nt and clk='1')the nif(clr='1')the nql<=(others=>'0');qh<=(others=>'0');elsif( plu s_sub='1')the nif(qh=1 and ql=5)the nql<="0000";qh<="0000";elsif(ql=9)the n qh<="0001"; ql<="0000"; else ql<=ql+1; end if; elsif( plus_sub='O')the n if(qh=O and ql=O)thenql<="0101"; qh<="0001"; elsif(ql=O)the n ql<="1001"; qh<="0000";elseql<=ql-1; end if;end if;end if;end if;end pro cess;endbehave|2.3.计数器(counter12)能够实现12进制循环计数,带有清零端clr ,受时钟上升沿信号控制,其文本语言 (文件名:count12er.vhd )为底层文本,图3为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all;en tity coun ter12 isp ort(e n,clr,clk:in std_logic;ql,qh:buffer std_logic_vector(3 dow nto 0));end coun ter12;architecture behave of coun ter12 isbeginp rocess(e n, clr,clk)beginif(en='1')the nif(clk'eve nt and clk='1')the nif(clr='1')the nql<=(others=>'0'); qhv=(others二>'0');elsif(qh=1 and ql=1)the n ql<="0000"; qh<="0000"; elsif(ql=9)the n qh<="0001"; ql<="0000";elseql<=ql+1;end if;end if;end if;end p rocess;00003. 十二进制分计数器的仿真波形4.计数器(counter10)能够实现10进制循环计数,带有清零端clr ,受时钟上升沿信号控制,其文本语言 (文件名:count10er.vhd )为底层文本,图4为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all;en tity coun ter10 isp ort(e n,clr,clk:in std_logic;q:buffer std_logic_vector(3 dow nto 0));end coun ter10;architecture behave of coun ter10 isbeginp rocess(clr,clk,e n)beginif(e n='1') the nif(clk'eve nt and clk='1')the nif(clr='1')the nqv=(others二>'0'); elsif(q=9)the nq<="0000";elseq<=q+1;end if;end if;end if;end p rocess;end behave;5.扫面器(seltime)此模块能够实现分别对前边的数值进行扫描,有清零段,复位段,以及上升沿有效, 其文本语言(文件名:seltime.vhd )为底层文本,图5为计数器的仿真波形图。