实验内容

  • 利用一个程序使得51单片机控制LED灯,实现LED灯亮度的周期性变化,达到类似呼吸灯的效果
  • 进一步地,在程序中提供一个方便地改变呼吸灯闪烁频率的方法,让用户可以只修改一个参数就能够改变LED灯亮暗变化的频率

实验解决的关键问题

1. 如何控制LED灯的亮暗程度

让LED在很短的一个周期内亮起、熄灭;亮起、熄灭;因为人眼的视觉暂留现象,以及LED灯本身的延迟,人会观察到LED总体亮度的改变,而不会观察的亮灭的过程;通过调节亮、灭的时间比例来控制LED亮度。

2. 如何控制LED亮暗变化的周期

  • 递增程序:让一个数从0增加到255,到达255后自动跳转到递减程序
    • 递减程序:让一个数从255增加到0,到达0后自动跳转到递增程序
      • 利用这个0-255之间周期变化的数,去控制LED的亮暗程度

        3. 如何让用户方便的调节呼吸灯变化频率

        为了实现这个功能,我们把控制频率的寄存器 放在了程序的开头,供用户调用
        其中, 为每次递减的量,必须是255的因数; 实现分频
        这样设计程序,可以在呼吸灯频率的控制上有较大的自由度

        完整实验代码

        实验效果

        可以改进的问题

        从视频中可以看到,从完全熄灭到导通的过程有点不平滑,有一个闪烁的过程;初步讨论得出,这可能是人眼对这个区间的亮度变化比较敏感导致的。可能的改进方案是,不要让LED的亮度完全降到0,从而让呼吸灯的过渡过程更加自然。
        Loading...
        Z_cosy
        Z_cosy
        浙江大学电气工程学院本科生
        最新发布
        Dairy
        2025-4-21
        MATH
        2025-3-23
        English
        2025-3-21
        Courses
        2025-3-21
        公告
        🎉Welcome to Z-cosy🎉
        -- 食用指南 ---
        目前只有课程笔记以及电控学习笔记
        陆续会整理更多内容!