多功能数字钟课程设计报告文档格式.docx
- 文档编号:16094121
- 上传时间:2022-11-19
- 格式:DOCX
- 页数:19
- 大小:195.38KB
多功能数字钟课程设计报告文档格式.docx
《多功能数字钟课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《多功能数字钟课程设计报告文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
2.计时:
正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。
3.校时:
在计时状态显示下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒复零”状态,第三次按下“k键”又恢复到正常计时显示状态。
1)“小时”校准状态:
在“小时”校准状态下,显示“小时”数码管以1Hz的频率递增计数。
2)“分”校准状态:
在“分”校准状态下,显示“分”的数码管以1Hz的频率递增计数。
3)“秒”复零状态:
在“秒复零”状态下,显示“秒”的数码管复零。
4.整点报时:
蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57‘秒发频率为512Hz的低音,在“59”分钟的第“59”秒发频率为1024Hz的高音,结束时为整点。
5.显示:
要求采用扫描显示方式驱动6个LED数码管显示小时、分、秒。
闹钟:
闹钟定时时间到,蜂鸣器发出周期为1s的“滴”、“滴”声,持续时间为10s;
闹钟定时显示。
6.闹钟定时设置:
在闹钟定时显示状态下,按下“set键”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k键”则进入“秒”设置状态,第三次按下“k键”又恢复到闹钟定时显示状态。
1)闹钟“小时”设置状态:
在闹钟“小时”设置状态下,显示“小时”的数码管以1Hz的频率递增计数。
2)闹钟:
“分”设置状态:
在闹钟“分”设置状态下,显示“分”的数码管以1Hz的频率递增计数。
三、控制器的MDS图及多功能数字系统结构逻辑框图
1、控制器的MDS图
Mode=1,set=0
S0:
显示计时时间s1:
调计时的时s2:
调计时的分s3:
调计时的秒
S4:
显示闹铃时间s5:
调闹铃的时s6:
调闹铃的分s7:
调闹铃的秒
2、多功能数字系统结构逻辑框图
四、各功能模块设计说明及源程序
1、控制器:
设计说明:
根据外部的输入控制信号,完成各个状态之间的转换,并在相应状态输出相应的控制信号,从而对整个系统的工作进行控制。
控制器:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
entitycontlis
port(clk,reset,k,set:
instd_logic;
cht,cmt,cst,cha,cma,csa,flashh,,sel_showflashm,flashs:
outstd_logic);
endcontl;
architecturearofcontlis
typestate_typeis(s0,s1,s2,s3,s4,s5,s6,s7);
signalstate:
state_type;
begin
process(clk,reset,k,set)
if(rising_edge(clk))then
if(reset='
1'
)then
state<
=s0;
endif;
casestateis
whens1=>
sel_show<
='
;
cht<
flashh<
if(k='
=s2;
elsestate<
=s1;
whens2=>
cmt<
flashm<
)then
=s3;
whens3=>
cst<
flashs<
whens4=>
0'
andset='
=s5;
elsif(k='
=s4;
whens5=>
cha<
=s6;
whens6=>
cma<
whens7=>
csa<
=s7;
whens0=>
endcase;
endprocess;
endar;
2、计时校时电路:
该电路实现计时、校时功能。
源程序:
二十四进制计数器:
源程序:
entitym24is
port(en,clk:
instd_logic;
p0,p1:
outstd_logic_vector(3downto0));
endm24;
architecturearofm24is
signalq0,q1:
integerrange0to15;
process(clk)
if(rising_edge(clk))then
if(en='
or(q0=3andq1=2))then
q0<
=0;
q1<
elsif(q0=9)then
=q1+1;
elseq0<
=q0+1;
p0<
=conv_std_logic_vector(q0,4);
p1<
=conv_std_logic_vector(q1,4);
六十进制计数器:
entitym60is
x:
outstd_logic;
p0,p1:
endm60;
architecturearofm60is
begin
or(q0=9andq1=5))then
x<
x<
选择器源程序:
entityconlis
port(f1,f4,c:
f:
endconl;
architecturearofconlis
process(c,f1,f4)
if(c='
f<
=f1;
elsef<
=f4;
3、显示控制电路:
该模块控制最终显示的计时时间还是闹铃时间。
entityshow_conis
port(ts1,ts2,tm1,tm2,th1,th2,bs1,bs2,bm1,bm2,bh1,bh2:
instd_logic_vector(3downto0);
s1,s2,m1,m2,h1,h2,line:
outstd_logic_vector(3downto0);
sel_show,clk,flashs,flashm,flashh:
instd_logic);
endshow_con;
architecturearofshow_conis
signalq:
integerrange0to1;
begin
q<
=q+1;
if(flashh='
andq=1)then
h1<
="
1111"
h2<
elsif(flashm='
m1<
m2<
elsif(flashs='
s1<
s2<
else
if(sel_show='
=ts1;
=ts2;
=tm1;
=tm2;
=th1;
=th2;
else
=bs1;
=bs2;
=bm1;
=bm2;
=bh1;
=bh2;
line<
1110"
4、定时比较电路:
设计说明:
包含两个模块,定时模块和比较模块;
完成定时时间的设定、定时时间的输出、计时时间与定时时间比较并输出相应的比较结果控制蜂鸣器的工作,从而实现闹铃功能。
比较模块源程序:
entitycom_t_dis
port(clk:
comout:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 数字 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)