• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

数字电子钟设计Verilog代码Quartus 实验箱

08/21 11:18
557
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240Z515525a42.doc

共1个文件

名称:数字电子钟设计Verilog代码Quartus? 实验箱

软件:Quartus

语言:Verilog

代码功能:

数字电子钟

①设计一个具有“时”,“分”,“秒”显示的电子钟

②具有校时功能

③具有整点报时功能

④具有定时闹钟功能

⑤秒信号产生电路采用石英晶体构成的振荡器实现(4Mhz或32768hz)

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

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

实验箱.jpg

演示视频:

设计文档:

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. RTL图

5. 管脚分配

6. 仿真图

分频模块

模式控制模块

计时模块

闹钟模块

响铃模块

显示模块

部分代码展示:

//设置闹钟模块
module?alarm_clock(
input?clk_50M,
input?[3:0]?state_mode,////当前模式,4'd0:计时,4'd1设置时间?,4'd2显示闹钟时间,4'd3设置闹钟时间
input?AH_key,//AH?修改小时
input?AM_key,//AM?修改分钟
output?[7:0]?alarm_hour_time,//时
output?[7:0]?alarm_minute_time,//分
output?[7:0]?alarm_second_time//秒
);
wire?AH_key_negedge;
wire?AM_key_negedge;
//按键消抖
key_debounce?i0_key_debounce(
?????.?clk(clk_50M),
?????.?button_in(AH_key),//输入
?.?button_neg(AH_key_negedge)//消抖后按键下降沿
);
//按键消抖
key_debounce?i1_key_debounce(
?????.?clk(clk_50M),
?????.?button_in(AM_key),//输入
?.?button_neg(AM_key_negedge)//消抖后按键下降沿
);
reg?[7:0]?hour=8'd21;//时
reg?[7:0]?minute=8'd59;//分
reg?[7:0]?second=8'd00;//秒
always@(posedge?clk_50M)
if(state_mode==4'd3)begin//4'd3设置闹钟时间
if(AH_key_negedge)
if(hour==8'd23)
hour<=8'd0;
else
hour<=hour+8'd1;
else
hour<=hour;
if(AM_key_negedge)
if(minute==8'd59)
minute<=8'd0;
else

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1042

  • 2-240Z515525a42.doc
    下载

相关推荐