|
#include "reg52.h"
sbit PWM=P1^1;//定義引腳為p2^7口
int time,a; //定義兩個(gè)變量
void delay(int z)//延時(shí)函數(shù)
{
int j,i;
for(i=0;i<z;i++)
for(j=110;j>0;j--);
}
void Time_Init() //定時(shí)器初始化
{
TMOD=0x01; //選定工作方式
EA=1; //總中斷開啟
ET0=1; //定時(shí)器中斷開啟
TH0=(65536-1000)/256; //定時(shí)器賦初值
TL0=(65536-1000)%256;
TR0=1; //開啟定時(shí)器
}
void Time0() interrupt 1
{
TH0=(65536-100)/256; //0.1ms為一次溢出
TL0=(65536-100)%256;
time++;
if(time>=200) //設(shè)定周期為20ms
time=0;
if(time<=a) //占空比,可改
PWM=1;
else PWM=0;
}
void main()
{
Time_Init();
delay(50);
while(1)
{
a=10; //實(shí)現(xiàn)舵機(jī)相對(duì)正轉(zhuǎn)
delay(2000);
a=15; //實(shí)現(xiàn)舵機(jī)相對(duì)反轉(zhuǎn)
delay(2000);
}
}
|
|