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

📄 bskz.lst

📁 这是9个步进电机控制程序,每个都编译通过,并在使用中,可以共同商讨.联系:guanggu346 @163.com
💻 LST
字号:
C51 COMPILER V7.50   BSKZ                                                                  06/14/2007 21:46:06 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE BSKZ
OBJECT MODULE PLACED IN bskz.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bskz.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #define uchar unsigned char
   3          uchar sn=10;              /*步数*/
   4          uchar idata nowrate[2]={0x00,0x00}; /*匀速定时器初值*/
   5          uchar idata *pp;
   6          bit pf=1;        /*中断标志*/
   7          
   8          void contrl(direct,mode)
   9          bit direct;  /*方向*/
  10          uchar mode;  /*速度控制*/
  11          
  12          {  
  13   1        uchar i;
  14   1        uchar idata *cmode;
  15   1        uchar idata rise[20];  /*加速*/
  16   1        uchar idata fall[20];  /*减速*/
  17   1        uchar idata plus[7]={0x01,0x03,0x02,0x06,0x04,0x05,0x00}; /*正转*/
  18   1        uchar idata minu[7]={0x05,0x04,0x06,0x02,0x03,0x01,0x00}; /*反转*/
  19   1      
  20   1        if(direct) cmode=plus;
  21   1           else cmode=minu;
  22   1        switch(mode)
  23   1        {
  24   2         case 1:pp=rise;break;  /*pp指向定时器初值*/
  25   2         case 2:pp=nowrate;break;
  26   2         case 3:pp=fall;break;
  27   2         default:pp=nowrate;break;
  28   2         }
  29   1      
  30   1        do
  31   1          {
  32   2               P1=cmode[i];  /*输出转动控制字*/
  33   2               if(cmode[++i]==0x00)i=0;
  34   2              while(pf);   /*等待定时时间到*/
  35   2                      pf=1;
  36   2                 if((mode==1)||(mode==3))pp+=2;  /*定时器初值变化*/
  37   2                }
  38   1                 while(sn--);
  39   1         }
  40          
  41          
  42             void intt0(void) interrupt 1    /*T/C0中断服务*/
  43             {
  44   1          TL0=*pp;nowrate[0]=TL0;  /*赋T/C0初值,记录当前定时器初值*/
  45   1              TH0=*(pp+1);nowrate[1]=TH0;
  46   1              pf=0;
  47   1              }
  48          
  49                  void main (void)
  50                  {
  51   1              TMOD=0X01;
  52   1              TH0=0x00;
  53   1              TL0=0X00;
  54   1              TR0=1;
  55   1              ET0=1;
C51 COMPILER V7.50   BSKZ                                                                  06/14/2007 21:46:06 PAGE 2   

  56   1              EA=1;
  57   1              contrl(1,1);
  58   1              sn=10;
  59   1              contrl(1,2);
  60   1              sn=10;
  61   1              contrl(1,3);
  62   1              }
  63          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    205    ----
   CONSTANT SIZE    =     14    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       3
   IDATA SIZE       =      2      54
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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