📄 stepmotor.lst
字号:
506 3 while(sw6==1); //原文件中是sw6==0
507 3 power_A=0;
508 3
509 3 flag_over=CS[1]-1; //循环次数
510 3 row=CS[1];
511 3
512 3 while(flag_over)
513 3 {
514 4 direct_A=0;//反转下降
515 4 power_A=1;
516 4 Delays(6000); //原文件中是4200
517 4 power_A=0;
518 4
519 4 direct_B=1;//前脚前移,电机正转
520 4 start_B();
521 4 while(sw1==1);
522 4 stop_B();
523 4 Delays(20);
524 4 direct_B=0;
525 4
526 4 direct_A=0;//反转下降
527 4 power_A=1;
528 4 while(sw7==1);
529 4 power_A=0;
530 4
531 4 direct_B=1;//前脚前移,电机正转
532 4 start_B();
533 4 // if(flag_over==1)
534 4 // {
535 4 // Delays(150); //原程序中是while(150)
536 4 // }
537 4 // else
538 4 // {
539 4 while(sw4==1);
540 4 // }
541 4 stop_B();
542 4 Delays(20);
543 4 direct_B=0;
544 4
545 4 direct_A=1;//正转主轴上升
546 4 power_A=1;
547 4 while(sw6==1);
548 4 power_A=0;
549 4
C51 COMPILER V7.09 STEPMOTOR 04/29/2007 19:22:53 PAGE 10
550 4 direct_B=0;//后脚前移,电机反转
551 4 start_B();
552 4 while(sw3==1);
553 4 stop_B();
554 4 Delays(20);
555 4 direct_B=1;
556 4 row--;
557 4 flag_over--;
558 4
559 4 }
560 3
561 3 direct_A=0;//反转下降 最后一次循环开始
-
562 3 power_A=1;
563 3 Delays(6000); //原文件中是4200
564 3 power_A=0;
565 3
566 3 direct_B=1;//前脚前移,电机正转
567 3 start_B();
568 3 while(sw1==1);
569 3 stop_B();
570 3 Delays(20);
571 3 direct_B=0;
572 3
573 3 direct_A=0;//反转下降
574 3 power_A=1;
575 3 while(sw7==1);
576 3 power_A=0;
577 3
578 3 direct_B=1;//前脚前移,电机正转
579 3 start_B();
580 3 Delays(600); //原程序中是while(150)
581 3 stop_B();
582 3 Delays(20);
583 3 direct_B=0;
584 3
585 3 direct_A=1;//正转主轴上升
586 3 power_A=1;
587 3 while(sw6==1);
588 3 power_A=0;
589 3
590 3 direct_B=0;//后脚前移,电机反转
591 3 start_B();
592 3 while(sw3==1);
593 3 stop_B();
594 3 Delays(20);
595 3 direct_B=1; //最后一次循环结束
596 3
597 3
598 3 while(wait_down==1);//等待按键
599 3
600 3 direct_A=0;//反转下降
601 3 power_A=1;
602 3 while(sw7==1);
603 3 power_A=0;
604 3 }
605 2 else;
606 2 }
607 1 }
608 /*********************************************************
609 定时器0中服程序
610 用于键盘参数设计与数码显示
C51 COMPILER V7.09 STEPMOTOR 04/29/2007 19:22:53 PAGE 11
611 如果有键按下,先记下来,下次扫描才执行
612 **********************************************************/
613
614 void timer0_int(void) interrupt 1
615 {
616 1 TR0=0;
617 1 TH0=TH0_DATA; // 0xd4cc<-->2mS (0xa999<-->4mS)
618 1 TL0=TL0_DATA;
619 1 while(w==80) //中断80次刷新显示一次
620 1 {
621 2 if(M==0)
622 2 {
623 3 CONVBIT0(floor,0);//floor显示到了第几层
624 3 CONVBIT0(row,4); //row显示上了多少格
625 3 CONVBIT1(0,0);
626 3 CONVBIT1(0,4);
627 3 }
628 2 else
629 2 {};
630 2 w=0;
631 2 SF=~SF;
632 2 }; // end while(w==80)
633 1
634 1 // 是否进入修改状态
635 1 if(M==0)
636 1 {
637 2 x=DATA0[k];
638 2 y=DATA1[k];
639 2 }
640 1 else
641 1 {
642 2 y=10; //y=10对应的段码是黑码
643 2 if(k==R)
644 2 {
645 3 if(SF==0)
646 3 {
647 4 x=10;
648 4 }
649 3 else
650 3 {
651 4 x=DATA0[k];
652 4 }
653 3 }
654 2 else
655 2 x=DATA0[k];
656 2 }
657 1 w++;
658 1
659 1 SEND();
660 1
661 1 //键盘扫描
662 1 if(KEY==1)
663 1 {
664 2 if(k==TK)
665 2 {
666 3 switch(TK)
667 3 {
668 4 case 7:
669 4 {
670 5 if(M==CSM)
671 5 {
672 6 M=1;
C51 COMPILER V7.09 STEPMOTOR 04/29/2007 19:22:53 PAGE 12
673 6 }
674 5 else
675 5 M++;
676 5 CONVBIT0(M,0);
677 5 CONVBIT0(CS[M-1],4);
678 5 }
679 4 break;
680 4 case 1:
681 4 {
682 5 if(R==7)
683 5 R=4;
684 5 else
685 5 R++;
686 5 }
687 4 break;
688 4 case 2:
689 4 {
690 5 if(DATA0[R]==9)
691 5 DATA0[R]=0;
692 5 else
693 5 DATA0[R]++;
694 5 }
695 4 break;
696 4 case 3:
697 4 {
698 5 if(DATA0[R]==0)
699 5 DATA0[R]=9;
700 5 else
701 5 DATA0[R]--;
702 5 }
703 4 break;
704 4 case 4:
705 4 {
706 5 while(!M==0)
707 5 {
708 6 CS[M-1]=(DATA0[4]*1000+DATA0[5]*100+DATA0[6]*10+DATA0[7]);
709 6 j=(2*M-2);
710 6 EDATA[j]=(CS[M-1]/0x100);
711 6 EDATA[j+1]=(CS[M-1]%0x100);
712 6 EA=0; //写EEPROM,关中断
713 6 DEECON=0x00;
714 6 DEEDAT=EDATA[j];
715 6 DEEADR=j;
716 6 while((DEECON&0x80)==0);
717 6 DEECON=DEECON&0x7F;
718 6 DEEDAT=EDATA[j+1];
719 6 DEEADR=(j+1);
720 6 while((DEECON&0x80)==0);
721 6 EA=1; //完成写操作,开中断
722 6 R=4;
723 6 M=0;
724 6 };
725 5 }
726 4 break;
727 4 }; //end switch(TK)
728 3 TK=0x09;
729 3 }
730 2 else
731 2 {}; //end if(k==TK)
732 2 }
733 1 else
734 1 {
C51 COMPILER V7.09 STEPMOTOR 04/29/2007 19:22:53 PAGE 13
735 2 TK=k;
736 2 }; //end if(KEY==1)
737 1
738 1 if(k==7)
739 1 k=0;
740 1 else
741 1 k++;
742 1 TR0=1;
743 1 }
744
745
746
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1490 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 43 4
IDATA SIZE = 19 ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -