数字日历电路的设计Word文件下载.docx

上传人:b****1 文档编号:4450804 上传时间:2023-05-03 格式:DOCX 页数:20 大小:151.53KB
下载 相关 举报
数字日历电路的设计Word文件下载.docx_第1页
第1页 / 共20页
数字日历电路的设计Word文件下载.docx_第2页
第2页 / 共20页
数字日历电路的设计Word文件下载.docx_第3页
第3页 / 共20页
数字日历电路的设计Word文件下载.docx_第4页
第4页 / 共20页
数字日历电路的设计Word文件下载.docx_第5页
第5页 / 共20页
数字日历电路的设计Word文件下载.docx_第6页
第6页 / 共20页
数字日历电路的设计Word文件下载.docx_第7页
第7页 / 共20页
数字日历电路的设计Word文件下载.docx_第8页
第8页 / 共20页
数字日历电路的设计Word文件下载.docx_第9页
第9页 / 共20页
数字日历电路的设计Word文件下载.docx_第10页
第10页 / 共20页
数字日历电路的设计Word文件下载.docx_第11页
第11页 / 共20页
数字日历电路的设计Word文件下载.docx_第12页
第12页 / 共20页
数字日历电路的设计Word文件下载.docx_第13页
第13页 / 共20页
数字日历电路的设计Word文件下载.docx_第14页
第14页 / 共20页
数字日历电路的设计Word文件下载.docx_第15页
第15页 / 共20页
数字日历电路的设计Word文件下载.docx_第16页
第16页 / 共20页
数字日历电路的设计Word文件下载.docx_第17页
第17页 / 共20页
数字日历电路的设计Word文件下载.docx_第18页
第18页 / 共20页
数字日历电路的设计Word文件下载.docx_第19页
第19页 / 共20页
数字日历电路的设计Word文件下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字日历电路的设计Word文件下载.docx

《数字日历电路的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字日历电路的设计Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。

数字日历电路的设计Word文件下载.docx

modulecnt60(clrn,clk,q,j,cont);

//秒和分计时

inputclrn,clk,j;

outputreg[7:

0]q;

outputregcont;

always@(posedgeclk^jornegedgeclrn)

begin

if(~clrn)q=0;

elsebegin

if(q=='

h59)q=0;

elseq=q+1;

if(q[3:

0]=='

ha)beginq[3:

0]=0;

q[7:

4]=q[7:

4]+1;

end

h59)cont=1;

elsecont=0;

endmodule

modulecnt24(clrn,clk,q,j,cont);

//小时计时

h23)q=0;

h23)cont=1;

2.2年月日模块

modulenyr2009(clrn,clk,jn,jy,jr,qn,qy,qr);

//年月日模块

inputclrn,clk,jn,jy,jr;

output[15:

0]qn;

output[7:

0]qy,qr;

reg[15:

0]qn;

reg[7:

0]qy,qr;

regclkn,clky;

0]date;

regclkn1,clkn2,clkn3;

initialbeginclkn1=1;

clkn2=1;

clkn3=1;

initialbeginqn='

h2000;

qy=1;

qr=1;

end

always@(posedge(clk^jr)ornegedgeclrn)//日计时模块

begin

if(~clrn)qr=1;

elsebegin

if(qr==date)qr=1;

elseqr=qr+1;

if(qr[3:

ha)begin

qr[3:

qr[7:

4]=qr[7:

if(qr==date)clky=1;

elseclky=0;

end

always@(posedgeclky^jyornegedgeclrn)//月计时模块

if(~clrn)qy=1;

if(qy=='

h12)qy=1;

elseqy=qy+1;

if(qy[3:

qy[3:

qy[7:

4]=qy[7:

h12)clkn=1;

elseclkn=0;

always

case(qy)

'

h01:

date='

h31;

h02:

if((qn%4==0)&

(qn%100!

=0)|(qn%400==0))date='

h29;

elsedate='

h28;

end

h03:

h04:

h30;

h05:

h06:

h07:

h08:

h09:

h10:

h11:

h12:

default:

date='

endcase

always@(posedge(clkn^jn)ornegedgeclrn)//年计时模块

if(~clrn)qn[3:

elsebeginif(qn[3:

0]==9)qn[3:

elseqn[3:

0]=qn[3:

0]+1;

if(qn[3:

0]==9)clkn1=0;

elseclkn1=1;

always@(posedgeclkn1ornegedgeclrn)

if(~clrn)qn[7:

4]=0;

elsebeginif(qn[7:

4]==9)qn[7:

elseqn[7:

4]=qn[7:

if(qn[7:

4]==9)clkn2=0;

elseclkn2=1;

always@(posedgeclkn2ornegedgeclrn)

if(~clrn)qn[11:

8]=0;

elsebeginif(qn[11:

8]==9)qn[11:

elseqn[11:

8]=qn[11:

8]+1;

if(qn[11:

8]==9)clkn3=0;

elseclkn3=1;

always@(posedgeclkn3ornegedgeclrn)

if(~clrn)qn[15:

12]=2;

elseif(qn[15:

12]==9)qn[15:

12]=0;

elseqn[15:

12]=qn[15:

12]+1;

2.3校时模块

modulemux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3);

inputk,j1,j2,j3;

outputregjm,jf,js,jr,jy,jn;

always

if(k==0){jm,jf,js}={j1,j2,j3};

else{jr,jy,jn}={j1,j2,j3};

2.4分频器模块

同时给时分秒和闹钟送入脉冲

moduleFENP(clk,newclk);

inputclk;

outputregnewclk;

reg[24:

0]cnter;

always@(posedgeclk)

if(cnter<

20000000)cnter=cnter+1;

elsecnter=0;

if(cnter<

10000000)newclk=1;

else

newclk=0;

endmodule

2.5控制器模块

显示年月日和显示时分秒直接的转换控制

modulecontr(clk,k1,k2,k);

inputclk,k1,k2;

outputregk;

reg[3:

0]qc;

regrc;

always@(posedgeclk)

beginqc=qc+1;

if(qc<

8)rc=0;

elserc=1;

case({k1,k2})

0:

k=rc;

//八秒显示年月日八秒显示时分秒的自由转换

1:

k=0;

//显示并且校准时分秒

2:

k=1;

//显示并且校准年月日

3:

2.6闹钟模块

modulenaozhong(qs,qf,led,zt);

inputzt;

input[7:

0]qs,qf;

outputled;

regled;

if(qs=='

h06&

&

qf=='

h01)//6:

01闹钟开始闪烁

led=1;

else

led=0;

if(zt==1)led=0;

//在任意时刻都可以关掉闹钟

2.7数码管显示模块

modulemux_16(k,qm,qf,qs,qr,qy,qn,q);

inputk;

input[7:

0]qm,qf,qs,qr,qy;

input[15:

0]qn;

outputreg[31:

begin

if(k==0)begin

q[31:

24]=0;

q[23:

0]={qs,qf,qm};

elseq={qn,qy,qr};

3.调试过程

在调试过程中出现很多问题,在时分秒里加入分频器可以实现计时,但是闹钟就不能实现1秒钟闪烁一次的功能,当给闹钟加上一个分频器的时候,时分秒模块也不能自动计时。

首先认识到必须只能有一个分频器,而且还能同时给两个提供脉冲。

所以就删除了时分秒里的分频器,在总的图中加入一个分频器,同时给两个提供脉冲,这样两个功能都可以同时实现。

4.功能测试

4.1测试仪器与设备

电脑,EDA实训仪。

4.2性能指标测试

S0、S1控制手动切换和自动切换,当S0、S1都往上拨或都往下拨都是自动切换,SO上拨S1下拨是显示并可以校准时分秒的,反之是显示和校准年月日的。

K8、K7、K6分别是校准年月日或时分秒的。

K0是复位功能

5实训心得体会

通过这次EDA实训,把课堂上学习的知识又巩固了一遍,也更加熟悉了对quartusII软件的使用。

这次我们小组选作数字日历这个题目,创新点在于闹钟模块,可以实现闹钟的功能。

通过小组的分工合作,把大家的思路整合在一起,在一起分析程序的使用,互相学习,更加理解了程序的用法。

EDA的功能很强大,去除了传统算法的复杂,是程序简单化,几个语句就可以实现想要的功能。

在我们所做的日历中,分别用到计数,分频,选择器这些最基本的功能,然后加以改善和创新,实现了日历的功能。

6.参考文献:

江国强.EDA技术与应用(第三版).北京:

电子工业出版社,2011

附录

附录1:

仿真波形图

1.分频器仿真波形图

2.时分秒仿真波形图

3.年月日仿真波形图

4.闹钟仿真波形图

附录2:

程序清单:

程序1

程序2

程序3

程序4

//校时模块

程序5

//分频器模块

程序6

//控制器模块

程序7

//闹钟模块

程序8

//数码管显示模块

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

当前位置:首页 > 求职职场 > 简历

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

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