求悬挂运动控制器系统程序
主程序清单
/*************************************/
/******主控程序*****/
/**功能*****/
/*切换子程序绕线机控制器调整坐标绕线机控制器显示实时坐标和目标坐标绕线机控制器计时*/
#include
#include
#include
#define uint unsigned int
#define uchar unsigned char
long time绕线机控制器t0;//秒钟计时参数
uchar lcdc=0x0f绕线机控制器place=0x94;//液晶控制字和光标闪烁地址
bit enter=0绕线机控制器cancle=0绕线机控制器l=1绕线机控制器set=1;//输入绕线机控制器取消绕线机控制器液晶刷新绕线机控制器设置
uint stat=0;//状态指示
uint time1[4]={0绕线机控制器0绕线机控制器0绕线机控制器0};//目标坐标
uint bitcount=0;
uint xc=0绕线机控制器yc=0绕线机控制器xt绕线机控制器yt绕线机控制器xs绕线机控制器ys;//当前坐标绕线机控制器中间坐标绕线机控制器最终坐标
uchar llt绕线机控制器lrt;//当前左右绳长绕线机控制器需改变长绕线机控制器最终长
bit ok=1;//指示下位机运行成功
uint bittemp;//在作图绕线机控制器画圆状态下的取位变量
uint x0绕线机控制器y0;//圆心
uint cnt;//作图和画圆时设定点的变量
uint ccnt;//作图时候坐标显示
uchar begin[2]={0绕线机控制器0};
uchar string[10][2];
bit xungui=0;
sbit sa=P0^2;//上
sbit sb=P0^3;//右
sbit sc=P0^1;//下
sbit sd=P0^0;//左绕线机控制器寻轨时的4个传感器
/*********液晶显示*********/
sbit scl=P0^7;//液晶显示时钟线
sbit sid=P0^6;//数据线
sbit cs=P0^5;//使能端
uchar code line1[12]={"画笔: 绕线机控制器 "};//第一行显示数据
uchar code line2[11]={"坐标: 绕线机控制器 "};//第二行
uchar code line3[12]={"时间: 定制控制系统.秒 "};
uchar code line4[12]={"状态: "};
uchar code yuan[141][2]={{ 0绕线机控制器 25}绕线机控制器{ 0绕线机控制器 24}绕线机控制器{ 0绕线机控制器 23}绕线机控制器{ 0绕线机控制器 22}绕线机控制器{ 0绕线机控制器 21}绕线机控制器{ 1绕线机控制器 20}绕线机控制器{ 1绕线机控制器 19}绕线机控制器{ 1绕线机控制器 18}绕线机控制器{ 1绕线机控制器 17}绕线机控制器{ 2绕线机控制器 16}绕线机控制器
{ 2绕线机控制器 15}绕线机控制器{ 3绕线机控制器 14}绕线机控制器{ 3绕线机控制器 13}绕线机控制器{ 4绕线机控制器 12}绕线机控制器{ 4绕线机控制器 11}绕线机控制器{ 5绕线机控制器 10}绕线机控制器{ 6绕线机控制器 9}绕线机控制器{ 7绕线机控制器 8}绕线机控制器{ 8绕线机控制器 7}绕线机控制器{ 9绕线机控制器 6}绕线机控制器
{10绕线机控制器 5}绕线机控制器{11绕线机控制器 4}绕线机控制器{12绕线机控制器 4}绕线机控制器{13绕线机控制器 4}绕线机控制器{14绕线机控制器 3}绕线机控制器{15绕线机控制器 2}绕线机控制器{16绕线机控制器 2}绕线机控制器{17绕线机控制器 2}绕线机控制器{18绕线机控制器 1}绕线机控制器{19绕线机控制器 1}绕线机控制器
{20绕线机控制器 1}绕线机控制器{21绕线机控制器 0}绕线机控制器{22绕线机控制器 0}绕线机控制器{23绕线机控制器 0}绕线机控制器{24绕线机控制器 0}绕线机控制器
{25绕线机控制器 0}绕线机控制器{26绕线机控制器 0}绕线机控制器{27绕线机控制器 0}绕线机控制器{28绕线机控制器 0}绕线机控制器{29绕线机控制器 0}绕线机控制器{30绕线机控制器 0}绕线机控制器{31绕线机控制器 1}绕线机控制器{32绕线机控制器 1}绕线机控制器{33绕线机控制器 1}绕线机控制器{34绕线机控制器 2}绕线机控制器
{35绕线机控制器 2}绕线机控制器{36绕线机控制器 3}绕线机控制器{37绕线机控制器 3}绕线机控制器{38绕线机控制器 4}绕线机控制器{39绕线机控制器 4}绕线机控制器{40绕线机控制器 5}绕线机控制器{41绕线机控制器 6}绕线机控制器{42绕线机控制器 7}绕线机控制器{43绕线机控制器 8}绕线机控制器{44绕线机控制器 9}绕线机控制器
{45绕线机控制器 10}绕线机控制器{46绕线机控制器 11}绕线机控制器{46绕线机控制器 12}绕线机控制器{47绕线机控制器 13}绕线机控制器{47绕线机控制器 14}绕线机控制器{48绕线机控制器 15}绕线机控制器{48绕线机控制器 16}绕线机控制器{49绕线机控制器 17}绕线机控制器{49绕线机控制器 18}绕线机控制器{49绕线机控制器 19}绕线机控制器
{49绕线机控制器 20}绕线机控制器{50绕线机控制器 21}绕线机控制器{50绕线机控制器 22}绕线机控制器{50绕线机控制器 23}绕线机控制器{50绕线机控制器 24}绕线机控制器
{50绕线机控制器 25}绕线机控制器{50绕线机控制器 26}绕线机控制器{50绕线机控制器 27}绕线机控制器{50绕线机控制器 28}绕线机控制器{50绕线机控制器 29}绕线机控制器{50绕线机控制器 30}绕线机控制器{49绕线机控制器 31}绕线机控制器{49绕线机控制器 32}绕线机控制器{49绕线机控制器 33}绕线机控制器{48绕线机控制器 34}绕线机控制器
{48绕线机控制器 35}绕线机控制器{48绕线机控制器 36}绕线机控制器{47绕线机控制器 37}绕线机控制器{46绕线机控制器 38}绕线机控制器{46绕线机控制器 39}绕线机控制器{45绕线机控制器 40}绕线机控制器{44绕线机控制器 41}绕线机控制器{43绕线机控制器 42}绕线机控制器{42绕线机控制器 43}绕线机控制器{41绕线机控制器 44}绕线机控制器
{40绕线机控制器 45}绕线机控制器{39绕线机控制器 46}绕线机控制器{38绕线机控制器 46}绕线机控制器{37绕线机控制器 47}绕线机控制器{36绕线机控制器 47}绕线机控制器{35绕线机控制器 48}绕线机控制器{34绕线机控制器 48}绕线机控制器{33绕线机控制器 49}绕线机控制器{32绕线机控制器 49}绕线机控制器{31绕线机控制器 49}绕线机控制器
{30绕线机控制器 49}绕线机控制器{29绕线机控制器 50}绕线机控制器{28绕线机控制器 50}绕线机控制器{27绕线机控制器 50}绕线机控制器{26绕线机控制器 50}绕线机控制器
{25绕线机控制器 50}绕线机控制器{24绕线机控制器 50}绕线机控制器{23绕线机控制器 50}绕线机控制器{22绕线机控制器 50}绕线机控制器{21绕线机控制器 50}绕线机控制器{20绕线机控制器 50}绕线机控制器{19绕线机控制器 49}绕线机控制器{18绕线机控制器 49}绕线机控制器{17绕线机控制器 49}绕线机控制器{16绕线机控制器 48}绕线机控制器
{15绕线机控制器 48}绕线机控制器{14绕线机控制器 47}绕线机控制器{13绕线机控制器 47}绕线机控制器{12绕线机控制器 46}绕线机控制器{11绕线机控制器 46}绕线机控制器{10绕线机控制器 45}绕线机控制器{ 9绕线机控制器 44}绕线机控制器{ 8绕线机控制器 43}绕线机控制器{ 7绕线机控制器 42}绕线机控制器{ 6绕线机控制器 41}绕线机控制器
{ 5绕线机控制器 40}绕线机控制器{ 4绕线机控制器 39}绕线机控制器{ 4绕线机控制器 38}绕线机控制器{ 3绕线机控制器 37}绕线机控制器{ 3绕线机控制器 36}绕线机控制器{ 2绕线机控制器 35}绕线机控制器{ 2绕线机控制器 34}绕线机控制器{ 1绕线机控制器 33}绕线机控制器{ 1绕线机控制器 32}绕线机控制器{ 1绕线机控制器 31}绕线机控制器
{ 1绕线机控制器 30}绕线机控制器{ 0绕线机控制器 29}绕线机控制器{ 0绕线机控制器 28}绕线机控制器{ 0绕线机控制器 27}绕线机控制器{ 0绕线机控制器 26}绕线机控制器{ 0绕线机控制器 25}};
uchar line44[4]={"坐标"};
void sendcom();
void delay(uint v)//延时程序
{
while(v机器人控制器!=0)
v--;
}
void writelcd(uchar date绕线机控制器bit k)//液晶写数据
{uchar temp;
uint i=0;
temp=date;
for(i=0;i<5;i++)
{
scl=0;
sid=1;
scl=1;
}
scl=0;
sid=0;
scl=1;
scl=0;
sid=k;
scl=1;
scl=0;
sid=0;
scl=1;
for(i=0;i<16;i++)
{
if(i=8&&i<12))
{
scl=0;
temp=temp<<1;
sid=CY;
scl=1;
}
else
{
scl=0;
sid=0;
scl=1;
}
}
delay(100);
}
void initiallcd(void)//液晶初始化
{
writelcd(0x30绕线机控制器0); //基本指令集
writelcd(0x06绕线机控制器0); //光标右移
writelcd(lcdc绕线机控制器0);//显示控制
}
void lcddriver(void)//显示
{
uint i=0;
initiallcd();
writelcd(0x80绕线机控制器0);
for(i=0;i<16;i++)
{
if(i9&&i<12)
{writelcd(line1[i-2]绕线机控制器1);}
else if(i==12)
{writelcd((yc/10+0x30)绕线机控制器1);}
else if(i==13)
{writelcd((yc%10+0x30)绕线机控制器1);}
else
{writelcd(line1[i-4]绕线机控制器1);}
}
writelcd(0x90绕线机控制器0);
for(i=0;i<16;i++)
{
if(i9&&i<12)
{writelcd(line2[i-3]绕线机控制器1);}
else if(i==12||i==13)
{writelcd(time1[i-10]+0x30绕线机控制器1);}
else
{writelcd(line2[i-5]绕线机控制器1);}
}
writelcd(0x88绕线机控制器0);
for(i=0;i<16;i++)
{
if(i<7)
{writelcd(line3[i]绕线机控制器1);}
else if(i==7)
{writelcd((time/1000+0x30)绕线机控制器1);}
else if(i==8)
{writelcd((time%1000/100+0x30)绕线机控制器1);}
else if(i==9)
{writelcd((time%100/10+0x30)绕线机控制器1);}
else if(i==10)
{writelcd(line3[7]绕线机控制器1);}
else if(i==11)
{writelcd((time%10+0x30)绕线机控制器1);}
else
{writelcd(line3[i-4]绕线机控制器1);}
}
writelcd(0x98绕线机控制器0);
for(i=0;i<16;i++)
{
if(i7&&i<12)
{writelcd(line44[i-8]绕线机控制器1);}
else
{writelcd(line4[i-4]绕线机控制器1);}
}
writelcd(place绕线机控制器0);
l=0;
}
/***************键盘读取及参数设定***********/
sbit key1=P2^0;//扫描矩阵键盘的四行
sbit key2=P2^1;
sbit key3=P2^2;
sbit key4=P2^3;
bit keyon绕线机控制器keyoff绕线机控制器key0on绕线机控制器key1on绕线机控制器key2on绕线机控制器key3on绕线机控制器key4on绕线机控制器key5on绕线机控制器
key6on绕线机控制器key7on绕线机控制器key8on绕线机控制器key9on绕线机控制器keyAon绕线机控制器keyBon绕线机控制器av;//各个按键和其他的防连击的位
uchar buffer;//按键值0~9
void readkey(void)//读键
{keyon=0;//键按下标志
P2=0xef;//对键进行扫描
if(key1==0){key0on=1;keyon=1;keyoff=1;l=1;}//0
if(key2==0){key8on=1;keyon=1;keyoff=1;l=1;}//8
if(key3==0){key4on=1;keyon=1;keyoff=1;l=1;}//4
if(key4==0){stat=0;l=1;set=1;cnt=0;bittemp=0;ccnt=0;}//写坐标
P2=0xdf;
if(key1==0){key1on=1;keyon=1;keyoff=1;l=1;}//1
if(key2==0){key9on=1;keyon=1;keyoff=1;l=1;}//9
if(key3==0){key5on=1;keyon=1;keyoff=1;l=1;}//5
if(key4==0){stat=1;l=1;set=1绕线机控制器cnt=0;bittemp=0;ccnt=0;}//作图
P2=0xbf;
if(key1==0){key2on=1;keyon=1;keyoff=1;l=1;}//2
if(key2==0){keyAon=1;keyon=1;keyoff=1;l=1;bittemp=0;ccnt=0;}//确认
if(key3==0){key6on=1;keyon=1;keyoff=1;l=1;}//6
if(key4==0){stat=2;l=1;set=1绕线机控制器cnt=100;bittemp=0;time1[0]=x0/10;time1[1]=x0%10;
time1[2]=y0/10;time1[3]=y0%10;ccnt=0;}//画圆
P2=0x7f;
if(key1==0){key3on=1;keyon=1;keyoff=1;l=1;}//3
if(key2==0){keyBon=1;keyon=1;keyoff=1;l=1;}//取消
if(key3==0){key7on=1;keyon=1;keyoff=1;l=1;}//7
if(key4==0){stat=3;l=1;ccnt=0;}//寻轨
}
void keyprocess(void)//防连击和对键赋值绕线机控制器还有使键有效
{
readkey();
while(keyoff)
{readkey();
if(keyon==0)
{if(key0on==1){buffer=0;key0on=0;av=1;}
if(key1on==1){buffer=1;key1on=0;av=1;}
if(key2on==1){buffer=2;key2on=0;av=1;}
if(key3on==1){buffer=3;key3on=0;av=1;}
if(key4on==1){buffer=4;key4on=0;av=1;}
if(key5on==1){buffer=5;key5on=0;av=1;}
if(key6on==1){buffer=6;key6on=0;av=1;}
if(key7on==1){buffer=7;key7on=0;av=1;}
if(key8on==1){buffer=8;key8on=0;av=1;}
if(key9on==1){buffer=9;key9on=0;av=1;}
if(keyAon==1){enter=1;keyAon=0;}
if(keyBon==1){cancle=1;keyBon=0;}
keyoff=0;
}
}
}
/**************************************************************/
void state(void)//状态
{
switch(stat)
{case 0 : line44[0]=0xd7;
line44[1]=0xf8;
line44[2]=0xb1;
line44[3]=0xea;
keyprocess();//写坐标状态
if(bitcount=4)
{
bitcount=0;
}
av=0;
l=1;
}
}
else
{
av=0;
xs=time1[0]*10+time1[1];
ys=time1[2]*10+time1[3];
}
if(enter)
{
set=~set;
if(set)
{
lcdc=0x0f;
TR0=0;
time=0;
l=1;
}
else
{
lcdc=0x0c;
TR0=1;
}
enter=0;
}
break;
case 1 : line44[0]=0xd7;
line44[1]=0xf7;
line44[2]=0xcd;
line44[3]=0xbc;
keyprocess();//作图状态
if(bitcount=4)
{
bitcount=0;
}
av=0;
l=1;
}
if(cancle)
{
if(cnt>8)
{cnt=0;}
else
{
cnt++;
}
string[cnt][0]=time1[0]*10+time1[1];
string[cnt][1]=time1[2]*10+time1[3];
cancle=0;
}
ccnt=cnt;
}
else
{ccnt=bittemp;
av=0;
xs=string[bittemp][0];
ys=string[bittemp][1];
time1[0]=xs/10;
time1[1]=xs%10;
time1[2]=ys/10;
time1[3]=ys%10;
}
if(enter)
{
set=~set;
bitcount=0;
if(set)
{
lcdc=0x0f;
TR0=0;
time=0;
l=1;
}
else
{
lcdc=0x0c;
TR0=1;
}
enter=0;
}
break;
case 2 : line44[0]=0xbb;
line44[1]=0xad;
line44[2]=0xd4;
line44[3]=0xb2;
keyprocess();//画圆状态
if(bitcount=4)
{
bitcount=0;
}
av=0;
l=1;
}
}
else
{
av=0;
x0=time1[0]*10+time1[1];
y0=time1[2]*10+time1[3];
if(x0>55||x075||y0<25)
{enter=1;TR0=0;}
xs=yuan[bittemp][0]+x0-25;
ys=yuan[bittemp][1]+y0-25;
}
if(enter)
{
set=~set;
bitcount=0;
if(set)
{
lcdc=0x0f;
TR0=0;
time=0;
l=1;
}
else
{
lcdc=0x0c;
TR0=1;
}
enter=0;
}
break;
case 3 : line44[0]=0xd1;
line44[1]=0xb0;
line44[2]=0xb9;
line44[3]=0xec;
keyprocess();//寻轨状态
if(bitcount=4)
{
bitcount=0;
}
av=0;
l=1;
}
}
else
{
av=0;
begin[0]=time1[0]*10+time1[1];
begin[1]=time1[2]*10+time1[3];
}
if(enter)
{
set=~set;
if(set)
{
lcdc=0x0f;
TR0=0;
time=0;
l=1;
}
else
{
lcdc=0x0c;
TR0=1;
xs=begin[0];
ys=begin[1];
xungui=1;
}
enter=0;
}
break;
default : break;
}
}
void comero(void)//坐标处理
{
if(xc>xs)//对X坐标进行处理
{
xt=xc-1;
}
else if(xcys)//对Y坐标进行处理
{
yt=yc-1;
}
else if(yc0)
yt=yc-1;}
if(sa==0&&sb==0&&sc==0&&sd==1)
{if(xc>0)
xt=xc-1;}
if(sa==1&&sb==1&&sc==0&&sd==1)
{if(xc>0)
xt=xc-1;
yt=yc+1;}
if(sa==0&&sb==1&&sc==1&&sd==0)
{if(xc>0)
xt=xc-1;
if(yc>0)
yt=yc-1;}
if(sa==0&&sb==0&&sc==1&&sd==1)
{if(yc>0)
yt=yc-1;
xt=xc+1;}
if(sa==1&&sb==0&&sc==0&&sd==1)
{xt=xc+1;
yt=yc+1;}
if(sa==0&&sb==1&&sc==1&&sd==1)
{xt=xc+1;}
if(sa==1&&sb==1&&sc==1&&sd==0)
{yt=yc+1;}
if(sa==1&&sb==1&&sc==0&&sd==1)
{if(xc>0)
xt=xc-1;}
if(sa==1&&sb==0&&sc==1&&sd==1)
{if(yc>0)
yt=yc-1;}
if(sa==1&&sb==1&&sc==1&&sd==1)
{xt=xc+1;
yt=yc+1;}
if(sa==0&&sb==0&&sc==0&&sd==0)
{TR0=0;}
roledeal();
if(ok)
{
xc=xt;
yc=yt;
sendcom();
ok=0;
}
}
}
else//其他状态
{
if(xc==xs&&yc==ys)
{
if(stat==1)
{
if(bittemp==9)
{
bittemp=0;
TR0=0;
enter=1;
}
else
{bittemp++;}
ccnt=bittemp;
}
else if(stat==2)
{
if(bittemp>=140)
{
bittemp=0;
TR0=0;
enter=1;
}
else
{bittemp++;}
}
else if(stat==0)
{TR0=0;
}
}
comero();
roledeal();
if(ok)
{
xc=xt;
yc=yt;
sendcom();
ok=0;
}
}
}
main()
{
delay(100);
TMOD=0x21;//开启定时器
TH1=0xFD;
TL1=0xFD;
TR1=1;
SCON=0x50;
EA=1;//打开总中断
ES=1;
ET0=1;//打开T0
TR0=0;
while(1)
{state();
if(机器人控制器!set)
{process();}
if(l)
lcddriver();}
}
t0count () interrupt 1 using 1//计时功能
{
TH0=0xfc;
TL0=0x70;
t0=t0+1;
if(t0==100)
{
time++;
l=1;
if(time>=10000)
{
time=0;
}
t0=0;
}
}
serial () interrupt 4 using 1//接受下位机到位信号
{
if(1==RI)
{
RI=0;
if(0x60==SBUF)
{ok=1;
l=1;
}
}
2 从机程序清单
/*******************************************/
/*****从机程序***********/
/*****功能*****/
/*从主机接受两绳长数值绕线机控制器对绳长进行调整绕线机控制器使画笔到指定坐标*/
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit a1=P0^0;
sbit a2=P0^1;
sbit a3=P0^2;
sbit a4=P0^3;//一号电机的驱动口
sbit b1=P0^4;
sbit b2=P0^5;
sbit b3=P0^6;
sbit b4=P0^7;//二号电机驱动口
uint djmc1绕线机控制器djmc2;//电机运转脉冲
bit record;//数据接受标志
uchar temp[2]={0x73绕线机控制器0x95};//左右目标线长
uchar temp1[2]={0x73绕线机控制器0x95};//左右目前线长
bit cnt=0;
bit w1=1绕线机控制器w2=1;//左右电机正反转标志位
bit run1=0绕线机控制器run2=0;//左右电机运行标志
long dis1=0绕线机控制器dis2=0;//需要改变的线长
long t0;//定时器参数
long int cnt1绕线机控制器cnt2绕线机控制器cnt11绕线机控制器cnt22;//走线需要左右电机脉冲数
bit send;//
void dj1(void)//一号电机驱动
{if(w1)//正转
{
switch(djmc1)
{
case 0 : a1=1;a2=0;a3=0;a4=1;break;
case 1 : a1=1;a2=0;a3=1;a4=0;break;
case 2 : a1=0;a2=1;a3=1;a4=0;break;
case 3 : a1=0;a2=1;a3=0;a4=1;break;
default : djmc1=0;break;
}
}
else//反转
{
switch(djmc1)
{
case 0 : a1=0;a2=1;a3=0;a4=1;break;
case 1 : a1=0;a2=1;a3=1;a4=0;break;
case 2 : a1=1;a2=0;a3=1;a4=0;break;
case 3 : a1=1;a2=0;a3=0;a4=1;break;
default : djmc1=0;break;
}
}
}
void dj2(void)
{if(w2)
{
switch(djmc2)
{
case 0 : b1=0;b2=1;b3=0;b4=1;break;
case 1 : b1=1;b2=0;b3=0;b4=1;break;
case 2 : b1=1;b2=0;b3=1;b4=0;break;
case 3 : b1=0;b2=1;b3=1;b4=0;break;
default : djmc2=0;break;
}
}
else
{
switch(djmc2)
{
case 0 : b1=0;b2=1;b3=1;b4=0;break;
case 1 : b1=1;b2=0;b3=1;b4=0;break;
case 2 : b1=1;b2=0;b3=0;b4=1;break;
case 3 : b1=0;b2=1;b3=0;b4=1;break;
default : djmc2=0;break;
}
}
}
main()
{TMOD=0x21;//开启定时器
TH0=0xfc;//给初值
TL0=0x62;
TH1=0xFD;
TL1=0xFD;
TR1=1;
SCON=0x50;
PCON=0x00;
EA=1;//打开总中断
ES=1;
ET0=1;//打开T0
TR0=1;
while(1)
{
dj1();
dj2();
if(send==1&&run1==0&&run2==0)
{
temp1[1]=temp[1];
temp1[0]=temp[0];
SBUF = 0x60;
while(机器人控制器!TI); // 等特数据传送
TI = 0; // 清除数据传送标志
send=0;
}
}
}
serial () interrupt 4 using 1//串口中断绕线机控制器接收从主机发过来的绳长值
{
if(1==RI)
{
RI=0;
if(0xFF==SBUF)//地址判断绕线机控制器为减少误差
{
record=1;
cnt=0;
}
else if(1==record)
{
temp[cnt]=SBUF;
if(cnt)
{run1=1;
run2=1;
send=1;
record=0;
cnt=0;
if(temp[1]>temp1[1])//给右线长度
{
dis2=temp[1]-temp1[1];
w2=1;
}
else
{
dis2=temp1[1]-temp[1];
w2=0;
}
cnt22=(dis2*9730)/928;
cnt2=0;
}
else
{if(temp[0]>temp1[0])//给左线长度
{
dis1=temp[0]-temp1[0];
w1=1;
}
else
{
dis1=temp1[0]-temp[0];
w1=0;
}
cnt11=(dis1*9730)/928;
cnt1=0;
cnt=1;
}} }}
t0count () interrupt 1 using 1//电机脉冲产生定时器
{
TH0=0xfc;
TL0=0x66;
t0++;
if(t0==50)
{t0=0;
if(run1)
{
if(cnt1>=cnt11)
{run1=0;}
else
{cnt1++;
if(3==djmc1)
{
djmc1=0;
}
else
{
djmc1=djmc1+1;
}}}
if(run2)
{
if(cnt2>=cnt22)
{run2=0;}
else
{cnt2++;
if(3==djmc2)
{
djmc2=0;
}
else
{
djmc2=djmc2+1;
}}}}}
追问
拜托了运动控制器,小弟还是个新手运动控制器,能不能给个能正确编译的程序呀
评论|
