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

📄 zhjbjdj.lst

📁 步进电机单片机驱动程序
💻 LST
字号:
C51 COMPILER V6.23a  ZHJBJDJ                                                               05/13/2004 21:59:35 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE ZHJBJDJ
OBJECT MODULE PLACED IN zhjbjdj.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE zhjbjdj.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*旋转适粘度计步进电机驱动程序晶振24MHZ*/
   2          
   3          #include <at89x51.h>
   4          #include <absacc.h>
   5          #include <intrins.h>
   6          
   7          #define DA1 XBYTE[0x8000]//定义硬件地址
   8          #define DA2 XBYTE[0x8100]
   9          #define LEVEL1 XBYTE[0x8200]
  10          #define LEVEL2 XBYTE[0x8300]
  11          #define CHIP_ADDR 0x04
  12          #define START_STEPTIMES 10
  13          
  14          unsigned char Command=0,Command_Temp,Step_Num=0,Start_f=0,Start_Stepnum=2,Start_Steptimes=START_STEPTIMES;
  15          unsigned char Iasuffix=0,Ibsuffix=0,TimeH=0,TimeL=0;
  16          
  17          unsigned char code IAB[256]={0,3,6,9,12,16,19,22,25,28,31,34,37,40,43,46
  18          ,49,51,54,57,60,63,65,68,71,73,76,78,81,83,85,88,90,92,94,96,98,100,102
  19          ,104,106,107,109,111,112,113,115,116,117,118,120,121,122,122,123,124,125
  20          ,125,126,126,126,127,127,127,127,127,127,127,126,126,126,125,125,124,123
  21          ,122,122,121,120,118,117,116,115,113,112,111,109,107,106,104,102,100,98
  22          ,96,94,92,90,88,85,83,81,78,76,73,71,68,65,63,60,57,54,51,49,46,43,40,37
  23          ,34,31,28,25,22,19,16,12,9,6,3,0,131,134,137,140,144,147,150,153,156,159
  24          ,162,165,168,171,174,177,179,182,185,188,191,193,196,199,201,204,206,209
  25          ,211,213,216,218,220,222,224,226,228,230,232,234,235,237,239,240,241,243
  26          ,244,245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,255
  27          ,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,245,244,243
  28          ,241,240,239,237,235,234,232,230,228,226,224,222,220,218,216,213,211,209
  29          ,206,204,201,199,196,193,191,188,185,182,179,177,174,171,168,165,162,159
  30          ,156,153,150,147,144,140,137,134,131};
  31          
  32          void init(void)
  33          {
  34   1       TMOD|=0x21;//初始化T1及串口,波特率9600,24M时钟
  35   1       SCON=0xf0;//T1为16位计数器
  36   1       PCON|=0x80;
  37   1       TH1=0xf3;
  38   1       TL1=0xf3;
  39   1       TR1=1;
  40   1       TR0=0;
  41   1       ET0=1;
  42   1       ES=1;
  43   1       EA=1;
  44   1       //RI=0;
  45   1       //TI=0;
  46   1      }
  47          
  48          void servial(void) interrupt 4 using 3
  49          {
  50   1      if (RI==1)
  51   1              {
  52   2              RI=0;
  53   2              if (SM2==1&&SBUF==4)
  54   2                      {SM2=0;TB8=1;SBUF=4;
  55   3                      while (TI!=1);
C51 COMPILER V6.23a  ZHJBJDJ                                                               05/13/2004 21:59:35 PAGE 2   

  56   3                      TI=0;
  57   3                      }
  58   2              else 
  59   2                      {if(SM2==0&&SBUF==0xff&&RB8==1) SM2=1;
  60   3                      else if (SM2==0&&RB8==0)
  61   3                              {Command_Temp=SBUF;
  62   4                              TB8=1;
  63   4                              if(Command_Temp<=20&&Command_Temp>=1)
  64   4                                              {Command=Command_Temp;
  65   5                                              SBUF=Command;
  66   5                                              while (TI!=1);
  67   5                                              TI=0;}
  68   4                              if (Command<=18&&Command>=1)TR0=0;
  69   4                              }
  70   3                      }
  71   2              }
  72   1      }
  73          
  74          void time0(void) interrupt 1 using 1
  75          {
  76   1              EA=0;
  77   1              TH0=TimeH;
  78   1              TL0=TimeL;
  79   1              TR0=1;
  80   1              if (Start_f==0)
  81   1              {
  82   2                      DA1=IAB[Iasuffix];
  83   2                      _nop_();_nop_();
  84   2                      DA2=IAB[Ibsuffix];
  85   2      
  86   2                      Iasuffix+=Step_Num;
  87   2                      Ibsuffix+=Step_Num;
  88   2      
  89   2                      //if (Iasuffix>255)Iasuffix=0;
  90   2                      //if (Ibsuffix>255)Ibsuffix=0;
  91   2                              
  92   2              }
  93   1              else  
  94   1                      {DA1=IAB[Iasuffix];
  95   2                      _nop_();_nop_();
  96   2                      DA2=IAB[Ibsuffix];
  97   2              
  98   2                      Iasuffix+=Start_Stepnum;
  99   2                      Ibsuffix+=Start_Stepnum;
 100   2      
 101   2                      //if (Iasuffix>255)Iasuffix=0;
 102   2                      //if (Ibsuffix>255)Ibsuffix=0;
 103   2                              
 104   2                      Start_Steptimes--;
 105   2                      if (Start_Steptimes<=0){Start_Steptimes=START_STEPTIMES;Start_Stepnum=Start_Stepnum*2;}
 106   2                      if (Start_Stepnum==32) {Start_f=0;Start_Stepnum=2;}
 107   2                      }
 108   1                      EA=1;
 109   1      }
 110          
 111          main()
 112          {
 113   1      init();
 114   1      while(1)
 115   1      switch(Command)
 116   1      {
 117   2      case 0:
C51 COMPILER V6.23a  ZHJBJDJ                                                               05/13/2004 21:59:35 PAGE 3   

 118   2              LEVEL1=0xff;
 119   2              _nop_();_nop_();
 120   2              LEVEL2=0xff;    
 121   2              _nop_();_nop_();
 122   2              DA1=0x00;
 123   2              _nop_();_nop_();
 124   2              DA2=0x00;
 125   2              Start_f=0;
 126   2          Start_Stepnum=2;
 127   2          Start_Steptimes=START_STEPTIMES;
 128   2              Iasuffix=0;
 129   2              Ibsuffix=0;
 130   2              Command=88;
 131   2              break;
 132   2      case 1:
 133   2              Step_Num=1;
 134   2              TimeH=0xc2;
 135   2              TimeL=0xf6;
 136   2              TH0=TimeH;
 137   2              TL0=TimeL;
 138   2              Command=88;
 139   2              break;
 140   2      case 2:
 141   2              Step_Num=1;
 142   2              TimeH=0xDB;
 143   2              TimeL=0x60;
 144   2              TH0=TimeH;
 145   2              TL0=TimeL;
 146   2              Command=88;
 147   2              break;
 148   2      case 3:
 149   2              Step_Num=1;
 150   2              TimeH=0xe1;
 151   2              TimeL=0x7a;
 152   2              TH0=TimeH;
 153   2              TL0=TimeL;
 154   2              Command=88;
 155   2              break;
 156   2      case 4:
 157   2              Step_Num=1;
 158   2              TimeH=0xed;
 159   2              TimeL=0xaf;
 160   2              TH0=TimeH;
 161   2              TL0=TimeL;
 162   2              Command=88;
 163   2              break;
 164   2      case 5:         
 165   2              Step_Num=1;
 166   2              TimeH=0xf3;
 167   2              TimeL=0xca;
 168   2              TH0=TimeH;
 169   2              TL0=TimeL;
 170   2              Command=88;
 171   2              break;
 172   2      case 6:
 173   2              Step_Num=4;
 174   2              TimeH=0xdb;
 175   2              TimeL=0x60;
 176   2              TH0=TimeH;
 177   2              TL0=TimeL;
 178   2              Command=88;
 179   2              break;
C51 COMPILER V6.23a  ZHJBJDJ                                                               05/13/2004 21:59:35 PAGE 4   

 180   2      case 7:
 181   2              Step_Num=4;
 182   2              TimeH=0xe2;
 183   2              TimeL=0xb3;
 184   2              TH0=TimeH;
 185   2              TL0=TimeL;
 186   2              Command=88;
 187   2              break;
 188   2      case 8:
 189   2              Step_Num=4;
 190   2              TimeH=0xe5;
 191   2              TimeL=0x97;
 192   2              TH0=TimeH;
 193   2              TL0=TimeL;
 194   2              Command=88;
 195   2              break;
 196   2      case 9:
 197   2              Step_Num=4;
 198   2              TimeH=0xed;
 199   2              TimeL=0xaf;
 200   2              TH0=TimeH;
 201   2              TL0=TimeL;
 202   2              Command=88;
 203   2              break;
 204   2      case 10:
 205   2              Step_Num=4;
 206   2              TimeH=0xf1;
 207   2              TimeL=0x59;
 208   2              TH0=TimeH;
 209   2              TL0=TimeL;
 210   2              Command=88;
 211   2              break;
 212   2      case 11:
 213   2              Step_Num=16;
 214   2              TimeH=0xcf;
 215   2              TimeL=0x2b;
 216   2              TH0=TimeH;
 217   2              TL0=TimeL;
 218   2              Command=88;
 219   2              break;
 220   2      case 12:
 221   2              Step_Num=16;
 222   2              TimeH=0xe2;
 223   2              TimeL=0xb3;
 224   2              TH0=TimeH;
 225   2              TL0=TimeL;
 226   2              Command=88;
 227   2              break;  
 228   2      case 13:
 229   2              Step_Num=16;
 230   2              TimeH=0xe7;
 231   2              TimeL=0x95;
 232   2              TH0=TimeH;
 233   2              TL0=TimeL;
 234   2              Command=88;
 235   2              break;
 236   2      case 14:
 237   2              Step_Num=16;
 238   2              TimeH=0xf1;
 239   2              TimeL=0x59;
 240   2              TH0=TimeH;
 241   2              TL0=TimeL;
C51 COMPILER V6.23a  ZHJBJDJ                                                               05/13/2004 21:59:35 PAGE 5   

 242   2              Command=88;
 243   2              break;
 244   2      case 15:
 245   2              Step_Num=16;
 246   2              TimeH=0xf6;
 247   2              TimeL=0x3b;
 248   2              TH0=TimeH;
 249   2              TL0=TimeL;
 250   2              Command=88;
 251   2              break;
 252   2      case 16:
 253   2              Step_Num=32;
 254   2              TimeH=0xf4;
 255   2              TimeL=0x47;
 256   2              TH0=TimeH;
 257   2              TL0=TimeL;
 258   2              Start_f=1;
 259   2              Command=88;
 260   2              break;
 261   2      case 17:
 262   2              Step_Num=32;
 263   2              TimeH=0xf6;
 264   2              TimeL=0x3b;
 265   2              TH0=TimeH;
 266   2              TL0=TimeL;
 267   2              Start_f=1;
 268   2              Command=88;
 269   2              break;  
 270   2      case 18:
 271   2              Step_Num=32;
 272   2              TimeH=0xfa;
 273   2              TimeL=0x23;
 274   2              TH0=TimeH;
 275   2              TL0=TimeL;
 276   2              Start_f=1;
 277   2              Command=88;
 278   2              break;
 279   2      case 19://开始运转
 280   2              Iasuffix=0;
 281   2              Ibsuffix=64;
 282   2              TR0=1;
 283   2              Command=88;
 284   2              break;  
 285   2      case 20://停止运转
 286   2              TR0=0;
 287   2              Command=0;
 288   2              break;
 289   2      case 88:
 290   2              break;
 291   2      default: 
 292   2          break;
 293   2      }
 294   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    729    ----
   CONSTANT SIZE    =    256    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10    ----
   IDATA SIZE       =   ----    ----
C51 COMPILER V6.23a  ZHJBJDJ                                                               05/13/2004 21:59:35 PAGE 6   

   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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