数字钟可编程Word下载.docx

上传人:b****6 文档编号:8578145 上传时间:2023-05-11 格式:DOCX 页数:13 大小:22.34KB
下载 相关 举报
数字钟可编程Word下载.docx_第1页
第1页 / 共13页
数字钟可编程Word下载.docx_第2页
第2页 / 共13页
数字钟可编程Word下载.docx_第3页
第3页 / 共13页
数字钟可编程Word下载.docx_第4页
第4页 / 共13页
数字钟可编程Word下载.docx_第5页
第5页 / 共13页
数字钟可编程Word下载.docx_第6页
第6页 / 共13页
数字钟可编程Word下载.docx_第7页
第7页 / 共13页
数字钟可编程Word下载.docx_第8页
第8页 / 共13页
数字钟可编程Word下载.docx_第9页
第9页 / 共13页
数字钟可编程Word下载.docx_第10页
第10页 / 共13页
数字钟可编程Word下载.docx_第11页
第11页 / 共13页
数字钟可编程Word下载.docx_第12页
第12页 / 共13页
数字钟可编程Word下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字钟可编程Word下载.docx

《数字钟可编程Word下载.docx》由会员分享,可在线阅读,更多相关《数字钟可编程Word下载.docx(13页珍藏版)》请在冰点文库上搜索。

数字钟可编程Word下载.docx

五、实验报告要求

课题完成后应认真撰写实验报告,其主要内容如下:

1.课题的任务及要求。

2.叙述所设计的数字钟的工作原理

3.课题分析与编程思路。

对课题认真分析,正确理解,明确设计思路。

4.仿真结果分析。

建立测试向量文件,然后编译该文件,进行功能仿真和时序仿真,给出仿真结果并进行分析。

5.实验设计中各功能模块的源程序。

6.总结。

总结课题存在的问题,提出改进的设想;

完成本课题后的收获、体会和建议。

 

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYtimerIS

PORT(clk,clk1:

INSTD_LOGIC;

clr,prnh,prnm:

q,y:

OUTSTD_LOGIC_VECTOR(7downto0);

spk:

OUTSTD_LOGIC);

ENDtimer;

ARCHITECTUREbehavOFtimerIS

COMPONENTcnt60IS

PORT(clk,keyclk,clr,prn:

INSTD_LOGIC;

qh,ql:

OUTSTD_LOGIC_VECTOR(3downto0);

qcarry:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTcnt24IS

PORT(clk,clr:

OUTSTD_LOGIC_VECTOR(3downto0));

SIGNALshtem,sltem,mhtem,mltem,hhtem,hltem,da:

STD_LOGIC_VECTOR(3downto0);

SIGNALsctem,mctem:

STD_LOGIC;

SIGNALcou:

INTEGERRANGE0to10;

SIGNALdout,tempy:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

U1:

cnt60PORTMAP(CLK1,clk,clr,PRNM,

SHTEM,SLTEM,SCTEM);

--clk1is1hz,clkis1024hz

U2:

cnt60PORTMAP(SCTEM,clk,clr,PRNH,

mhtem,mltem,MCTEM);

U3:

cnt24PORTMAP(MCTEM,clr,HHTEM,HLTEM);

PROCESS(clk)

BEGIN

IF(clk'

EVENTANDclk='

1'

)THEN--clkis1024hz

IFcou<

8THEN

cou<

=cou+1;

ELSE

cou<

=0;

ENDIF;

CASEcouIS

WHEN0=>

da<

=HHTEM;

TEMPY<

="

10000000"

;

WHEN1=>

=HLTEM;

01000000"

WHEN2=>

1010"

00100000"

WHEN3=>

=mhtem;

00010000"

WHEN4=>

=mltem;

00001000"

WHEN5=>

00000100"

WHEN6=>

=SHTEM;

00000010"

WHEN7=>

=SLTEM;

00000001"

WHENOTHERS=>

0000"

00000000"

ENDCASE;

ENDIF;

CASEdaIS

WHEN"

=>

dout<

00111111"

0001"

00000110"

0010"

01011011"

0011"

01001111"

0100"

01100110"

0101"

01101101"

0110"

01111101"

0111"

00000111"

1000"

01111111"

1001"

01101111"

1011"

01111100"

1100"

00111001"

1101"

01011110"

1110"

01111001"

1111"

01110001"

ENDCASE;

IF(mhtem="

ANDmltem="

)THEN

spk<

=mCTEMANDclkANDCLK1;

ENDPROCESS;

Q<

=dout;

y<

=TEMPY;

ENDBEHAV;

ENTITYcnt60IS

ENDcnt60;

ARCHITECTUREbehavOFcnt60IS

SIGNALqtemh,qteml:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALqc:

INTEGERRANGE0TO200;

PROCESS(keyclk)

BEGIN

IF(keyclk'

EVENTANDkeyclk='

PROCESS(clk,keyclk)

IF(cou=0)AND(PRN='

qc<

=keyclk;

ELSIFclr='

0'

THEN

qtemh<

=(OTHERS=>

'

);

qteml<

ELSIF(clk'

IF(qteml<

9)THEN

=qteml+1;

='

IF(qtemh<

5)THEN

=qtemh+1;

QH<

=qtemh;

QL<

=qteml;

qcARRY<

=qc;

ENDbehav;

ENTITYcnt24IS

ENDcnt24;

ARCHITECTUREbehaveOFcnt24IS

IFclr='

ELSIF(clk'

2)THEN

IFqteml<

9THEN

ELSIF(QTEMh=2)THEN

3THEN

ENDbehave;

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entitydzzis

port(clk,clk_scan,reset,setm,seth:

instd_logic;

dlh2:

std_logic_vector(3downto0);

time,sm:

outstd_logic_vector(7downto0);

--7段显示段码和位码

outstd_logic);

enddzz;

architectureSZofdzzis

signalcou:

integerrange0to8;

signalbs,nl:

std_logic;

signalh1,h2,m1,m2,s1,s2:

signalda:

begin

process(clk)

begin

if(clk'

eventandclk='

)then

--清零

ifreset='

then

h1<

h2<

m1<

m2<

s1<

s2<

--校分

elsifsetm='

then

m2<

=m2+1;

ifm2="

m1<

=m1+1;

ifm1="

endif;

--校时

elsifseth='

h2<

=h2+1;

ifh2="

=h1+1;

ifh1="

andh2<

--正常计数

ifs2="

s2<

elses2<

=s2+1;

if(s1="

ands2="

s1<

elsifs2="

then--秒低位为9,高位不为5;

=s1+1;

and(s1="

elsif(s1="

)then--分低不为9;

if(m1="

andm2="

)and

(s1="

--59分59秒

elsifm2="

--分高不为5,分低9,且59秒

ifh2="

and(m1="

(s1="

--9时59分秒59秒;

elsif(m1="

)and

(s1="

endif;

if(h1="

andh2="

(m1="

--23时59分秒59秒

elsifh2="

and(s1="

h1<

--整点报时

if(m1="

and(s1="

bs<

elsif(m1="

--报时20秒

--到点闹钟

ifh2=conv_integer(dlh2)and

nl<

elsifh2=conv_integer(dlh2)and

)then

--闹铃1分钟,

endprocess;

process(clk_scan)

begin

if(clk_scan'

EVENTandclk_scan='

)then

ifcou<

7then

else

casecouis

when0=>

=h1;

sm<

when1=>

=h2;

when2=>

when3=>

=m1;

when4=>

=m2;

when5=>

when6=>

=s1;

when7=>

=s2;

whenothers=>

endcase;

casedais

when"

time<

spk<

=(bsornl)andclkandclk_scan;

endSZ;

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

当前位置:首页 > 法律文书 > 调解书

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

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