verilog 控制LED灯亮灭 各位verilog高手,麻烦帮我看一下程序,不能达到预期的结果。

verilog 控制LED灯亮灭 各位verilog高手,麻烦帮我看一下程序,不能达到预期的结果。,第1张

你这个I2C时钟应该不是一直存在的吧?这样的话,你的初始化值都达不到预想的效果哦,因为有I2C_CLK的时候就不可能有reset了

这样试试:一直按着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用连续赋值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11453695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存