ftzlxylly 2021-10-04 09:32 采纳率: 100%
浏览 317
已结题

关于51单片机pwm控制呼吸灯

计数周期怎么能和占空比比较呢

img

img

img


原理我懂,但最后控制led亮和灭的if语句看不懂

  • 写回答

1条回答 默认 最新

  • 莫名其妙的代码 2021-10-08 21:46
    关注

    最后的if,作用相当与一个界限。
    这里我们就假设一下当tcount,dutyfactor,direct 都为0。那程序一开始 tcount计数累加,这个时候因为 dutyfactor一直为0,所以最后的if,一直为false,执行100次,所以灯一直为 1。然后tount计数满了,就到第一个 if,此时tcount=0,清空,然后direct为0,所以dutyfactor++为1。此时,灯设置为0,有一次,灯设置为1,有99次。然后tount计数满了,就到第一个 if,此时tcount=0,清空,然后direct为0,所以dutyfactor++为2。此时,灯设置为0,有两次,灯设置为1,有98次。一直下去,灯设置为0的次数增加,设置为1的次数减少。然后direct 设置为1,一直下去,灯设置为0的次数减少,设置为1的次数增加。然后重复。
    所以dutyfactor就像是一个界限一样,举个例子:双手合并,左手不动,右手向右移动,此时,你的右手就是dutyfactor,而右手和左手的中间的空隙在不断的增加,到一个点后,开始右手回去,此时中间的空隙在不断地减少。然后重复。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    问题事件

    • 系统已结题 12月13日
    • 已采纳回答 12月5日
    • 创建了问题 10月4日

    悬赏问题

    • ¥15 设计程序,实现管理30个学生5门课程的成绩,功能模块要求如下。
    • ¥15 B660主板安装xp系统老是出现错误怎么办
    • ¥15 定义过的变量报错未定义
    • ¥15 如何在EXCEL某单元格中查找是否存在另一列中的内容。
    • ¥50 非对称加密(相关搜索:密码学)
    • ¥15 关于非编程寻迹小车的分析
    • ¥15 java导出EXCEL这里已经执行成功了,但是流浪器没有下载
    • ¥15 帮我把代码改的能正常运行就行
    • ¥50 有限元修正、模型修正、最小二乘法,详细步骤
    • ¥15 用plc编写梯形程序