首页 随随便便写,生活小记,源码分享,学习笔记

前言

今天学习了脉宽调制,主要的原理就是控制高电平和低电平的触发时间。
应用到led灯上面,脉冲的高电平的时间决定了灯亮的时间,脉冲低电平的时间决定了灯灭的时间,所以要控制灯的亮度的变化只需要控制脉冲的高电平和低电平持续的时间即可。
例如我想让灯越来越亮,首先给得先让灯灭,那么根据上面所说的高电平和低电平之间的关系,我们主要让高电平的持续时间为零,再给个低电平的值,就能让灯处于灭的状态;灯逐渐变亮就是让高电平的值++,让低电平的值--。
灯逐渐熄灭就反过来。
废话不多说了直接上正文

正文

先放程序

#include<reg51.h>
#define i unsigned int
#define on 0
#define off 1
#define time 1000

sbit k1=P1^1;
sbit k2=P1^7;
sbit led=P2^0;

void delay(i d)
{
    i c;
    for(c=0;c<d;c++);
}

void main()
{
    i a,b;
    b=time;
    while(1)
    {
        led=on;
        // 灯亮
        delay(a);
        // 灯亮的时间
        led=off;
        // 灯灭
        delay(b);
    // 灯灭的时间
        if(k1==0)
        {
            delay(100);
            if(k1==0)
            {
                a++;
                // 亮的时间增加
                b--;
                // 灭的时间减少
                if(b==0)
                {
                    b=time;
                    a=0;
                }
                 // 完全熄灭之后让灯重新亮
            }
        }
        if(k2==0)
        {
            delay(100);
            if(k2==0)
            {
                b++;
                a--;
                if(a==0)
                {
                    a=time;
                    b=0;
                }
            }
        }
    }
}

仿真视频

一闪一闪的是因为仿真的原因!
我当时还以为我错了,特地问了老师
仿真.png




文章评论

    Parrot 访客BrowserSystem
    17天 前   回复

    好厉害!!!

    测试 访客ChromeAndroid
    29天 前   回复

    看看

    测试 访客ChromeAndroid
    29天 前   回复

    看看

    观后无感 站长ChromeWindows
    29天 前   回复

    来看看吧

      观后无感 站长ChromeWindows
      29天 前   回复

      kankan

        观后无感 站长ChromeWindows
        29天 前   回复

        kankna吧

          观后无感 站长ChromeWindows
          29天 前   回复

          看看吧

            观后无感 站长ChromeWindows
            29天 前   回复

            看看就看看

              观后无感 站长ChromeWindows
              29天 前   回复

              knaknakna

              观后无感 站长ChromeWindows
              29天 前   回复

              234253

                观后无感 站长ChromeWindows
                29天 前   回复

                看看那

                  观后无感 站长ChromeWindows
                  29天 前   回复

                  7856769

                  观后无感 站长ChromeWindows
                  29天 前   回复

                  43255476