网站大量收购独家精品文档,联系QQ:2885784924

基于VHDL的数字秒表设计.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河南农业大学 课程设计报告 设计题目: 基于VHDL的数字秒表的设计 学 院: 专 业: 电子信息科学与技术 班 级: 学 号: 姓 名: 电子邮件: 日 期: 成 绩: 指导教师: …………………………装………………………………订………………………………线……………………………………………………………… 河 南 农 业 大 学 理 学 院 课 程 设 计 任 务 书 学生姓名 指导教师 学生学号 专业班级 题目 基于VHDL的数字秒表设计 任务与要求 设计一个数字秒表,主要由显示译码器、分频器、十进制计数器、六进制计数器组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。 秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。 合作人: 分工方案: 开始日期 2012年 12月 3日 完成日期2012年 月 9日 课程设计所在地点 一、 数字闹钟设计要求: 1.四个十进制计数器:分别用来对百分之一秒、十分之一秒、秒和分进行计数; 2.两个六进制计数器:用来分别对十秒和十分进行计数; 3.分频器;用来产生100Hz计时脉冲; 4.显示译码器:完成对显示译码的控制。 3、能够完成清零、启动、保持(可以使用键盘或拨码开关置数)功能。 4、时、分、秒、百分之一秒显示准确。 二、 实验目的: 1、初步了解可编程逻辑器件(PLD)的基本原理; 2、熟练掌握MAX+PlusⅡ图形编辑器、文本编辑器等不同的输入设计方法,掌握EDA的自顶向下(Top to Down)的模块化设计思想; 3、了解VHDL语言的语法、句法及结构,能看懂VHDl语言编写的程序,并能熟练运用MAX+PlusⅡ软件对各个程序模块进行波形仿真; 4、熟悉顶层电路的原理图输入法,能应用EDA设计思想进行较复杂系统的分析和设计。 三、设计方案: 按照EDA自顶向下的设计理念,该数字秒表可以分为分频器模块、计数器模块、数据选择和数码管选择模块模块、数码管驱动模块,其顶层电路如下图所示。 四、各个模块的功能: 1、分频器模块:将2.5MHz的时钟信号转换成100Hz的计时脉冲,使秒表正常工作; 2、计数器模块:这是本秒表设计的基本功能,对时间进行计数并在显示屏显示当前时间,这个模块中,分别有十进制计数器和六进制计数器,共用四个十进制,分别表示数字秒表的百分之一秒、十分之一秒、秒和分,两个六进制,分别表示数字秒表的十秒和十分; 3、数据选择和数码管选择模块:通过每个计数器输入的dain信号对数码管进行选择, 4、数码管驱动模块:通过对输入的信号进行编码,完成对7段数码管的驱动,使数码管显示出对应的数字; 五、系统的各组成部分的原理框图及功能 1、分频器的原理框图: 2、六进制计数器的原理框图: 3、十进制计数器的原理框图: 4、选择模块的原理框图: 5、译码显示电路的原理框图: 其中各部分功能如下: 1、分频器将2.5MHz脉冲变成100Hz。 2、六进制计数器能够实现6进制循环计数。 3、十进制计数器能够实现10进制循环计数。 4、选择模块通过每个计数器输入的dain信号对数码管进行选择 5、译码显示电路通过对输入的信号进行编码,完成对7段数码管的驱动,使数码管显示出对应的数字。 六、系统的主要模块VHDL源程序: 1、分频器源程序clkgen: library ieee; use ieee.std_logic_1164.all; entity clkgen is port(clk:in std_logic; newclk:out std_logic); end entity clkgen; architecture art of clkgen is signal cnter:integer range 0 to 10#24999#; begin process(clk)is begin if clkevent and clk=1then if cnter=10#249

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档