#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit P10=P0^4;//三线舵机信号线
uint aa;//全局变量,控制周期长度
uint k;//控制占空比
void Timer_init();
void Delay() //@11.0592MHz
{
unsigned char i, j, k;
i = 2;
j = 1;
k = 32;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
init();
TR0=1;
P10=1;
k=15;
while(1)
{
if(k<37)//我们实验室的舵机刚刚好,k多了舵机就成电机了,转飞了
{
k++;
Delay();
}
else
{
k=7;
}
};
}
void timer0()interrupt 1 //定时器产生周期为0.5ms
{
TH0=(65536-50)/256;
TL0=(65536-50)%256;
if(aa<k)
P10=1;
else
P10=0;
aa++;
if(aa>=39)
aa=0;
}
void Timer_init()
{
aa=0;
P10=0;
TMOD=0x11;
TH0=(65536-50)/256;
TL0=(65536-50)%256;
EA=1;
ET0=1;
}
STC89C52舵机详细代码
最新推荐文章于 2023-04-30 01:47:25 发布