林琳317棋钟象棋计时器设计Word格式文档下载.docx

上传人:b****6 文档编号:16528195 上传时间:2022-11-24 格式:DOCX 页数:32 大小:925.54KB
下载 相关 举报
林琳317棋钟象棋计时器设计Word格式文档下载.docx_第1页
第1页 / 共32页
林琳317棋钟象棋计时器设计Word格式文档下载.docx_第2页
第2页 / 共32页
林琳317棋钟象棋计时器设计Word格式文档下载.docx_第3页
第3页 / 共32页
林琳317棋钟象棋计时器设计Word格式文档下载.docx_第4页
第4页 / 共32页
林琳317棋钟象棋计时器设计Word格式文档下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

林琳317棋钟象棋计时器设计Word格式文档下载.docx

《林琳317棋钟象棋计时器设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《林琳317棋钟象棋计时器设计Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。

林琳317棋钟象棋计时器设计Word格式文档下载.docx

第4章、总结与设计调试体会……………………………………………16

第5章、附录………………………………………………………………18

第6章、参考文献…………………………………………………………27

 

第1章整体设计论述

1.1整体设计论述

按照设计要求,分别设置甲乙各方规定时2小时计时器和30秒倒记时器,如下图。

在控制模块的作用下,相互协调工作:

在规定时内,30秒计时器不工作,输入继续\暂停端能暂停其中一方计时器的同时继续另一方的计时。

当甲或乙归定时两小时用完后,启动各自的30秒倒计时!

这时的输入继续\暂停开关能复位其中一方的30秒到29,并开始另一方的记时。

当比赛结束时,输入清零端复位信号,各计时器回到开始,重新开始下场比赛!

计时器的输出同时也控制着报警模块的工作,当甲乙任一方所有时间都用完时,报警模块输出报警信号,宣布比赛结束,谁的时间先用完谁就输了这场比赛。

选择模块的设置,是为了很好解决显示管数量不足的问题。

在输入暂停\继续开关的作用下,轮流显示甲乙双方所用时间情况给显示模块!

显示模块是一个动态扫描显示电路。

在一个人眼观察不出的扫描频率下,轮流在相对应的显示管上显示八个输入端口的输入的数据。

甲30秒

输出

报警

模块

控制模块

甲2小时

计数器

显示模块

选择模块

输入

乙2小时

乙30秒

总体设计框图

1.2软件介绍

1.2.1MAX+plusII操作说明

MAX+plusII的编程器的功能是将电路设计文件转换后的输出文件,例如*.pof文件与*.sof文件,烧写至FLEX系列器件或下载至MAX系列器件,亦可用来检验与测试器件或转换烧写文件格式。

此功能必须配合硬件实验设备才能进行。

在器件编程时,首先应该安装软件狗和下载线,这时需要进行硬件设置。

具体操作步骤如下:

(1)首先安装MAX+PLUSII

(2)选择(“开始”---“设置”---“控制面版”)

(3)双击“游戏选项”然后选择“添加”---“添加其它”---“从磁盘安装”命令,再单击“浏览”浏览驱动所在的目录:

MAX+PLUSII的安装目录\dirvers\win2000;

(4)选择“WIN2000.inf”,单击“确定”;

(5)在“数字签名未找到”对话框中,选择“是”;

(6)在“选择一个设备驱动程序”窗口中,选择“AlteraBytblaster”,并单击“下一步”;

(7)在接下去的“数字签名未找到”对话框中,仍选择“是”;

(8)安装完成,依提示,重新启动计算机。

在WINXP/WINNT操作环境下,若要使用下载(DOWNLOAD)功能,同样要安装驱动,安装方法可参考在WINDOWS2000上的安装方法进行,在此不再赘述。

1.2.2工具条和常用菜单选项说明

第2章单元模块设计

2.1计时器模块

分为2小时的规定时计时器,30秒的倒计时器。

输出特点:

<

1>

各数权位分别输出4位的二进制数,如1:

25:

46输出为“y31=0001”:

“y210=0010q21=0101”:

“y11=0100q11=0110”。

进位输出一个进位信号co为高电平1,直到有清零端复位有效时才回到0。

2.1.130秒倒计时器

功能:

本质是一个减法计数器。

完成甲和乙对用完归定时间的读秒计时。

工作原理:

仿真波形图

可以看出,该计数器从29开始,如果清零端无效,每来一个秒脉冲,在继续使能端有效下,减少1,到28。

依次到00,此时输出一个进位信号co为高电平1,直到有清零端复位有效时才回到0,此时计数器复位到29,重新开始计时。

2.1.2小时规定计时器

本质为两个60进制的加法计数器和一个16进制计数器联级构成。

完成2个小时的计时。

原理框图:

Count

Co1

Co

秒信号

60秒

计数器

在复位端cir无效,计数使能端en有效时,每来一个秒的时钟脉冲,秒60计数器加一。

计到60时,发出一个进位信号co去作为60分计数器的时钟脉冲,即每来一个co,分60计数器加1。

当计数到60时,也发出个进位信号co1,该信号去作为时计数器的时钟脉冲,每来一个co1,即计完了60分钟,时计数器加1。

当这个2小时计数器计到两个小时时,发出个进为信号(高电平有效)count,直到有复位信号有效(cir='

1'

)时回到低电平0。

计数时,如果计数使能端无效,则计数暂停,恢复有效时继续计数。

这样完成了两小时的计时!

2.2控制模块

控制各计数器协调工作,完成系统的各项功能。

是该系统的核心部分。

2.2.1控制甲方2小时规定时计数器的暂停\继续。

工作真值表1

其中S为输入暂停\继续信号,counta为该计数器的进位输出。

按照设计要求,规定时用完后,counta输出为‘1’,规定时计数器停止计时,即ena=‘0’,S为零时,设置规定时计数器不工作,即ena=‘0’,所以只有当S=‘1’和counta=‘0’时,规定时计数器工作,即ena=‘1’。

2.2.2控制乙方2小时规定时计数器的暂停\继续。

工作真值表2

其中S为输入暂停\继续信号,countb为该计数器的进位输出。

按照设计要求,规定时用完后,countb输出为‘1’,规定时计数器停止计时,即enb=‘0’,S为高电平‘1’时,设置规定时计数器不工作,即enb=‘0’,所以只有当S=‘0’和countb=‘0’时,规定时计数器工作,即enb=‘1’。

2.2.3控制甲方30秒计数器的暂停\继续。

工作真值表3

其中S为输入暂停\继续信号,counta为规定时2小时计数器的进位输出,count3a为甲方30秒进位输出。

按照设计要求,规定时用完后,counta输出为‘1’,规定时计数器停止计时,启动甲方30秒倒计时,即en3a=‘1’,否则en3a='

0'

S为零时,设置规定时计数器不工作,即en3a=‘0’。

当30秒倒计时计时守毕,即count3a输出为‘1’时,30秒计时器也不工作,此时en3a=‘0’。

所以只有当S=‘1’和counta=‘1’和count3a=‘0’时,该计时器工作,即en3a=‘1’。

2.2.4控制乙方30秒计数器的暂停\继续。

工作真值表4

其中S为输入暂停\继续信号,countb为规定时2小时计数器的进位输出,count3b为乙方30秒进位输出。

按照设计要求,规定时用完后,countb输出为‘1’,规定时计数器停止计时,启动乙方30秒倒计时,即en3b=‘1’,否则en3a='

S为高电平‘1’时,设置规定时计数器不工作,即en3a=‘0’。

当30秒倒计时计时守毕,即count3b输出为‘1’时,30秒计时器也不工作,此时en3b=‘0’。

所以只有当S=‘0’和counta=‘1’和count3a=‘0’时,该计时器工作,即en3b=‘1’。

2.2.5控制甲乙双方30秒倒计数器的清零复位。

工作真值表5

其中S为输入暂停\继续信号,cr为系统输入清零复位信号。

按照设计要求,当cr为‘1’时,系统发出清零信号,系统清零复位,所以此时cr3a、cr3b都为‘1’。

当S=‘0’时,规定甲方30秒复位,即cr3a输出为‘1’,否则规定乙方30秒计数器复位,即cr3b=‘1’。

2.3选择器模块

实质就是一个选择性开关!

在系统设置的暂停\继续端的作用下,设当s='

时,选择甲方所用时间情况给输出,当s='

时,并用A=1010为甲方的名称,选择乙方所用时间情况给输出,并b=1011代表乙方的名称。

甲方比赛用时情况

S='

给显示模块

比赛用时情况

乙方比赛用时情况

输入端口a、b、c、d、e代表着甲方用时情况,分别为30秒个位、30秒十位、2小时分个位、2小时分十位、2小时时个位。

输入端口f、g、h、i、k代表着乙方用时情况,分别为30秒个位、30秒十位、2小时分个位、2小时分十位、2小时时个位。

输出端口M30s1,M30,Fg,F10n,S,DK分别为30秒个位、30秒十位、小时分个位、分十位、时位、端口。

2.4显示模块:

六个输入端口分别接选择模块的输入,在一个较高的时钟脉冲钟用下,从第一个输入端口的情况依次扫描到第六个,并在显示管上显示。

所以也称位动态扫描显示。

2.5报警模块:

输出听觉和视觉上的比赛结束信号,并且判断何方失败。

报警工作真值表

count3a、count3b分别代表甲乙方30秒倒计时的进位输出,a、b分别代表双方视觉上的信号输出(驱动发光二极管发光),warn位听觉上的报警信号,驱动喇叭发出声音!

只有当甲或者乙的时间全部用完,则比赛结束。

即count3a='

orcount3b='

成立时,warn信号位扫描频率,如果是甲先用完,a位零,甲灯亮宣告甲输掉这场比赛,反之,乙灯亮,乙输掉这场比赛!

第3章实验仿真结果

2小时:

控制器:

选择器:

报警器:

总图仿真:

(1)

(2)

(3)

(4)

第4章总结与设计调试体会

为期两周时间的EDA课程设计使我收获不少,无论在对软件的熟悉程度,还是在对数字电路的基本原理,都迫使我不断的前进!

两个星期的艰苦奋斗,我终于完成了设计要求!

这其中的感受,无法用语言来描叙,只有经历过的人,才真正体会设计的乐趣:

不是在于设计结果,而是在于设计的过程!

过程是最美的,最有趣的。

而设计的过程,实际上也是一个发现问题,然后去想办法解决的过程。

两个星期的设计,我和组友发现的问题层出不穷,通过我们的不懈努力,但最终,我们还是解决了!

这其中,有些问题是解决不了,或者超出我们的能力之外的,我们通过议论,转化问题,使复杂的问题简单化,达到了非同寻常的效果!

比如说显示管数量不足的问题,我们的设计要求要十个显示管,而实验箱上只有八个。

这就使得我们寻找一钟方法去解决这一难题!

最终,灵机一动,想到了选择显示的思想,从而诞生了选择显示模块!

在设计过程中,发现一个重要定律:

EDA课程设计,只要你想得到,就能办得到!

的确,程序是自己编的,就想说话一样,掌握了基本的语法、语句,想表达什么意思就表达什么意思!

加上有编译器来检查错误,想错都难!

打个比方,在制作协调计时器工作的时的控制器时,一般人会用与门和非门等等连接,于是原理图就显得乱和杂!

而我采用的时集成的思想:

把所有与端口使能的逻辑关系都集中在一个控制器模块里,用语言来描述清楚。

一个控制器,控制着整个计数器的工作,使得电路图简单,清楚!

设计的过程中还发现:

杂实的数电基本功,是设计游刃有余的动力!

举个例子来说吧,在设计控制器时,各端口受哪些端口控制,各输出什么时候输出什么样的值,这些看似很复杂的问题,在我列出真值表后,一切都是那么的明朗!

因此,我在大二的数电功低使我受益匪浅!

设计时,另一个教训值得我深深记在脑子里:

理想与现实是有很大的差距的,时刻记得实事求是!

比方说,如果不知道显示管只有八个的情况下,采用十个数码管显示的方法,其后果就是导致仿真不成功!

在仿真过程中,就是由于实践时带来的问题层出不穷,但最终还是被一一解决了。

首先在如它能成功地解决显示管数量的不足问题,在选择显示模块作用下,甲乙双方的比赛时间能有条不紊地显示!

其次在于设计的原理图(顶层文件)结构非常简单,在连接各模块工作时,没有任何的门和看上去很复杂的连线,整个图显得简单,清晰,给人以简单美的享受!

这其中的来由要归功于设计者特意地将各模块全部使用VHDL语言编写!

再次,本系统的输出既有发光二极管带来的视觉上的报警信号,也有扬声器发出的听觉上的报警信号!

总之,两个星期的课程设计,有过酸、甜、苦、辣。

这其中的滋味,相信每一个过来人都深有体会!

感谢学校、谢谢老师给我这次机会!

第5章附录

相关程序参考

30秒倒计时:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYcnt30IS

PORT

(clk:

INSTD_LOGIC;

cir,en:

co:

OUTSTD_LOGIC;

q1:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

y10:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDcnt30;

ARCHITECTUREaOFcnt30IS

SIGNALbcd1n:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALvcd10n:

BEGIN

PROCESS(clk,cir,en)

BEGIN

if(cir='

)thenco<

='

;

elsif(clk'

EVENTANDclk='

)then

if(bcd1n=0andvcd10n=0)then

co<

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(clk,cir)

BEGIN

IF(cir='

)THEN

bcd1n<

="

1001"

ELSIF(clk'

)THEN

IF(en='

)THEN

IF(bcd1n=0)THEN

bcd1n<

ELSIF(bcd1n=0andvcd10n=0)THEN

bcd1n<

ELSE

=bcd1n-1;

ENDIF;

ENDIF;

ENDPROCESS;

q1<

=bcd1n;

y10<

=vcd10n;

PROCESS(clk,cir)

IF(cir='

vcd10n<

0010"

IF(en='

)THEN

IF(bcd1n=0ANDvcd10n=0)THEN

vcd10n<

ELSIF(bcd1n=0)THEN

=vcd10n-1;

ELSE

=vcd10n;

enda;

2小时计时器

ENTITYcntgdsIS

cir:

en:

count:

OUTSTD_LOGIC;

q21,q31:

y210:

ENDcntgds;

ARCHITECTUREaOFcntgdsIS

SIGNALbcd11n:

SIGNALvcd110n:

SIGNALbcd21n:

SIGNALvcd210n:

SIGNALbcd31n:

SIGNALvcd310n:

SIGNALco,co1:

STD_LOGIC;

PROCESS(co,cir)

IF(cir='

bcd21n<

0000"

ELSIF(co'

EVENTANDco='

IF(bcd21n=9)THEN

bcd21n<

="

)THEN

bcd21n<

=bcd21n+1;

=bcd21n;

ENDIF;

PROCESS(co,cir)

IFcir='

THEN

vcd210n<

IF(vcd210n=5)THEN

vcd210n<

vcd210n<

=vcd210n+1;

=vcd210n;

PROCESS(co)

if(co'

if(bcd21n=9andvcd210n=5)then

co1<

elseco1<

q21<

y210<

=vcd210n;

q31<

=bcd31n;

PROCESS(cl

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

当前位置:首页 > 初中教育 > 初中作文

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

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