- 6
- 0
- 约4.48千字
- 约 7页
- 2016-11-27 发布于重庆
- 举报
基于VHDL的多功能數字钟的设计
电子钟设计
1.摘要
本实验是设计一个多功能数字钟,具有计时、校时、清零等简单功能,在计算机上运用 Quartus II软件进行仿真调试,并下载到下载板上(ALTEA EPM7064SLI44-7)实现,通过开关来控制其主要的功能。
关键字:Quartus II,电子钟, ALTEA EPM7064SLI44-7。
2.实验设计要求与目的
设计制作一个0秒0分—59秒59分的多功能计时器,设计要求如下:
1.计时功能:完成0秒0分—59秒59分的计时功能。
2.清零功能:在板上设置一个手动清零开关,通过它可以对电路实现实时的手动清零。
3.校时功能:可随时对电路进行校时功能,并设置两个开关(a/b)控制。按下a开关时(手不松开),数字时钟的秒钟数迅速增加(4HZ的时钟频率来驱动),并按60循环,计满60后再回00。按下b开关时(手不松开),数字时钟的分钟数迅速增加(4HZ的时钟频率来驱动),并按60循环,计满60后再回00。
目的:掌握各类计数器;掌握多个数码管显示的原理与方法;掌握使用VHDL语言的设计思想;对整个系统的设计有一个了解。
3.实验环境
1.软件环境:QuartusII 7.2
2.硬件环境:ALTEA EPM7064SLI44-7
4.设计原理框图
译码显示
译码显示
清零电路计数电路
清零电路
计数电路
校时电路
校时电路
5 各功能实现原理
整个数字钟的设计包括七个模块,分别为分频、清零、计时、校时、BCD编码、扫描、译码,各模块的设计解决方案具体如下。
5.1 分频功能实现
因为我们需要1HZ的频率来用来驱动秒计时器,而硬件提供的时钟频率是4HZ,所以我们要进行分频。分频的程序如下:
process(clk4hz ) ----clk4hz为硬件提供的时钟频率4hz
begin
if clk4hzevent and clk4hz=1then
if count=3 then
count:=0;clk1hz=1;point=clk1hz; ---clk4hz分频后1hz
else count:=count+1;clk1hz=0;point=clk1hz;-----时钟频率“clk4hz”跳变四次,clk1hz时钟频率跳一次,实现分频。
end if;
end if;
end process;
5.2 清零功能实现
硬件上一共有四个开关,设置硬件上的一个开关为清零开关。当按下该开关时,时钟的显示全部为零。清零的程序如下:
process (rst)
begin
if rst=0 then----这里我们设置了一个清零键“rst”当清零键为0状态时(即按下该清零键时),小时和分钟全部清零
sec1=0;----秒清零
min1=0;----分钟清零
5.3 计时功能实现
计时功能可分为两部分来实现,依次设计分位、秒位的计数单元。计时程序如下:
process (clk1hz, clear,sec,min)
begin
if clk1hzevent and clk1hz=1 then--分频后的时钟频率来驱动
if clear=1 then------当清零键状态为“1”
if sec=59 then sec=0; -----当数字时钟的秒钟为59时,即刻置为零
if min=59 then min=0;-----当数字时钟的分钟为59时,即刻置为零
else min=min+1; -----当数字时钟的分钟没到59时,加1
end if;
else miao1=miao1+1; 当数字时钟的秒钟没到59时,加1
end if;
end if;
end if;
5.4 校时功能实现
对电路进行校时功能,设置两个开关(a/b)控制。按下a开关时(手不松开),数字时钟的秒钟数迅速增加(4HZ的时钟频率来驱动),并按60循环,计满60后再回00。按下b开关时(手不松开),数字时钟的分钟数迅速增加(4HZ的时钟频率来驱动),并按60循环,计满60后再回00。校时程序如下:
if a=0 then-----设置调秒钟的开关a
if sec=59 then sec=0;
else sec=sec+1;
end if;
end if;
if b=0 then -----设置调分钟的开关b
if min=59 then min =0;
else min = min +1;
end if;
这里要说明下,调时间是用4HZ的时钟频率来驱动,目的是为了调得更快些,但也不会因为过快而调不准。
5.5 BCD编码功能实现
这里我们将十进制转化为二进制,因为时钟计的数是十进制,所以我们要将十进制转成二进制。编码功能程序如下:
process
原创力文档

文档评论(0)