现代电子技术综合实验之数字跑表.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电 子 科 技 大 学 《现代电子技术综合实验》实验报告 实验题目:基于FPGA的数字跑表设计 姓名: 张华博 学号: 2011091010004 学院: 生命科学与技术学院 专业: 生物医学工程 指导老师: 陈学英 摘要: 21世纪,电子技术获得了飞速的发展,电子计算机、数码产品、汽车、空调等都是电子科技的典型应用,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。? 随着人们生活水平的不断提高,不仅科学领域得到了飞速的发展,在体育领域中电子产品的应用也是对出可见。计时器作为一个简易的数字集成电路的应用,可以说无处不在,计时器实用简单,携带方便,各种大小规模的比赛都离不开了计时器。随着科技的发展,计时器的精度也越来越高,运动员们都朝着“更高、更快、更强”目标发展,特别是短跑比赛要求计时器要有足够的精度,这样就出现了本课题研究的数字跑表,用以测量完场某项体育运动所用时间。用于径赛、游泳、自行车、赛马等对计时器精度要求在百分之一秒。? 数字跑表具有计时功能,本设计的数字跑表有启动、停止、复位,按键消抖,选手分时显示的功能,表的最小精确值为0.01秒。? 一、系统总体设计 (设计要求,系统工作原理,单元电路的划分) 1、设计要求 指标: (1)跑表精度为0.01秒 (2)跑表计时范围为:1小时 (3)设置开始计时/停止计时、复位两个按钮 (4)显示工作方式:用六位BCD七段数码管显示读数。显示格式: 分 秒 0.01秒 扩展功能: 按键消抖 选手分时显示 要求: (1) 设计出符合设计要求的解决方案 (2) 设计出单元电路 (3) 利用EDA软件对各单元电路及整体电路进行仿真 (4) 在开发板上实现设计 (5) 撰写设计报告 2、系统工作原理 系统组成: 消抖 电路 消抖 电路 计 数 器 石英 振荡器 分 频 器 显示 控制 开始/复位按键 时间 显示 选手到终点计时存/取按键 数据 锁存 数据 读取 3、单元电路划分 使能控制器(开关,复位等以设置到计数器中,没有单独设计模块,特此说明下) 消抖模块 计数器 分频器 扫描显示控制器 存储模块(集成在显示模块中) 单元电路设计 分频器模块 提供的标准信号是48MHz ,输出二个信号1KHz、100Hz,将原来48MHZ的频率分为100HZ和1000HZ,程序设计中采用了两个中间变量,通过控制中间变量来实现分频的目的,100HZ的中间变量的范围设置为240000,1000HZ的中变量的范围设置为24000。 分频器 代码: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity fdiv3 is Port ( clkin : in STD_LOGIC; clkout1k : out STD_LOGIC; clkout100 : out STD_LOGIC); end fdiv3; architecture Behavioral of fdiv3 is signal counter0:integer range 0 to 23999 :=0; signal counter1:integer range 0 to 4 :=0; signal clkout1k_tmp,clkout100_tmp:std_logic:=0; begin process(clkin) begin if clkinevent and clkin=1 then if counter0=23999 then counter0=0; clkout1k_tmp =not clkout1k_tmp; else counter0=counter0+1; end if; end if; end process; clkout1k=clkout1k_tmp; process(clkout1k_tmp) begin if clkout1k_tmpevent and clkout1k_tmp=1 then if co

文档评论(0)

35425 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档