简单的数字时钟(verilog设计)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、下调
if (ss2==1) begin if (minute0>4'b0000) minute0<=minute0-4'b1; else begin minute0<=4'b1001; if (minute1>4'b0000) minute1<=minute1-4'b1; else minute1<=4'b0101; end end if(ss2==1) begin if (hour1>2'b0) begin if (hour0>4'b0) hour0<=hour0-4'b1; else begin hour0<=4'b1001; hour1<=hour_1-2'b1;end end if (hour1==2'b00) begin if (hour0>4'b0) hour0<=hour0-4'b1; else begin hour1<=4'b0010; hour0<=4'b0011;end end
简单的数字时钟
小组成员
电子信息工程:
huang liang zhang hui cheng long
作品简介
功能一:时钟计时 功能二:调整时间 功能三:闹钟 功能四:整点报时 功能五:流水指示灯
按键分布
“闹铃” 灯 流水指示灯 闹钟提示灯 复位键 整点报时灯 切换看 秒/闹 钟设置 确认
下调键 进入调 时状态 调时或调闹钟 调时 调闹钟 时切换到分位 上 进入设 置闹钟 状态 关闭闹 钟 上调键
2、确认
if (miao==1) nz1<=1;
3、闹铃
if (nz1==1) begin lednz[1]<=1; if((hour_1==hour1)&&(hour_0==hour0)&&(minute_1==minute1)&&(m inute_0==minute0)) lednz[0]<=lednz[0]+1; end
二、调时部分
1、上调:
if (ss1==1) begin if (minute0<4'b1001) minute0<=minute0+4'b1; else begin minute0<=4'b0; if(minute1<4'b0101) minute1<=minute_1+4'b1; else minute1<=4'b0; end end if(ss1==1) begin if (hour1<2'b10) begin if(hour0<4'b1001) hour0<=hour0+4'b1; else begin hour0<=4'b0; hour1<=hour1+2'b1; end end end
设计出基本的时钟
设 计 思 路
添加调时功能 添加闹钟功能 添加整点报时功能 添加流水指示灯 整合优化
一、基本时钟部分
1、分频
计时分频
if(cnt2==28'd12499999) cnt2<=0; else cnt2<=cnt2+1;
数码管显示分频
if(cnt1==24'd12499) cnt1<=0; else cnt1<=cnt1+1;
2、数码管显示
case(count1) 2'b00:begin disp=minute1;sl=4'b1101; end 2'b01:begin disp=minute0;sl=4'b1110; end 2'b10:begin disp=hour1;sl=4'b0111; end 2'b11:begin disp=hour0;sl=4'b1011; end endcase case(disp) 4'b0000:seg=7'b1000000; 4'b0001:seg=7'b1111001; 4'b0010:seg=7'b0100100; 4'b0011:seg=7'b0110000; 4'b0100:seg=7'b0011001; 4'b0101:seg=7'b0010010; 4'b0110:seg=7'b0000010; 4'b0111:seg=7'b1111000; 4'b1000:seg=7'b0000000; 4'b1001:seg=7'b0010000; endcase
谢谢!
wenku.baidu.com
if (ledzs[4]==1&&ledzs[0]==1) begin sign<=0; ledzs<=8'b0000_0001 ;end else begin if (ledzs[4]==0&&sign==0) ledzs<=ledzs<<1; else begin if (ledzs[4]==1&&sign==0) begin ledzs<=ledzs>>1; sign<=~sign; end else begin if (ledzs[0]==0&&sign==1) ledzs<=ledzs>>1; else if (ledzs[0]==1&&sign==1) begin ledzs<=ledzs<<1; ledzs[0]<=1; sign<=~sign; end end end end
else begin if(ss1==1) begin if (hour_1<2'b10) begin if(hour_0<4'b1001) hour_0<=hour_0+4'b1; else begin hour_0<=4'b0; hour_1<=hour_1+2'b1;end end if(hour_1==2'b10) begin if (hour_0<4'b0011) hour_0<=hour_0+4'b1; else begin hour_0<=4'b0; hour_1<=2'b0; end end end if(ss2==1) begin if (hour_1>2'b0) begin if (hour_0>4'b0) hour_0<=hour_0-4'b1; else begin hour_0<=4'b1001; hour_1<=hour_1-2'b1;end end if (hour_1==2'b00) begin if (hour_0>4'b0) hour_0<=hour_0-4'b1; else begin hour_1<=4'b0010; hour_0<=4'b0011;end end end
4、关闭闹钟
if (n==1) begin nz<=0; lednz<=2'b0; nz1<=0; end
四、整点报时
if (minute1==4'b0101&&minute0==4'b1001&&second1==4'b0101) ledbs<=1; else ledbs<=0;
五、流水指示灯
3、计时
if (second0<4'b1001) second0<=second0+4'b1; else second0<=4'b0; if (second1<4'b0101) second1<=second1+4'b1; else second1<=4'b0; if (minute0<4'b1001) minute0<=minute0+4'b1; else minute0<=4'b0; if (minute1<4'b0101) minute1<=minute1+4'b1; else minute1<=4'b0; if (hour1<2'b10) if (hour0<4'b1001) hour0<=hour0+4'b1; else hour0<=4'b0; hour1<=hour1+2'b1; if (hour1==2'b10) if (hour0<4'b0011) hour0<=hour0+4'b1; else hour0<=4'b0; hour1<=2'b0;
三、闹钟部分
1、设置闹铃
if (sh==1) begin if (ss1==1) begin if (minute_0<4'b1001) minute_0<=minute_0+4'b1; else begin minute_0<=4'b0; if(minute_1<4'b0101) minute_1<=minute_1+4'b1; else minute_1<=4'b0; end end if (ss2==1) begin if (minute_0>4'b0000) minute_0<=minute_0-4'b1; else begin minute_0<=4'b1001; if (minute_1>4'b0000) minute_1<=minute_1-4'b1; else minute_1<=4'b0101;end end end
4、复位归零
if (irst==1'b1) begin second0<=4'b0; second1<=4'b0; minute1<=4'b0; minute0<=4'b0; hour1<=2'b0; hour0<=4'b0; ledzs<=5'b00001; sign<='b0; nz<=0; nz1<=0; lednz<=2'b0; end