基于verilog语言编程的数字秒表设计

上传人:大米 文档编号:543016518 上传时间:2022-10-18 格式:DOC 页数:8 大小:178KB
返回 下载 相关 举报
基于verilog语言编程的数字秒表设计_第1页
第1页 / 共8页
基于verilog语言编程的数字秒表设计_第2页
第2页 / 共8页
基于verilog语言编程的数字秒表设计_第3页
第3页 / 共8页
基于verilog语言编程的数字秒表设计_第4页
第4页 / 共8页
基于verilog语言编程的数字秒表设计_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于verilog语言编程的数字秒表设计》由会员分享,可在线阅读,更多相关《基于verilog语言编程的数字秒表设计(8页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上数字秒表设计系别:电子通信工程系专业:电子信息工程班级:学号:姓名: 数字秒表(基于verilong语言编程)课程设计一、设计要求用verilong语言编写程序,结合实际电路,设计一个4位LED数码显示“秒表”,显示时间为99.900.0秒,每秒自动减一,精度为0.1。另设计一个“开始”按键和一个“复位”按键。再增加一个“暂停”按键。 按键说明:按“开始”按键,开始计数,数码管显示从99.9开始每秒自动减一;按“复位”按键,系统复位,数码管显示99.9;按“暂停”按键,系统暂停计数,数码管显示当时的计数。二、设计目的1、 通过本次课程设计加深对verilong语言课程

2、的全面认识、复习和掌握,对EPM7064芯片的应用达到进一步的了解。2、 掌握定时器、外部中断的设置和编程原理。3、 通过此次课程设计能够将软硬件结合起来,对程序进行编辑,调试。使其能够通过电脑下载到芯片,正常工作。4、实际操作Quartus II软件,复习巩固以前所学知识。 三、总体设计 本秒表系统具有复位、暂停、秒表计时等功能。 clk为系统工作时钟,采用AlteraDE2上的50M时钟信号,经过分频器产生秒表计时周期为0.01s的时钟,再经过计数器,分别对秒表的百分位、十分位、秒、秒十位、分、分十位进行计数。onoff为启动/暂停控制信号,当它为0时,启动计时,当它为1时,计时暂停。cl

3、r为复位信号,当该信号有效时,计数器和译码清零,此时数码管显示输出为00:00:00。在总体电路图中,根据设计要求,需要两个输入控制信号onoff和clr。由于开发板上除了拨动开关就是瞬时的按键开关,且按键开关平时都呈高电平,按一下为低电平。故在实际测试时采用了拨动开关SW0来控制秒表的启动/暂停,通过KEY0来控制秒表的清零。四、设计思路描述该实验要求进行计时并在数码管上显示时间,通过相关软件Quartus II编译,利用JTAG下载电路到核心芯片,驱动硬件工作。Altera_EPM7064(84PIN)有四个引脚GCLK1(83脚),GCLRn(1脚),OE1(84脚),OE2(2脚)。G

4、CLK1是全局时钟,GCLRn(1脚是全局清零,OE1(84脚),OE2(2脚)是全局使能实现“开始”按键的功能;实现“清零(复位)”按键的功能;做为时钟信号CLK输入的入口地址。可将开关设计与此,其优势在在于到达延迟时间相等。其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零(复位)”按键当开关由1拨向0(由上向下拨)时数码管清零(复位),此时若再拨“开始”按键则又可重新开始计时。1) 电源部分需要并联四个电容,以达到滤波作用,获得实验所需的电压;2) 利用三极管分别连接LED数码管和EPM7064,起到放大(电流)作用;3) 本实验时钟信号的产生有晶振直接提供,同时由编写的子

5、程序决定输出频率;4) 芯片所需程序由计算机编译,采用Quartus II软件,编译调试无误后,进行下载;5) IDI、TMS、TCK、TDO是JTAG的标准线。用来实现连接芯片,实现下载功能。五、原理图 跟据数字秒表的原理图如图一所示,为设计项目选定CyclongII系列中的EP2C35F672C6器件,锁定顶层设计中各端口所对应的引脚号,并编译通过。然后对器件编程,使用USB-Blaste下载电缆把项目以在线配置的方式下载到AlteraDE2实验板的EP2C35F672C6器件中。该数字式秒表具有清零功能,通过KEY0来控制,能够在计时过程中随时清零。用SW0键来控制锁存/计时,能在计时过

6、程中通过按SW0键,SW0拨动开关打上时计时暂停,打下时仍继续。实验证明该秒表工作正常,基本上已达到了预期的设计要求。 图一、数字秒表原理图六、PCB图图二、数字秒表PCB图七、系统软件设计 在设计电路时,要遵循从上到下的设计原则。首先从系统设计入手,在顶层进行功能划分和结构设计,顶层模块的每个层次模块均可完成一个较为独立的功能,次模块在调试成功后可生成一个默认符号,以供上一层模块调用。本系统由4个模块组成,分别是分频电路模块、模10计数模块和动态译码显示模块。本设计最小计时单位为0.1s,设计时需获得一个比较精确的10Hz(周期为0.1s)的计时脉冲。由于最终的设计结果要下载到可编程逻辑器件

7、中测试,因此可利用AlteraDE2开发板的12M晶振时钟。将12M时钟信号CLK送到分频器CLKGEN进行60万分频后,得到10Hz的频率由NEWCLK输出。采用Verilog语言编程,编译无误通过后创建默认文件符号CLKGEN以供上层电路调用。程序实现如下:module clock(clk,key,dig,seg);/模块名clockinput clk;/输入时钟input1:0 key;/输入按键output7:0dig;/数码管选择输出引脚output7:0 seg;/数码管段输出引脚reg7:0 seg_r;/定义数码管输出寄存器reg7:0 dig_r;/定义数码管选择输出寄存器r

8、eg3:0 disp_dat;/定义显示数据寄存器reg24:0count;/定义计数寄存器reg15:0hour;/定义现在时刻寄存器reg sec,keyen;/定义标志位reg1:0dout1,dout2,dout3;/寄存器wire1:0key_done;/按键消抖输出assign dig = dig_r;/输出数码管选择assign seg = seg_r;/输出数码管译码结果/秒信号产生部分always (posedge clk) /定义clock上升沿触发begincount = count + 1b1;if(count = 25d)/0.5S到了吗?begincount = 2

9、5d0;/计数器清零sec = sec;/置位秒标志endend/按键消抖处理部分assign key_done = (dout1 | dout2 | dout3);/按键消抖输出always (posedge count17)begindout1 = key;dout2 = dout1;dout3 = dout2;endalways (negedge key_done0)beginkeyen = keyen;/将琴键开关转换为乒乓开关end/数码管动态扫描显示部分always (posedge clk) /count17:15大约1ms改变一次begincase(count17:15)/选择

10、扫描显示数据3d0:disp_dat = hour3:0;/秒个位3d1:disp_dat = hour7:4;/秒十位3d2:disp_dat = hour11:8;/分个位3d3:disp_dat = hour15:12;/分十位endcasecase(count17:15)/选择数码管显示位3d0:dig_r = 8b;/选择第一个数码管显示3d1:dig_r = 8b;/选择第二个数码管显示3d2:dig_r = 8b;/选择第三个数码管显示3d3:dig_r = 8b;/选择第四个数码管显示endcaseendalways (posedge clk)begincase(disp_da

11、t)4h0:seg_r = 8hc0;/显示04h1:seg_r = 8hf9;/显示14h2:seg_r = 8ha4;/显示24h3:seg_r = 8hb0;/显示34h4:seg_r = 8h99;/显示44h5:seg_r = 8h92;/显示54h6:seg_r = 8h82;/显示64h7:seg_r = 8hf8;/显示74h8:seg_r = 8h80;/显示84h9:seg_r = 8h90;/显示9/4ha:seg_r = 8hbf;/显示-default:seg_r = 8hff;/不显示endcase/if(count17:15= 3d2)&sec)/seg_r =

12、8hff;end/计时处理部分always (negedge sec or negedge key_done1)/计时处理beginif(!key_done1)/是清零键吗?beginhour = 16h0;/是,则清零endelse if(!keyen)beginhour3:0 = hour3:0 + 1b1;/秒加1if(hour3:0 = 4ha)beginhour3:0 = 4h0;hour7:4 = hour7:4 + 1b1;/秒的十位加一if(hour7:4 = 4h6)beginhour7:4 = 4h0;hour11:8 = hour11:8 + 1b1;/分个位加一if(h

13、our11:8 = 4ha)beginhour11:8 = 4h0;hour15:12 = hour15:12 + 1b1;/分十位加一if(hour15:12 = 4h6)hour15:12 = 4h0;endendendendendendmodule在QuartusII环境下,打开一个新的原理图编辑窗口,然后调入秒表电路设计所需要的50万分频器CLKGEN、十进制计数器/分频器CNT10(4片),译码器DISP,以及电路需要的输入/输出元件。完成电路元件之间和输出/输入之间的连接,并通过QuartusII的编译八、焊接调试 电路板组装心得:收集资料,设计出电路原理图,选择元件型号,清点元器件的个数。测试元件,包括测电阻的阻值,根据电路图和电路板本身的实际连通情况开始整体布局连接电路。电路板焊接心得:在设计过程中,应该了解其难易,考虑一下焊接的难度。如果比较难就要追求速度(但是也要尽量焊好),如果简单一点,那么在焊接的同时要

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号