棋类竞赛计时钟 报告Word格式文档下载.docx

上传人:b****2 文档编号:5731733 上传时间:2023-05-05 格式:DOCX 页数:23 大小:156.15KB
下载 相关 举报
棋类竞赛计时钟 报告Word格式文档下载.docx_第1页
第1页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第2页
第2页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第3页
第3页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第4页
第4页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第5页
第5页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第6页
第6页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第7页
第7页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第8页
第8页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第9页
第9页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第10页
第10页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第11页
第11页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第12页
第12页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第13页
第13页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第14页
第14页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第15页
第15页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第16页
第16页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第17页
第17页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第18页
第18页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第19页
第19页 / 共23页
棋类竞赛计时钟 报告Word格式文档下载.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

棋类竞赛计时钟 报告Word格式文档下载.docx

《棋类竞赛计时钟 报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《棋类竞赛计时钟 报告Word格式文档下载.docx(23页珍藏版)》请在冰点文库上搜索。

棋类竞赛计时钟 报告Word格式文档下载.docx

3.选择模块

使用轮流显示甲乙双方的规定计时时间,其优点是能够在显示管较少的情况中正常计时。

4.显示模块

这是一个动态扫描显示电路,在相对应的显示管上显示八个输入端口的输入的数据。

5.报警模块

在30秒计时器,计时完后,分别采用两种方式(提示灯和警鸣)来进行报警。

3.系统总体框图

系统的总体框图如下所示:

输入

输出输出

二单元电路设计

1.控制模块

控制模块,是整个电路的核心,控制着整个计时的变化过程,其仿真结果如下所示:

图中count2ha是甲方2小时规定时间的进位,count30sa是甲方30秒倒计时的进位,en2ha控制甲方的2小时的规定时间的继续\暂停,en30sa控制甲方30秒计数器的暂停\继续,clr30sa是控制甲方30秒计时起的清零,count2hb是乙方2小时规定时间的进位,count30sb是乙方30秒倒计时的进位,en2hb控制乙方的2小时的规定时间的继续\暂停,en30sb控制乙方30秒计数器的暂停\继续,clr30sb控制乙方30秒计时器的清零。

2.计时器模块

分为三十秒倒计时模块和2小时规定计时模块

三十秒计时器是一个减法计数器,在规定2小时计时完成后进行的最后30秒倒计时,其仿真结果如下所示:

由此可知此模块30秒倒计时miaozhong1为30秒倒计时个位数,miaozhong2为倒计时的十位数,倒计时完成后产生一个进位count30,接入控制器中。

2小时规定计时器则是一个加法计时器,完成规定时间的计时,2其仿真结果如下所示:

由图可看出,此模块所显示的是分和时的计时,fenzhong1为60分钟的个位数,fenzhong2为60分钟的十位数。

时钟为小时数。

2小时后count也产生一个进位接入控制器中。

3.选择器模块

选择器模块是其本质是一个选择型开关,是对甲乙双方进行选择的模块当。

当start为0时,选用甲方,当start为1时,则选择乙方。

其仿真结果如下所示:

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

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

输出端口m30s1,m30s2,Fg,fenzhong,s,choose分别为30秒个位,30秒十位,60分钟个位,60分钟十位,小时位数,选择端口(用显示A,b表示甲乙方)。

4.显示模块

将所需显示的端口接入,采用位动态扫描显示,能更好的体现出甲乙双方比赛记录时间的整个过程。

甲方为‘1010’显示出A,乙方为‘1011’显示出b。

输入端口d0,d1,d3,d4,d5,d7分别接入30秒个位,30秒十位,60分钟个位,60分钟十位,小时位数,选择端口(用显示A,b表示甲乙方)。

5.报警模块

报警模块是甲方或乙方将最后30秒用尽后,提出警报,则代表甲方或乙方比赛失败,其仿真图如下所示:

由图可知,co30sa接入甲方30秒进位,co30sb接入乙方30秒进位,任意一方用尽30秒后会产生警报声,区分甲乙双方的是图中a,b(代表甲乙方)所接入的显示灯不同。

三编程下载

各模块程序清单如下:

1.控制器程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYkongzhiqiIS

PORT

(count2ha,count30sa,count2hb,count30sb:

INSTD_LOGIC;

clrkongzhiqi,s:

en2ha,en30sa,en2hb,en30sb,clr30sa,clr30sb:

OUTSTD_LOGIC);

ENDkongzhiqi;

ARCHITECTUREaOFkongzhiqiIS

BEGIN

PROCESS(s,count2ha)

BEGIN

if(s='

0'

)thenen2ha<

='

;

elsif(count2ha='

)then

en2ha<

1'

elseen2ha<

ENDIF;

ENDPROCESS;

PROCESS(s,count2ha,count30sa)

if(count30sa='

)thenen30sa<

ands='

en30sa<

elseen30sa<

PROCESS(s,count2hb)

)thenen2hb<

elsif(count2hb='

en2hb<

elseen2hb<

PROCESS(s,count2hb,count30sb)

if(count30sb='

)thenen30sb<

en30sb<

elseen30sb<

ENDIF;

PROCESS(s,clrkongzhiqi)

if(clrkongzhiqi='

)thenclr30sa<

elsif(s='

clr30sa<

elseclr30sa<

)thenclr30sb<

elsif(s='

clr30sb<

elseclr30sb<

enda;

3.计时器程序

30秒计时器程序

ENTITYsanshimiaoIS

(clk:

clr,en:

count30:

OUTSTD_LOGIC;

miaozhong1:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

miaozhong2:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDsanshimiao;

ARCHITECTUREaOFsanshimiaoIS

SIGNALbcd1n:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALvcd10n:

PROCESS(clk,clr,en)

if(clr='

)thencount30<

elsif(clk'

EVENTANDclk='

)then

if(bcd1n=0andvcd10n=0)then

count30<

ENDIF;

ENDPROCESS;

PROCESS(clk,clr)

BEGIN

IF(clr='

)THEN

bcd1n<

="

1001"

ELSIF(clk'

)THEN

IF(en='

)THEN

IF(bcd1n=0)THEN

bcd1n<

ELSIF(bcd1n=0andvcd10n=0)THEN

bcd1n<

ELSE

=bcd1n-1;

ENDIF;

miaozhong1<

=bcd1n;

miaozhong2<

=vcd10n;

PROCESS(clk,clr)

IF(clr='

vcd10n<

0010"

IF(en='

)THEN

IF(bcd1n=0ANDvcd10n=0)THEN

vcd10n<

ELSIF(bcd1n=0)THEN

=vcd10n-1;

ELSE

=vcd10n;

2小时计时器程序

ENTITYerxiaoshiIS

clr:

en:

count:

OUTSTD_LOGIC;

fenzhong1,shizhong1:

fenzhong2:

ENDerxiaoshi;

ARCHITECTUREaOFerxiaoshiIS

SIGNALbcd11n:

SIGNALvcd110n:

SIGNALbcd21n:

SIGNALvcd210n:

SIGNALbcd31n:

SIGNALvcd310n:

SIGNALco,co1:

STD_LOGIC;

PROCESS(co,clr)

IF(clr='

bcd21n<

0000"

ELSIF(co'

EVENTANDco='

IF(bcd21n=9)THEN

bcd21n<

="

)THEN

bcd21n<

=bcd21n+1;

=bcd21n;

ENDIF;

PROCESS(co,clr)

IFclr='

THEN

vcd210n<

IF(vcd210n=5)THEN

vcd210n<

vcd210n<

=vcd210n+1;

=vcd210n;

PROCESS(co)

if(co'

if(bcd21n=9andvcd210n=5)then

co1<

elseco1<

fenzhong1<

fenzhong2<

=vcd210n;

shizhong1<

=bcd31n;

bcd11n<

IF(bcd11n=9)THEN

bcd11n<

bcd11n<

=bcd11n+1;

=bcd11n;

vcd110n<

IF(vcd110n=5)THEN

vcd110n<

vcd110n<

=vcd110n+1;

=vcd110n;

PROCESS(clk)

if(clk'

if(bcd11n=9andvcd110n=5)then

co<

elseco<

PROCESS(co1,clr)

bcd31n<

ELSIF(co1'

EVENTANDco1='

IF(bcd31n=1)THEN

bcd31n<

bcd31n<

=bcd31n+1;

if(clk'

if(bcd21n=9andvcd210n=5andbcd31n=1andbcd11n=9andvcd110n=5)then

count<

elsif(clr='

)thencount<

endif;

3.选择器程序

ENTITYchooseqiIS

(start:

a,b,c,d,e:

inSTD_LOGIC_VECTOR(3DOWNTO0);

f,g,h,i,j:

inSTD_LOGIC_VECTOR(3DOWNTO0);

30s1,30s2,Fg,fengzhong,S,choose:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDchooseqi;

ARCHITECTUREaOFchooseqiIS

PROCESS(start,a,b,c,d,e,f,g,h,i,j)

if(start='

30s1<

=a;

30s2<

=b;

Fg<

=c;

fengzhong<

=d;

S<

=e;

choose<

1010"

else30s1<

=f;

=g;

=h;

=i;

=j;

1011"

4.显示器程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYxianshiqiIS

PORT(CLK:

d0,d1,d3,d4,d5,d7:

inSTD_LOGIC_VECTOR(3DOWNTO0);

SG:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

--段控制信号输出

BT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

--位控制信号输出

END;

ARCHITECTUREoneOFxianshiqiIS

SIGNALCNT8:

STD_LOGIC_VECTOR(2DOWNTO0);

SIGNALA:

STD_LOGIC_VECTOR(3DOWNTO0);

P1:

PROCESS(CNT8)

CASECNT8IS

WHEN"

000"

=>

BT<

00000001"

;

A<

=d0;

001"

00000010"

=d1;

010"

00000100"

1101"

011"

00001000"

=d3;

100"

00010000"

=d4;

101"

00100000"

1100"

when"

110"

01000000"

=d5;

111"

10000000"

=d7;

WHENOTHERS=>

NULL;

ENDCASE;

ENDPROCESSP1;

P2:

PROCESS(CLK)

IFCLK'

EVENTANDCLK='

THEN

CNT8<

=CNT8+1;

ENDPROCESSP2;

P3:

PROCESS(A)

CASEAIS

=>

SG<

00111111"

0001"

00000110"

01011011"

0011"

01001111"

0100"

01100110"

0101"

01101101"

0110"

01111101"

0111"

00000111"

1000"

01111111"

01101111"

01110111"

01111100"

WHEN"

SG<

00000000"

ENDPROCESSP3;

5.报警器程序

useieee.std_lo

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

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2