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

📄 zhjbjdj1.lst

📁 步进电机单片机驱动程序
💻 LST
字号:
C51 COMPILER V6.23a  ZHJBJDJ1                                                              05/09/2004 20:44:55 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE ZHJBJDJ1
OBJECT MODULE PLACED IN zhjbjdj1.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE zhjbjdj1.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          
  12          unsigned char Command=0,Command_up,Step_Num=0,Speed=0,Addr=4,Start_f=0,Start_stepnum=2,Start_steptimes=10;
  13          unsigned char Iasuffix=0,Ibsuffix=0;TimeH=0,TimeL=0;
  14          
  15          unsigned char code IAB[256]={0,3,6,9,12,16,19,22,25,28,31,34,37,40,43,46
  16          ,49,51,54,57,60,63,65,68,71,73,76,78,81,83,85,88,90,92,94,96,98,100,102
  17          ,104,106,107,109,111,112,113,115,116,117,118,120,121,122,122,123,124,125
  18          ,125,126,126,126,127,127,127,127,127,127,127,126,126,126,125,125,124,123
  19          ,122,122,121,120,118,117,116,115,113,112,111,109,107,106,104,102,100,98
  20          ,96,94,92,90,88,85,83,81,78,76,73,71,68,65,63,60,57,54,51,49,46,43,40,37
  21          ,34,31,28,25,22,19,16,12,9,6,3,0,131,134,137,140,144,147,150,153,156,159
  22          ,162,165,168,171,174,177,179,182,185,188,191,193,196,199,201,204,206,209
  23          ,211,213,216,218,220,222,224,226,228,230,232,234,235,237,239,240,241,243
  24          ,244,245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,255
  25          ,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,245,244,243
  26          ,241,240,239,237,235,234,232,230,228,226,224,222,220,218,216,213,211,209
  27          ,206,204,201,199,196,193,191,188,185,182,179,177,174,171,168,165,162,159
  28          ,156,153,150,147,144,140,137,134,131};
  29          
  30          void init(void)
  31          {
  32   1       TMOD|=0x21;//初始化T1及串口,波特率9600,24M时钟
  33   1       SCON=0xf0;//T1为16位计数器
  34   1       PCON|=0x80;
  35   1       TH1=0xf3;
  36   1       TL1=0xf3;
  37   1       TR1=1;
  38   1       TR0=0;
  39   1       ES=1;
  40   1       ET0=1;
  41   1       EA=1;
  42   1       //RI=0;
  43   1       //TI=0;
  44   1      }
  45          
  46          void servial(void) interrupt 4 using 3
  47          {
  48   1      if (RI==1)
  49   1              {
  50   2              RI=0;
  51   2              if (SM2==1&&SBUF==Addr)
  52   2                      {SM2=0;TB8=1;SBUF=Addr;
  53   3                      while (TI!=1);
  54   3                      TI=0;
  55   3                      }
C51 COMPILER V6.23a  ZHJBJDJ1                                                              05/09/2004 20:44:55 PAGE 2   

  56   2              else 
  57   2                      {if(SM2==0&&SBUF==0xff&&RB8==1) SM2=1;
  58   3                      else if (SM2==0&&RB8==0)
  59   3                              {Command=SBUF;
  60   4                              TB8=1;
  61   4                              SBUF=Command;
  62   4                              if (Command>=1&&Command<=18)TR0=0;
  63   4                              while (TI!=1);
  64   4                              TI=0;
  65   4                              }
  66   3                      }
  67   2              }
  68   1      }
  69          
  70          void time0(void) interrupt 1 using 1
  71          {
  72   1              TH0=TimeH;
  73   1              TL0=TimeL;
  74   1              TR0=1;
  75   1              Command=32;
  76   1      }
  77          
  78          main()
  79          {
  80   1      init();
  81   1      while(1)
  82   1      switch(Command)
  83   1      {
  84   2      case 0:
  85   2              LEVEL1=0xff;
  86   2              _nop_();_nop_();
  87   2              LEVEL2=0xff;    
  88   2              _nop_();_nop_();
  89   2              DA1=0x00;
  90   2              _nop_();_nop_();
  91   2              DA2=0x00;
  92   2              Iasuffix=0;
  93   2              Ibsuffix=64;
  94   2              Start_f=0;
  95   2              Command=88;
  96   2              break;
  97   2      case 1:
  98   2              Step_Num=1;
  99   2              TimeH=0xc2;
 100   2              TimeL=0xf6;
 101   2              TH0=TimeH;
 102   2              TL0=TimeL;
 103   2              Command=88;
 104   2              break;
 105   2      case 2:
 106   2              Step_Num=1;
 107   2              TimeH=0xDB;
 108   2              TimeL=0x60;
 109   2              TH0=TimeH;
 110   2              TL0=TimeL;
 111   2              Command=88;
 112   2              break;
 113   2      case 3:
 114   2              Step_Num=1;
 115   2              TimeH=0xe1;
 116   2              TimeL=0x7a;
 117   2              TH0=TimeH;
C51 COMPILER V6.23a  ZHJBJDJ1                                                              05/09/2004 20:44:55 PAGE 3   

 118   2              TL0=TimeL;
 119   2              Command=88;
 120   2              break;
 121   2      case 4:
 122   2              Step_Num=1;
 123   2              TimeH=0xed;
 124   2              TimeL=0xaf;
 125   2              TH0=TimeH;
 126   2              TL0=TimeL;
 127   2              Command=88;
 128   2              break;
 129   2      case 5:         
 130   2              Step_Num=1;
 131   2              TimeH=0xf3;
 132   2              TimeL=0xca;
 133   2              TH0=TimeH;
 134   2              TL0=TimeL;
 135   2              Command=88;
 136   2              break;
 137   2      case 6:
 138   2              Step_Num=4;
 139   2              TimeH=0xdb;
 140   2              TimeL=0x60;
 141   2              TH0=TimeH;
 142   2              TL0=TimeL;
 143   2              Command=88;
 144   2              break;
 145   2      case 7:
 146   2              Step_Num=4;
 147   2              TimeH=0xe2;
 148   2              TimeL=0xb3;
 149   2              TH0=TimeH;
 150   2              TL0=TimeL;
 151   2              Command=88;
 152   2              break;
 153   2      case 8:
 154   2              Step_Num=4;
 155   2              TimeH=0xe5;
 156   2              TimeL=0x97;
 157   2              TH0=TimeH;
 158   2              TL0=TimeL;
 159   2              Command=88;
 160   2              break;
 161   2      case 9:
 162   2              Step_Num=4;
 163   2              TimeH=0xed;
 164   2              TimeL=0xaf;
 165   2              TH0=TimeH;
 166   2              TL0=TimeL;
 167   2              Command=88;
 168   2              break;
 169   2      case 10:
 170   2              Step_Num=4;
 171   2              TimeH=0xf1;
 172   2              TimeL=0x59;
 173   2              TH0=TimeH;
 174   2              TL0=TimeL;
 175   2              Command=88;
 176   2              break;
 177   2      case 11:
 178   2              Step_Num=16;
 179   2              TimeH=0xcf;
C51 COMPILER V6.23a  ZHJBJDJ1                                                              05/09/2004 20:44:55 PAGE 4   

 180   2              TimeL=0x2b;
 181   2              TH0=TimeH;
 182   2              TL0=TimeL;
 183   2              Command=88;
 184   2              break;
 185   2      case 12:
 186   2              Step_Num=16;
 187   2              TimeH=0xe2;
 188   2              TimeL=0xb3;
 189   2              TH0=TimeH;
 190   2              TL0=TimeL;
 191   2              Command=88;
 192   2              break;  
 193   2      case 13:
 194   2              Step_Num=16;
 195   2              TimeH=0xe7;
 196   2              TimeL=0x95;
 197   2              TH0=TimeH;
 198   2              TL0=TimeL;
 199   2              Command=88;
 200   2              break;
 201   2      case 14:
 202   2              Step_Num=16;
 203   2              TimeH=0xf1;
 204   2              TimeL=0x59;
 205   2              TH0=TimeH;
 206   2              TL0=TimeL;
 207   2              Command=88;
 208   2              break;
 209   2      case 15:
 210   2              Step_Num=16;
 211   2              TimeH=0xf6;
 212   2              TimeL=0x3b;
 213   2              TH0=TimeH;
 214   2              TL0=TimeL;
 215   2              Command=88;
 216   2              break;
 217   2      case 16:
 218   2              Step_Num=32;
 219   2              TimeH=0xf4;
 220   2              TimeL=0x47;
 221   2              TH0=TimeH;
 222   2              TL0=TimeL;
 223   2              Start_f=1;
 224   2              Command=88;
 225   2              break;
 226   2      case 17:
 227   2              Step_Num=32;
 228   2              TimeH=0xf6;
 229   2              TimeL=0x3b;
 230   2              TH0=TimeH;
 231   2              TL0=TimeL;
 232   2              Start_f=1;
 233   2              Command=88;
 234   2              break;  
 235   2      case 18:
 236   2              Step_Num=32;
 237   2              TimeH=0xfa;
 238   2              TimeL=0x23;
 239   2              TH0=TimeH;
 240   2              TL0=TimeL;
 241   2              Start_f=1;
C51 COMPILER V6.23a  ZHJBJDJ1                                                              05/09/2004 20:44:55 PAGE 5   

 242   2              Command=88;
 243   2              break;
 244   2      case 30://开始运转命令
 245   2              Iasuffix=0;
 246   2              Ibsuffix=64;
 247   2              TR0=1;
 248   2      
 249   2              Command=88;
 250   2              break;  
 251   2      case 31://停止运转命令
 252   2              TR0=0;
 253   2              Command=0;
 254   2              break;
 255   2      case 32://运转
 256   2          if (Start_f==1) {Command=33;break;}
 257   2              
 258   2              DA1=IAB[Iasuffix];
 259   2              DA2=IAB[Ibsuffix];
 260   2              
 261   2              Iasuffix+=Step_Num;
 262   2              Ibsuffix+=Step_Num;
 263   2      
 264   2              //if (Iasuffix>255)Iasuffix=0;
 265   2              //if (Ibsuffix>255)Ibsuffix=0;
 266   2              Command=88;
 267   2              break;
 268   2      
 269   2      case 33://启动曲线
 270   2          DA1=IAB[Iasuffix];
 271   2              DA2=IAB[Ibsuffix];
 272   2              
 273   2              Iasuffix+=Start_stepnum;
 274   2              Ibsuffix+=Start_stepnum;
 275   2      
 276   2              //if (Iasuffix>255)Iasuffix=0;//Iasuffix Ibsuffix为8位
 277   2              //if (Ibsuffix>255)Ibsuffix=0;
 278   2                              
 279   2              Start_steptimes--;
 280   2              if (Start_steptimes<=0) 
 281   2              {Start_steptimes=10;Start_stepnum=Start_stepnum*2;}
 282   2              if (Start_stepnum==32) Start_f=0;
 283   2              Command=88;
 284   2              break;
 285   2              
 286   2      case 88:
 287   2              break;
 288   2      default: 
 289   2          break;
 290   2      }
 291   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    809    ----
   CONSTANT SIZE    =    256    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14    ----
   IDATA SIZE       =   ----    ----
   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 + -