数字钟实验报告

时间:2024.4.29

数字钟实验报告

1. 设计要求

在Xilinx FPGA上实现可以校时和清零的数字钟。

2. 实验程序

下面是采用8421BCD计数,并行在一个模块中实现时钟的Verilog程序。时钟主程序可以用一个模块实现,另外还有数码管动态显示、初始化、校时和计时模块。主时钟(50MHz)分频得到秒信号,计秒到60时分加1,计分到60时,分清零。 //顶层设计

module clock(input clk,

input en,

input key1,

input key2,

input key3,

input key4,

output sec,

output wire[7:0] seg,

output wire[3:0] digit

);

wire[3:0] num0,mum1,num2,num3;

disp u0(clk,num0,mum1,num2,num3,seg,digit);

clk_gen u1(clk,en,key1,key2,key3,key4,sec,num0,mum1,num2,num3);

endmodule

////////////////////////////////////数码管动态显示

module disp(input clk,

input [3:0] num0,

input [3:0] num1,

input [3:0] num2,

input [3:0] num3,

output reg[7:0] sm_seg,

output reg[3:0] an

);

reg[1:0] s;

reg[3:0] digit;

reg[16:0] clkdiv;

always@(*)

begin

an=4'b1111;//禁止所有数码管显示

s<=clkdiv[16:15];//间隔2.6ms使能an

an[s]=0;//根据s使能数码管其中之一

case(s)//根据s取对应的数码管上要显示的数据

0:digit<=num0;

1:digit<=num1;

2:digit<=num2; 3:digit<=num3; default:digit<=num0; endcase

case(digit)//七段译码表,跟书上的其实是一样的,只不过用的是16进制

4'h0 : sm_seg = 8'hc0; // "0"

4'h1 : sm_seg = 8'hf9; // "1"

4'h2 : sm_seg = 8'ha4; // "2"

4'h3 : sm_seg = 8'hb0; // "3"

4'h4 : sm_seg = 8'h99; // "4"

4'h5 : sm_seg = 8'h92; // "5"

4'h6 : sm_seg = 8'h82; // "6"

4'h7 : sm_seg = 8'hf8; // "7"

4'h8 : sm_seg = 8'h80; // "8"

4'h9 : sm_seg = 8'h90; // "9"

default : sm_seg = 8'hff; // "x"

endcase

end

always@(posedge clk)//主时钟计数:50MHz时钟,周期20ns,计数到1FFFFh时长2621420ns,约2.6ms

clkdiv<=clkdiv+17'd1;

endmodule

///////////////////////////////////////////初始化

module clk_gen(input clk,

input en,

input bt0,

input bt1,

input bt2,

input bt3,

output reg sec,

output [3:0] num0,

output [3:0] num1,

output [3:0] num2,

output [3:0] num3

);

reg[25:0] ctr;

reg[3:0] time[3:0];

reg[7:0] s;

assign num0=time[0];

assign num1=time[1];

assign num2=time[2];

assign num3=time[3];

always@(posedge clk)//产生秒脉冲

begin

ctr<=ctr+26'd1;

if(ctr==25000000-1)

begin

ctr<=0;

sec<=~sec;

end

end

//wire sen;

//assign sen=(sec)|(bt0)|(bt1)|(bt2)|(bt3);

always@(negedge sec)//校时阶段

if(!en)//使能无效

begin

if(bt0)

begin

time[0]<=time[0]+4'd1;

if(time[0]==9) time[0]<=0;

end

else if(bt1)

begin

time[1]<=time[1]+4'd1;

if(time[1]==5) time[1]<=0;

end

else if(bt2)

begin

time[2]<=time[2]+4'd1;

if(time[2]==9) time[2]<=0;

end

else if(bt3)

begin

time[3]<=time[3]+4'd1;

if(time[3]==2) time[3]<=0;

end

if(time[3]==2 && time[2]==3 && bt2 || time[3]==2 && time[2]==3 && bt3)//显示23时,按下左一或左二按钮可回到00

begin

time[2]<=0;

time[3]<=0;

end

end

else//使能有效,计时阶段

begin

s<=s+1;//s计数,当s从0到59时,计秒得分 if(s==59)

begin

s<=0;

time[0]<=time[0]+4'd1;

if(time[0]==9)

begin

time[0]<=0;

time[1]<=time[1]+4'd1;

if(time[1]==5)

begin

time[1]<=0;

time[2]<=time[2]+4'd1;

if(time[3]==2 && time[2]==3) begin

time[2]<=0;

time[3]<=0;

end

if(time[2]==9)

begin

time[2]<=0;

time[3]<=time[3]+4'd1;

end

end

end

end

end

endmodule

3.编写约束文件

#Basys2约束文件

NET "clk" LOC = "B8";

NET"seg[0]" LOC="L14";

NET"seg[1]" LOC="H12";

NET"seg[2]" LOC="N14";

NET"seg[3]" LOC="N11";

NET"seg[4]" LOC="P12";

NET"seg[5]" LOC="L13";

NET"seg[6]" LOC="M12";

NET"seg[7]" LOC="N13";

NET "digit[0]" LOC = "F12";

NET "digit[1]" LOC = "J12";

NET "digit[2]" LOC = "M13";

NET "digit[3]" LOC = "K14";

NET "key4" LOC = "A7"; # Bank = 2, Signal name = BTN3

NET "key3" LOC = "M4"; # Bank = 2, Signal name = BTN2

NET "key2" LOC = "C11"; # Bank = 2, Signal name = BTN1

NET "key1" LOC = "G12"; # Bank = 2, Signal name = BTN0

NET "en" LOC = "P11"; # Bank = 2, Signal name = sw0

NET "sec"LOC="M5";

4.心得体会

这次设计数字钟的EDA实验让我了解了模块化的设计思路,熟悉了对于七段译码器和脉冲发生器的编程步骤,并且对时钟置数的概念有了更深的了解,在程序的调试中进一步掌握了Verilog语言。数字钟经检验达到了实验的预期目的,也锻炼了我的自主学习能力、理解能力、学习效率和创造能力。


第二篇:数字钟实验报告 3


       计数、译码、显示与简易数字钟插板

           院系: 光电信息工程

             班级: 光电1101

             姓名:  张逸飞

             学号:  U201114938

             指导老师: 左东红

一、实验目的:

   1、掌握中规模集成计数器CC40161的逻辑功能。

   2、掌握计数、译码、显示电路的实现与调试方法。

   3、掌握小规模数字系统装调方法。

二、实验任务与要求:

   采用中规模集成电路设计完成数字钟基本功能及扩展功能。

基本功能:

   1. 具有“秒”、“分”、“时”计时的功能,小时按计数器按24小时制;

   2. 具有校时功能,能对“分”和“时”进行调整;

   3. 具有手动输入设置定时闹钟的功能。

扩展功能(两组合作完成)

   1. 仿广播电台整点报时: 在59分(51、53、55、57)秒发出低音500Hz信号,在59分59秒时发出一次高音1kHz信号,音响持续1秒钟,在1kHz音响结束时刻为整点。

   2. 报整点:几点敲几下。

三、电路的设计过程:

1、振荡器的设计:

     选用NE555构成多谐振荡器,使振荡频率f=1Hz,电路参数如下图所示。输出端正好可得到1Hz的标准脉冲。

 

2、分、秒、时计数器的设计:

     分和秒计数器都是模为60的计数器,其计数规律为00-01…-58-59-00…,选CD40161作六、十进制计数器,再将它们级联组成模数为60的计数器。利用并行进位的级联方式,如下图:

 

时计数器是一个24进制计数器,其计数规律为00—01—…—22—23—00…即当数字钟运行到23时59分59秒时,秒的个位计数器再输入一个秒脉冲时,数字钟应自动显示为00时00分00秒。

选两片CD40161级联组成模24的计数器构成时计数器。级联方式跟分秒计数器一样,即也用并行进位方式。

四、调试过程:

调试过程中发现计数器到9之后不能马上跳0,原因是使用同步清零需要等到下一个上升沿到来才会清零,改为异步清零后解决了这一问题。

五、实验的收获、体会与改进建议:

在本次数字钟的设计过程中,更进一步熟悉了芯片的结构,掌握了各芯片的工作原理及其具体的使用方式。在连接模六十计数器时熟悉了芯片引脚的功能。在连接电路的过程中,出错的主要原因都是导线和芯片的接触不良,还有连线错误也会导致出错。

本次试验主要的是连线与调试,需要考虑怎样正确连线并能正常显示结果,但是对电路本身的原理不是很清楚。不过总的来说,通过本次设计试验,增强了实验的动手能力及思考能力。

更多相关推荐:
数字钟实验报告

数字钟实验报告课题名称:数字钟的设计与制作组员:姓名:班级:电气信息I类112班实验时间:实验地点:指导老师:一、实验目的:1.学习了解数码管,译码器,及一些中规模器件的逻辑功能和使用方法。2.学习和掌握数字钟…

数字钟实验报告

数字钟设计实验报告实习内容实习形式学生姓名学号专业班级实习单位实习时间认识实习社会调查教学实习生产临床劳动毕业实习集中分散彭云610020xx71信息工程学院电气信息I类092班南昌大学20xx1120xx12...

数字电子时钟实验报告

华大计科学院数字逻辑课程设计说明书题目:多功能数字钟专业:计算机科学与技术班级:网络工程1班***学号:****完成日期:20XX-9一、设计题目与要求设计题目:多功能数字钟设计要求:1.准确计时,以数字形式显…

基于数字电路的数字钟实验报告

计算机与信息技术学院设计性实验报告一实验目的选择适当的计数器和译码器设计24进制计数器和60进制计数器并将设计好的24进制计数器和60进制计数器组合可显示小时分钟和秒的数字时钟二实验仪器装有Proteus软件的...

数电课程实验报告——数字钟的设计

数字电子技术课程设设计题目班级学号学生姓名指导教师时间计报告数字钟的设计20xx年12月27日20xx年1月2日数字电子技术课程设计任务书一设计题目数字钟的设计二设计任务与要求1时钟显示功能能够以十进制显示时分...

EDA数字钟实验报告

EDA实现多功能数字钟实验报告实验EDA实验数字钟一实验任务用FPGA器件和EDA技术实现多功能数字钟的设计已知条件1MAXPlusII软件2FPGA实验开发装臵基本功能1以数字形式显示时分秒的时间2小时计数器...

数字钟实验报告

实实验名称学生姓名学号专业班级验报告数字钟设计制作20xx年12月30日数字钟的设计制作一设计报告内容1目的2设计指标3设计制作要求4实验报告要求5实验工具器件6设计原理7电路的安装调试与检测8设计心得与体会二...

数字钟实验报告

南昌大学实验报告实验四多功能数字钟设计学生姓名学号专业班级实验类型验证综合设计创新实验日期实验成绩一实验目的1学习综合且较复杂数字系统设计2学习多层次多模块数字系统设计3学习数码管扫描显示电路设计二设计要求完成...

数字钟实训报告

实验项目数字钟设计与制作一设计指标1显示时分秒2可以24小时制或12小时制3具有校时功能可以对小时和分单独校时对分校时的时候停止分向小时进位校时时钟源可以手动输入或借用电路中的时钟4具有正点报时功能正点前10秒...

单片机数字时钟实验报告

数字时钟实验报告一实验目的1熟悉单片机的结构和各引脚的的功能以及如何用程序控制2学习用单片机对数字时钟控制按键扫描及LED数码管显示的设计方法3了解键盘的结构以及工作原理通过单片机的定义实现对数码管时钟的调整二...

南昌大学数字钟设计实验报告

数字电路与逻辑设计实验实验报告题目学院信息工程学院系电子信息工程专业班级学号学生姓名同组同学指导教师递交日期23页第1页共南昌大学实验报告学生姓名学号专业班级实验类型验证综合设计创新实验日期实验成绩数字钟电路设...

数字时钟设计实验报告

电子课程设计题目数字时钟数字时钟设计实验报告一设计要求设计一个24小时制的数字时钟要求计时显示精度到秒有校时功能采用中小规模集成电路设计发挥增加闹钟功能二设计方案由秒时钟信号发生器计时电路和校时电路构成电路秒时...

数字钟实验报告(43篇)