#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);
}
}
|