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

📄 stepmotor.lst

📁 单片机控制步进电机加减速C语言源程序
💻 LST
字号:
C51 COMPILER V8.02   STEPMOTOR                                                             06/25/2008 01:21:26 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE STEPMOTOR
OBJECT MODULE PLACED IN stepmotor.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE stepmotor.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /////////////////////////////////////
   2          //  Generated Initialization File  //
   3          /////////////////////////////////////
   4          
   5          #include "C8051F120.h"
   6          #define T1 1843
   7          #define T2 3000
   8          #define T3 1843
   9          #define T4 922
  10          sbit p   = P3 ^ 3;  //平移电机脉冲
  11          sbit eud = P3 ^ 7;      //升降电机使能
  12          sbit p1  = P3 ^ 2;  //升降电机脉冲
  13          sbit elr = P3 ^ 5;      //平移电机使能
  14          char a = 0;             //标志位
  15          char b = 0;
  16          char c = 0;
  17          char d = 0;
  18          // Peripheral specific initialization functions,
  19          // Called from the Init_Device() function
  20          void Reset_Sources_Init()
  21          {
  22   1          WDTCN     = 0xDE;
  23   1          WDTCN     = 0xAD;
  24   1      }
  25          
  26          void Port_IO_Init()
  27          {
  28   1          // P0.0  -  TX0 (UART0), Open-Drain, Digital
  29   1          // P0.1  -  RX0 (UART0), Open-Drain, Digital
  30   1          // P0.2  -  TX1 (UART1), Open-Drain, Digital
  31   1          // P0.3  -  RX1 (UART1), Open-Drain, Digital
  32   1          // P0.4  -  Unassigned,  Open-Drain, Digital
  33   1          // P0.5  -  Unassigned,  Open-Drain, Digital
  34   1          // P0.6  -  Unassigned,  Open-Drain, Digital
  35   1          // P0.7  -  Unassigned,  Open-Drain, Digital
  36   1      
  37   1          // P1.0  -  Unassigned,  Open-Drain, Digital
  38   1          // P1.1  -  Unassigned,  Open-Drain, Digital
  39   1          // P1.2  -  Unassigned,  Open-Drain, Digital
  40   1          // P1.3  -  Unassigned,  Open-Drain, Digital
  41   1          // P1.4  -  Unassigned,  Open-Drain, Digital
  42   1          // P1.5  -  Unassigned,  Open-Drain, Digital
  43   1          // P1.6  -  Unassigned,  Open-Drain, Digital
  44   1          // P1.7  -  Unassigned,  Open-Drain, Digital
  45   1      
  46   1          // P2.0  -  Unassigned,  Open-Drain, Digital
  47   1          // P2.1  -  Unassigned,  Open-Drain, Digital
  48   1          // P2.2  -  Unassigned,  Open-Drain, Digital
  49   1          // P2.3  -  Unassigned,  Open-Drain, Digital
  50   1          // P2.4  -  Unassigned,  Open-Drain, Digital
  51   1          // P2.5  -  Unassigned,  Open-Drain, Digital
  52   1          // P2.6  -  Unassigned,  Open-Drain, Digital
  53   1          // P2.7  -  Unassigned,  Open-Drain, Digital
  54   1      
  55   1          // P3.0  -  Unassigned,  Push-Pull,  Digital
C51 COMPILER V8.02   STEPMOTOR                                                             06/25/2008 01:21:26 PAGE 2   

  56   1          // P3.1  -  Unassigned,  Push-Pull,  Digital
  57   1          // P3.2  -  Unassigned,  Push-Pull,  Digital
  58   1          // P3.3  -  Unassigned,  Push-Pull,  Digital
  59   1          // P3.4  -  Unassigned,  Push-Pull,  Digital
  60   1          // P3.5  -  Unassigned,  Push-Pull,  Digital
  61   1          // P3.6  -  Unassigned,  Push-Pull,  Digital
  62   1          // P3.7  -  Unassigned,  Push-Pull,  Digital
  63   1      
  64   1          SFRPAGE   = CONFIG_PAGE;
  65   1          P3MDOUT   = 0xFF;
  66   1          P4MDOUT   = 0xFF;
  67   1          P5MDOUT   = 0xFF;
  68   1          P6MDOUT   = 0xFF;
  69   1          P7MDOUT   = 0xFF;
  70   1          XBR0      = 0x04;
  71   1          XBR2      = 0x44;
  72   1      }
  73          
  74          void Oscillator_Init()
  75          {  
  76   1              int i = 0;
  77   1          SFRPAGE   = CONFIG_PAGE;
  78   1          OSCXCN    = 0x67;
  79   1          for (i = 0; i < 3000; i++);  // Wait 1ms for initialization
  80   1          while ((OSCXCN & 0x80) == 0);
  81   1          CLKSEL    = 0x01;   
  82   1      
  83   1      }
  84          
  85          // Initialization function for device,
  86          // Call Init_Device() from your main program
  87          void Init_Device(void)
  88          {
  89   1          Reset_Sources_Init();
  90   1          Port_IO_Init();
  91   1          Oscillator_Init();
  92   1              eud = 0;
  93   1              elr = 0;
  94   1      }
  95          
  96           /******************************************************************************
  97          函数:Timer0Isr
  98          描述:定时器3中断服务程序,Timer0
  99          参数:无
 100          返回:无                          
 101          ******************************************************************************/
 102          void Timer0Isr (void) interrupt 1 using 1
 103          {   p = !p;
 104   1          p1 = !p1;     
 105   1               if(a == 1)
 106   1                { TH0 = -T1/256;           
 107   2                  TL0 = -T1%256; 
 108   2            }
 109   1      else if(b == 1)
 110   1            { TH0 = -T2/256;           
 111   2                  TL0 = -T2%256; 
 112   2                }
 113   1      else if(c == 1)
 114   1                { TH0 = -T3/256;           
 115   2                  TL0 = -T3%256; 
 116   2                }
 117   1      else if(d == 1)
C51 COMPILER V8.02   STEPMOTOR                                                             06/25/2008 01:21:26 PAGE 3   

 118   1                { TH0 = -T4/256;           
 119   2                  TL0 = -T4%256; 
 120   2                }
 121   1      }
 122          /* void delay(long t)
 123          {   
 124            for(;t>=0;t--);
 125          
 126          }  */
 127          void pulse(void)
 128          {   p = 0;
 129   1          p1 = 0;
 130   1          SFRPAGE   = TIMER01_PAGE;
 131   1          TMOD|= 0x01;               //TMOD: timer 0, mode 1, 16-bit timer
 132   1              TH0 = -T1/256;             //Timer0 TH0 high byte reload initial value
 133   1              TL0 = -T1%256;             //Timer0 TL0 low byte write initial value(1ms)
 134   1              EA = 1; 
 135   1          ET0 = 1;                  //Timer0 Interrupt enable(IE.1)
 136   1              TR0 = 1;
 137   1              
 138   1       }
 139          
 140          main()
 141          {      Init_Device(); 
 142   1             pulse();    
 143   1                 c = 1;
 144   1                 eud = 1;
 145   1                 elr = 1;
 146   1                 while(1);
 147   1      }
 148          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    170    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   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 + -