数字钟verilog闹钟DE2-115开发板电子表时钟电子钟原理图代码下载

名称:数字钟verilog闹钟DE2-115开发板电子表时钟电子钟原理图

软件:Quartus II

语言:Verilog

代码功能:

要求有顶层原理图,代码上有详细注释,有引脚分配的图表,开发版上演示 

1.24小时制的时钟,显示时分秒,有复位键 

2.可以手动校准时分

3.可以设置闹钟时间,有按键可以停闹钟 

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在DE2-115开发板验证,开发板如下,其他开发板可以修改管脚适配:

DE2-115.png

代码下载:数字钟verilog闹钟DE2-115开发板电子表时钟电子钟原理图名称:数字钟verilog闹钟DE2-115开发板电子表时钟电子钟原理图(代码在文末下载)软件:Quartus II语言:Verilog代码功能:要求有顶层原理图,代码上有详细注释,有引脚分配的图表,开发版上演示 1.24小时制的时钟,显示时分秒,有复位键 2.可以手动校准时分3.可以设置闹钟时间,有按键可以停闹钟 FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com本icon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=260

部分代码展示:

//计时模块
module jishi(
input clk_50M,
input clk_1Hz,
input [3:0] state_mode,//当前模式,4'd0:计时,4'd1设置时间 ,4'd2显示闹钟时间,4'd3设置闹钟时间
input AH_key,//AH 修改小时
input AM_key,//AM 修改分钟
output [7:0] hour_time,//时
output [7:0] minute_time,//分
output [7:0] second_time//秒
);
wire AH_key_negedge;
wire AM_key_negedge;
reg AH_key_buf0;
reg AH_key_buf1;
reg AM_key_buf0;
reg AM_key_buf1;
always@(posedge clk_50M)
begin
AH_key_buf0<=AH_key;
AH_key_buf1<=AH_key_buf0;
end
always@(posedge clk_50M)
begin
AM_key_buf0<=AM_key;
AM_key_buf1<=AM_key_buf0;
end
assign AH_key_negedge=~AH_key_buf0 & AH_key_buf1;//按键下降沿
assign AM_key_negedge=~AM_key_buf0 & AM_key_buf1; //按键下降沿
reg [7:0] hour=8'd12;//时
reg [7:0] minute=8'd59;//分
reg [7:0] second=8'd00;//秒
always@(posedge clk_50M)
case(state_mode)
4'd0,4'd2,4'd3://除设置时间的状态下,其他状态均计时
if(clk_1Hz)//1秒钟变一次
if(hour==8'd23 && minute==8'd59 && second==8'd59)begin
hour<=8'd0;  
minute<=8'd0;  
second<=8'd0;
end
else if(minute==8'd59 && second==8'd59)begin  
   hour<=hour+8'd1;
minute<=8'd0;  
second<=8'd0;
end
else if(second==8'd59)begin  
   hour<=hour;
minute<=minute+8'd1;  
second<=8'd0;
end
else begin  
   hour<=hour;
minute<=minute;  
second<=second+8'd1;
end
4'd1:begin//4'd1设置时间
if(AH_key_negedge)
if(hour==8'd23)
hour<=8'd0;
else
hour<=hour+8'd1;
else
;
if(AM_key_negedge)
if(minute==8'd59)
minute<=8'd0;
else
minute<=minute+8'd1;
else
;
end
default:;
endcase

设计文档:

1.控制方法:

2个拨码开关SW0和SW1控制模式:

SW0=0,SW1=0为正常计时模式;

SW0=0,SW1=1为修改时间模式;

SW0=1,SW1=0为显示闹钟时间模式;

SW0=1,SW1=1为修改闹钟时间模式;

2个按键,key0修改小时,key1修改分钟:

将拨码开关设置为SW0=0,SW1=1,此时可以修改当前时间;

将拨码开关设置为SW0=1,SW1=1,此时可以修改闹钟时间;

2. 工程文件

3. 程序文件

4. 程序编译

5. 程序RTL图

6. 管脚分配

7. 仿真图

分频模块,用于将50MHz时钟分频到1Hz

设置模式模块,根据按键输入控制当前的模式,模式用led灯显示

计时模块,用于控制数字钟计时,也可以设置时间

上图可以看到state_mode为0001时,AHkey和AMkey可以控制小时和分钟

state_mode不为0001时,正常计时,秒钟计数到59,分钟加1,秒清零

闹钟设置模块

上图可以看到state_mode为0011时,AHkey和AMkey可以控制小时和分钟

闹钟响铃模块

上图可以看到,当分钟和小时一致时,闹钟响铃,bell_out为高电平

显示模块

用于数码管译码显示

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于verilogFPGA数字秒表设计实验QUARTUS工程源码+文档说明资料 module time_clock( clk, reset_n, hour_select_key, second_counter_key, second_countdown_key, pause_key, duan, wei ); input clk; //clk:50MHZ时钟输入; input reset_n; //复位信号输入,低电平有效; input hour_select_key; //12、24小时可以调节按键,当为‘1’时为24,‘0’时为12小时; input second_counter_key; //当该按键为‘1’时为秒表计时功能,‘0’时为正常功能; input second_countdown_key; //当该按键为‘1’时为倒计时功能,‘0’时为正常功能; input pause_key; //暂停功能按键,进行秒表计时和倒计时时可以通过该按键进行暂停,‘1’暂停,‘0’继续 output [7:0] duan; //duan:数码管段码; output [7:0] wei; //wei:数码管位码; reg [7:0] duan; //duan:数码管段码; reg [7:0] wei; //wei:数码管位码; reg [24:0] count; //1HZ时钟计数器 reg [13:0] count2; //扫描时钟计数器 reg clk_1hz; //1HZ时钟信号 reg [3:0] miao_ge; //秒个位数BCD码 reg [2:0] miao_shi; //秒十位BCD二进制码 reg [3:0] fen_ge; //分钟个位数 reg [2:0] fen_shi; //分钟十位数 reg [1:0] shi_ge; //时钟个位数 reg [1:0] shi_shi; //时钟十位数 reg [1:0] shi_select_ge; //时钟选择个位数,用于调节时制 reg [1:0] shi_select_shi; //时钟选择十位数,用于调节时制 reg clk_scan; //数码管扫描时钟 reg [2:0] select; //用于扫描时选择显示位码 //**************************************************************************************************** // 模块名称:秒时钟分频模块 // 功能描述: //*******************************************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值