#include<reg52.h>
#define uc unsigned char
sbit led=P2^0;
sbit key=P3^1;
unsigned int time=0,s=0;
void delay(uc c)
{
uc a,b;
for(;c>0;c--)
for(a=38;a>0;a--)
for(b=130;b>0;b--);
}
void ss() interrupt 3
{
TH1=64536/256;
TL1=64536%256;
time++;
if(time>=10) time=0;
if(time<s)
led=0;
else
led=1;
TF1=0;
}
void main()
{
TMOD=0x10;
TH1=64536/256;
TL1=64536%256;
ET1=1;
TR1=1;
EA=1;
while(1)
{
if(key==0) s++;
if(s>=10) s=1;
delay(1);
while(key==0);
delay(1);
}
}
利用定时器控制pwm波形,主函数通过独立按键控制占空比
- 接线:
- led接P2^0
- key接P3^1