#include "reg52.h"
sbit PWM=P1^1;//定义引脚为p2^7口
int time,a; //定义两个变量
void delay(int z)//延时函数
{
int j,i;
for(i=0;i<z;i++)
for(j=110;j>0;j--);
}
void Time_Init() //定时器初始化
{
TMOD=0x01; //选定工作方式
EA=1; //总中断开启
ET0=1; //定时器中断开启
TH0=(65536-1000)/256; //定时器赋初值
TL0=(65536-1000)%256;
TR0=1; //开启定时器
}
void Time0() interrupt 1
{
TH0=(65536-100)/256; //0.1ms为一次溢出
TL0=(65536-100)%256;
time++;
if(time>=200) //设定周期为20ms
time=0;
if(time<=a) //占空比,可改
PWM=1;
else PWM=0;
}
void main()
{
Time_Init();
delay(50);
while(1)
{
a=10; //实现舵机相对正转
delay(2000);
a=15; //实现舵机相对反转
delay(2000);
}
}
|