基于verilog语言编程的数字秒表设计规划.doc

基于verilog语言编程的数字秒表设计规划.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于verilog语言编程的数字秒表设计规划

数字秒表设计 系别:电子通信工程系 专业:电子信息工程 班级: 学号: 姓名: 数字秒表(基于verilong语言编程)课程设计 一、设计要求 用设计一个位LED数码显示“秒表”,显示时间为秒,每秒自动一。另设计一个“开始”按键和一个“复位”按键。再增加一个“暂停”按键 按键说明:按“开始”按键,开始计数,数码管显示从开始每秒自动一;按“复位”按键,系统复位,数码管显示;按“暂停”按键,系统暂停计数,数码管显示当时的计数1、 通过本次课程设计加深对课程的全面认识复习和掌握,对的应用进一步的了解。2、 掌握定时器、外部中断的设置和编程原理。3、 通过此次课程设计能够将软硬件结合起来,对程序进行编辑,。 三、总体设计 本秒表系统具有复位、暂停、秒表计时等功能 clk为系统工作时钟,采用Altera?DE2上的50M时钟信号,经过分频器产生秒表计时周期为0.01s的时钟,再经过计数器,分别对秒表的百分位、十分位、秒、秒十位、分、分十位进行计数。onoff为启动/暂停控制信号,当它为0时,启动计时,当它为1时,计时暂停。clr为复位信号,当该信号有效时,计数器和译码清零,此时数码管显示输出为00:00:00。在总体电路图中,根据设计要求,需要两个输入控制信号onoff和clr。由于开发板上除了拨动开关就是瞬时的按键开关,且按键开关平时都呈高电平,按一下为低电平。故在实际测试时采用了拨动开关SW0来控制秒表的启动/暂停,通过KEY0来控制秒表的清零。 该实验要求进行计时并在数码管上显示时间,Altera_EPM7064(84PIN)有四个引脚GCLK1(83脚),GCLRn(1脚),OE1(84脚),OE2(2脚)GCLK1是全局时钟GCLRn(1脚是全局清零OE1(84脚),OE2(2脚)是全局使能实现“开始”按键的功能;实现“清零(复位)”按键的功能;做为时钟信号CLK输入的入口地址。其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零(复位)”按键当开关由1拨向0(由上向下拨)时数码管清零(复位),此时若再拨“开始”按键则又可重新开始计时。IDI、TMS、TCK、TDO是JTAG的标准线。 跟据数字秒表的原理图如图一所示,为设计项目选定CyclongII系列中的EP2C35F672C6器件,锁定顶层设计中各端口所对应的引脚号,并编译通过。然后对器件编程,使用USB-Blaste下载电缆把项目以在线配置的方式下载到Altera?DE2实验板的EP2C35F672C6器件中。该数字式秒表具有清零功能,通过KEY0来控制,能够在计时过程中随时清零。用SW0键来控制锁存/计时,能在计时过程中通过按SW0键,SW0拨动开关打上时计时暂停,打下时仍继续。实验证明该秒表工作正常,基本上已达到了预期的设计要求。 六、PCB图 七、系统设计? 在设计电路时,要遵循从上到下的设计原则。首先从系统设计入手,在顶层进行功能划分和结构设计,顶层模块的每个层次模块均可完成一个较为独立的功能,次模块在调试成功后可生成一个默认符号,以供上一层模块调用。本系统由4个模块组成,分别是分频电路模块、模10计数模块和动态译码显示模块。本设计最小计时单位为0.1s,设计时需获得一个比较精确的10Hz(周期为0.1s)的计时脉冲。由于最终的设计结果要下载到可编程逻辑器件中测试,因此可利用Altera?DE2开发板的M晶振时钟。将M时钟信号CLK送到分频器CLKGEN进行60万分频后,得到10Hz的频率由NEWCLK输出。采用Verilog语言编程,编译无误通过后创建默认文件符号CLKGEN以供上层电路调用。程序实现如下: module clock(clk,key,dig,seg); //模块名clock input clk; //输入时钟 input[1:0] key; //输入按键 output[7:0] dig; //数码管选择输出引脚 output[7:0] seg; //数码管段输出引脚 reg[7:0] seg_r; //定义数码管输出寄存器 reg[7:0] dig_r; //定义数码管选择输出寄存器 reg[3:0] disp_dat; //定义显示数据寄存器 reg[24:0]count; //定义计数寄存器 reg[15:0]hour; //定义现在时刻寄存器 reg sec,keyen; //定义标志位 reg[1:0]dout1,dout2,dout3; //寄存器 wire[1:0]key_done; //按键消抖输出 assign dig = di

文档评论(0)

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

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

1亿VIP精品文档

相关文档