电子钟报告Word文档下载推荐.docx
《电子钟报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电子钟报告Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
3.3电子钟的引脚锁定......................................................................................................16
4硬件支持.......................................................................................................................16
4.1系统供电....................................................................................................................16
4.2独立I/O口配置........................................................................................................17
4.3LED指示灯.................................................................................................................17
4.4无源蜂鸣器.............................................................................................................18
4.5矩阵键盘.................................................................................................................18
4.6数码管外部电路...........................................................................................................19
5编程下载与调试................................................................................................................19
心得体会...............................................................................................................................20
参考文献.............................................................................................................................21
致谢.................................................................................................................................21
摘要
随着计算机性价比的提高及可编程逻辑器件的出现,对传统的数字电子系统设计方法进行了解放性的革命,现代电子系统设计方法是设计师自己设计芯片来实现电子系统的功能,将传统的固件选用及电路板设计工作放在芯片设计中进行。
从20世纪90年代初开始,电子产品设计系统日趋数字化、复杂化和大规模集成化,各种电子系统的设计软件应运而生。
在这些专业化软件中,电子设计自动化EDA(ElectronicDesignAutomation)具有一定的代表性,EDA技术是一种基于芯片的现代电子系统设计方法。
它的优势主要集中在能用HDL语言进行输入、进行PLD(可编程器件)的设计与仿真等系统设计自动化上;
20世纪90年末,可编程器件又出现了模拟可编程器件,由于技术、可操作性及性价比的影响,今后EDA技术会向模拟可编程器件的设计与仿真方向发展,并占据市场的一定份额。
复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)是近年来迅速发展的大规模可编程专用集成电路(ASIC),在数字系统设计和控制电路中越来越受到重视。
集成电路技术和计算机技术的蓬勃发展,让电子产品设计有了更好的应用市场,实现方法也有了更多的选择。
传统电子产品设计方案是一种基于电路板的设计方法,该方法需要选用大量的固定功能器件,然后通过这些器件的配合设计从而模拟电子产品的功能,其工作集中在器件的选用及电路板的设计上。
数字电子钟是一种具有自动显示时间,整点报时功能的电子钟,利用EDA技术,对其编程实现是电子设计自动化的充分体现。
本次即是利用VHDL语言,在MAXPLUSII中编程实现一个电子钟,进行功能仿真,并且在FPGA的芯片上下载实现。
设计中构造了秒模块、分模块、小时模块、八进制模块、扫描显示模块、译码显示模块以及整点报时模块等七个模块,对电子钟进行模块化设计。
在顶层文件里对各个模块进行例化,锁定管脚后下载到FPGA上实现。
关键词:
电子设计自动化FPGA电子钟模块化---
1电子钟总体设计方案
1.1设计要求
设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,能非常方便地对小时、分钟和秒进行手动调节以校准时间,每逢整点,产生报时。
具体要求如下:
A、B:
模式选择,AB=00为模式0,计时状态;
AB=01为模式1,手动校时状态;
Turn:
turn=0时,在手动校对时,选择调整分钟部分;
turn=1时,在手动校对时,选择调整小时部分。
Change:
在手动校时设置模式下,每按一次,计数器加1。
Reset:
reset=0时,整个系统复位;
reset=1时,系统计时或其它特殊功能操作。
状态显示信号(发光管):
LD_h:
指示当前调整的是小时信号;
LD_m:
指示当前调整的是分钟信号。
利用发光二极管进行整点报时。
扩展要求
1.增加小时、分钟、秒的键盘直接修改功能;
2.设计闹钟功能,最多支持5个闹钟,可分别查看和修改闹钟时间,可分别设置闹钟开关。
3.增加万年历功能。
1.2设计方案
本设计用FPGAFPGA来实现,经分析设计要求,整个设计由7大模块构成,即:
秒模块、分模块、小时模块、译码显示电路模块、扫描显示模块、八进制模块和整点报时模块。
1.3各模块的功能
秒模块与分模块是一个六十进制的循环计数器,由时钟脉冲控制计数,每到六十就产生进位。
小时模块是一个二十四进制循环计数器,由时钟脉冲控制计数,不产生进位。
这三个模块都具有异步复位与同步使能的功能,秒模块的时钟由系统给定,分模块由秒模块的进位产生,小时模块由分模块的进位产生。
八进制模块是一个循环八进制计数模块,计数脉冲由系统给定,输出控制扫描显示脉冲和38译码器。
扫描显示模块用来选择秒模块、分模块、小时模块中产生的信号中何种输出到数码管,由一个计数脉冲控制。
译码显示电路模块将输入的信号对应到数码管显示数字。
整点报时模块到整点时利用发光二极管进行整点报时。
1.4电子钟的组成框图
2各单元模块化设计与仿真
2.1秒模块的设计
秒模块是输入信号为1HZ而输出是两个四位数组以及一个进位,设计思路是个六十进制的计数器。
其设计原理如下:
由复位键RST控制异步复位,‘0’表示复位,‘1’表示正常计数;
EN键作为使能端,‘1’表示正常计数,‘0’表示暂停;
输入信号1HZ由系统给定;
六十进制是利用两个计数器(秒个位为十进制,秒十位为六进制),每到六十产生进位输出到分模块,并将秒个位与秒十位输出。
秒模块的源程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYMIAOIS
PORT(RST,EN,CLK:
INSTD_LOGIC;
SEC1,SEC0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDMIAO;
ARCHITECTUREMIAOAOFMIAOIS
BEGIN
PROCESS(CLK,RST)
VARIABLECNT1,CNT0:
STD_LOGIC_VECTOR(3DOWNTO0);
IFRST='
0'
THEN
CNT1:
="
0000"
;
CNT0:
ELSIFCLK'
EVENTANDCLK='
1'
THEN
IFEN='
THEN
ifCNT0="
1001"
andCNT1="
0101"
then
CO<
='
;
else
endif;
IFCNT0="
IFCNT1="
THEN
ELSE
=CNT1+1;
ENDIF;
=CNT0+1;
SEC1<
=CNT1;
SEC0<
=CNT0;
ENDPROCESS;
ENDMIAOA;
秒模块的仿真时序图如下(图3-1):
图3-1
2.2分模块的设计
分模块与秒模块的设计完全一样,只需要将实体名改为MINA。
不将赘述。
2.3小时模块的设计
小时模块的设计有点区别,就是计数长度为二十四,而不是六十,并且不产生进位输出。
其它的完全一样。
小时模块的源程序如下:
ENTITYXiaoshiIS
H1,H0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDXiaoshi;
ARCHITECTUREXiaoshiAOFXiaoshiIS
0011"
ANDCNT1="
0010"
ELSIFCNT0<
"
H1<
H0<
ENDXiaoshiA;
小时模块的仿真时序图如下(图3-2)
图3-2
2.4八进制模块的设计
八进制模块就是一个八进制循环计数器,由系统给定的时钟作为计数脉冲,为KHZ级别以上的,输出一个三位数组。
源程序如下:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityJISHUis
port(clk1:
instd_logic;
ji:
outstd_logic_vector(2downto0));
endJISHU;
architecturebehaofJISHUis
signalcnt:
std_logic_vector(2downto0);
begin
process(clk1)
begin
ifclk1'
eventandclk1='
then
ifcnt="
111"
cnt<
="
000"
else
cnt<
=cnt+1;
endif;
endprocess;
ji<
=cnt;
endbeha;
八进制模块的仿真时序图如下(图3-3)
图3-3
2.5译码显示电路模块的设计
输入为一个三位数组,对数组进行译码,对应到七段数码管的显示端。
entityYIMAis
port(d:
instd_logic_vector(3downto0);
q:
outstd_logic_vector(6downto0));
endYIMA;
architectureYIMAAofYIMAis
begin
process(d)
casedis
when"
=>
q<
0111111"
0001"
0000110"
1011011"
1001111"
0100"
1100110"
1101101"
0110"
1111101"
0111"
0100111"
1000"
1111111"
1101111"
whenothers=>
0000000"
endcase;
endYIMAA;
译码显示电路模块的仿真时序图如下(图3-4)
图3-4
2.6扫描显示模块的设计
利用一个八进制的循环计数,对输入的秒个位、秒十位、分个位、分十位、时个位、时十位进行选择输出。
ENTITYBBBIS
PORT(SEC1,SEC0,MIN1,MIN0,H1,H0:
INSTD_LOGIC_VECTOR(3DOWNTO0);
SEL:
INSTD_LOGIC_VECTOR(2DOWNTO0);
Q:
ENDBBB;
ARCHITECTUREBBBAOFBBBIS
PROCESS(SEL)
CASESELIS
WHEN"
=>
Q<
=SEC0;
001"
=SEC1;
011"
=MIN0;
100"
=MIN1;
110"
=H0;
=H1;
WHENOTHERS=>
1111"
ENDCASE;
ENDBBBA;
扫描显示模块的仿真时序图如下(图3-5)
图3-5
2.7整点报时模块的设计
设计原理:
输入为秒个位、秒十位、分个位、分十位、时个位、时十位,输出为一个四位数组,控制二极管。
当时间为59分59秒或00分00秒或00分01秒时发光二极管灯亮,并且能利用发光二极管的亮灯个数确定时间。
ENTITYbaoshiIS
port(hh1,hh0,mm1,mm0,ss1,ss0:
led_led:
endENTITYbaoshi;
ARCHITECTUREbaoshiAOFbaoshiIS
process(hh1,hh0)
begin
ifhh1="
ifhh0<
1010"
ifmm1="
andmm0="
andss1="
andss0="
led_led<
=hh0+1;
elsif(mm1="
)or(mm1="
)then
=hh0;
endARCHITECTUREbaoshiA;
报时模块的仿真时序图如下(图3-6)
图3-6
3顶层设计
3.1电子钟的逻辑原理图
3.2主程序的设计
IBRARYIEEE;
USEIEEE.STD_LOGIC_U