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

📄 1.lst

📁 本人采用89S52设计的汽车电磁离合器的控制驱动程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
  56   1              time=0;
  57   1              flag=1;
  58   1              flag1=0;
  59   1              ch0=0;
  60   1              ch1=0;
  61   1              station1=0;
  62   1              motaA=1;
  63   1              motaB=1;
  64   1              motaC=1;
  65   1          keyflag1=1;
  66   1              keydata=0;
  67   1              keydata1=0;
  68   1              keynet1=0;
  69   1              keynum=5000;
  70   1              EA=1;
  71   1              ET0=1;
  72   1              ET1=1;
  73   1              TR0=1;
  74   1      
  75   1                      while(1){
  76   2                       TR0=0;
  77   2                   ShowNum(keynum);
  78   2                               key();
  79   2                   if(keydata1==4&&flag1==0){
  80   3                                              keydata1=0;
  81   3                                              keynum=keynum+5000;
  82   3                                              if(keynum>95000&&keynum<100001)keynum=99999;
  83   3                                  if(keynum>100005){keynum=5000;}
  84   3                                                              }
  85   2                               if(keydata1==1){keydata1=0;TR0=1;break;}
  86   2                                   }
  87   1          flag1=1;
  88   1              while(1)
  89   1              {
  90   2              key();
  91   2              if(keyflag1==1&&station1<100005)  //SW open
  92   2                    {
  93   3                             if(keydata1==2)//正转
  94   3                          {
  95   4                                              if(time<=2){
  96   5                                                       motaA=0;
  97   5                                                                       motaB=1;
  98   5                                                               motaC=1;
  99   5                                                                 }
 100   4                                              else if(time>=3&&time<=5)
 101   4                                                         {
 102   5                                                       motaA=1;
 103   5                                                                       motaB=0;
 104   5                                                               motaC=1;
C51 COMPILER V7.06   1                                                                     02/04/2006 20:03:52 PAGE 7   

 105   5                                                                 }
 106   4                                              else if(time>=6&&time<=8)
 107   4                                                         {
 108   5                                                       motaA=1;
 109   5                                                                       motaB=1;
 110   5                                                               motaC=0;
 111   5                                                                       
 112   5                                                                 }
 113   4                                               if(time==8&&station1>10)ch0++;
 114   4                                               if(ch0>30){ch0=0;ch1=0;                                                 
 115   5                                                           motaA=1;
 116   5                                                                       motaB=1;
 117   5                                                               motaC=1;
 118   5                                       keydata1=3;}
 119   4      
 120   4                                               }
 121   3                                              else if(keydata1==3)//反转
 122   3                          {
 123   4                                              if(time<=2){
 124   5                                                       motaA=0;
 125   5                                                                       motaB=1;
 126   5                                                               motaC=1;
 127   5                                                                }
 128   4                                              else if(time>=3&&time<=5)
 129   4                                                        {
 130   5                                                       motaA=1;
 131   5                                                                       motaB=1;
 132   5                                                               motaC=0;
 133   5                                                                }
 134   4                                              else if(time>=6&&time<=8)
 135   4                                                        {
 136   5                                                       motaA=1;
 137   5                                                                       motaB=0;
 138   5                                                               motaC=1;
 139   5                                                                      
 140   5                                                                }
 141   4                           if(time==8)ch1++;
 142   4                                               if(ch1>30){ch0=0;ch1=0;                                                
 143   5                                                       motaA=1;
 144   5                                                                       motaB=1;
 145   5                                                               motaC=1;
 146   5                                                                       keydata1=2;}
 147   4                                              }
 148   3                                                      
 149   3                    }
 150   2               else {
 151   3                         motaA=1;
 152   3                         motaB=1;
 153   3                         motaC=1;
 154   3                         }
 155   2                         if(flag==0){clutch=0;}
 156   2                 else       {clutch=1;}
 157   2                 if(station1>=keynum){
 158   3                                             keyflag1=0;
 159   3                                             motaA=1;
 160   3                                             motaB=1;
 161   3                                             motaC=1;
 162   3                                                                 time=0;
 163   3                                                     flag=1;
 164   3                                                     clutch=1;
 165   3                                                     ch0=0;
 166   3                                                     ch1=0;
C51 COMPILER V7.06   1                                                                     02/04/2006 20:03:52 PAGE 8   

 167   3                                    } 
 168   2                         ShowNum(station1);
 169   2              }
 170   1      }
 171          
 172          void t0(void) interrupt 1 using 2
 173          {
 174   1              TH0=0xd8;       //10ms定时
 175   1              TL0=0xf0;
 176   1      //  TH0=0x3c;   //50ms
 177   1      //      TL0=0xb0;
 178   1      if(keydata1==3||keydata1==2)time++;
 179   1      if(time>8){if(keydata1==3||keydata1==2)station1++;time=0;}
 180   1      }
 181          ////////////////////////////////////////////////////////////
C51 COMPILER V7.06   1                                                                     02/04/2006 20:03:52 PAGE 9   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _delay (BEGIN)
                                           ; SOURCE LINE # 36
;---- Variable 't' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 37
0000         ?C0001:
                                           ; SOURCE LINE # 38
0000 EF                MOV     A,R7
0001 1F                DEC     R7
0002 AC06              MOV     R4,AR6
0004 7001              JNZ     ?C0041
0006 1E                DEC     R6
0007         ?C0041:
0007 4C                ORL     A,R4
0008 6006              JZ      ?C0003
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 40
000A 00                NOP     
                                           ; SOURCE LINE # 41
000B 00                NOP     
                                           ; SOURCE LINE # 42
000C 00                NOP     
                                           ; SOURCE LINE # 43
000D 00                NOP     
                                           ; SOURCE LINE # 44
000E 80F0              SJMP    ?C0001
                                           ; SOURCE LINE # 45
0010         ?C0003:
0010 22                RET     
             ; FUNCTION _delay (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 49
                                           ; SOURCE LINE # 50
                                           ; SOURCE LINE # 51
0000 758911            MOV     TMOD,#011H
                                           ; SOURCE LINE # 52
0003 758CD8            MOV     TH0,#0D8H
                                           ; SOURCE LINE # 53
0006 758AF0            MOV     TL0,#0F0H
                                           ; SOURCE LINE # 56
0009 E4                CLR     A
000A F500        R     MOV     time,A
000C F500        R     MOV     time+01H,A
                                           ; SOURCE LINE # 57
000E D200        R     SETB    flag
                                           ; SOURCE LINE # 58
0010 C200        R     CLR     flag1
                                           ; SOURCE LINE # 59
0012 F500        E     MOV     ch0,A
                                           ; SOURCE LINE # 60
0014 F500        E     MOV     ch1,A
                                           ; SOURCE LINE # 61
0016 F500        R     MOV     station1+03H,A
0018 F500        R     MOV     station1+02H,A
001A F500        R     MOV     station1+01H,A
001C F500        R     MOV     station1,A
                                           ; SOURCE LINE # 62
001E D290              SETB    motaA
                                           ; SOURCE LINE # 63
C51 COMPILER V7.06   1                                                                     02/04/2006 20:03:52 PAGE 10  

0020 D291              SETB    motaB
                                           ; SOURCE LINE # 64
0022 D292              SETB    motaC
                                           ; SOURCE LINE # 65
0024 D200        R     SETB    keyflag1
                                           ; SOURCE LINE # 66
0026 F500        R     MOV     keydata,A
                                           ; SOURCE LINE # 67
0028 F500        E     MOV     keydata1,A
                                           ; SOURCE LINE # 68
002A C200        R     CLR     keynet1
                                           ; SOURCE LINE # 69
002C 750088      R     MOV     keynum+03H,#088H
002F 750013      R     MOV     keynum+02H,#013H
0032 F500        R     MOV     keynum+01H,A
0034 F500        R     MOV     keynum,A
                                           ; SOURCE LINE # 70
0036 D2AF              SETB    EA
                                           ; SOURCE LINE # 71
0038 D2A9              SETB    ET0
                                           ; SOURCE LINE # 72
003A D2AB              SETB    ET1
                                           ; SOURCE LINE # 73
003C D28C              SETB    TR0
003E         ?C0004:
                                           ; SOURCE LINE # 75
                                           ; SOURCE LINE # 76
003E C28C              CLR     TR0
                                           ; SOURCE LINE # 77
0040 AF00        R     MOV     R7,keynum+03H
0042 AE00        R     MOV     R6,keynum+02H
0044 AD00        R     MOV     R5,keynum+01H
0046 AC00        R     MOV     R4,keynum
0048 120000      E     LCALL   _ShowNum
                                           ; SOURCE LINE # 78
004B 120000      E     LCALL   key
                                           ; SOURCE LINE # 79
004E E500        E     MOV     A,keydata1
0050 6404              XRL     A,#04H
0052 706C              JNZ     ?C0006
0054 200069      R     JB      flag1,?C0006
                                           ; SOURCE LINE # 80
0057 F500        E     MOV     keydata1,A
                                           ; SOURCE LINE # 81
0059 E500        R     MOV     A,keynum+03H
005B 2488              ADD     A,#088H
005D F500        R     MOV     keynum+03H,A
005F E500        R     MOV     A,keynum+02H
0061 3413              ADDC    A,#013H
0063 F500        R     MOV     keynum+02H,A
0065 E4                CLR     A
0066 3500        R     ADDC    A,keynum+01H
0068 F500        R     MOV     keynum+01H,A
006A E4                CLR     A
006B 3500        R     ADDC    A,keynum
006D F500        R     MOV     keynum,A
                                           ; SOURCE LINE # 82
006F 7F18              MOV     R7,#018H
0071 7E73              MOV     R6,#073H
0073 7D01              MOV     R5,#01H
0075 7C00              MOV     R4,#00H
0077 AB00        R     MOV     R3,keynum+03H
C51 COMPILER V7.06   1                                                                     02/04/2006 20:03:52 PAGE 11  

0079 AA00        R     MOV     R2,keynum+02H
007B A900        R     MOV     R1,keynum+01H
007D F8                MOV     R0,A
007E D3                SETB    C
007F 120000      E     LCALL   ?C?ULCMP
0082 401B              JC      ?C0007
0084 7FA1              MOV     R7,#0A1H
0086 7E86              MOV     R6,#086H
0088 7D01              MOV     R5,#01H
008A 7C00              MOV     R4,#00H
008C A800        R     MOV     R0,keynum
008E 120000      E     LCALL   ?C?ULCMP
0091 500C              JNC     ?C0007
0093 75009F      R     MOV     keynum+03H,#09FH
0096 750086      R     MOV     keynum+02H,#086H
0099 750001      R     MOV     keynum+01H,#01H
009C 750000      R     MOV     keynum,#00H
009F         ?C0007:
                                           ; SOURCE LINE # 83
009F 7FA5              MOV     R7,#0A5H
00A1 7E86              MOV     R6,#086H
00A3 7D01              MOV     R5,#01H
00A5 7C00              MOV     R4,#00H
00A7 AB00        R     MOV     R3,keynum+03H
00A9 AA00        R     MOV     R2,keynum+02H
00AB A900        R     MOV     R1,keynum+01H
00AD A800        R     MOV     R0,keynum
00AF D3                SETB    C
00B0 120000      E     LCALL   ?C?ULCMP
00B3 400B              JC      ?C0006
00B5 E4                CLR     A
00B6 750088      R     MOV     keynum+03H,#088H
00B9 750013      R     MOV     keynum+02H,#013H
00BC F500        R     MOV     keynum+01H,A
00BE F500        R     MOV     keynum,A
                                           ; SOURCE LINE # 84
00C0         ?C0006:
                                           ; SOURCE LINE # 85
00C0 E500        E     MOV     A,keydata1
00C2 6401              XRL     A,#01H
00C4 6003              JZ      $ + 5H
00C6 020000      R     LJMP    ?C0004
00C9 F500        E     MOV     keydata1,A
00CB D28C              SETB    TR0
                                           ; SOURCE LINE # 86
00CD         ?C0005:
                                           ; SOURCE LINE # 87
00CD D200        R     SETB    flag1
00CF         ?C0010:
                                           ; SOURCE LINE # 88
                                           ; SOURCE LINE # 89
                                           ; SOURCE LINE # 90
00CF 120000      E     LCALL   key
                                           ; SOURCE LINE # 91
00D2 200003      R     JB      keyflag1,$ + 6H
00D5 020000      R     LJMP    ?C0012
00D8 7FA5              MOV     R7,#0A5H
00DA 7E86              MOV     R6,#086H
00DC 7D01              MOV     R5,#01H
00DE 7C00              MOV     R4,#00H
00E0 AB00        R     MOV     R3,station1+03H
00E2 AA00        R     MOV     R2,station1+02H
C51 COMPILER V7.06   1                                                                     02/04/2006 20:03:52 PAGE 12  

00E4 A900        R     MOV     R1,station1+01H
00E6 A800        R     MOV     R0,station1
00E8 C3                CLR     C
00E9 120000      E     LCALL   ?C?ULCMP
00EC 4003              JC      $ + 5H
00EE 020000      R     LJMP    ?C0012
                                           ; SOURCE LINE # 92
                                           ; SOURCE LINE # 93
00F1 E500        E     MOV     A,keydata1
00F3 6402              XRL     A,#02H
00F5 6003              JZ      $ + 5H

⌨️ 快捷键说明

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