3332440244 发表于 2022-11-5 16:43:20

51单片机使用按键控制LED灯亮度,要求使用PWM波完成,即更改PWM波的占空比

急,朋友们,代码发一下谢谢了

cute 发表于 2023-1-29 22:05:49

#include <REGX52.H>
#include <intrins.h>

#define u8 unsigned char
#define u16 unsigned int
       
sbit D1=P2^0;

void Delay100us()                //@11.0592MHz
{
        unsigned char i;

        _nop_();
        i = 43;
        while (--i);
}

void Delay5ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 9;
        j = 244;
        do
        {
                while (--j);
        } while (--i);
}

u8 key()
{
        static u8 key_en=1;
        u8 value;
        value=0;
        if(key_en==1&&(P3_0==0||P3_1==0))
        {
                key_en=0;
                Delay5ms();
                if(P3_1==0)
                        value=2;
                if(P3_0==0)
                        value=1;
                Delay5ms();
        }
        else if(P3_0==1&&P3_1==1)
                key_en=1;
        return value;
}

void main()
{
        u8 i;
        u8 propor;        //Õ¼¿Õ±È
        u8 value;                //¼üÅÌ·µ»ØÖµ
        propor=5;
        while(1)
        {
                for(i=0;i<10;i++)
                {
                        if(i<propor)
                                D1=0;
                        else
                                D1=1;
                        Delay100us();
                }
                value=key();
                if(value)
                {
                        switch(value)
                        {
                                case 1:propor++;break;                //Ôö¼ÓÁÁ¶È
                                case 2:propor--;break;                //¼õµÍÁÁ¶È
                                default:break;
                        }
                        if(propor==10)
                                propor=9;
                        if(propor==255)
                                propor=0;
                }
        }
}

cute 发表于 2023-1-29 22:07:22

cute 发表于 2023-1-29 22:05


刚开始弄这个,注释有乱码了
页: [1]
查看完整版本: 51单片机使用按键控制LED灯亮度,要求使用PWM波完成,即更改PWM波的占空比