EDA课程设计多功能数字钟Word格式文档下载.doc
- 文档编号:15403576
- 上传时间:2022-10-30
- 格式:DOC
- 页数:17
- 大小:118.50KB
EDA课程设计多功能数字钟Word格式文档下载.doc
《EDA课程设计多功能数字钟Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《EDA课程设计多功能数字钟Word格式文档下载.doc(17页珍藏版)》请在冰豆网上搜索。
2.3控制模块…………………………………………………………10
2.4数码管分配………………………………………………………13
2.5显示模块…………………………………………………………14
2.6报时模块…………………………………………………………16
六、调试中遇到的问题及解决的方法……………………………18
七、心得体会………………………………………………………18
一、课程设计的性质、目的和任务
创新精神和实践能力二者之中,实践能力是基础和根本。
这是由于创新基于实践、源于实践,实践出真知,实践检验真理。
实践活动是创新的源泉,也是人才成长的必由之路。
通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。
二、课程设计基本要求
掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。
三、设计课题要求
(1)构造一个24小时制的数字钟。
要求能显示时、分、秒。
(2)要求时、分、秒能各自独立的进行调整。
(3)能利用喇叭作整点报时。
从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。
整点报时声的频率应与其它的报时声频有明显区别。
#设计提示(仅供参考):
(1)对频率输入的考虑
数字钟内所需的时钟频率有:
基准时钟应为周期一秒的标准信号。
报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。
另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。
(2)计时部分计数器设计的考虑
分、秒计数器均为模60计数器。
小时计数为模24计数器,同理可建一个24进制计数器的模块。
(3)校时设计的考虑
数字钟校准有3个控制键:
时校准、分校准和秒校准。
微动开关不工作,计数器正常工作。
按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。
(4)报时设计的考虑
可以将高频时钟分频得到约2KHz和1KHz的音频,作为数字钟的报时频率。
当电子钟显示XX:
59:
50时,数字钟开始报时“DO"
,持续一秒,而且每隔一秒报一下,直至显示XX:
00:
00时报“DI"
,持续一秒后停止。
最后输出至喇叭。
应调用元件库中的逻辑门建一个控制报时的模块。
(5)建一个七段译码的模块
因在系统可编程器件实验箱上的数码管没有经过译码,故要用AHDL语言写一个七段译码的模块,且应考虑数码管为共阳极。
数码管上的点(D2、D4、D6)应置Vcc。
四、课程设计所需要仪器
1、计算机一台
2、quartusⅡ软件
3、FPGA开发板
五、设计步骤
1、模块介绍
(1)分频模块:
产生1Hz、1KHz、2KHz频率
(2)计数器模块:
生成60进制、24进制计数器
(3)控制模块:
按键控制、按键消抖
(4)显示模块:
7段数码管显示器,分别显示小时、分钟、秒
(5)报时模块:
进行整点报时
2、各个模块的设计与仿真
2.1分频模块
CLK晶振频率50MHZ,分成2KHZ,1KHZ,1HZ的信号。
基准1HZ信号作为时钟计时的秒计数时钟信号;
分频的1KHZ,2KHZ信号用于报时电路的不同声讯。
程序代码:
libraryieee;
useieee.std_logic_1164.all;
entityfreis
port(
clk,sel:
instd_logic;
clk1hz,clk1khz,clk2khz:
outstd_logic);
endfre;
architecturebehoffreis
signaldata1khz,data2khz,data1hz:
std_logic:
='
0'
;
begin
clk1hz<
=data1hz;
clk1khz<
=data1khz;
clk2khz<
=data2khz;
clk1khz_pro:
process(clk)--产生1khz信号
variablecnt:
integerrange0to24999;
begin
ifclk'
eventandclk='
1'
then
ifcnt=24999then
cnt:
=0;
data1khz<
=notdata1khz;
else
=cnt+1;
endif;
endif;
endprocessclk1khz_pro;
clk2khz_pro:
process(clk)--产生2khz信号
integerrange0to12499;
ifcnt=12499then
data2khz<
=notdata2khz;
endprocessclk2khz_pro;
clk1hz_pro:
process(data1khz)--产生1hz信号
integerrange0to499;
begin
ifdata1khz'
eventanddata1khz='
then
ifsel='
thencnt:
=0;
elseifcnt=499then
data1hz<
=notdata1hz;
else
endprocessclk1hz_pro;
endbeh;
输入模块电路图:
2.2计数器模块
由秒计数器,分计数器,时计数器组成了最基本的数字钟计时电路,两个六十进制计数器与二十四进制计数器组合构成。
useieee.std_logic_unsigned.all;
useIEEE.STD_LOGIC_ARITH.ALL;
entityshuzizhongis
clk_change:
s_en,m_en,h_en:
instd_logic;
sel:
secout,minout,hourout:
outstd_logic;
sl,sh,ml,mh,hl,hh:
outstd_logic_vector(3downto0);
a:
outstd_logic_vector(15downto0)
);
endshuzizhong;
architecturebehavofshuzizhongis
signallow_rega,high_rega,low_regb,high_regb,low_regc,high_regc:
std_logic_vector(3downto0):
="
0000"
signalsout,mout,hout:
std_logic:
='
--秒的60进制进制
counter_sec_l:
process(clk_change,s_en)
begin
sl<
=low_rega;
sh<
=high_rega;
ml<
=low_regb;
mh<
=high_regb;
hl<
=low_regc;
hh<
=high_regc;
ifclk_change'
eventandclk_change='
ifs_en='
iflow_rega="
1001"
low_rega<
="
else
low_rega<
=low_rega+'
endif;
endif;
endif;
endprocesscounter_sec_l;
counter_sec_h:
process(clk_change,s_en,low_rega)
begin
ifclk_change'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 多功能 数字