FPGA数字时钟——详解

FPGA数字时钟——详解

ID:37710099

大小:17.69 KB

页数:8页

时间:2019-05-29

FPGA数字时钟——详解_第1页
FPGA数字时钟——详解_第2页
FPGA数字时钟——详解_第3页
FPGA数字时钟——详解_第4页
FPGA数字时钟——详解_第5页
资源描述:

《FPGA数字时钟——详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、moduleclock04(//注:本次调试会出现黄色叹号警告,但不影响功能完美实现。inputwireclk,//系统50MHz时钟inputwireclr,//清零开关inputwiresettime,//调时开关inputwiremyclock,//设置我的闹钟开关inputwirecloseclock,//关掉闹钟开关inputbtn0,//四个调时按钮inputbtn1,inputbtn2,inputbtn3,outputsled,//秒闪烁LED灯outputregcled,//闹钟

2、闪烁LED灯outputreg[6:0]duanxuan,//数码管段选outputreg[3:0]weixuan//数码管位选);reg[1:0]p;//位选数码管位置reg[3:0]digit;//指代数码管将要显示的数字reg[16:0]clktime;//位选刷新用reg[26:0]cnt;//分频用regclk_out;//分频所得时钟信号reg[3:0]ml;//以下为时钟:时分秒reg[3:0]hl;reg[3:0]mh;reg[3:0]hh;reg[5:0]s;reg[3:0]c

3、ml;//以下为闹钟时分reg[3:0]cmh;reg[3:0]chl;reg[3:0]chh;initial//初始时间全部为12:30:00beginhh=1;hl=2;mh=3;ml=0;chh=1;chl=2;cmh=3;cml=0;s=0;endalways@(posedgeclk)//定义位选刷新时间参数beginclktime<=clktime+1;endalways@(*)beginweixuan=4'b1111;//初始位选,数码管全暗p<=clktime[16:15];//定

4、义位置代数p为参数最高两位weixuan[p]=0;//选中的p位低电平点亮数码管if(myclock==1)//ifelse语句决定位选状态为闹钟时间or时钟时间begincase(p)//p有4种情况0:digit<=chh[3:0];//定义digit指代所要显示的数字1:digit<=chl[3:0];2:digit<=cmh[3:0];3:digit<=cml[3:0];default:digit<=cml[3:0];endcaseendelsebegincase(p)//p有4种情况

5、0:digit<=hh[3:0];//定义digit指代所要显示的数字1:digit<=hl[3:0];2:digit<=mh[3:0];3:digit<=ml[3:0];default:digit<=ml[3:0];endcaseendcase(digit)//十六进制数字段选编码0:duanxuan=7'b0000001;1:duanxuan=7'b1001111;2:duanxuan=7'b0010010;3:duanxuan=7'b0000110;4:duanxuan=7'b100110

6、0;5:duanxuan=7'b0100100;6:duanxuan=7'b0100000;7:duanxuan=7'b0001111;8:duanxuan=7'b0000000;9:duanxuan=7'b0000100;'hA:duanxuan=7'b0001000;'hB:duanxuan=7'b1100000;'hC:duanxuan=7'b1100001;'hD:duanxuan=7'b1000010;'hE:duanxuan=7'b0110000;'hF:duanxuan=7'b01

7、11000;default:duanxuan=7'b0000001;endcaseendalways@(posedgeclkorposedgeclr)//对系统50MHz时钟进行分频,期间进行调时、计时beginif(clr==1)//首先判断是否清零begincnt<=0;ml<=0;mh<=0;hl<=0;hh<=0;chh<=0;chl<=0;cmh<=0;cml<=0;s<=0;endelseif(cnt==24999999)//分频中间步骤beginclk_out=~clk_out;/

8、/定义分频所要得到的1Hz(1秒)时钟信号cnt<=cnt+1;endelseif(cnt==1

9、

10、cnt==25000001)//在所得时钟信号翻转后(每0.5秒)判断是否进行调时操作begin//定义四个调时按键cnt<=cnt+1;if(settime==1)beginif(btn0)//分钟-beginml<=ml-1;if(ml==0)beginml<=9;mh<=mh-1;endif(mh==0&&ml==0)//分钟从00减到59,小时减1beginml<=9;mh<=5;hl<=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。