数字电子时钟实验报告2.docx

上传人:b****0 文档编号:17608140 上传时间:2023-07-27 格式:DOCX 页数:13 大小:1.43MB
下载 相关 举报
数字电子时钟实验报告2.docx_第1页
第1页 / 共13页
数字电子时钟实验报告2.docx_第2页
第2页 / 共13页
数字电子时钟实验报告2.docx_第3页
第3页 / 共13页
数字电子时钟实验报告2.docx_第4页
第4页 / 共13页
数字电子时钟实验报告2.docx_第5页
第5页 / 共13页
数字电子时钟实验报告2.docx_第6页
第6页 / 共13页
数字电子时钟实验报告2.docx_第7页
第7页 / 共13页
数字电子时钟实验报告2.docx_第8页
第8页 / 共13页
数字电子时钟实验报告2.docx_第9页
第9页 / 共13页
数字电子时钟实验报告2.docx_第10页
第10页 / 共13页
数字电子时钟实验报告2.docx_第11页
第11页 / 共13页
数字电子时钟实验报告2.docx_第12页
第12页 / 共13页
数字电子时钟实验报告2.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字电子时钟实验报告2.docx

《数字电子时钟实验报告2.docx》由会员分享,可在线阅读,更多相关《数字电子时钟实验报告2.docx(13页珍藏版)》请在冰点文库上搜索。

数字电子时钟实验报告2.docx

数字电子时钟实验报告2

重庆大学光电工程学院系列课程

实验报告本

课程名称可编程逻辑电路技术

实验学期2014年至2015第1学期

学生所在学院光电工程学院

年级12级专业班级光电信息02班

学生姓名闫昊学号20123082

指导教师签名

实验最终成绩

重庆大学光电工程学院教学实验中心制

 

实验题目

数字电子钟实验

实验时间

2014年9月28日星期日

实验地点

主教1118

实验成绩

实验性质

□验证性□设计性√综合性

教师评语:

□出勤率好□原理正确□方案合理

□实验结果正确□回答问题正确□报告规范

一、实验目的

1、掌握VHDL程序的基本设计技巧。

2、掌握各类计数器以及他们相连的设计方法。

3、掌握VHDL的并行语句和顺序语句的设计方法。

4、掌握矩阵键盘原理和数码管动态显示方法。

二、实验内容

1、采用层次化设计方法,设计一个数字电子钟,能够正常进行时、分、秒计时,并用数码管显示计时结果。

2、所设计的数字电子钟应具有校时功能。

3、时、分、秒以及较时功能模块采用VHDL语言实现,顶层采用原理图输入方式,把时、分、秒以及较时功能模块按照一定的组合逻辑连接起来,组成数字电子时钟。

2、实验原理

图1.数字电子钟原理图

实验原理上图所示,实验箱的标准信号源模块为计数器提供基准时钟,校准按键由矩阵键盘实现,显示用实验箱上面的8位数码管实现。

在校时状况下,是对需要调整的时间模块进行计数,控制按键用来选择是正常计数还是校准时间计数,并决定调整时、分、秒;置数按键按下时,表示相应的调整模块要加1,如需要对小时调整时,显示时间的LED管闪烁且当置数键按下时,相应的小时显示要加1,。

 

三、使用仪器、器材

(1)PC机一台,HP-FPGA11实验箱一套。

(2)QuartusⅡ软件。

四、实验步骤

1、用文本输入法,实现时、分、秒以及较时功能,并生成实体图。

2、利用生成的底层实体图,设计出数字电子时钟的顶层实体图。

3、编译,绑定引脚,下载程序,通过实验箱验证程序的正确性。

五、实验过程原始记录(数据、图标、计算等)

秒计时模块的设计:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

useieee.std_logic_unsigned.all;

ENTITYSIXSECIS

PORT(CLK:

INSTD_LOGIC;

KONG:

INSTD_LOGIC;

OUTS:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

OUTG:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

CO:

OUTSTD_LOGIC);

ENDSIXSEC;

ARCHITECTUREbehOFSIXSECIS

SIGNALSHI,GE:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALCO1:

STD_LOGIC;

BEGIN

CO1<='1'when(SHI="0000"andGE="0000")else'0';

CO<=(CO1ANDKONG);

 

PROCESS(CLK)--时钟作用

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFSHI="0101"THEN

IFGE="1001"THEN

SHI<="0000";

GE<="0000";

ELSEGE<=GE+1;

ENDIF;

ELSEIFGE="1001"THEN

SHI<=SHI+1;

GE<="0000";

ELSEGE<=GE+1;

ENDIF;

ENDIF;

ENDIF;

OUTS<=SHI;

OUTG<=GE;

ENDPROCESS;

ENDARCHITECTUREbeh;

秒计数器器件图:

秒计数器仿真:

由图可知:

当KONG为1时可产生进位信号,当KONG为0时进位信号被屏蔽。

分计数模块VHDL程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

useieee.std_logic_unsigned.all;

ENTITYSIXFENIS

PORT(CLK:

INSTD_LOGIC;

KONG:

INSTD_LOGIC;

ADDNUMBER:

INSTD_LOGIC;

OUTS:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

OUTG:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

CO:

OUTSTD_LOGIC);

ENDSIXFEN;

ARCHITECTUREbehOFSIXFENIS

SIGNALCLK1:

STD_LOGIC;

SIGNALCO1:

STD_LOGIC;

SIGNALCLK2:

STD_LOGIC;

SIGNALSHI,GE:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

CLK1<=CLKANDKONG;

CLK2<=CLK1OR(NOTKONGANDADDNUMBER);

CO1<='1'when(SHI="0000"andGE="0000")else'0';

CO<=CO1OR(NOTKONG);

PROCESS(CLK2)--时钟作用

BEGIN

IFCLK2'EVENTANDCLK2='1'THEN

IFSHI="0101"THEN

IFGE="1001"THEN

SHI<="0000";

GE<="0000";

ELSEGE<=GE+1;

ENDIF;

ELSEIFGE="1001"THEN

SHI<=SHI+1;

GE<="0000";

ELSEGE<=GE+1;

ENDIF;

ENDIF;

ENDIF;

OUTS<=SHI;

OUTG<=GE;

ENDPROCESS;

ENDARCHITECTUREbeh;

时计数模块VHDL程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_SIGNED.ALL;

ENTITYTWOSECIS

PORT(CLK:

INSTD_LOGIC;

KONG:

INSTD_LOGIC;

ADDNUMBER:

INSTD_LOGIC;

OUTS:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

OUTG:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDTWOSEC;

ARCHITECTUREbehOFTWOSECIS

SIGNALCLK1:

STD_LOGIC;

SIGNALCLK2:

STD_LOGIC;

SIGNALSHI,GE:

STD_LOGIC_VECTOR(3DOWNTO0);

begin

CLK1<=CLKANDKONG;

CLK2<=CLK1OR(NOTKONGANDADDNUMBER);

PROCESS(CLK2)

BEGIN

IFCLK2='1'ANDCLK2'EVENTTHEN

IFSHI="0010"THEN

IFGE="0011"THEN

SHI<="0000";

GE<="0000";

ELSEGE<=GE+1;

ENDIF;

ELSEIFGE="1001"THEN

SHI<=SHI+1;

GE<="0000";

ELSEGE<=GE+1;

ENDIF;

ENDIF;

ENDIF;

OUTS<=SHI;

OUTG<=GE;

ENDPROCESS;

ENDARCHITECTUREbeh;

键盘扫描:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYJIAYIIS

PORT(SIMA:

INSTD_LOGIC;

GUILIU:

INSTD_LOGIC;

CLK:

INSTD_LOGIC;

SHUCHU1:

OUTSTD_LOGIC;

SHUCHU2:

OUTSTD_LOGIC;

ADDN:

OUTSTD_LOGIC

);

ENDJIAYI;

ARCHITECTUREBEHOFJIAYIIS

TYPEXUANZEIS(S0,S1,S2);

SIGNALCURRENT_STATE,NEXT_STATE:

XUANZE;

BEGIN

PROCESS(CLK)

BEGIN

ADDN<=GUILIU;

IFSIMA'EVENTANDSIMA='1'THEN

CURRENT_STATE<=NEXT_STATE;

ENDIF;

ENDPROCESS;

PROCESS(CURRENT_STATE)

BEGIN

CASECURRENT_STATEIS

WHENS0=>NEXT_STATE<=S1;SHUCHU1<='1';SHUCHU2<='1';

WHENS1=>NEXT_STATE<=S2;SHUCHU1<='0';SHUCHU2<='1';

WHENOTHERS=>NEXT_STATE<=S0;SHUCHU1<='1';SHUCHU2<='0';

ENDCASE;

ENDPROCESS;

ENDBEH;

调时输入模块器件图:

调时输入模块仿真:

显示译码器模块通过对输入的时分秒进行译码显示,输出8位数码管的位选端和段选端,同时具有调整时或调分时,使其相应的位闪烁的功能。

其VHDL程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYSHUMAGUANIS

PORT(MIAOSHI:

INSTD_LOGIC_VECTOR(3DOWNTO0);

MIAOGE:

INSTD_LOGIC_VECTOR(3DOWNTO0);

FENSHI:

INSTD_LOGIC_VECTOR(3DOWNTO0);

FENGE:

INSTD_LOGIC_VECTOR(3DOWNTO0);

SHISHI:

INSTD_LOGIC_VECTOR(3DOWNTO0);

SHIGE:

INSTD_LOGIC_VECTOR(3DOWNTO0);

SHANSHUO2:

INSTD_LOGIC;

SHANSHUO3:

INSTD_LOGIC;

CLK:

INSTD_LOGIC;

WEIXUAN:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

DUANXUAN:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDSHUMAGUAN;

ARCHITECTUREBEHOFSHUMAGUANIS

SIGNALCLK1:

STD_LOGIC;

SIGNALT:

INTEGERRANGE0TO999:

=0;

SIGNALYIWEI:

STD_LOGIC_VECTOR(7DOWNTO0):

="01111111";

SIGNALYIWEI1:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

CLK1<='0'WHENT<500ELSE'1';

PROCESS(CLK,SHANSHUO2,SHANSHUO3)

VARIABLEHUANCUN:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFCLK'EVENTANDCLK='1'THEN

T<=T+1;

YIWEI(7DOWNTO1)<=YIWEI(6DOWNTO0);

YIWEI(0)<=YIWEI(7);

IFSHANSHUO2='0'THEN

YIWEI1(4)<=CLK1;

YIWEI1(3)<=CLK1;

YIWEI1(2DOWNTO0)<="000";

YIWEI1(7DOWNTO5)<="000";

ELSIFSHANSHUO3='0'THEN

YIWEI1(7)<=CLK1;

YIWEI1(6)<=CLK1;

YIWEI1(5DOWNTO0)<="000000";

ELSEYIWEI1<="00000000";

ENDIF;

WEIXUAN<=YIWEIORYIWEI1;

CASEYIWEIIS

WHEN"11111110"=>HUANCUN:

=MIAOGE;

WHEN"11111101"=>HUANCUN:

=MIAOSHI;

WHEN"11111011"=>HUANCUN:

="1010";

WHEN"11110111"=>HUANCUN:

=FENGE;

WHEN"11101111"=>HUANCUN:

=FENSHI;

WHEN"11011111"=>HUANCUN:

="1010";

WHEN"10111111"=>HUANCUN:

=SHIGE;

WHEN"01111111"=>HUANCUN:

=SHISHI;

WHENOTHERS=>HUANCUN:

="1111";

ENDCASE;

CASEHUANCUNIS

WHEN"0000"=>DUANXUAN<="11111100";

WHEN"0001"=>DUANXUAN<="01100000";

WHEN"0010"=>DUANXUAN<="11011010";

WHEN"0011"=>DUANXUAN<="11110010";

WHEN"0100"=>DUANXUAN<="01100110";

WHEN"0101"=>DUANXUAN<="10110110";

WHEN"0110"=>DUANXUAN<="10111110";

WHEN"0111"=>DUANXUAN<="11100000";

WHEN"1000"=>DUANXUAN<="11111110";

WHEN"1001"=>DUANXUAN<="11110110";

WHEN"1010"=>DUANXUAN<="00000010";

WHENOTHERS=>DUANXUAN<="00000000";

ENDCASE;

ENDIF;

ENDPROCESS;

ENDBEH;

译码显示模块器件图:

译码显示模块仿真:

六、实验结果分析

各子功能模块完成后,将各个模块通过图形文件输入方式连接,生成最终电路图,并对其进行仿真;通过仿真可以看到时、分、秒正常显示,而且可以准确无误地调整时间。

并且程序下载之后运行正常,达到预期效果。

电路连接图:

电子时钟仿真:

 

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

当前位置:首页 > 表格模板 > 合同协议

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

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