数码管的计数器

要求:
在数码管上显示类似秒表的计数器。
1按键:key1控制开始,key2控制结束。
2将数码管分为三个部分,百微秒,毫秒,秒。
想法:
分为6个模块:
第一个模块:按键(按键里面注意的就是按键消抖)
第二个模块:状态机(分为三个状态,IDLE,work,stop),从状态机引出一个control(控制信号)。
第三个模块:分频(将50M的频率分成0.01M的频率,百微秒的分频)其它的不用分,它是随着百微秒变化而变化。
第四个模块:计数,有6个计数器,每一个计数器在work状态中都工作,且每一个计数器都受到分频之后的clk控制。且后一个计数随着前一个计数变化。
第五个模块:译码模块:数码管的译码。
第六个模块:顶层模块,将各个子模块实列化。

------------------------------------------------------------------------------------------------------------------------代码:

module pro(
input clk, 
input rst,
input key1,
input key2,


output  key1_o,
output   key2_o
);
reg key1_o5;
reg key1_o4;
reg key1_o1;
always@(posedge clk or negedge rst)
begin
if(~rst)
 key1_o1<=0;
else
 key1_o1<=key1;
end

reg key1_o3;
reg key1_o2;
always@(posedge clk or negedge rst)
begin
if(~rst)
 key1_o2<=0;
else
 key1_o2<=key1_o1;
end


always@(posedge clk or negedge rst)
begin
if(~rst)
 key1_o3<=0;
else
 key1_o3<=key1_o2;
end

wire pos;
always@(posedge clk or negedge rst)
begin
if(~r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值