一、 任务
在硬件电路PWM.DSN中实现P1.7输出PWM波。周期T=100ms,初始占空比(T1/T)为50%,按键KEY1每次增加占空比10%(直到 90%),KEY2每次减小占空比10%(直到10%)。
二、 设计参考:
① PWM产生方法:
思路:在一个载波周期内,时间小于T1时P1.7输出为1,其余P1.7均为0。因此,通过比较当前时间值与设定值的位置关系来决定P1.7 置0或置1,即可生成PWM波形。
算法:
定义变量
1、 占空比设定值(记为Duty,数值为1~9,时间单位为定时时间常数)。
2、 当前时间值(记为设置Counts,数值为0~10,时间单位为定时时间常数)
设置定时时间为固定常数(10ms),在定时中断服务时做以下处理:
1、 重置定时器;
2、 Counts ++;
3、 Counts %= C;(C为固定载波周期,数值为10,时间单位为定时时间常数)
4、 IF Counts 《 Duty THEN P1.7 =1 ELSE P1.7 = 0;
5、 继续其他服务。
② 按键应考虑去除键抖动,在改变PWM占空比后应等待键释放,释放时同样要考虑去除键抖动。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !