用51单片机产生PWM波形 有一些问题想咨询一下各位
是否可以这样,就是我用一个管脚产生一个高低电平就可以了,当要产生一个16K的频率时候,我就用一个定时器定义:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa;
sbit D1=P1^0;
void delay(uint z);
void main()
{
D1=0;
aa=0;
TMOD=0x01;
TH0=(65536-63)/256;
TL0=(65536-63)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(aa==1)
{
aa=0;
D1=~D1;
}
}
}
void time1() interrupt 1
{
TH0=(65536-63)/256;
TL0=(65536-63)%256;
aa++;
}
上面的程序就产生了一个频率为16k的PWM,但是如何调节它的占空比呢? |