#include "reg52.h"
sbit PWM=P3^7;
unsigned char time1;
void ConfigTimer1()
{
//TMOD&=0x0F;//清空控制位
TMOD|=0x00;//定时器0工作方式0
TH1=0xff;//(65536-10)/256;//赋初值定时
TL1=0xf7;//(65536-10)%256;//0.01ms
EA=1;//开总中断
ET1=1;//开定时器1中断
TR1=1;//启动定时器1
}
void timer0() interrupt 3
{
//TR0=0;//赋初值时,关闭定时器
TH1=0xff;//(65536-10)/256;//赋初值定时
TL1=0xf7;//(65536-10)%256;//0.01ms
//TR0=1;//打开定时器
time1++;
if(time1>=100) //1khz
time1=0;
if(time1<(100-Distance)) //占空比%20,可改
PWM=1;
else if(time1>=99)
PWM=1;
else
PWM=0;
}
用这个定时器试试。 |