我要实现的功能是 上电后 舵机转到45度 延时2.5s后 然后转到-90度 我只能用两个定时器才能写出来 可是52
单片机定时器太少 不够用啊 所以改为用一个定时器写 可写了 不对啊 这是我的程序 哪位大哥可以帮我改一下 十分感谢 #include <reg52.h>
#define uint unsigned int
sbit pwm=P1^0;
uint PWM_W=0,PWM_T=0,PWM_data[]={20,5},i=1,h=0;
void Init()
{
TMOD=0X01;
TH0=65436/256;
TL0=65436/256;
EA=1;
TR0=1;
ET0=1;
}
void main()
{
Init();
while(1);
}
void T0_
time() interrupt 1//100微妙中断一次
{
TH0=65436/256;
TL0=65436/256;
PWM_W++;
PWM_T++;
i++;
if(PWM_T<200) //是否小于20MS
{
if(PWM_W<PWM_data[h]) //转向45度
{
pwm=1;
}
else pwm=0;
}
if(i==2500) //延时2.5s后再转个角度
{ i=0;
PWM_T=0;
PWM_W=0;
h++;
if(h==2)//转向-90度
h=0;
}
}
一周热门 更多>