计数器及数码显示实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北华航天工业学院

课程设计报告(论文)

课设名称: EDA技术与应用

设计课题:计数器及数码显示综合设计

专业班级: B12241

学生姓名:白冬雪田尉均

指导教师:齐建玲

设计时间: 2014年 12月 15日

北华航天工业学院电子工程系

EDA 课程设计任务书

姓名:白冬雪田

尉均

专业:

测控技术与

仪器

班级:B12241

指导教师:齐建玲职称:教授

课程设计题目:计数器及数码显示综合设计

已知技术参数和设计要求:

①总体设计要求:设计一个能在7段数码管上动态刷新显示十进制、十二进制、六十进制、四位二进制计数器计数结果的VHDL语言程序并在EDA实验开发系统上实现该功能。

②技术要点:VHDL语言编辑程序、共阴7段数码管及FPGA可编程芯片的工作原理与连线。

所需仪器设备:实验箱,电脑

成果验收形式:实验报告,硬件实验结果

参考文献:

李国洪、胡辉、沈明山等编著《EDA技术与实验》—机械工业出版社出版。

时间安排

2014年12月14日-15日编辑VHDL语言程序

2014年12月16日硬件调试程序

2014年12月17日实验箱答辩验收

指导教师:齐建玲教研室主任:王晓

2014年 12月 17日

内容摘要

用VHDL语言在MAX+PLUS2环境下

设计一个带使能输入、进位输出及同步清零的十进制计数器。

设计一个带使能输入及同步清零的十二进制计数器。

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

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

设计一个共阴7段数码管控制接口,在时钟信号的控制下,使六位数码管动态刷新显示上述计数器的计数结果。

最后在EDA实验开发系统实验操作。

目录

一、概述 (1)

二、方案设计与论证 (1)

三、单元电路设计与参数计算 (1)

1、十进制计数器 (1)

2、十二进制计数器 (2)

3、六十进制计数器 (3)

4、十六进制可逆计数器 (4)

5、六进制计数器 (5)

6、数据选择器 (6)

7、 4-7译码器 (7)

四、顶层文件截图 (8)

五、安装与调试 (8)

六、心得体会 (8)

1.实验注意事项 (8)

2.收获与体会 (9)

一、概述

用VHDL语言在MAX+PLUS2环境下

设计一个带使能输入、进位输出及同步清零的十进制计数器。

设计一个带使能输入及同步清零的十二进制计数器。

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

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

设计一个共阴7段数码管控制接口,在时钟信号的控制下,使六位数码管动态刷新显示上述计数器的计数结果。

二、方案设计与论证

四个计数器同时开始计数,通过计数器的使能端可以随时控制计数器是否继

续工作,通过同步清零端可以随时把任何一个计数器清零重新开始计数。四位二

进制可逆计数器可以随时进行加计数或减计数。

通过六进制计数器扫描数码管和作为对其他4个计数器的选择信号,再通过

一个数据选择器选择出计数器的输出信号,通过4-7译码器的输出信号在数码

当时钟信号频率足够大时可以实现六个数码管“同时”显示各计数器的计数

结果。因为人的眼睛分辨不出各数码管的快速跳变。所以能实现所要求的同步计

数的目的。

三、单元电路设计与参数计算

1、十进制计数器

①代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY JINZHI10 IS

PORT( CLK,en,rst:IN STD_LOGIC;

ci :OUT STD_LOGIC;

dout :BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );

END JINZHI10;

ARCHITECTURE ABC OF JINZHI10 IS

BEGIN

ci<='1' WHEN dout="1001" AND en='1' ELSE '0';

PROCESS(CLK,en,rst)

BEGIN

IF RISING_EDGE(CLK) THEN

IF rst='1' THEN dout<=(OTHERS=>'0');

ELSIF en='1' THEN

IF dout="1001" THEN dout<="0000";

ELSE dout<=dout+1;

END IF;

END IF;

END IF;

END PROCESS;

END ABC;

②仿真结果:

2、十二进制计数器

①代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY JINZHI12 IS

PORT( CLK,en,rst:IN STD_LOGIC;

dout :BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END JINZHI12;

ARCHITECTURE ABC OF JINZHI12 IS

BEGIN

PROCESS(CLK,en,rst)

BEGIN

if RISING_EDGE(CLK) THEN

if rst='1'then dout<=(others=>'0');

ELSIF en='1' THEN

IF dout="1011" THEN dout<="0000";

ELSE dout<=dout+1;

END IF;

END IF;

END IF;

END PROCESS;

END ABC;

②仿真结果

相关文档
最新文档