?? move1.c
字號:
#include <reg52.h>
#include <absacc.h>
#include <9534.h>
#include <9534move.h>
static unsigned char out2;
void stop(unsigned char axis)
{
switch(axis)
{
case 1:
T3_8253_1=0x36;
T3_8253_1=0x76;
break;
case 2:
T3_8253_1=0xb6;
T3_8253_2=0x36;
break;
case 3:
T3_8253_2=0x76;
T3_8253_2=0xb6;
break;
}
}
unsigned int check_pulse(unsigned char axis)
{
unsigned int a;
unsigned char b,c;
switch(axis)
{
case 1:
T3_8253_1=0x40;
c=T1_8253_1;
b=T1_8253_1;
break;
case 2:
T3_8253_2=0x00;
c=T0_8253_2;
b=T0_8253_2;
break;
case 3:
T3_8253_2=0x80;
c=T2_8253_2;
b=T2_8253_2;
break;
}
a=b*256+c;
return a;
}
bit check(unsigned char axis)
{
switch(axis)
{
case 1:
return (CE_IOH&0x20)==0?0:1;
case 2:
return (CE_IOH&0x40)==0?0:1;
case 3:
return (CE_IOH&0x80)==0?0:1;
}
}
void change_speed(unsigned int speed,unsigned char axis)
{
unsigned char speedL,speedH;
speedH=speed/256;
speedL=speed%256;
switch(axis)
{
case 1:
T0_8253_1=speedL;
T0_8253_1=speedH;
break;
case 2:
T2_8253_1=speedL;
T2_8253_1=speedH;
break;
case 3:
T1_8253_2=speedL;
T1_8253_2=speedH;
break;
}
}
void delay_a()
{
unsigned int d;
//for(d=0;d<300;d++);
for(d=0;d<10;d++);
}
void load_speed(bit brl,unsigned int length,unsigned int speed,bit dir,unsigned char axis)//脈沖產生
//void load_speed(unsigned int length,unsigned int speed,bit dir,unsigned char axis)//脈沖產生
{
unsigned char lengthH,lengthL,speedH,speedL;
// unsigned int d;
if(length<1)
return;
else
length--;
speedH=speed/256;
speedL=speed%256;
lengthH=length/256;
lengthL=length%256;
switch(axis)
{
case 1:
if(dir==0)
out2&=0xfe;
else
out2|=0x01;
CE_IOH=out2;
delay_a();
if(length==0)
{
T3_8253_1=0x30;
delay_a();
T3_8253_1=0x36;
break;
}
T3_8253_1=0x70;
if(brl)
{
T1_8253_1=lengthL;
T1_8253_1=lengthH;
}
//T3_8253_1=0x36;
//delay_a();
T3_8253_1=0x30;
delay_a();
T3_8253_1=0x36;
T0_8253_1=speedL;
T0_8253_1=speedH;
break;
case 2:
if(dir==0)
out2&=0xfd;
else
out2|=0x02;
CE_IOH=out2;
delay_a();
if(length==0)
{
T3_8253_1=0xb0;
delay_a();
T3_8253_1=0xb6;
break;
}
T3_8253_2=0x30;
if(brl)
{
T0_8253_2=lengthL;
T0_8253_2=lengthH;
}
//T3_8253_1=0xb6;
//delay_a();
T3_8253_1=0xb0;
delay_a();
T3_8253_1=0xb6;
T2_8253_1=speedL;
T2_8253_1=speedH;
break;
case 3:
if(dir==0)
out2&=0xfb;
else
out2|=0x04;
CE_IOH=out2;
delay_a();
if(length==0)
{
T3_8253_2=0x70;
delay_a();
T3_8253_2=0x76;
break;
}
T3_8253_2=0xb0;
if(brl)
{
T2_8253_2=lengthL;
T2_8253_2=lengthH;
}
//T3_8253_2=0x76;
//delay_a();
T3_8253_2=0x70;
delay_a();
T3_8253_2=0x76;
T1_8253_2=speedL;
T1_8253_2=speedH;
break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -