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

📄 1.lst

📁 本人设计的电磁脉冲油泵的控制程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
  14          bit  keyflag1;   
  15          
  16          uchar keynet;
  17          uchar number;
  18          uint numb;
  19          uchar keynum;
  20          uint time;
  21          uchar ID; 
  22          uint num; 
  23          uint period;
  24          uchar high;
  25          uchar tcount,second,minute,hour;
  26          char i;
  27          
  28          uint idata fueltab[15]={
  29                                                                  850,    //1HZ
  30                                                                  499,    //2HZ
  31                                                                  331,    //3HZ
  32                                                                  249,    //4HZ
  33                                                                  199,    //5HZ
  34                                                                  164,    //6HZ
  35                                                                  140,    //7HZ
  36                                                                  124,    //8HZ
  37                                                                  108,    //9HZ
  38                                                                  98,             //10HZ
  39                                                                  88,             //11HZ
  40                                                                  81,             //12HZ
  41                                                                  75,             //13HZ
  42                                                                  69,             //14HZ
  43                                                                  65,             //15HZ
  44                                                          };
  45          /////////////////////////////////延时程序/////////////////////////////////
  46          void delay(uint t)
  47          {
  48   1              while(t--)
  49   1              {
  50   2                      _nop_();
C51 COMPILER V7.06   1                                                                     11/18/2005 22:41:13 PAGE 6   

  51   2                      _nop_();
  52   2                      _nop_();
  53   2                      _nop_();
  54   2              }
  55   1      } 
  56            
  57          ////////////////////////////////////////////////////////////////
  58          main()
  59          {
  60   1      
  61   1              TMOD=0x11;
  62   1              keynum=10;
  63   1          TH0=0xfc;
  64   1              TL0=0x18;
  65   1              TH1=0x3c; 
  66   1              TL1=0xb0;
  67   1          high=30;
  68   1              time=0;
  69   1              number=0;
  70   1              numb=0;
  71   1              fuel=1;
  72   1          keyflag1=1;
  73   1              keynet=0;
  74   1              i=0;
  75   1              EA=1;
  76   1              ET0=1; 
  77   1          ET1=1; 
  78   1      ///////////////////////////////////////设定工作时间//////////////////////////////////
  79   1              while(1){   
  80   2                               TR0=0;
  81   2                                       TR1=0;
  82   2                           ShowNum(keynum);
  83   2                               if(setnum==0&&keyflag==0)
  84   2                                       {
  85   3                                               keyflag=1;fuel=1;
  86   3                                           keynum=keynum+10;
  87   3                                               if(keynum>90)keynum=10;            
  88   3                                   while(1)
  89   3                                               {
  90   4                                                      if(setnum==1){keyflag=0;break;}                 
  91   4                                               }
  92   3                                       }               
  93   2                                       if(SW==0&&keyflag==0)
  94   2                                       {
  95   3                                              keyflag=1;fuel=1;
  96   3                              while(1)
  97   3                                              {
  98   4                                                      if(SW==1){keyflag=0;break;}
  99   4                                              }
 100   3                                              TR0=0;
 101   3                                              TR1=0;
 102   3                                              second=0;
 103   3                                              tcount=0;
 104   3                                              break;
 105   3                                   }
 106   2                               }
 107   1      ////////////////////////////////////////////设定通电时间////////////////////////////////////                     
 108   1               while(1){   
 109   2                               TR0=0;
 110   2                               ShowNum(high);
 111   2                               if(setnum==0&&keyflag==0)
 112   2                                       {
C51 COMPILER V7.06   1                                                                     11/18/2005 22:41:13 PAGE 7   

 113   3                                      //       keyflag=1;fuel=1;
 114   3                                           high=high+5;
 115   3                                               if(high>50)high=10;            
 116   3                                   while(1)
 117   3                                               {
 118   4                                                      if(setnum==1){keyflag=0;break;}                 
 119   4                                               }
 120   3                                       }               
 121   2                                       if(SW==0&&keyflag==0)
 122   2                                       {
 123   3                                              keyflag=1;fuel=1;
 124   3                                      while(1)
 125   3                                              {
 126   4                                                      if(SW==1){keyflag=0;break;}
 127   4                                              }
 128   3                                              TR0=0;
 129   3                                              break;
 130   3                                   }
 131   2                              } 
 132   1      ////////////////////////////////主循环///////////////////////////////////
 133   1              while(1)
 134   1              {
 135   2              key();
 136   2              if(keyflag1==1)  //SW open
 137   2                 { 
 138   3                      if(i>14){i=0;}
 139   3                      else
 140   3                      {
 141   4                              TR0=0;
 142   4                              TR0=1;
 143   4                              period=fueltab[i];
 144   4                              TR0=1;
 145   4                              TR0=1;
 146   4                              num=i+1;
 147   4                      }
 148   3                      ShowNum(num);
 149   3                      
 150   3                 }
 151   2      
 152   2      //////////////////////////到达设定运行时间,停止运行/////////////////////////////////
 153   2                 if(keynet==1)
 154   2                 { 
 155   3                              ShowNum(num);
 156   3                              if(second>=keynum)
 157   3                              {
 158   4                                      fuel=1;
 159   4                                      TR0=0;
 160   4                                      TR1=0;
 161   4                                      ShowNum(keynum);
 162   4                              }
 163   3                              keyflag1=0;
 164   3                      }
 165   2      ////////////////////////////中断程序1///////////////////////////////////////////////////
 166   2              }
 167   1      }
 168          
 169          
 170          void t0(void) interrupt 1 using 1
 171          {
 172   1              TH0=0xfc;
 173   1              TL0=0x18;       //1ms定时 
 174   1              time++;
C51 COMPILER V7.06   1                                                                     11/18/2005 22:41:13 PAGE 8   

 175   1              if(time>period)
 176   1                      {
 177   2                              time=0;
 178   2              //              numb++;
 179   2                      }
 180   1              else
 181   1                      {
 182   2                   if(time>high){fuel=1;}
 183   2                       else         {fuel=0;}
 184   2                   } 
 185   1      }
 186          
 187          
 188          
 189          /////////////////////中断程序2///////////////////////////////
 190          void t1(void) interrupt 3 using 2
 191          { 
 192   1              tcount++; 
 193   1              if(tcount==20)
 194   1                      { 
 195   2                              tcount=0; 
 196   2                              second++; 
 197   2                      } 
 198   1              TH1=0x3c; 
 199   1              TL1=0xb0; 
 200   1      }
 201          /////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.06   1                                                                     11/18/2005 22:41:13 PAGE 9   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _delay (BEGIN)
                                           ; SOURCE LINE # 46
;---- Variable 't' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 47
0000         ?C0001:
                                           ; SOURCE LINE # 48
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 # 49
                                           ; SOURCE LINE # 50
000A 00                NOP     
                                           ; SOURCE LINE # 51
000B 00                NOP     
                                           ; SOURCE LINE # 52
000C 00                NOP     
                                           ; SOURCE LINE # 53
000D 00                NOP     
                                           ; SOURCE LINE # 54
000E 80F0              SJMP    ?C0001
                                           ; SOURCE LINE # 55
0010         ?C0003:
0010 22                RET     
             ; FUNCTION _delay (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 58
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 61
0000 758911            MOV     TMOD,#011H
                                           ; SOURCE LINE # 62
0003 75000A      R     MOV     keynum,#0AH
                                           ; SOURCE LINE # 63
0006 758CFC            MOV     TH0,#0FCH
                                           ; SOURCE LINE # 64
0009 758A18            MOV     TL0,#018H
                                           ; SOURCE LINE # 65
000C 758D3C            MOV     TH1,#03CH
                                           ; SOURCE LINE # 66
000F 758BB0            MOV     TL1,#0B0H
                                           ; SOURCE LINE # 67
0012 75001E      R     MOV     high,#01EH
                                           ; SOURCE LINE # 68
0015 E4                CLR     A
0016 F500        R     MOV     time,A
0018 F500        R     MOV     time+01H,A
                                           ; SOURCE LINE # 69
001A F500        R     MOV     number,A
                                           ; SOURCE LINE # 70
001C F500        R     MOV     numb,A
001E F500        R     MOV     numb+01H,A
                                           ; SOURCE LINE # 71
0020 D2B7              SETB    fuel
                                           ; SOURCE LINE # 72
C51 COMPILER V7.06   1                                                                     11/18/2005 22:41:13 PAGE 10  

0022 D200        R     SETB    keyflag1
                                           ; SOURCE LINE # 73
0024 F500        R     MOV     keynet,A
                                           ; SOURCE LINE # 74
0026 F500        R     MOV     i,A
                                           ; SOURCE LINE # 75
0028 D2AF              SETB    EA
                                           ; SOURCE LINE # 76
002A D2A9              SETB    ET0
                                           ; SOURCE LINE # 77
002C D2AB              SETB    ET1
002E         ?C0004:
                                           ; SOURCE LINE # 79
                                           ; SOURCE LINE # 80
002E C28C              CLR     TR0
                                           ; SOURCE LINE # 81
0030 C28E              CLR     TR1
                                           ; SOURCE LINE # 82
0032 AF00        R     MOV     R7,keynum
0034 120000      E     LCALL   _ShowNum
                                           ; SOURCE LINE # 83
0037 20B51A            JB      setnum,?C0006
003A 200017      R     JB      keyflag,?C0006

⌨️ 快捷键说明

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