电子秒表系统设计Word格式文档下载.docx

上传人:b****6 文档编号:18564516 上传时间:2022-12-28 格式:DOCX 页数:14 大小:195.76KB
下载 相关 举报
电子秒表系统设计Word格式文档下载.docx_第1页
第1页 / 共14页
电子秒表系统设计Word格式文档下载.docx_第2页
第2页 / 共14页
电子秒表系统设计Word格式文档下载.docx_第3页
第3页 / 共14页
电子秒表系统设计Word格式文档下载.docx_第4页
第4页 / 共14页
电子秒表系统设计Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

电子秒表系统设计Word格式文档下载.docx

《电子秒表系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电子秒表系统设计Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

电子秒表系统设计Word格式文档下载.docx

1.设计数码管显示的秒表。

2.能够准确的计时并显示。

3.开机显示00.00.00。

4.用户可以随时清零、暂停、计时。

5.最大记时59分钟,最小精确到0.01秒。

二、方案论证

方案一采用8051IP核设计。

用FPGA构成一个8051单片应用系统具有如下优缺点:

1、拥有标准8051完全兼容的指令系统的CPU;

2、256字节部RAM;

3、4K字节程序ROM;

4、每一此编译下载后都能根据需要更新ROM中的程序,所以该单片机的实现和使用如同89C51/52一样方便。

缺点:

1.设计烦琐可以直接用8051单片机代替。

2.程序复杂。

方案二采用芯片EP1C12Q240C8、共阴七段数码管、按键开关、发光二极管设计。

EP1C12Q240C8是Cyclone器件,Cyclone可以最多支持129个通道的LVDS和RSDS。

Cyclone器件的LVDS缓冲器可以支持最高达640Mbps的数据传输速度。

与单端的I/O口标准相比,这些显置于Cyclone器件部的LVDS缓冲器保持了信号的完整性,并且有更低的电磁干扰、更好的电磁兼容性(EMI)及更低的电源功耗。

采用此芯片设计简单,不需要用汇编语言编写程序,直接用VHDL编写即可以.

缺点:

与8051IP核相比精确度不是很高。

但是对于秒表系统设计可以满足要求。

三、设计总体框图

三、硬件电路设计与程序设计

本设计采用模块化设计,共分为顶层文件(msecond)、控制秒模块(second)、控制分钟模块(minutes)、LED模块(alert)、数码管扫描模块(zhishi)、显示驱动模块(deled)六个模块。

其中LED模块可以去掉,不影响秒表正常运行以下对各个模块一一描述。

1.顶层文件

对这个功能模块用一个进程语句描述。

clk、reset和调秒的setsec为输入信号程序代码如下:

LIBRARYieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYmsecondIS

PORT(

clk,reset,setsec:

INSTD_LOGIC;

ensec:

OUTSTD_LOGIC;

daout:

OUTstd_logic_vector(6downto0));

ENDentitymsecond;

ARCHITECTUREfunOFmsecondIS

SIGNALcount:

STD_LOGIC_VECTOR(6downto0);

BEGIN

daout<

=count;

process(clk,reset,setsec)

begin

--enmsec<

=k;

if(reset='

0'

)then

count<

="

0000000"

;

elsif(setsec='

ensec<

=clk;

elsif(clk'

eventandclk='

1'

if(count(3downto0)="

1001"

if(count<

16#60#)then

if(count="

1011001"

ensec<

='

count<

="

ELSE

count<

=count+7;

endif;

else

count<

endif;

elsif(count<

16#60#)then

=count+1;

after100ns;

endprocess;

ENDfun;

2.控制秒模块

LIBRARYieee;

ENTITYsecondIS

clk,clk1,reset,setsec:

enmin:

outstd_logic_vector(6downto0));

ENDentitysecond;

ARCHITECTUREfunOFsecondIS

process(clk,reset,setsec)

enmin<

=clk1;

elsif(clk'

eventandclk='

enmin<

else

elsif(count<

16#60#)then

=count+1;

else

count<

3.控制分钟模块

4.LED模块

该模块是有三个LED灯组成,三个LED轮流亮,起到验证秒表的功能。

程序代码如下:

ENTITYalertIS

clk:

dain:

INSTD_LOGIC_VECTOR(6DOWNTO0);

lamp:

OUTSTD_LOGIC_VECTOR(2DOWNTO0));

ENDalert;

ARCHITECTUREfunOFalertIS

signalcount:

std_logic_vector(1downto0);

lamper:

process(clk)

begin

if(rising_edge(clk))then

if(count<

10"

if(count="

00"

lamp<

001"

;

elsif(count="

01"

010"

elsif(count="

)then

100"

endif;

count<

else

count<

endif;

endprocesslamper;

ENDfun;

5.数码管扫描模块

该模块的功能是选择个计数端口来的数据,当相应的数据到来时数据选择器选择器数据后输出给数码管,并由数码管显示。

useieee.std_logic_arith.all;

ENTITYzhishiIS

clk1,reset:

msec,sec:

INSTD_LOGIC_VECTOR(6downto0);

minute:

instd_logic_vector(5downto0);

daout:

OUTSTD_LOGIC_vector(3downto0);

sel:

outstd_logic_vector(2downto0));

ENDzhishi;

ARCHITECTUREfunOFzhishiIS

STD_LOGIC_vector(2downto0);

sel<

process(clk1,reset)

if(reset='

000"

elsif(clk1'

eventandclk1='

if(count>

101"

casecountis

when"

=>

=msec(3downto0);

daout(3)<

='

daout(2downto0)<

=sec(6downto4);

=sec(3downto0);

011"

=minute(3downto0);

whenothers=>

daout(3downto2)<

daout(1downto0)<

=minute(5downto4);

endcase;

endfun;

6.数码管显示模块

数码管驱动电路,驱动数码管发光。

ENTITYdeledIS

PORT(num:

INstd_logic_vector(3downto0);

led:

OUTstd_logic_vector(6downto0));

ENDdeled;

ARCHITECTUREfunOFdeledIS

led<

0111111"

whennum="

0000"

"

0000110"

0001"

1011011"

0010"

"

1001111"

0011"

1100110"

0100"

1101101"

0101"

1111101"

0110"

0000111"

0111"

1111111"

1000"

1101111"

1110111"

1010"

1111100"

1011"

0111001"

1100"

1100011"

1101"

1111001"

1110"

1110001"

1111"

ENDfun;

四、编译仿真

下面使用QuartusII6.0对本设计进行编译和仿真。

首先创建工程,使用文本编辑器输入本设计的所有模块的源程序,把miaobiao.vhd设为顶层文件。

把本设计中的所有设计文件添加进工程后,先对每个模块进行编译纠错,然后把各个模块连接在一起保存然后在全程编译,通过之后就可以进行仿真。

先进行软件仿真每一部分的仿真从略,下面只说明系统的整体仿真波形。

系统工作时的仿真波形如图所示。

确定准确无误后然后开始锁定管脚,执行菜单命令assignments→pins出现如下:

锁定后的管脚结果如下:

NodeName

Direction

Location

a13

Output

PIN_2

b12

PIN_3

c9

Pin_4

clk

Input

PIN_28

clkdsp

Input

PIN_6

d10

PIN_7

e11

PIN_8

f8

PIN_11

g

PIN_12

lamp[2]

PIN_37

lamp[1]

PIN_39

lamp[0]

PIN_38

reset

PIN_16

sel[2]

PIN_19

sel[1]

PIN_18

sel[0]

PIN_17

setmsec

PIN_20

setsec

PIN_21

管脚锁定好以后再重新编译一次编译通过后执行Tools→Progammer命令出现如下:

单击"

start"

按钮,开始硬件仿真.如果不能实现还需要重新调试程序直到实现秒表功能为止.

五、心得体会

经过了一周的课程设计,现在终于有了一点的心得,原本以为我对VHDL还是比较的了解的,所以一向以为VHDL的课程设计应该不会觉得很难,可是事实并不是我所想的那样,如果老师不给我们框架的话,我想就算给我两个月的时间我也不可能做的出来.通过这次课程设计,对VHDL的语言有了更深刻的认识,对课题设计的基本流程有了一定的认识,同时也是一次把原来所学的书本知识和实践相联系的过程。

并通过实践,建立起了学习EDA的浓厚兴趣。

在设计中也深刻体会到了团队精神的重要性!

同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。

某个人的离群都可能导致导致整项工作的失败。

设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。

团结协作是我们实习成功的一项非常重要的保证。

而这次实习也正好锻炼我们这一点,这也是非常宝贵的。

对EDA的设计平台QuartusⅡ有了熟练的使用。

掌握了本次设计所用的EDA试验箱用法,为以后更好的学习EDA打下了基础。

通过这次课程设计,我意识到了我对这门课掌握还有一定的不足,还有许多的知识我不了解;

有的是一知半解;

有的即使原理懂了,但在应用方面却是丝毫不知。

所以在今后的学习中,我会更加努力,不仅要学好理论知识,还要把它应用到实践中去,使两者很好的结合起来,互补互助。

参考文献:

[1]松,黄继业·

EDA技术实用教程·

科学·

2006年9月第三版

[2] 

马淑华,高原·

《电子设计自动化》·

邮电大学·

2006

[3]卢毅,赖杰·

《VHDL与数字电路设计》·

2001

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1