通过定时器来改变占空比继而改变信号
通过示波器查看数据
AT89C52
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar dat=0;
sbit LED=P2^1;
void initT0()
{
TMOD=0X01;
TH0=(65535-100)/256;
TL0=(65535-100)%256;
ET0=1;
EA=1 ;
TR0=1 ;
}
void serviceT0() interrupt 1
{
TH0=(65535-100)/256;
TL0=(65535-100)%256;
dat++;
if(dat==50) //50%的占空比
{
LED=1;
}
else if(dat==100)
{
LED=0;
dat=0;
}
}
void main()
{
initT0();
LED=0;
while(1);
}
波形图:
注:0电平为通电电平.
通过改变dat的值来改变占空比
例如:dat=75