#include "reg52.h"
#include "duoji.h"
#include "delay.h"
/*
這個程序如果有問題,很有可能是單舵機程序編程雙舵機程序的時候編號哪里沒改,
就是原來單舵機程序復制一個,然后參數(shù)加上1,2形成雙舵機程序,
還有可能就是一個中斷變成兩個中斷開關(guān)參數(shù)有問題,因為我不太記得了
*/
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開始計數(shù)一直到65535溢出
TL0=0x00;
TH1=0x00; //給定初值,這里使用定時器最大值從0開始計數(shù)一直到65535溢出
TL1=0x00;
EA=1; //總中斷打開
ET0=1; //定時器0中斷打開
TR0=1; //定時器0開關(guān)打開
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); //兩舵機反轉(zhuǎn)
IN1=1; IN2=0; //左氣泵吸緊
DelayMs(3000);
IN1=1; IN2=0; //左氣泵吸緊
IN3=0; IN4=0; //右氣泵放松
DelayMs(3000); //等待放松
duoji1(1000);
duoji2(1000); //兩舵機反轉(zhuǎn)
IN3=1; IN4=0; //右氣泵吸緊
}
}
|