⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 002.lst

📁 通过插补计算实现在51单片机上控制X-Y机械手臂绘图的功能
💻 LST
📖 第 1 页 / 共 3 页
字号:
 243   4                                              xm--;
 244   4                                              left();
 245   4                                      }
 246   3      
 247   3                              if(xiangxian==1||xiangxian==4)
 248   3                                      {
 249   4                                              xm++;
 250   4                                              right();                                
 251   4      
 252   4                                      }
 253   3      
 254   3                                              fm=fm-abs(ye);
 255   3                      
 256   3                       }
 257   2      
 258   2                        if(fm<0)
 259   2                       {
 260   3                              if(xiangxian==1||xiangxian==2)
 261   3                                      {
 262   4                                              ym++;
 263   4                                              up();
 264   4                                      }
 265   3      
 266   3                              if(xiangxian==3||xiangxian==4)
 267   3                                      {
 268   4                                              ym--;
 269   4                                              down();
 270   4      
 271   4                                      }
 272   3      
 273   3                                              fm=fm+abs(xe);
 274   3                                      
 275   3                      
 276   3                       }
 277   2                                              ptr=6;
 278   2                                   para[6]=bushu--;
 279   2                       }
 280   1      
 281   1              
 282   1      }
 283          
 284          void mode_yh(int fangxiang)
 285          {
 286   1              int xiangxian,flag;//x1,y1;
 287   1      
 288   1       if(!autopic){
 289   2              ptr=0;
 290   2              if(fangxiang==0)
 291   2              para[0]=2000;
 292   2              else para[0]=3000;
 293   2              for(;;)
 294   2                      {
 295   3                              if(keyx>0)
 296   3                               {
 297   4                              key=keyx;   
 298   4                              while(keyx!=0) 
 299   4                                      {keyx=0; time(3000);}
 300   4                                      if(key==16)
 301   4                                      break;
 302   4                              keyproc();
 303   4      
C51 COMPILER V7.06   002                                                                   09/16/2008 20:43:48 PAGE 6   

 304   4                               }
 305   3                      }
 306   2              para[0]=para[0]*1000/325*10;
 307   2              para[1]=para[1]*1000/325*10;
 308   2              para[2]=para[2]*1000/325*10;
 309   2              para[3]=para[3]*1000/325*10;
 310   2              para[4]=para[4]*1000/325*10;
 311   2              para[5]=para[5]*1000/325*10;
 312   2                }
 313   1      
 314   1      
 315   1      
 316   1              xm=para[0];
 317   1              ym=para[1];
 318   1               dingwei();//画笔初始化
 319   1               xm=para[0]-para[4];//01起始23重点45原点
 320   1               ym=para[1]-para[5];
 321   1               xe=para[2]-para[4];
 322   1               ye=para[3]-para[5];
 323   1               xo=0;
 324   1               yo=0;
 325   1         // x1=xm;
 326   1              // y1=ym;
 327   1               xx=para[2];
 328   1               yy=para[3];
 329   1               fm=0;
 330   1              if(xm==xe&&ym==ye)
 331   1              flag=1;
 332   1              while(xm!=xe||ym!=ye||flag)
 333   1               {      
 334   2                       flag=0;        
 335   2                       if((ym-yo)>0&&(xm-xo)>0)
 336   2               xiangxian=1;
 337   2                       if((ym-yo)>0&&(xm-xo)<0)
 338   2               xiangxian=2;   
 339   2                       if((ym-yo)<0&&(xm-xo)<0)
 340   2               xiangxian=3;
 341   2                       if((ym-yo)<0&&(xm-xo)>0)
 342   2               xiangxian=4;   
 343   2                       if(ym==yo&&(xm-xo)>0)
 344   2           xiangxian=5;//+x轴上
 345   2                       if(xm==xo&&(ym-yo)>0)
 346   2           xiangxian=6;//+y轴上       
 347   2                       if(ym==yo&&(xm-xo)<0)
 348   2           xiangxian=7;//-x轴上
 349   2                       if(xm==xo&&(ym-yo)<0)
 350   2           xiangxian=8;//-y轴上                       
 351   2               pen1=0;
 352   2              
 353   2                       if(fm>=0)
 354   2                       {
 355   3                              if((fangxiang==1&&xiangxian==1)||(fangxiang==0&&xiangxian==4)||(xiangxian==5))
 356   3                                      {       fm=fm-2*abs(xm)+1;
 357   4                                              xm--;
 358   4                                              left();
 359   4                                      
 360   4                                      }
 361   3      
 362   3                              if((xiangxian==3&&fangxiang==1)||(xiangxian==2&&fangxiang==0)||(xiangxian==7))
 363   3                                      {       fm=fm-2*abs(xm)+1;
 364   4                                              xm++;
 365   4                                              right();        
C51 COMPILER V7.06   002                                                                   09/16/2008 20:43:48 PAGE 7   

 366   4                                              
 367   4      
 368   4                                      }
 369   3                              if((fangxiang==0&&xiangxian==1)||(fangxiang==1&&xiangxian==2)||(xiangxian==6))
 370   3                                      {       fm=fm-2*abs(ym)+1;
 371   4                                              ym--;
 372   4                                              down();
 373   4                                              
 374   4                                      }
 375   3      
 376   3                              if((xiangxian==3&&fangxiang==0)||(xiangxian==4&&fangxiang==1)||(xiangxian==8))
 377   3                                      {
 378   4                                              fm=fm-2*abs(ym)+1;
 379   4                                              ym++;
 380   4                                              up();   
 381   4                                              
 382   4      
 383   4                                      }
 384   3                                      
 385   3                      
 386   3                       }
 387   2      
 388   2                       else
 389   2                       {
 390   3                                      if((fangxiang==0&&(xiangxian==3||xiangxian==8))||(fangxiang==1&&(xiangxian==2||xiangxian==6)))
 391   3                                      {
 392   4                                              fm=fm+2*abs(xm)+1;
 393   4                                              xm--;
 394   4                                              left();
 395   4                                              
 396   4                                      }
 397   3      
 398   3                              if(((xiangxian==1||xiangxian==6)&&fangxiang==0)||((xiangxian==4||xiangxian==8)&&fangxiang==1))
 399   3                                      {
 400   4                                              fm=fm+2*abs(xm)+1;
 401   4                                              xm++;
 402   4                                              right();        
 403   4                                              
 404   4      
 405   4                                      }
 406   3                              if((fangxiang==1&&(xiangxian==3||xiangxian==7))||(fangxiang==0&&(xiangxian==4||xiangxian==5)))
 407   3                                      {
 408   4                                              fm=fm+2*abs(ym)+1;
 409   4                                              ym--;
 410   4                                              down();
 411   4                                              
 412   4                                      }
 413   3      
 414   3                              if(((xiangxian==1||xiangxian==5)&&fangxiang==1)||((xiangxian==2||xiangxian==7)&&fangxiang==0))
 415   3                                      {
 416   4                                              fm=fm+2*abs(ym)+1;
 417   4                                              ym++;
 418   4                                              up();   
 419   4                                              
 420   4      
 421   4                                      }
 422   3                      
 423   3                       }
 424   2                       }
 425   1      
 426   1      }
 427          
C51 COMPILER V7.06   002                                                                   09/16/2008 20:43:48 PAGE 8   

 428          void fuwei()
 429          {
 430   1              xm=0;
 431   1              ym=0;
 432   1              dingwei();
 433   1      }
 434          
 435          void mypic()
 436          {       autopic=1;
 437   1              para[0]=150;
 438   1          para[1]=240;
 439   1          para[2]=150;
 440   1          para[3]=240;
 441   1              para[4]=150;
 442   1              para[5]=255;
 443   1      mode_yh(1);
 444   1              para[0]=150;
 445   1              para[1]=240;
 446   1              para[2]=100;
 447   1              para[3]=240; 
 448   1              mode_zx();
 449   1      
 450   1              para[0]=100;
 451   1              para[1]=240;
 452   1              para[2]=130;
 453   1              para[3]=210;
 454   1              para[4]=130;
 455   1              para[5]=240; 
 456   1              mode_yh(1);
 457   1              
 458   1              para[0]=130;
 459   1              para[1]=210;
 460   1              para[2]=180;
 461   1              para[3]=210; 
 462   1              mode_zx();
 463   1              
 464   1              para[0]=180;
 465   1              para[1]=210;
 466   1              para[2]=200;
 467   1              para[3]=190;
 468   1              para[4]=200;
 469   1              para[5]=210;
 470   1          mode_yh(1);
 471   1      
 472   1              para[0]=200;
 473   1              para[1]=190;
 474   1              para[2]=400;
 475   1              para[3]=190;
 476   1      mode_zx();
 477   1      
 478   1              para[0]=400;
 479   1              para[1]=190;
 480   1              para[2]=420;
 481   1              para[3]=210;
 482   1              para[4]=400;
 483   1              para[5]=210; 
 484   1              mode_yh(1);
 485   1      
 486   1              para[0]=420;
 487   1              para[1]=210;
 488   1              para[2]=470;
 489   1              para[3]=210;
C51 COMPILER V7.06   002                                                                   09/16/2008 20:43:48 PAGE 9   

 490   1      mode_zx();
 491   1      
 492   1              para[0]=470;
 493   1              para[1]=210;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -