调节占空比为啥灯的亮度变化 不明显

2019-03-24 19:20发布

我用单片机产生pwm波,周期是500hz,控制灯的亮度,调节占空比,为啥灯的亮度变化不明显,而且我的按键程序也不能用  此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
51新手
1楼-- · 2019-03-24 21:10
是 频率,不是周期,搞晕了
cain0203
2楼-- · 2019-03-25 02:38
把程序贴出来看看呗···
51新手
3楼-- · 2019-03-25 05:41
现在是弄的100hz的啦,示波器显示的是98hz;主要是由于初值有小数,然后我去掉了小数造成的估计

#include <reg51.h>

#define uchar unsigned char
#define uint unsigned int

sbit led=P0^0;
sbit key1=P1^3;
sbit key2=P1^4;

unsigned int a, b;

void delay(int z);
void key(void);

void inti()
{
        EA=1;
        ET0=1; //允许定时器0中断
        TMOD=0x01;//定时器0用作定时
        TR0=1;
        TH0=0xFC;
        TL0=0x66;
}

void main()
{       
        a=0;
        b=5;
        inti();
        while(1);
        {
                key();
        }
}

void led1() interrupt 1
{
        TH0=0xFC;
        TL0=0x66;
        a++;
        if (a <= b)
        {
                led= 1;
        }
        if (a > b)
        {
                led = 0;
        }
        if (a == 10)
        {
                a=0;
        }
}

void key(void)
{
        key1=0;

        if (key2==0)
        {
                delay(5);
                if (key2 ==0)
                {
                        b = b+1;
                }
        }

        if (b > 10)
        {
                b=10;
        }
}       

void delay(int z)
{
        int x, y;

        for (x=0; x<z;x++)
        {
                for (y=0;y<110;y++);
        }
}
51新手
4楼-- · 2019-03-25 08:28
for (x=0; x {
for (y=0;y<110;y++);
}
}

for(x=0;x<z;x++)
{
      for(y=0;y<110;y++)
     {
     }
}
51新手
5楼-- · 2019-03-25 14:06
是  for(x=0;x<z;x++)
jishuaihu
6楼-- · 2019-03-25 17:59
 精彩回答 2  元偷偷看……

一周热门 更多>