|
程序运行正确,能通过K3K4K5键控制机械手张开预订角度,问题如下:比如按K3键能夹紧物体,但是机械手夹取遇到阻力时就不能通过K4键再松开。如果不夹取物体,只是让他空夹,他就能自由夹紧和松开。只要遇到阻力就不能再松开。只有断电才能松开了。求各位大神帮忙看看。不胜感激!!!程序如下:
#include<reg52.h>
sbit djkz=P3^0;
sbit K3=P3^7;
sbit K4=P3^6;
sbit K5=P3^5;
void delay(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--) //i=xms,即延迟多长时间
for(j=112;j>0;j--);
}
void jiajin()
{
int i;
int j=0;
while(j<20) //i=330夹紧
{
djkz=1;
for(i=0;i<330;i++);
djkz=0;
for(i=0;i<50;i++);
j++;
}
delay(100);
}
void songkai()
{
int i;
int j=0;
while(j<20) //i=180中间位置
{
djkz=1;
for(i=0;i<180;i++);
djkz=0;
for(i=0;i<1200;i++);
j++;
}
delay(100);
}
void pingkai()
{
int i;
int j=0;
while(j<20) //i=150松开
{
djkz=1;
for(i=0;i<150;i++);
djkz=0;
for(i=0;i<1200;i++);
j++;
}
delay(100);
}
void key()
{
if(K3==0)
{
jiajin();
}
if(K4==0)
{
songkai();
}
if(K5==0)
{
pingkai();
}
}
void main()
{
while(1)
{
key();
}
}
|
|