当前位置:文档之家› EDA设计数字钟实验报告

EDA设计数字钟实验报告

EDA设计数字钟实验报告
EDA设计数字钟实验报告

南京理工大学

EDA(Ⅱ)实验报告

——多功能数字钟

姓名:

学号:

学院:

指导教师:

时间:2014/11/3~2014/11/7

摘要

日益复杂的电子线路使得基于原理图的设计越来越复杂,甚至不切实际。硬件描述语言的诞生,对设计自动化起到了极大的促进和推动作用。Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,实现了从算法级、门级到开关级的多种抽象设计层次的数字系统建模,具有仿真,验证,故障模拟与时序分析等功能。

本文利用Verilog HDL语言,采用自顶向下的设计方法设计多功能数字钟,并通过QuartusⅡ分块进行了仿真。此程序通过下载到FPGA芯片后,可实现实际的数字钟显示,具有基本的计时显示和设置,时间校正,整点报时,12h/24h转换,闹钟设置和闹铃控制的功能。

关键词: FPGA, Verilog HDL, QuartusⅡ, EP3C25F324C8,数字钟

Abstract

The development of electronic circuit has grown to be too complicated to be designed base on schematic diagram. The birth of HDL accelerated the development of electronic design automation drastically. Verilog HDL is one of the HDL with multiple and strong functions.

In this thesis, a complex digital system is designed in the bottom-up way with Verilog HDL and is simulated by QuartusⅡ. The function of a digital clock can be realized by downloading the program to FPGA, which includes timing, time-setting, hourly chiming, 12/24transforming, bell-setting and bell-controlling.

Keywords: FPGA, Verilog HDL, QuartusⅡ, EP3C25F324C8,

Digital clock

目录

摘要

Abstract

第一章数字钟设计要求说明

第二章数字钟的设计思路和工作原理第三章模块的Verilog HDL设计与仿真

3.1 计数器模块

3.2 基本计时顶层模块

3.3 分频模块

3.4 整点报时模块

3.5闹钟模块

3.6 LED数码管显示模块

3.7 数字钟顶层模块

第四章FPGA实现

第五章总结

5.1 遇到的问题与解决方案

5.2 尚存在的不足之处

5.3 收获与感悟

参考文献

第一章数字钟设计要求说明

(一)数字钟可以正常进行基本的时,分,秒计时功能。

(二)分别由六个数码管显示时分秒的计时。

(三)可以对数字钟的小时和分钟进行校正。

(四)具有整点报时功能,在时钟计时到59分53秒时开始报时,在59分53秒,55秒,57秒时报时频率为500Hz, 59分59秒时

报时频率为1kHz。

(五)具有闹钟设定功能,具体到小时和分钟,默认模式下闹钟响一分钟。有按键可以控制闹钟是否发出声响。

(六)可以进行12/24小时转换。

(七)具有重置清零功能。

第二章数字钟的设计思路和工作原理

本文中的数字钟设计采用自底向上的设计方法,共分为三层。

首先设计基础模块,包括模6,10,12,24,60 计数器模块,系统频率48MHz到2kHz和1kHz分频模块,1kHz到500Hz,250Hz,1Hz的分频模块,整点报时模块,闹钟模块,LED显示模块。然后,用一个顶层模块控制模12,24,60计数器模块构成基本的计时模块;再用一个顶层模块控制两个分频模块,实现分频模块的统一。最后用一个总的顶层电路,统一之前的子模块,实现数字钟的Verilog HDL描述。如下图方框图所示。

其工作原理是:由系统晶振产生48MHz的稳定的高频脉冲信号,作为数字钟的时间基准,再经过分频器输出标准秒脉冲。模60计数器作为分钟和秒计数器,秒计数器计满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器由模24计数器计数。计数器的输出送至LED译码显示电路,即可显示时间。计时出现误差时可以用校正电路对小时和分钟进行计数。整点报时电路和闹钟电路为基本计时电路的功能拓展,只有在基本计时模块正常运行的情况下才能运行。

第三章模块的Verilog HDL设计

3.1计数器模块

3.1.1 模24小时计数器

小时计数器的计数规律为00-01-02-03……10-11-12……22-23-00……,这样就要求在设计时小时计数器的个位和十位均按照8421BCD码计数。程序如下:

//counter24.v (BCD计数0~23)

module counter24(CounterH,CounterL,nCR,EN,CP);

input CP,nCR,EN; //timing impulse CP,zero clearing singal nCR,enable singal EN output [3:0] CounterH,CounterL;

reg [3:0] CounterH,CounterL;

/*定义了两个四位Reg型矢量,等效于8个变量(CounterH[0]、CounterH[1]、CounterH[2]、CounterH[3]),(CounterL[0]、CounterL[1]、CounterL[2]、CounterL[3])*/

always@(posedge CP or negedge nCR)

//时钟上升沿或清零信号跳变为低电平时,条件为真

begin

if(~nCR) {CounterH,CounterL}<= 8'h00; //nCR=0,异步清零else if (~EN) {CounterH,CounterL}<={CounterH,CounterL};

//对使能信号无效的处理

else if ((CounterH>2)||(CounterL>9)||(CounterH==2)&&(CounterL>=3))

{CounterH,CounterL}<=8'h00;

//对小时计时器出错的处理

else if ((CounterH==2)&&(CounterL<3))

begin CounterH<=CounterH; CounterL<=CounterL+1'b1;end

//进行20到23计数

else if (CounterL==9)

begin CounterH<=CounterH+1'b1; CounterL<=4'b0000;end

//小时十位进位计数

else

begin CounterH<=CounterH; CounterL<=CounterL+1'b1;end

//小时个位计数

end

endmodule

3.1.2 模60分钟和秒计数器

分和秒计数器的计数规律为00-01-……-09-10-11-……-58-59-00……,可见个位计数器从0~9计数,十位计数器从0~5计数。因此可以先分别设计一个十进制计数器和一个六进制计数器模块,然后组合成60进制模块。程序如下:

module counter10(Q,nCR,EN,CP);

input CP,nCR,EN;

output [3:0] Q;

reg [3:0] Q;

//定义了一个四位Reg型矢量,等效于4个变量(Q[0]、Q[1]、Q[2]、Q[3])always @(posedge CP or negedge nCR)

//时钟上升沿或清零信号跳变为低电平时,条件为真

begin

if(~nCR) Q<=4'b0000; //nCR=0,计数器被异步清零

else if (~EN) Q<=Q; //EN=0,使能无效,暂停计数

else if (Q==4'b1001) Q<=4'b0000;

else Q<=Q+1'b1; //计数器増1计数

end

endmodule

module counter6(Q,nCR,EN,CP);

input CP,nCR,EN;

output [3:0] Q;

reg [3:0] Q;

always@(posedge CP or negedge nCR)

begin

if (~nCR) Q<=4'b0000; //nCR=0,计数器被异步清零

else if (~EN) Q<=Q; //EN=0,暂停计数

else if (Q==4'b0101) Q<=4'b0000;

else Q<=Q+1'b1; //计数器増1计数

end

endmodule

module counter60(Counter,nCR,EN,CP);

input CP,nCR,EN;

output [7:0] Counter; //模六十计数器的输出信号

wire [7:0] Counter; //输出为8421BCD码

wire ENP; //计数器十位的使能信号(中间变量)counter10 UC0 (Counter[3:0],nCR,EN,CP); //计数器的个数

counter6 UC1 (Counter[7:4],nCR,ENP,CP); //计数器的十位

assign ENP=(Counter[3:0]==4'h9); //产生计数器十位的使能信号endmodule

3.1.3 模12小时计数器

在12/24小时转换后,小时将需要模12计数器进行计数。思想与模24计数器相同,具体程序如下:

//counter12.v (BCD0~11)

module counter12(CntH,CntL,nCR,EN,CP);

input CP,nCR,EN; //timing impulse CP,zero clearing singal nCR,enable singal EN output [3:0] CntH,CntL;

reg [3:0] CntH,CntL;

always@(posedge CP or negedge nCR)

begin

if(~nCR) {CntH,CntL}<= 8'h00;

else if (~EN) {CntH,CntL}<={CntH,CntL};

else if ((CntH>1)||(CntL>9)||(CntH==1)&&(CntL>=1))

{CntH,CntL}<=8'h00;

else if ((CntH==1)&&(CntL<1))

begin CntH<=CntH; CntL<=CntL+1'b1;end

else if (CntL==9)

begin CntH<=CntH+1'b1; CntL<=4'b0000;end

else

begin CntH<=CntH; CntL<=CntL+1'b1;end

end

endmodule

3.2 基本计时顶层模块

数字钟基本计时模块包括正常计时和对事件进行校正两部分。由分秒时三个计数器模块组成一个顶层模块完成数字钟的主要功能。

电路的工作过程是:

由AdjHrkey 和AdjMinkey 对小时和分钟进行校正。进行时间调整时,将相应的调整控制端置为高电平,此时将1Hz信号直接输入小时或分计数器,每秒钟来一个时钟信号,计数器加1计数,调整到目

标值后,将相应控制端置回低电平,恢复正常小时或者时间计数,实现对小时和分钟的校正。

正常计时时,秒计数器接收分频器输出的标准秒脉冲信号作为时钟,当秒计数达到59秒时,产生的输出信号作为分计数器的时钟信号,当秒和分计数器同时达到59时,产生的输出信号作为小时计数器的时钟信号,时分秒计数器的使能端始终保持高电平,通过控制他们的时钟实现计时功能。

计时和校正两种模式下的转换通过一个二选一数据选择器实现。

为了实现12/24小时计时转换,设置控制键Mode2,当Mode2=1时,显示24小时制计时,当Mode2=0时,显示12小时制计时。

具体程序如下:

//top_clock.v

module top_clock (Hour,Minute,Second,_1Hz,nCR,AdjMinkey,AdjHrkey,Mode2); input _1Hz,nCR,AdjMinkey,AdjHrkey;

output[7:0] Hour,Minute,Second;

wire[7:0] Hour,Hour_24,Hour_12, Minute, Second;

supply1 Vdd; //定义Vdd为高电平

wire MinCP,HrCP; //分别为分钟,小时计数器时钟信号的中间变量

input Mode2;

/*控制显模式切换的按键

Mode2=1时,显示24小时制,Mode2=0时,显示12小时制*/

//Hour:Minute:Second counter

counter60 UT1(Second,nCR,Vdd,_1Hz);

counter60 UT2(Minute,nCR,Vdd,~MinCP);

counter24 UT3(Hour_24[7:4],Hour_24[3:0],nCR,Vdd,~HrCP);

counter12 UT4(Hour_12[7:4],Hour_12[3:0],nCR,Vdd,~HrCP);

_2to1MUX MU1(Hour,Mode2,Hour_24,Hour_12);

assign MinCP= AdjMinkey ? _1Hz : (Second==8'h59);

//产生分钟计数器时钟信号。AdjMinkey=1,校正分钟;AdjMinkey=0分钟正常计时

assign HrCP= AdjHrkey ? _1Hz : ({Minute,Second}== 16'h5959);

//产生小时计数器时钟信号。AdjHrkey=1,校正小时;AdjHrkey=0小时正常计时

endmodule

module _2to1MUX (OUT ,SEL,X,Y);

input [7:0] X,Y;

input SEL;

output [7:0] OUT;

assign OUT=SEL? X:Y;

endmodule

将模24计数器,模60计数器,和计时顶层模块输入QuartusⅡ,将top_clock.v设为顶层文件,进行编译和仿真可以得到计时模块的计时校准清零工作波形和进位工作波形,可见是符合设计要求的。(仿真时,为了便于观察所有进位信号,将1Hz人为设定为1kHz。)

3.3 分频模块

分频电路分为两个子模块,一是将系统晶振频率分频至1kHz;二是由1kHz产生标准的1Hz秒信号, 并提供功能扩展电路所需要的500Hz信号。

之所以分成两个子模块进行分频,是因为如果直接加48MHz信号作为输入,很难得到最终的仿真波形。接下来在测试电路的功能时,均

用1kHz直接作为输入信号。如要观察整个分频模块的功能,需将分频模块下载至FPGA,将1Hz输出接至LED灯观察闪烁频率。

具体程序如下:

//Top_Frequency

module Top_Frequency(_48MHz,_1kHzIN,_1HzOut,_500HzOut,nCR);

input _48MHz,nCR;

output _1kHzIN,_500HzOut,_1HzOut;

wire _1kHzIN;

wire _1HzOut,_500HzOut;

Original_Frequency U0(_1kHzIN,_48MHz,nCR);

Divided_Frequency U1(_1HzOut,_500HzOut,nCR,_1kHzIN);

endmodule

//Original_Frequency

module Original_Frequency (_1kHzIN,_48MHz,nCR);

input _48MHz,nCR;

output _1kHzIN;

supply1 Vdd;

wire [19:0]Q;

wire EN1,EN2,EN3,EN4;

counter10 EU0(Q[3:0],nCR,Vdd,_48MHz);

counter10 EU1(Q[7:4],nCR,EN1,_48MHz);

counter10 EU2(Q[11:8],nCR,EN2,_48MHz);

counter6 EU3(Q[15:12],nCR,EN3,_48MHz);

counter10 EU4(Q[19:16],nCR,EN4,_48MHz);

assign EN1=(Q[3:0]==4'h9);

assign EN2=(Q[7:4]==4'h9)&(Q[3:0]==4'h9);

assign EN3=(Q[11:8]==4'h9)&(Q[7:4]==4'h9)&(Q[3:0]==4'h9);

assign

EN4=(Q[15:12]==4'h5)&(Q[11:8]==4'h9)&(Q[7:4]==4'h9)&(Q[3:0]==4'h9);

assign _1kHzIN=Q[18];

endmodule

module Divided_Frequency(_1HzOut,_500HzOut,nCR,_1kHzIN);

input _1kHzIN,nCR;

output _1HzOut,_500HzOut;

supply1 Vdd; //定义Vdd为高电平

wire [11:0] Q; //计数器的输出信号(中间变量)

wire EN1,EN2; //计数器使能信号(中间变量)

counter10 DU0(Q[3:0],nCR,Vdd,_1kHzIN); //调用十进制计数器模块

counter10 DU1(Q[7:4],nCR,EN1,_1kHzIN);

counter10 DU2(Q[11:8],nCR,EN2,_1kHzIN);

assign EN1=(Q[3:0]==4'h9);

assign EN2=(Q[7:4]==4'h9)&(Q[3:0]==4'h9);

assign _1HzOut=Q[11];

assign _500HzOut=Q[0];

endmodule

3.4 整点报时模块

ALARM_Radio为输出的整点报时信号,Minute、Second分别为数字钟计数器此时的分钟和秒钟信号,它们作为本模块的输入。程序中用if-else语句判断数字钟此时分钟计数器是否为59,若为59,再用case-endcase语句判断秒钟计数器是否为53,55,57,59,满足要求的即输出相应频率的信号。每一次整点,共发出三次低音一次高音,以最后一声高音结束,高音结束时为整点。具体程序如下:

//Radio.v

module Radio (ALARM_Radio,Minute,Second,_1kHzIN,_500Hz);

input _1kHzIN,_500Hz; //定义输入端口变量

input [7:0] Minute,Second;

output ALARM_Radio; //定义输出端口变量

reg ALARM_Radio; //说明变量的类型

always@ (Minute or Second) //generate alarm signal

if (Minute==8'h59)

case (Second)

8'h53,

8'h55,

8'h57:ALARM_Radio=_500Hz;

8'h59:ALARM_Radio=_1kHzIN;

default :ALARM_Radio=1'b0;

endcase

else ALARM_Radio=1'b0;

endmodule

3.5 闹钟模块

用SetHrkey和SetMinkey分别作为小时分钟设置键,它们的输入信号分别作为闹钟设置界面计数器的小时计数器和分钟计数器的使能

端。闹钟设置计数器输出的小时和分钟记作Set_Hr和Set_Min,为闹钟的设定时刻。当Set_Hr,Set_Min与基础计时电路的Minute,Hour 相等时,驱动音响电路,奇数秒时为低音,偶数秒时为高音。为了能随时关掉闹钟,设置了一个控制键CtrlBell,CtrlBell为高电平时闹铃响铃,为低电平时闹铃驱动信号无效。具体程序如下:

module Bell (ALARM_Clock,Set_Hr,Set_Min,Hour,Minute,Second,SetHrkey,

SetMinkey,_1kHzIN,_500Hz,_1Hz,CtrlBell);

output ALARM_Clock;

output [7:0]Set_Hr,Set_Min; //设定的闹铃时间

wire[7:0]Set_Hr,Set_Min;

wire ALARM_Clock; //闹铃输出信号

input _1kHzIN,_500Hz,_1Hz; //定义输入端口变量

input SetHrkey,SetMinkey; //设定闹钟小时、分钟的输入键

input CtrlBell; //控制闹钟的时间是否输出的按键

input [7:0]Hour,Minute,Second; //定义内部节点信号

supply1 Vdd; //定义Vdd为高电平

wire HrH_EQU,HrL_EQU,MinH_EQU,MinL_EQU; //比较器的内部信号

wire Time_EQU; //相等比较电路的输出

//闹钟设定模块(Set Hour &Minute counter)

//60进制分钟比较器:用于闹钟设定分钟

counter60 SU1(Set_Min,Vdd,SetMinkey,_1Hz);

//24进制小时计数器:用于闹钟设定小时

counter24 SU2(Set_Hr[7:4],Set_Hr[3:0],Vdd,SetHrkey,_1Hz);

//比较闹钟的设定时间和计数器的当前时间是否相等

_4bitcomparator SU4(HrH_EQU,Set_Hr[7:4],Hour[7:4]);

_4bitcomparator SU5(HrL_EQU,Set_Hr[3:0],Hour[3:0]);

_4bitcomparator SU6(MinH_EQU,Set_Min[7:4],Minute[7:4]);

_4bitcomparator SU7(MinL_EQU,Set_Min[3:0],Minute[3:0]);

//闹钟声音控制信号

assign Time_EQU= (HrH_EQU && HrL_EQU && MinH_EQU && MinL_EQU);

assign ALARM_Clock=CtrlBell ? (Time_EQU && (((Second[0]==1'b1)&&_500Hz)||((Second[0]== 1'b0)&&_1kHzIN))):1'b0; endmodule

//_4bitcomparator.v

module _4bitcomparator (EQU,A,B);//4-bit comparator

input[3:0] A,B;

output EQU=(A==B);

endmodule

3.6 LED数码管显示模块

动态扫描译码显示电路是6个七段显示器共用一个译码驱动电路,由扫描电路控制各位显示器分时进行显示。工作原理是:四个待显示的BCD码送到数据选择器的输入端,根据计数器产生的节拍,每个节拍由数据选择器选择一个4位BCD码送到七段译码器进行译码,译码后的七段码同时送至显示器输入端,由位选择信号(SG1~SG8)选择显示器将数码显示出来。经测试,本次试验用到的仪器,当位选择信号为0时显示,为1时熄灭。位选择信号由计数器的输出经过3-8译码器得到。

具体用Verilog HDL语言实现时,采用了两个always块,第一个always 块完成3-8线译码、输入数据选择和计数功能,第二个always块完成七段译码的功能。

另外值得注意的是,计数器的节拍需适度控制快慢,太慢会产生闪烁,太快会产生余辉。本实验中选择1kHz的频率。(在硬件测试中发现500Hz已经可以清晰稳定的显示了)具体程序如下:

module

LED2(CP,LED_HrH[3:0],LED_HrL[3:0],LED_MinH[3:0],LED_MinL[3:0],LED_ SecH[3:0],LED_SecL[3:0],Segout,Seg_in,Count,SG1,SG2,SG3,SG4,SG5,

SG6,SG7,SG8);

input CP; //1kHz clock

input [3:0] LED_HrH,LED_HrL,LED_MinH,LED_MinL,LED_SecH,LED_SecL; output[6:0]Segout; // 7-segment code output,segout[6...0]-gfedcba

output SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8; //select LED

output [3:0]Seg_in;

output [2:0]Count;

reg SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8;

reg [6:0]Segout;

reg [2:0]Count; //internal 3-bit counter

reg [3:0]Seg_in; //4-bit binary code

//select LED0~LED5 display

always@(posedge CP) //CP=1kHz

case(Count)

3'b000:begin {SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8}=8'b01111111;

//LED0 display

Seg_in=LED_HrH[3:0];

Count=Count+1; //Count=1

end

3'b001:begin {SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8}=8'b10111111;

//LED1 display

Seg_in=LED_HrL[3:0];

Count=Count+1; //Count=2

end

3'b010:begin {SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8}=8'b11011111;

//LED2 display

Seg_in=LED_MinH[3:0];

Count=Count+1; //Count=3

end

3'b011: begin {SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8}=8'b11101111;

//LED3 display

Seg_in=LED_MinL[3:0];

Count=Count+1; //Count=4

end

3'b100:begin {SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8}=8'b11110111;

//LED4 display

Seg_in=LED_SecH[3:0];

Count=Count+1; //Count=5

end

3'b101:begin {SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8}=8'b11111011;

//LED5 display

Seg_in=LED_SecL[3:0];

Count=Count+1; //Count=6

end

3'b110:begin {SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8}=8'b11111111;

//LED4 display

Seg_in=LED_SecH[3:0];

Count=Count+1; //Count=7

end

3'b111:begin {SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8}=8'b11111111;

//LED5 display

Seg_in=LED_SecL[3:0];

Count=Count+1; //Count=0

end

endcase

// BCD Code=>7 Segment Code(a~g)

always@(Seg_in)

case(Seg_in)

//gfedcba

4'b0000:Segout=7'b1000000;

4'b0001:Segout=7'b1111001;

4'b0010:Segout=7'b0100100;

4'b0011:Segout=7'b0110000;

4'b0100:Segout=7'b0011001;

4'b0101:Segout=7'b0010010;

4'b0110:Segout=7'b0000010;

4'b0111:Segout=7'b1111000;

4'b1000:Segout=7'b0000000;

4'b1001:Segout=7'b0010000;

4'b1010:Segout=7'b0001000;

4'b1011:Segout=7'b0000011;

4'b1100:Segout=7'b0100111;

4'b1101:Segout=7'b0100001;

4'b1110:Segout=7'b0000110;

4'b1111:Segout=7'b0001110;

default: Segout= 7'b0100011;

endcase

endmodule

为了初步测试LED数码管显示电路的功能,将LED2.v放到之前的top_clock.v的顶层模块下,得到仿真波形如下。可见是符合设计要求的。

3.7 数字钟顶层模块

组合之前设计的各个模块就可以得到具有数字钟功能的电路。它由7个模块组成,其中5个模块是通过调用下层模块实现,包括分频模块(U0),数字钟基本计时电路(U1),LED显示电路(U2),整点报时电路(U3),定时闹钟电路(U4)。另外2个模块直接在顶层程序中完成,扬声器的总控制模块用连续赋值语句“assign ALARM=ALARM_Radio || ALARM_Clock;”实现,达到将两个需要扬声器的信号组合起来输出的目的。用3个二选一数据选择器实现对显示其模式的切换,当Mode1=1时,显示闹钟设定时间。当Mode1=0时,显示计时器当前时间。

具体程序如下:

//Digital_Clock

module DC(LED_Hr,LED_Min,LED_Sec,ALARM,_48MHz,AdjMinkey,AdjHrkey, SetMinkey,SetHrkey,CtrlBell,Mode1,Mode2,nCR,Segout,Seg_in,Count,

SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8);

input _48MHz; //系统的输入时钟信号

input nCR; //系统总清零信号

output SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8; //select LED

output [7:0] LED_Hr,LED_Min,LED_Sec;

//输出变量,输出8421BCD码给显示器

wire [7:0] LED_Hr,LED_Min,LED_Sec; //说明变量的类型

wire _1kHzIN,_1Hz, _500Hz; //分频器输出信号

input AdjMinkey, AdjHrkey; //校正计时器小时、分钟的输入按键wire [7:0] Hour,Hour_24,Hour_12,Minute,Second; //计时器的输出信号input SetHrkey, SetMinkey; //设定闹钟小时、分钟输入按键

wire [7:0] Set_Hr,Set_Min; //设定的闹钟时间输出信号

wire ALARM_Radio; //仿电台报时信号输出

wire ALARM_Clock; //闹钟的信号输出

output ALARM; //仿电台或闹钟的声音信号输出input CtrlBell; //控制闹钟的声音是否输出的按键input Mode1,Mode2;

/*控制显示模式切换的按键

Mode1=1时,显示闹钟设定的时间,Mode1=0时,显示计时器的时间

Mode2=1时,显示24小时制,Mode2=0时,显示12小时制*/

output[6:0]Segout; // 7-segment code output,segout[6...0]-gfedcba

output[2:0]Count;

output [3:0]Seg_in;

Top_Frequency U0 (_48MHz,CP,_1Hz,_500HzOut,nCR);

top_clock U1 (Hour,Minute,Second,_1Hz,nCR,AdjMinkey,AdjHrkey,Mode2); //计时主体电路

LED2 U2 (CP,LED_Hr[7:4],LED_Hr[3:0],LED_Min[7:4],LED_Min[3:0],

LED_Sec[7:4],LED_Sec[3:0],Segout,Seg_in,Count,SG1,SG2,SG3,SG4,

SG5,SG6,SG7,SG8);

Radio U3 (ALARM_Radio,Minute, Second,CP,_500Hz); //整点报时

Bell U4 (ALARM_Clock, Set_Hr,Set_Min,Hour,Minute,Second,SetHrkey, SetMinkey,CP,_500Hz,_1Hz,CtrlBell);//定时闹钟模块

assign ALARM=ALARM_Radio || ALARM_Clock; //扬声器总控制模块

//选择要显示的数码送数模块

_2to1MUX MU2(LED_Hr,Mode1,Set_Hr,Hour);

_2to1MUX MU3(LED_Min,Mode1,Set_Min,Minute);

_2to1MUX MU4(LED_Sec,Mode1,8'h00,Second);

Endmodule

第四章FPGA实现

在仿真得到理想结果并完成器件选择和引脚分配(引脚分配如下图所示)之后,重新运行编译器,QuartusⅡ生成.sof等编程数据文件,通过下载电缆下载到预先选择的FPGA芯片中。下载完成后,数字钟开始工作,调节相应控制键可以改变数字钟的工作状态。

(不需要观察的输出端未分配引脚,未分配的引脚设置为高阻状态。)下载完成后,数字钟开始工作,调节下表相应的控制键可以改变数字钟的工作状态,实现相应功能。。

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

数字钟课程设计实验报告

《电子技术课程设计报告》 教学院:电气与电子信息工程学院 专业班级:xx级电子信息工程(x)班 学号:xxxxxxxxxxxx 学生:坏水 指导教师:xxxxxxxxxxxx 时间:2011.10.10~10.23 地点:电子技术实验室

课程设计成绩评定表

电子技术课程设计任务书 2011~2012学年第一学期 学生:坏水专业班级:xx电信本x班 指导教师:xxxxxxxxx 工作部门:电气与电子信息工程学院 一、课程设计题目:多功能数字钟电路的设计/直流稳压电源的设计 二、课程设计容(含技术指标): ①拟定多功能数字钟和直流稳压电源的组成框图,要现电路的基本功能,使用 的器件少,成本低; ②画出数字钟和直流稳压电源的主体电路逻辑图; ③测试多功能数字钟的逻辑功能,同时满足基本功能与扩展功能的要求; ④设计并安装各单元电路,要求布线整齐、美观,便于级联与调试;

四、基本要求 1.基本功能:要求设计出+5V的直流稳压电源。数字钟要求以数字形式显示时、分、秒的时间。小时计数器的计时要求为“12翻1”,要求具有手动校时功能。 2.扩展功能:定时控制,其时间自定;仿广播电台正点报时,自动报整点时数或触摸报整点时数(主要体现在理论知识上进行电路设计)。 (一)实训题目:直流稳压电源和多功能数字钟。 (二)实训目的: 1、巩固和加深学生对模拟电子技术,数字逻辑电路等课程基本知识的理解,综 合运用课程中所学到的理论知识去独立完成一个实际课题。 2、根据课程需要,通过查阅手册和文献资料,培养学生独立分析和解决实际问 题的能力。 3、通过电路方案的分析、论证和比较,设计计算和选用元气件,通过电路组装, 调试和检测环节,掌握电路的分析方法和设计方法。 4、熟用常用电子元气件的类型和特性,并掌握合理选用原则。 5、掌握电路图、PCB图的设计方法,学会电路的安装与调试。 6、掌握常用仪器、仪表的正确使用方法,学会电路整机指标的测试方法。(三)实训要求

南理工EDA2多功能数字钟设计实验报告(蒋立平)——优秀

EDAⅡ实验报告 --多功能数字钟 学院专业: 学生学号: 指导老师:蒋立平 交稿时间:2012年3月25日

摘要 本实验借助于quartusⅡ软件设计一个多功能的数字时钟,具有24小时计时、星期显示、保持、清零、校分校时校星期、整点报时等基本功能,并在此基础上添加了闹钟、音乐闹钟、秒表等附加功能。同时,留有万年历的接口可以方便的进行扩展。.利用quartusⅡ进行相应的设计、仿真、调试,最后下载到SmartSOPC实验系统上验证设计的正确性。 关键词:多功能数字时钟,quartusⅡ,计时,星期显示,整点报时,闹钟,秒表 ABSTRACT This experiment is to design a multifunctional digital clock with quartus Ⅱ.The multifunctional digital clock has varities of the functions like 24-hour timer,week,keeping,clearing zero,adjusting time and chime on integral hour .It also include additional functions such as alarm clock,stopwatch and so on.At the sametimes,it can be added calendar.we designed and simulated with quartusⅡ.Finally downloaded it to the experiment platform to test. Key words:multifunctional digital clock,quartusⅡ,time,week,chime on integral hour, alarm clock,stopwatch

电子电路数字钟实验报告

电子电路课程设计总结报告 (数字钟) 项目名称:数字钟 学院:机械工程学院 专业: 班级: 姓名:穆明国 指导老师:

一、课程设计题目 (3) 二、课程设计的设计任务和基本要求 (3) 三、课程设计题目分析 (3) 四、课程设计的电路设计部分 (5) 五、课程设计的总电路图 (9) 六、元器件的使用说明 (11) 七、课程设计的心得体会 (15) 八、参考文献 (15)

一、课程设计题目: 数字钟 二、课程设计任务和基本要求: 1)设计数字钟电路(每人一组,独立完成) 基本功能:准确计时,以数字形式显示时、分、秒的时间;小时的计时要求为24进位,分和秒的计时要求为60进位;能快速校正时、分的时间。 扩展功能:定点闹时功能,比如在7时59分发出闹时信号,持续时间为1分钟;整点报时功能,比如计时到整点时发出声音,且几点响几声。 2)提交设计报告(书面形式) 画出所设计电路的结构方框图;分析各部分的工作原理;所含集成电路的管脚和功能说明;通过Multisim 等软件对所设计电路进行仿真,提交仿真电路的原理图(电子版)。 3)制作数字钟(两人一组共同完成) 实现基本功能,给定统一的元器件,按照自己的设计方案在面包板上搭建实际电路,并达到设计要求。 三、课程设计题目分析: ☆设计要点 ●设计一个精确的秒脉冲信号产生电路 ●设计60进制、24进制计数器 ●设计译码显示电路 ●设计操作方面的校时电路 ●设计整点报时电路 ☆工作原理 数字电子钟由信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路等组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用555构成的振荡器加分频器来实现。将标准秒脉冲信号送入“秒计数器”,该计数器采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计数器,可以实现一天24h的累计。译码显示电路将“时、分、秒”计数器的输出状态经七段显示译码器译码,通过六位LED显示器显示出来。整点报时电路是根据计时系统的输出状态产生一个脉冲信号,然后去触发音频发生器实现报时。校时电路是来对“时、分、秒”显示数字进行校对调整。其数字电子钟系统框图如下:

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

EDA设计II实验报告——多功能数字钟

『EDA设计II』 课程实验报告 姓名 学号 学院 指导教师 时间 2011年 05月

多功能数字钟 摘要:本实验利用Quartus II软件设计多功能数字钟并下载到Smart SOPC实验系统,实现校分、校时、清零、保持和整点报时等多种基本功能,以及闹钟等附加功能。本实验首先通过Quartus II 软件对各模块进行原理图设计,并进行仿真调试,最后下载至实验平台验证其功能。 关键词:多功能数字钟Quartus II软件仿真封装校分校时清零保持整点报时闹钟 Abstract:The experiment is to design a multi-purpose digital clock by Quartus II and then download to the test system of Smart SOPC. It can realize many functions such as minute adjusting, hour adjusting, resetting, keeping and reporting time on integral hour. Apart from this, it can also be used as a alarm clock. First of all, we design the schematic diagram of every part. In addition, we simulate through Quartus II. At last, we download it to the tests platform and test the function. Key words:multi-purpose digital clock Quartus II simulate seal minute- adjusting hour adjusting resetting keeping reporting time on integral hour alarm clock

数字时钟实验报告

单片机 数字时钟设计 实训报告 系别 专业 姓名 学号

摘要 单片机是把中央处理器CPU,随即存取存储器RAM,只读存储器ROM,定时器/计数器以及输入/输出即I/O接口电路等主要计算机部件,集成在一块集成电路上的微机。虽然只是一个芯片,但从组成和功能上来看,已具备微型系统的属性。单片机的发展经历了4个阶段,其向着低功耗CMOS化,微型单片化,主流与多品种共存的方向发展。单片机在工业自动化,仪器仪表,家用电器,信息和通讯产品及军事方面得到了广泛应用。另外,其发展前景不错。 本次实训以设计制作数字时钟为例,来加深我们对单片机特性和功能的了解,加强我们的编程思想。为今后从事单片机程序产品的开发,打下了良好的理论与实践基础。理论服务于实践,将知识转化为能力,也是本次试训的另一个重要目的。

目录 一、整体设计方案 (3) 1. 方案设计要求 (3) 2. 方案设计与论证 (3) 3. 整体设计框图 (4) 二、数字时钟的硬件设计 (4) 1. 最小系统设计 (4) 2. LED显示电路 (8) 3. 键盘控制电路 (9) 4. 数字时钟的原理图 (10) 三、数字时钟的软件设计 (11) 1. 系统软件设计流程图 (11) 2. 数字时钟主程序 (14) 四、调试与仿真 (18) 1. 数字时钟系统PROTUES仿真 (18) 2. 软件与硬件调试 (19) 3. 系统性能测试与功能说明 (19) 4. 出现问题及解决 (19) 五、实验结论 (20) 六、心得体会 (21) 附录:1.原器件清单 (22) 2.参考文献 (22)

一、整体方案设计 1. 方案设计要求 设计制作一个数字时钟,要求能实现基本走时,并以数字形式显示时、分、秒;采用24小时制;能校时、校分、校秒;也可以添加其他功能. 2. 方案设计与论证 方案一: 采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理解实现。缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。 方案二: 采用 FPGA模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:成本高,大材小用。 方案三: 采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。 经过综合考虑成本问题以及他人接受程度,选择第三种方案实现设计要求。

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

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

eda,verilog数字钟设计报告

数字钟 一、任务解析 用Verilog硬件描述语言设计数字钟,实现: 1、具有时、分、秒计数显示功能,以二十四小时循环计时。 2、具有调节小时,分钟的功能,调整时对应的数字闪烁。 3、具有整点报时及闹铃时间可调的功能。 4、数字钟具有四种模式:正常显示、时间调整、闹铃时间调整、秒表。 二、方案论证 没有闹铃功能 三、重难点解析 选择模式:module beii(clr,selin_key,beii_out); input clr,selin_key; output [1:0]beii_out; wire [1:0]beii_out; reg [1:0]selout_key; always@(negedge clr or posedge selin_key) begin if(!clr) selout_key=0; else begin if(selout_key==2) selout_key=0; else selout_key=selout_key+1;end end assign beii_out=selout_key; endmodule

头文件中: module clk_top(clr,clk,upkey,downkey,sel,a,b,c,d,e,f,g,p,clr_key,selin_key); clr:清零clk:50M时钟 upkey:向上调downkey:向下调 clr_key:恢复初始状态selin_key:模式选择 四、硬件资源分配 60进制module mycnt60(clr,clk,upkey,downkey,selout,q,c); input clk,clr,upkey,downkey;//upkey为加按键 input [1:0] selout; output[7:0] q;//60进制输出 output c;//进位溢出位 reg c; reg[7:0] q; wire new_clk1,ckb,ckc,ckd,cko; assign new_clk1=clk|((!selout[0]&selout[1])&(upkey|downkey)); LCELL AA(new_clk1,ckb);//信号延迟 LCELL BB(ckb,ckc); LCELL CC(ckc,ckd); LCELL DD(ckd,cko); initial c=0; always @(posedge cko or negedge clr )begin if(!clr) q=8'h00; else begin if(selout==2) begin if(upkey)begin if(q==8'h59) q=8'h00; else if(q==8'h?9) q=q+4'h7; else q=q+1; end else if(downkey)begin if(q==8'h00) q=8'h59; else if(q==8'h?0) q=q-4'h7; else q=q-1; end

多功能数字钟实验报告

《多功能数字钟电路的设计、制作》 课程设计报告 班级:(兴) 2008级自动化 姓名:胡荣 学号:2008960623 指导教师:刘勇 2010年11月13日

目录 一、设计目的.................................1 二、设计内容及要求...........................1 三、总设计原理...............................1 四、主要元件及设备...........................2 五、单元电路的设计...........................5 1、数字电子计时器组成原理.................5 2、用74LS160实现12进制计数器..............6 3、校时电路...............................7 4、时基电路设计...........................8 六、设计总电路图.............................8 七、设计结果及其分析.........................8 八、设计过程中的问题及解决方案...............9 九、心得体会.................................9 十、附录.....................................10

多功能数字钟电路设计 一、设计目的 通过课程设计要实现以下两个目标:一、初步掌握电子线路的设计、组装及调试方法。即根据设计要求,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能要求;二、课程设计为后续的毕业设计打好基础。毕业设计是系统的工程设计实践,而课程设计的着眼点是让我们开始从理论学习的轨道上逐渐引向实际方面,运用已学过的分析和设计电路的理论知识,逐步掌握工程设计的步骤和方法,同时,课程设计报告的书写,为今后从事技术工作撰写科技报告和技术资料打下基础。 二、设计内容及要求 1、功能要求: ①基本功能: 以数字形式显示时、分、秒的时间,小时计数器的计时要求为“12翻1”,并要求能手动快校时、快校分或慢校时、慢校分。 ②扩展功能: 定时控制,其时间自定;仿广播电台正点报时—自动报正点时数。 2、设计步骤与要求: ①拟定数字钟电路的组成框图,要求先实现电路的基本功能,后扩展功能,使用的器件少,成本低; ②设计各单元电路,并用Multisim软件仿真; ③在通用电路板上安装电路,只要求显示时分; ④测试数字钟系统的逻辑功能; ⑤写出设计报告。设计报告要求:写出详细地设计过程(含数字钟系统的整机逻辑电路图)、调试步骤、测试结果及心得体会。 三、总设计原理 数字电子钟原理是一个具有计时、校时、报时、显示等基本功能的数字钟主要由振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路等七部分组成。石英晶体振荡器产生的信号经过分频器得到秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器译码,并通过显示器显示时间。 四、主要元件及设备 1、给定的主要器件: 74LS00(4片),74LS160(4片)或74LS161(4片),74LS04(2片),74LS20(2片),74LS48(4片),数码管BS202(4只),555(1片),开关(1个),电阻47k(2个)电容10uF(1个)10nF(1个) 各元件引脚图如下图:

eda数字时钟实验报告

EDA数字时钟电工电子实习 实验报告 姓名 班级 学号20

一、实验目的: 1、掌握多位计数器相连的设计方法。 2、掌握十进制、六十进制和二十四进制计数器的设计方法。 3、巩固数码管的驱动原理及编程方法。 4、掌握CPLD技术的层次化设计方法。 二、实验要求: 基本要求:具有时、分、秒计数显示功能,以二十四小时循环计时。 扩展要求:具有整点报时功能。 三、实验原理: 计数时钟由模60秒计数器、模60分计数器、模24小时计数器、蜂鸣器(用于整点报时)、分/时设定模块、输出显示模块构成,秒计数模块的进位输出为分钟计数模块的进位输入,分钟计数模块的进位输出为小时计数模块的进位输入。 74163功能简介:

图1 图2 由图1可知,74163的脉冲上升沿的时候工作。 四、实验过程

1.模60计数器(如图3) 图3 由74163实现计数功能,第一片74163实现10进制,即做0-9的循环,9即二进制的1001,化简可得当q[0]与q[3]同时为1的时候进行清零。第二片74163实现6进制,即做0-5的循环,5即二进制的111,化简可得当q[4]与q[6]同时为1的时候进行清零,同时第一片74163的进位端作为第二片的脉冲端。这样就可实现60进制。60进制计数器用于秒计数器和分计数器,秒个位的进位端作为秒十位的脉冲端秒十位的进位端作为分个位的脉冲端,分个位的进位端作为分十位的脉冲端。 2.模24计数器(如图4) 图4 分十位的进位端作为时个位的脉冲端,时个位的进位端作为时十位的脉冲端。因为24进制的特殊性,当十位是0和1的时候,个位做十进制循环,即0-9,9的二进制为1001;当十位是2的时候,个位做0-3的循环。而十位做0-2的循环。2的二进制为0010,3的二进制为0011。所以第一片74163不仅要在q[14]与q[17]同时为1的时候清零,还要在第二片74163的q[19]、第一片的q[14]、q[15]同时为1(即23时)做清零。第二片是3进制,在q[19]=1的时候进行清零。

数字时钟设计实验报告

电子课程设计 题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路与校时电路构成电路。 秒时钟信号发生器可由振荡器与分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时与分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器就是数字电子钟的核心部分,它的精度与稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ? 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ? 分频器: 分频器功能主要有两个,一就是产生标准秒脉冲信号,一就是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数与进位功能。利用74LS161与74LS11设计6进制计数器显示秒的十位 ,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 ?60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0

EDA数字钟实验报告

目录 1.设计思路—————————————————————(3) 1.1总体结构——————————————————(3) 2.方案论证与选择——————————————————(3) 3.单元模块设计部分—————————————————(3)3.1 CNT10 模块的设计———————————————(4)3.2 CNT6 模块的设计———————————————(5)3.3 CNT101模块的设计———————————————(6)3.4 CNT61模块的设计———————————————(7) 3.5 CNT23模块的设计———————————————(8) 4.系统仿真—————————————————————(9) 4.1数字钟的引脚锁定———————————————(9) 4.2数字钟原理图————————————————(12) 4.3数字钟仿真图————————————————(10) 4.4数字钟编译报告———————————————(11) 5.参考文献————————————————————(13)

EDA数字钟设计 中文摘要: 数字钟学习的目的是掌握各类计数器及它们相连的设计方法;掌握多个数码管显示的原理与方法;掌握FPGA技术的层次化设计方法;掌握用VHDL语言的设计思想以及整个数字系统的设计。此数字钟具有时,分,秒计数显示功能,以24小时为计数循环;能实现清零,调节小时,分钟以及整点报时的功能。 关键词:数字钟,计数器,,FPGA,VHDL 1.设计思路 基于VHDL语言,用Top—To--Down的思想进行设计。 1.1 确定总体结构,如图1-1所示。 图1-1 2. 方案论证与选择 方案:设置小时和分,输出整点报时信号和时,分,秒信号。方案采用自顶向下的设计方法,它由秒计数模块,分计数模块,小时计数模块和顶层模块四部分组成。 3. 单元模块设计部分 RES是整个系统的复位键,低电平有效,复位时,各个输出都为零,时间显示0时0分0秒;clk是输入时钟,提供秒信号,上升沿触发,每出发一次,时间增加一秒;HRTMP,MIN10TMP,MINTMPKEYI可以分别设置小时位,10分位,分位,起到调时的作用,高电平有效,有效时,每来一个CLK时钟(1s),所对应的位都将以各自的计数循环; RING是整点报时。

数字时钟设计实验报告

电子课程设计题目:数字时钟

数字时钟设计实验报告 设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 电路框图: 图一 数字时钟电路框图 电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位

数字钟的设计实验报告

数字钟的设计实验报告 一、实验目的 1) 学习掌握数字钟的设计方法 2) 学习较复杂的数字系统设计方法 3) 了解数字钟的组成及工作原理 二、设计指标 1) 时间以 24 小时为一个周期 2) 显示时、分、秒 3) 有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间 4) 计时过程具有报时功能,当时间到达整点前 5 秒进行蜂鸣报时 三、实验原理 时标信号的频率由振荡器产生,由于及时最小单位是0.1s ,所以时 标信号经分频器后输出频率为10Hz 的秒脉冲clk 。 在无校准信号作用时,整个电路处于正常的计数状态。时,分,秒计 数器采用同步计数方式,其时钟脉冲端均接由分频器输出地时钟信号clk 。en 为计数使能端,高电平有效。秒计数的端en 始终为高电平,所以每来一个秒脉冲clk ,秒计数器计一个数,当秒计数器到六十时,其进位输出端co 输出高电平产生进位,使分计数器的使能端en 有效,每来一个分脉冲clk ,分计数器计一个数,这就意味着满60s 进1min;当秒计数器和分计数器到60,其相应的秒计数器的进位co 和分计数器的进位co 同时输出高电平使小时计数器的使能端en 有效时,每来一个计数脉冲,小时计数器计一个数。 四、实验内容 数字钟是数字电路中的一个典型应用,本设计实现数字钟的一些基本功能。能进行正常的时、分、秒计时功能,当计时达到59分52秒时开始报时,在59分52秒,59分54秒,59分56秒,59分58秒时鸣叫,鸣叫声频为500Hz ,在到达59分60秒时为最后一声整点报时,频率为1KHz 。其外部接口如图1所示,总体设计框图如图2所示,包含control 、sec 、main 、hour 、sst 五大模块。其中sec 和main 模块均为六十进制计数器,计时输出分别为秒和分的数值;hour 模块为二十四进制计数器,计时输出为小时的数值。 数字钟外部接口 D_clk inst clr sec01[3..0] qr sec00[3..0] s[5..0] min01[3..0] rst min00[3..0] clk second hour01[3..0] hour00[3..0]

数字钟实验报告2013版

数字电路课程设计 题目: 利用CPLD 设计可调时数字钟 学 院 电子信息工程学院 专 业 通信工程 学 号2011448183 姓 名郑秦杰 教 师 刘鑫 2013 年 8 月 29日 装 订 线

利用CPLD设计可调时数字钟 摘要 此课程设计是运用数字电路知识以及QuartusⅡ软件进行的制作,动手制作之前要理解电路原理图,然后进行焊接,通过焊接增强自己的动手能力。结合自己所学的数字电路知识,最后应用QuartusⅡ软件进行了编程。 电路通过使用数字元件,来构成完成二十四小时的数字钟设计,并且将译码器和数据选择器配合使用来完成动态的显示输出。此外,外部控制开关用来控制电路,使得该电路可以完成保持、清零、快速校对时间的功能。这项课程设计的难点在于EDA系统作图及最后系统优化的应用,尤其是小数点的显示控制,用一个或门,通过1Hz来控制第三个数码管的点显示,再通过一个与非门来控制第五个数码管的点显示,第五个数码管的点在整个脉冲阶段显示,而第三个数码管的点只有在低电平时显示,以达到结果是第五个数码显示管的点常亮,而第三个数码管的点以1Hz的频率闪烁(数码管按从右往左的顺序编号)。 制作中会时常出现各种小问题,如最初用七段译码器显示六和九时,显示的数字不完全,自己就重新编写了译码器,让其显示的更好一些,在此过程中也出现了制作的程序太大问题,经过反复的修改,最终总算是将数字时钟完成了。 关键词:数字时钟 QuartusⅡ七段译码器

目录 一总体设计方案 ................... 错误!未定义书签。 1.1设计要求 (4) 1.2设计原理 (4) 1.2.1 电源电路 (4) 1.2.2显示电路 (2) 1.2.3 CPLD电路原理图...............................错误!未 定义书签。 1.2.4 振荡电路与分频电路...........................3 1.2.5程序下载接口电路..............................4 二各模块说明 (5) 2.1设计思路及步骤 (5) 2.2总体框图 (5) 2.3各模块说明 (9) 2.3.1 BCD-7段译码显示电路 (6) 2.3.2 时间计数器电路 (6) 2.3.3 数据选择器电路 (7) 2.3.4 译码器电路..................................8 2.3.5比较器电路.................................. 9 2.3.6按键消抖电路................................ 9

数字钟实验报告

EDA技术课程设计 ——多功能数字钟 学院:城市学院 专业、班级:电子C154 姓名:高阳夏岩 学号:158102 58128 指导老师:安亚军 2017年12月

一实验目的 1、具有时、分、秒记数显示功能,以24小时循环计时。 2、要求数字钟具有清零、调节小时、分钟功能。 3、具有整点报时,整点报时的同时LED灯花样显示 二实验原理 1时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。 5LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号 三实验内容 1时钟记数部分 1)小时部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下

2)分钟部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下 3)秒部分 其VHDL描述如下

编译,无误。 经仿真,其波形如下 2整点报时部分,其VHDL描述如下 编译,无误。

经仿真,其波形如下 3驱动8位八段共阴扫描数码管的片选驱动信号输出部分 其VHDL描述如下 编译,无误。 经仿真,其波形如下 4驱动八段字形译码输出部分 该模块功能:信号输入后,模块驱动八段字形译码输出,A,B,C,D,E,F,G分别接八段共阴级数码管7个接口,即有字形输出。

数字时钟设计实验报告

数字时钟设计实验报告

电子课程设计题目:数字时钟

数字时钟设计实验报告一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图:

图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ? 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ? 分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 图二 秒脉冲信号发生器 译译译时计 分计秒计 校 时 电 路 秒信号发生器

(二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 ?60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给时的个位。其电路图如下:

相关主题
文本预览
相关文档 最新文档