占空比位多少?比如为20%,那么程序如下:
#include
#define uchar unsigned char
sbit pluse=P1^0;
uchar pwm;
void t0isr() interrupt 1
{
pwm++;
pwm%=10;
if(pwn<2)pluse=1;
else pluse=0;
}
main()
{
TMOD=0x02;
TH0=216;
TL0=216;
TR0=1;
ET0=1;
EA=1;
while(1);
}
不知道你这个给定的fosc是多少,我这个是按12MHZ算的,如果是11.0592MHZ要重新算初始值。改下数据
#include" reg51. h"
#define uchar unsigned char
#define uint unsigned int
sbit PWM=P1^0;
static uchar time;
void main(void)
{
TMOD=0x02;
TH0=256-2;
TL0=256-2;
EA=1;
ET0=1;
TR0=1;
while(1)
{
}
}
void time0() interrupt 1
{
TR0=0;
TH0=256-2;
TL0=256-2;
TR0=1;
time++;
if(time>=200)
time=0;
if(time<=182)//占空比为91%;占空比10:1为:10÷11=0.9090909≈0.91
PWM=1;
else PWM=0;
}