#include "reg52.h"
#include "duoji.h"
#include "delay.h"
/*
这个程序如果有问题,很有可能是单舵机程序编程双舵机程序的时候编号哪里没改,
就是原来单舵机程序复制一个,然后参数加上1,2形成双舵机程序,
还有可能就是一个中断变成两个中断开关参数有问题,因为我不太记得了
*/
sbit IN1=P1^2;
sbit IN2=P1^3;
sbit IN3=P1^4;
sbit IN4=P1^5;
void main()
{
TMOD |= 0x11; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 TOMD = TOMD | 0X11
TH0=0x00; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL0=0x00;
TH1=0x00; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL1=0x00;
EA=1; //总中断打开
ET0=1; //定时器0中断打开
TR0=1; //定时器0开关打开
ET1=1; //定时器0中断打开
TR1=1;
while(1)
{
IN1=1; IN2=0; //左气泵吸紧
IN3=1; IN4=0; //右气泵吸紧
duoji1(1000);
duoji2(1000); //假设两舵机的极限位置均分别在1000和2000
DelayMs(3000);
IN1=0; IN2=0; //左气泵放松
IN3=1; IN4=0; //右气泵吸紧
DelayMs(3000); //等待放松
duoji1(2000);
duoji2(2000); //两舵机反转
IN1=1; IN2=0; //左气泵吸紧
DelayMs(3000);
IN1=1; IN2=0; //左气泵吸紧
IN3=0; IN4=0; //右气泵放松
DelayMs(3000); //等待放松
duoji1(1000);
duoji2(1000); //两舵机反转
IN3=1; IN4=0; //右气泵吸紧
}
}
|