电子技术课程设计--数字钟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:多功能数字钟
一、设计任务及要求
基于EDA/SOPC系统开发平台和八位七段管码显示模块,运用QuartusⅡ可编程逻辑器件开发软件,设计一个多功能数字钟。
二、设计原理
多功能数字钟应该具有的功能:显示时-分-秒。
整个电子钟的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围是从0~23时。
复位后全部显示00-00-00。
在设计中为了显示的方便,分钟和秒钟(显示的范围都是从00~59),小时(00~23)的十位和个位都应该采用十进制计数器。
八位七段管码显示模块说明:设计中七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用1000H Z 。
为了得到1000Hz信号,必须对输入的时钟信号50MH Z进行分频。
显示模块共用10个管脚,其中7个用于连接8个数码管的七段LED,还有3个管脚用于选择点亮哪个数码管,每隔很短的一段时间8个数码管交替点亮,依次循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器的计数值。
三、设计原理及方案
1.电子钟计时电路模块:
module shijian(clk1,rst,hour,min,sec);
input clk1,rst;
output reg [7:0] hour,min,sec;
always@(negedge clk1)
begin
if(!rst)
begin
hour=0;
sec=0;
min=0;
end
else
begin
if(sec<60) sec=sec+1;
if(sec>60) sec=0;
if(sec==60)
begin
sec=0;
if(min<60)
min=min+1;
if(min>60) min=0;
if(min==59)
begin
min=0;
if(hour<24)
hour=hour+1;
else
hour=0;
end
end
end
end
endmodule
2.分频器模块:
module fenpin1k(cp,clk1000); input cp;
output clk1000;
reg[32:0]cnt;
reg clk1000;
always@(posedge cp)
begin
if(cnt==49999)
begin
clk1000=1;
cnt=0;
end
else
begin
clk1000=0;
cnt=cnt+1;
end
end
endmodule
3.模8计数器模块:
module mo8xuanze(clk,out,sel2,sel1,sel0);
input clk;
output reg[2:0] out;
output reg sel2,sel1,sel0;
always @(posedge clk)
begin
if(out<3'b111)
out=out+1;
else
out=3'b000;
sel2=out/4;
sel1=out/2%2;
sel0=out%2;
end
endmodule
4.显示译码选择模块:
module ledyima(ctrl,hour,min,sec,A,B,C,D,E,F,G); input[2:0] ctrl;
input[7:0] hour,min,sec;
output reg A,B,C,D,E,F,G;
reg[6:0] out;
reg[3:0] data;
always
begin
case(ctrl)
3'b000:data=hour/10;
3'b001:data=hour%10;
3'b011:data=min/10;
3'b100:data=min%10;
3'b110:data=sec/10;
3'b111:data=sec%10;
default:data=10;
endcase
case(data)
0:out=7'b1111110;
1:out=7'b0110000;
2:out=7'b1101101;
3:out=7'b1111001;
4:out=7'b0110011;
5:out=7'b1011011;
6:out=7'b0011111;
7:out=7'b1110000;
8:out=7'b1111111;
9:out=7'b1110011;
default:out=7'b0000001;
endcase
A=out/64%2;
B=out/32%2;
C=out/16%2;
D=out/8%2;
E=out/4%2;
F=out/2%2;
G=out%2;
end
endmodule
5.总体电路图:
四、仿真、测试结果
(一)仿真:
1)电子钟计时电路模块的仿真结果:
2)模8计数器的仿真结果:
3)分频器仿真结果:
(二)测试:
每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围是从0~23时,显示均为十进制动态显示。
五、总结与讨论
在这次多功能数字钟设计与仿真调试中,我收获了很多,刚开始我因为对程序语言不熟悉进行的很不顺利,通过学习,我更加清楚了设计电路的verilog语言,能够设计简单的电路模块。
在老师的细心讲解下,我懂得了数字钟的原理与设计思想,这次课程设计是我对所学知识进一步巩固,提高了自己对Quartus Ⅱ软件的熟悉程度,将所学的知识成功运用到实际生活中,让我体会到理论联系实际的快乐。
在整个过程中,首先,要根据设计要求思考原理及实现方式,根据自己的方案,查阅相关知识。
其次,将整体的设计分成一个个子模块,对子模块进行设计。
最后将子模块组合成为总体电路并进行仿真调试,过程中要认真仔细。
在对设计中出现的问题充分思考和有效解决的过程中,我增加了对电路设计的兴趣。
在调试时,老师对我程序中出现的错误及时指出,使我认识到自己的不足,及时改正,在此感谢老师的指导。