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

📄 main.lst

📁 说明:采用与C极其类似的PL/M-96语言编写。 单片机采用Intel的96系列KB; 开发环境为Wave6000; 该程序的功能为采用模糊滑膜变结构 控制算法
💻 LST
📖 第 1 页 / 共 4 页
字号:
 375   3          TM2=HSI_TIME;
 376   3          T1=T1OVER;
 377   3          T1OVER=0;
 378   3          IF BITTST(.STATUS,0) THEN DO;
 380   4            IF BITTST(.STATUS,1) THEN ORDER=0;
 382   4            ELSE ORDER=2;
 383   4          END;
 384   3          ELSE IF BITTST(.STATUS,2) THEN DO;
 386   4            IF BITTST(.STATUS,3) THEN ORDER=1;
 388   4            ELSE ORDER=3;
 389   4          END;
 390   3          IF T1<15 THEN DO;
 392   4            T_SPAN=(T1*65536+TM2)-TM1;
 393   4            temp=1875000/T_SPAN;
 394   4          END;
 395   3          ELSE TEMP=0;
 396   3          TM1=TM2;
PL/M-96 COMPILER    MAIN                                                                     06/12/:5 17:37:49  PAGE   8


 397   3        END;
 398   2        sum=run_spd*23+temp;
 399   2        run_spd=sum/24;
 400   2        ENABLE;
 401   2        IF START_SIGN=1 THEN  CALL HSO_PROCESS;
 403   2        ELSE  CALL STOP;
 404   2      END HSI_INT;

              /*高速输出处理程序*/
 405   1      HSO_PROCESS:PROCEDURE ;
 406   2        DISABLE;
 407   2        IF DIRECT=1 THEN DO;
 409   3          IF RUN_SPD<60 THEN DO;
 411   4             TURNON=02H;
 412   4             TURNOFF=02H;
 413   4             DO CASE ORDER;
 414   5             T00:DO;
 415   6               HSO_COMMAND=20H;
 416   6               HSO_TIME=TIMER1+TURNON;
 417   6               R0=0;
 418   6               R0=0;
 419   6               HSO_COMMAND=02H;
 420   6               HSO_TIME=TIMER1+TURNOFF;
 421   6               R0=0;
 422   6               R0=0;
 423   6             END;
 424   5             T01:DO;
 425   6               HSO_COMMAND=21H;
 426   6               HSO_TIME=TIMER1+TURNON;
 427   6               R0=0;
 428   6               R0=0;
 429   6               HSO_COMMAND=03H;
 430   6               HSO_TIME=TIMER1+TURNOFF;
 431   6               R0=0;
 432   6               R0=0;
 433   6             END;
 434   5             T02:DO;
 435   6               HSO_COMMAND=22H;
 436   6               HSO_TIME=TIMER1+TURNON;
 437   6               R0=0;
 438   6               R0=0;
 439   6               HSO_COMMAND=00H;
 440   6               HSO_TIME=TIMER1+TURNOFF;
 441   6               R0=0;
 442   6               R0=0;
 443   6             END;
 444   5             T03:DO;
 445   6               HSO_COMMAND=23H;
 446   6               HSO_TIME=TIMER1+TURNON;
 447   6               R0=0;
 448   6               R0=0;
 449   6               HSO_COMMAND=01H;
 450   6               HSO_TIME=TIMER1+TURNOFF;
 451   6               R0=0;
 452   6               R0=0;
 453   6             END;
 454   5            END;
PL/M-96 COMPILER    MAIN                                                                     06/12/:5 17:37:49  PAGE   9


 455   4          END;
 456   3          ELSE IF AIM_SPD>=1600 THEN DO;
 458   4            TURNON=T_SPAN*4/5;
 459   4            TURNOFF=T_SPAN/3;
 460   4            DO CASE ORDER;
 461   5             T40:DO;
 462   6               HSO_COMMAND=21H;
 463   6               HSO_TIME=TIMER1+TURNON;
 464   6               R0=0;
 465   6               R0=0;
 466   6               HSO_COMMAND=03H;
 467   6               HSO_TIME=TIMER1+TURNOFF;
 468   6               R0=0;
 469   6               R0=0;
 470   6               HSO_COMMAND=02H;
 471   6               HSO_TIME=TIMER1+04H;
 472   6             END;
 473   5             T41:DO;
 474   6               HSO_COMMAND=22H;
 475   6               HSO_TIME=TIMER1+TURNON;
 476   6               R0=0;
 477   6               R0=0;
 478   6               HSO_COMMAND=00H;
 479   6               HSO_TIME=TIMER1+TURNOFF;
 480   6               R0=0;
 481   6               R0=0;
 482   6               HSO_COMMAND=03H;
 483   6               HSO_TIME=TIMER1+04H;
 484   6             END;
 485   5             T42:DO;
 486   6               HSO_COMMAND=23H;
 487   6               HSO_TIME=TIMER1+TURNON;
 488   6               R0=0;
 489   6               R0=0;
 490   6               HSO_COMMAND=01H;
 491   6               HSO_TIME=TIMER1+TURNOFF;
 492   6               R0=0;
 493   6               R0=0;
 494   6               HSO_COMMAND=00H;
 495   6               HSO_TIME=TIMER1+04H;
 496   6             END;
 497   5             T43:DO;
 498   6               HSO_COMMAND=20H;
 499   6               HSO_TIME=TIMER1+TURNON;
 500   6               R0=0;
 501   6               R0=0;
 502   6               HSO_COMMAND=02H;
 503   6               HSO_TIME=TIMER1+TURNOFF;
 504   6               R0=0;
 505   6               R0=0;
 506   6               HSO_COMMAND=01H;
 507   6               HSO_TIME=TIMER1+04H;
 508   6             END;
 509   5            END;
 510   4          END;
 511   3          ELSE IF  AIM_SPD>=1200 THEN DO;
 513   4            TURNON=T_SPAN*14/15;
PL/M-96 COMPILER    MAIN                                                                     06/12/:5 17:37:49  PAGE  10


 514   4            TURNOFF=T_SPAN/3;
 515   4            DO CASE ORDER;
 516   5             T35:DO;
 517   6               HSO_COMMAND=21H;
 518   6               HSO_TIME=TIMER1+TURNON;
 519   6               R0=0;
 520   6               R0=0;
 521   6               HSO_COMMAND=03H;
 522   6               HSO_TIME=TIMER1+TURNOFF;
 523   6               R0=0;
 524   6               R0=0;
 525   6               HSO_COMMAND=02H;
 526   6               HSO_TIME=TIMER1+04H;
 527   6             END;
 528   5             T36:DO;
 529   6               HSO_COMMAND=22H;
 530   6               HSO_TIME=TIMER1+TURNON;
 531   6               R0=0;
 532   6               R0=0;
 533   6               HSO_COMMAND=00H;
 534   6               HSO_TIME=TIMER1+TURNOFF;
 535   6               R0=0;
 536   6               R0=0;
 537   6               HSO_COMMAND=03H;
 538   6               HSO_TIME=TIMER1+04H;
 539   6             END;
 540   5             T37:DO;
 541   6               HSO_COMMAND=23H;
 542   6               HSO_TIME=TIMER1+TURNON;
 543   6               R0=0;
 544   6               R0=0;
 545   6               HSO_COMMAND=01H;
 546   6               HSO_TIME=TIMER1+TURNOFF;
 547   6               R0=0;
 548   6               R0=0;
 549   6               HSO_COMMAND=00H;
 550   6               HSO_TIME=TIMER1+04H;
 551   6             END;
 552   5             T38:DO;
 553   6               HSO_COMMAND=20H;
 554   6               HSO_TIME=TIMER1+TURNON;
 555   6               R0=0;
 556   6               R0=0;
 557   6               HSO_COMMAND=02H;
 558   6               HSO_TIME=TIMER1+TURNOFF;
 559   6               R0=0;
 560   6               R0=0;
 561   6               HSO_COMMAND=01H;
 562   6               HSO_TIME=TIMER1+04H;
 563   6             END;
 564   5            END;
 565   4          END;
 566   3          ELSE IF  AIM_SPD>=800 THEN DO;
 568   4            TURNON=T_SPAN/15;
 569   4            TURNOFF=T_SPAN/3;
 570   4            DO CASE ORDER;
 571   5             T30:DO;
PL/M-96 COMPILER    MAIN                                                                     06/12/:5 17:37:49  PAGE  11


 572   6               HSO_COMMAND=20H;
 573   6               HSO_TIME=TIMER1+TURNON;
 574   6               R0=0;
 575   6               R0=0;
 576   6               HSO_COMMAND=03H;
 577   6               HSO_TIME=TIMER1+TURNOFF;
 578   6               R0=0;
 579   6               R0=0;
 580   6               HSO_COMMAND=02H;
 581   6               HSO_TIME=TIMER1+04H;

 582   6             END;
 583   5             T31:DO;
 584   6               HSO_COMMAND=21H;
 585   6               HSO_TIME=TIMER1+TURNON;
 586   6               R0=0;
 587   6               R0=0;
 588   6               HSO_COMMAND=00H;
 589   6               HSO_TIME=TIMER1+TURNOFF;
 590   6               R0=0;
 591   6               R0=0;
 592   6               HSO_COMMAND=03H;
 593   6               HSO_TIME=TIMER1+04H;
 594   6               R0=0;
 595   6               R0=0;
 596   6             END;
 597   5             T32:DO;
 598   6               HSO_COMMAND=22H;
 599   6               HSO_TIME=TIMER1+TURNON;
 600   6               R0=0;
 601   6               R0=0;
 602   6               HSO_COMMAND=01H;
 603   6               HSO_TIME=TIMER1+TURNOFF;
 604   6               R0=0;
 605   6               R0=0;
 606   6               HSO_COMMAND=00H;
 607   6               HSO_TIME=TIMER1+04H;
 608   6               R0=0;
 609   6               R0=0;
 610   6             END;
 611   5             T33:DO;
 612   6               HSO_COMMAND=23H;
 613   6               HSO_TIME=TIMER1+TURNON;
 614   6               R0=0;
 615   6               R0=0;
 616   6               HSO_COMMAND=02H;
 617   6               HSO_TIME=TIMER1+TURNOFF;
 618   6               R0=0;
 619   6               R0=0;
 620   6               HSO_COMMAND=01H;
 621   6               HSO_TIME=TIMER1+04H;
 622   6               R0=0;
 623   6               R0=0;
 624   6             END;
 625   5            END;
 626   4          END;
 627   3          ELSE IF AIM_SPD>=400 THEN DO;
PL/M-96 COMPILER    MAIN                                                                     06/12/:5 17:37:49  PAGE  12


 629   4            TURNON=T_SPAN/3;
 630   4            TURNOFF=T_SPAN/3;
 631   4            DO CASE ORDER;
 632   5             T20:DO;
 633   6               HSO_COMMAND=20H;
 634   6               HSO_TIME=TIMER1+TURNON;
 635   6               R0=0;
 636   6               R0=0;
 637   6               HSO_COMMAND=03H;
 638   6               HSO_TIME=TIMER1+TURNOFF;
 639   6               R0=0;
 640   6               R0=0;
 641   6               HSO_COMMAND=02H;
 642   6               HSO_TIME=TIMER1+04H;
 643   6               R0=0;
 644   6               R0=0;
 645   6             END;
 646   5             T21:DO;
 647   6               HSO_COMMAND=21H;
 648   6               HSO_TIME=TIMER1+TURNON;
 649   6               R0=0;
 650   6               R0=0;
 651   6               HSO_COMMAND=00H;
 652   6               HSO_TIME=TIMER1+TURNOFF;
 653   6               R0=0;
 654   6               R0=0;
 655   6               HSO_COMMAND=03H;
 656   6               HSO_TIME=TIMER1+04H;
 657   6               R0=0;
 658   6               R0=0;
 659   6             END;
 660   5             T22:DO;
 661   6               HSO_COMMAND=22H;
 662   6               HSO_TIME=TIMER1+TURNON;
 663   6               R0=0;
 664   6               R0=0;
 665   6               HSO_COMMAND=01H;
 666   6               HSO_TIME=TIMER1+TURNOFF;
 667   6               R0=0;
 668   6               R0=0;
 669   6               HSO_COMMAND=00H;
 670   6               HSO_TIME=TIMER1+04H;
 671   6               R0=0;
 672   6               R0=0;
 673   6             END;
 674   5             T23:DO;
 675   6               HSO_COMMAND=23H;
 676   6               HSO_TIME=TIMER1+TURNON;
 677   6               R0=0;
 678   6               R0=0;
 679   6               HSO_COMMAND=02H;
 680   6               HSO_TIME=TIMER1+TURNOFF;
 681   6               R0=0;
 682   6               R0=0;
 683   6               HSO_COMMAND=01H;
 684   6               HSO_TIME=TIMER1+04H;
 685   6               R0=0;
PL/M-96 COMPILER    MAIN                                                                     06/12/:5 17:37:49  PAGE  13


 686   6               R0=0;
 687   6             END;
 688   5            END;
 689   4          END;

 690   3          ELSE IF  AIM_SPD>=200 THEN DO;
 692   4            TURNON=T_SPAN*3/5;
 693   4            TURNOFF=T_SPAN/3;
 694   4             DO CASE ORDER;
 695   5             T10:DO;
 696   6               HSO_COMMAND=20H;
 697   6               HSO_TIME=TIMER1+TURNON;
 698   6               R0=0;
 699   6               R0=0;
 700   6               HSO_COMMAND=03H;
 701   6               HSO_TIME=TIMER1+TURNOFF;
 702   6               R0=0;
 703   6               R0=0;
 704   6               HSO_COMMAND=02H;
 705   6               HSO_TIME=TIMER1+04H;
 706   6               R0=0;
 707   6               R0=0;
 708   6             END;
 709   5             T11:DO;
 710   6               HSO_COMMAND=21H;
 711   6               HSO_TIME=TIMER1+TURNON;
 712   6               R0=0;
 713   6               R0=0;
 714   6               HSO_COMMAND=00H;
 715   6               HSO_TIME=TIMER1+TURNOFF;
 716   6               R0=0;
 717   6               R0=0;
 718   6               HSO_COMMAND=03H;
 719   6               HSO_TIME=TIMER1+04H;
 720   6               R0=0;
 721   6               R0=0;

 722   6             END;
 723   5             T12:DO;
 724   6               HSO_COMMAND=22H;
 725   6               HSO_TIME=TIMER1+TURNON;
 726   6               R0=0;
 727   6               R0=0;
 728   6               HSO_COMMAND=01H;
 729   6               HSO_TIME=TIMER1+TURNOFF;
 730   6               R0=0;
 731   6               R0=0;
 732   6               HSO_COMMAND=00H;
 733   6               HSO_TIME=TIMER1+04H;
 734   6               R0=0;
 735   6               R0=0;
 736   6             END;
 737   5             T13:DO;
 738   6               HSO_COMMAND=23H;
 739   6               HSO_TIME=TIMER1+TURNOFF;
 740   6               R0=0;
 741   6               R0=0;
PL/M-96 COMPILER    MAIN                                                                     06/12/:5 17:37:49  PAGE  14


 742   6               HSO_COMMAND=02H;
 743   6               HSO_TIME=TIMER1+TURNON;
 744   6               R0=0;
 745   6               R0=0;
 746   6               HSO_COMMAND=01H;
 747   6               HSO_TIME=TIMER1+04H;
 748   6               R0=0;
 749   6               R0=0;
 750   6             END;
 751   5            END;
 752   4          END;
 753   3          ELSE DO;
 754   4            TURNON=T_SPAN*4/5;
 755   4            TURNOFF=T_SPAN/5;
 756   4             DO CASE ORDER;
 757   5             T05:DO;
 758   6               HSO_COMMAND=20H;
 759   6               HSO_TIME=TIMER1+TURNON;
 760   6               R0=0;
 761   6               R0=0;
 762   6               HSO_COMMAND=03H;
 763   6               HSO_TIME=TIMER1+TURNOFF;
 764   6               R0=0;

⌨️ 快捷键说明

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