通过定时器来改变占空比继而改变信号
通过示波器查看数据
AT89C52
#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar 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