电子技术课程设计--数字钟

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档