完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 chunfen2634 于 2017-7-7 10:09 编辑
《用至简设计法进行PWM流水灯设计》 脉冲宽度调制(pulse width modelation)简称PWM,利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 在本章的应用中可以认为PWM就是一种方波。如图2-7所示。 图2-7 PWM波形图 一个周期为10ms,高电平为6ms,低电平时间为4ms的PWM,其占空比(高电平时间占整个周期的比例)为60%。 图2-8 各个LED等对应的PWM波形 FPGA通过8个管脚来分别控制8个LED灯,管脚值为0,对应的LED灯亮,管脚值为1,对应的LED灯灭(低亮高灭)。如果管脚不停地变化,则LED灯会闪烁;如果这种高低变化非常快,由于人的视觉暂留现象,LED就会出现不同的亮度。 基于这个原则,我们也可以通过产生PWM波形,来控制LED灯的亮度。 1. 明确功能 首先确定模块信号列表,如表2.2。 表2.2信号列表
产生8个脉冲,每个脉冲周期为10s对应的占空比分别为:80%、70%、60%、50%、40%、30%、20%和10%。 2. 功能波形 led所有信号的变化都是相似的,这里以led[0]为例。见图2-9。 图2-9 led[0]信号变化图 3. 计数结构 因为每个脉冲的高低电平持续时间都是以1s为单位的,所以引入两个计数器,计数器cnt_1s计数1s,计数器cnt_10s计数每个脉冲高低电平分别持续的时间。具体计数情况如图2-10所示: 图2-10 计数结构图 4. 加一结束条件 cnt_1s的加1条件:计数器一直在计数,即:assign add_cnt_1s=1; cnt_1s的结束条件:加一条件下计数到100_000_000-1; cnt_10s的加1条件:cnt_1s的结束时刻; cnt_10s的结束条件:加一条件下计数到10-1; 5. 定义特殊点 图2-11有几个特殊点,需要我们记住。 图2-11 特殊定义点图 cnt1s的结束条件:cnt_1s==100_000_000-1,定为end_cnt_1s。 cnt10s的结束条件:cnt_10s==10-1,定为end_cnt_10s。 led所有位的新号变化都是相似的,所以我们以led[0]为例定义特殊点, led[0]变高的条件:cnt_10s==1-1,定为led0_off。 led[0]变低的条件:cnt_10s==10-1,定为led_on。 6. 完整性检查
7. 计数器代码 8. 完整代码(+群186714597了解更多FPGA知识) |
|||
相关推荐
|
|||
1421 浏览 1 评论
1215 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1426 浏览 0 评论
913 浏览 0 评论
2229 浏览 0 评论
1432 浏览 35 评论
5616 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 18:48 , Processed in 0.852504 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号