这样试试:一直按着manual_reset,然后随便输入一个数,接下来再松开manual_reset,再做你想做的动作应该就可以了。
如果你把I2C时钟搞成一直存在的话,那i2ccount和I2C_data之间的关系就很难确定了,因为你一上电i2ccout就开始计数了,并不是你输入数据的时候开始计数 ,这样的话,可能你输入130的时候,i2ccount已经是0-8之间任意一个数了
周期=1/20秒时钟晶振选用50mhz的话,0.05秒就需要clk跑5*0.01*50*10^6= 2 500 000
module led
input clk,rst
output ledcon
reg [3:0] led//led开关锁存位
reg d1,d2,d3,d4//四个灯开关
reg [21:0] cnt_5 //0.05秒计数器
reg count// 数满标志位
always @(posedge clk or negedge rst)
if (!rst)
cnt_5<=22'd0
else if(cnt_5==22'd2500000)
cnt_5<=22'd0 //数满归零
else cnt_5<=cnt_5+1'b1
always @(posedge clk or negedge rst))
if(!rst)
count<=1'b0
else if (cnt_5==22'd2500000)
count<=1'b1
我擦。。剩下我不写了。你查查网上资料吧。
就是每数满时间就依次轮换打开d1--d4开关并且关闭前一个。
ledcon用连续赋值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)