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

📄 servo.lst

📁 3.多路舵机控制电路C语言版 C51
💻 LST
字号:
C51 COMPILER V8.02   SERVO                                                                 11/13/2007 14:05:45 PAGE 1   


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

line level    source

   1          /******************************************************************************
   2          标题:多路舵机控制电路C语言版
   3          说明:AT8951改变脉冲宽度控制舵机位置(C语言版)
   4          作者:kaka000      论坛:http://www.proteus.com.cn
   5          日期:2007年11月11日
   6          ******************************************************************************/
   7          
   8          /******************************************************************************
   9          分辨率:100 (即每增减1等于增减1.8°)
  10          常用角度:  
  11          98=-90°;
  12                  115=-59.4°;
  13                          123=-45°;
  14                                  131=-30.6°;
  15                                          148=0°;
  16                                  165=+30.6°;
  17                          173=+45°;
  18                  181=+59.4°;
  19          198=+90°
  20          ******************************************************************************/
  21           
  22          #include"at89x51.h" 
  23          int i,n;
  24          //延时100ms子程序*********************************************************************
  25          
  26          void delay100ms(void)   
  27          { 
  28   1              unsigned char i,j; 
  29   1              for(i=200;i>0;i--) 
  30   1              for(j=248;j>0;j--);
  31   1      } 
  32          
  33          //延时0.1s子程序***********************************************************************
  34          
  35          void delay(int t)               
  36          { 
  37   1              unsigned char i; 
  38   1              for(i=t;i>0;i--)  
  39   1              delay100ms();
  40   1      } 
  41          
  42          //各舵机转动子函数*******************************************************************
  43          
  44          void P00(int i)    
  45          { 
  46   1              P0_0=0;
  47   1              P0_0=1;
  48   1              for(;i>=0;i--){} 
  49   1              P0_0=0;   
  50   1      }
  51          void P01(int i)    
  52          { 
  53   1              P0_1=0;
  54   1              P0_1=1;
  55   1              for(;i>=0;i--){} 
C51 COMPILER V8.02   SERVO                                                                 11/13/2007 14:05:45 PAGE 2   

  56   1              P0_1=0;   
  57   1      }
  58          void P02(int i)    
  59          { 
  60   1              P0_2=0;
  61   1              P0_2=1;
  62   1              for(;i>=0;i--){} 
  63   1              P0_2=0;   
  64   1      }
  65          void P03(int i)    
  66          { 
  67   1              P0_3=0;
  68   1              P0_3=1;
  69   1              for(;i>=0;i--){} 
  70   1              P0_3=0;   
  71   1      }
  72          void P04(int i)    
  73          { 
  74   1              P0_4=0;
  75   1              P0_4=1;
  76   1              for(;i>=0;i--){} 
  77   1              P0_4=0;   
  78   1      }
  79          void P05(int i)    
  80          { 
  81   1              P0_5=0;
  82   1              P0_5=1;
  83   1              for(;i>=0;i--){} 
  84   1              P0_5=0;   
  85   1      }
  86          void P06(int i)
  87          { 
  88   1              P0_6=0;
  89   1              P0_6=1;
  90   1              for(;i>=0;i--){} 
  91   1              P0_6=0;   
  92   1      }
  93          void P07(int i)    
  94          { 
  95   1              P0_7=0;
  96   1              P0_7=1;
  97   1              for(;i>=0;i--){} 
  98   1              P0_7=0;   
  99   1      }
 100          void P10(int i)    
 101          {       
 102   1              P1_0=0;
 103   1                      P1_0=1;
 104   1               for(;i>=0;i--){} 
 105   1              P1_0=0;
 106   1      }
 107          void P11(int i)    
 108          {       
 109   1              P1_1=0;
 110   1              P1_1=1;
 111   1              for(;i>=0;i--){} 
 112   1              P1_1=0;
 113   1      }
 114          void P12(int i)    
 115          {       
 116   1              P1_2=0;
 117   1              P1_2=1;
C51 COMPILER V8.02   SERVO                                                                 11/13/2007 14:05:45 PAGE 3   

 118   1              for(;i>=0;i--){} 
 119   1              P1_2=0;
 120   1      }
 121          void P13(int i)    
 122          {       
 123   1              P1_3=0;
 124   1              P1_3=1;
 125   1              for(;i>=0;i--){} 
 126   1              P1_3=0;
 127   1      }
 128          void P14(int i)    
 129          { 
 130   1              P1_4=0;
 131   1              P1_4=1;
 132   1              for(;i>=0;i--){} 
 133   1              P1_4=0;
 134   1      }
 135          void P15(int i)    
 136          { 
 137   1              P1_5=0;
 138   1              P1_5=1;
 139   1                      for(;i>=0;i--){} 
 140   1               P1_5=0;   
 141   1      }
 142          void P16(int i)    
 143          { 
 144   1              P1_6=0;
 145   1              P1_6=1;
 146   1              for(;i>=0;i--){} 
 147   1              P1_6=0;   
 148   1      }
 149          void P17(int i)    
 150          { 
 151   1              P1_7=0;
 152   1              P1_7=1;
 153   1              for(;i>=0;i--){} 
 154   1              P1_7=0;
 155   1      }
 156          
 157          void P20(int i)    
 158          {       
 159   1              P2_0=0;
 160   1              P2_0=1;
 161   1              for(;i>=0;i--){} 
 162   1              P2_0=0;
 163   1      }
 164          void P21(int i)    
 165          {       
 166   1              P2_1=0;
 167   1              P2_1=1;
 168   1              for(;i>=0;i--){} 
 169   1              P2_1=0;
 170   1      }
 171          void P22(int i)    
 172          {       
 173   1              P2_2=0;
 174   1              P2_2=1;
 175   1              for(;i>=0;i--){} 
 176   1              P2_2=0;
 177   1      }
 178          void P23(int i)    
 179          {       
C51 COMPILER V8.02   SERVO                                                                 11/13/2007 14:05:45 PAGE 4   

 180   1              P2_3=0;
 181   1              P2_3=1;
 182   1              for(;i>=0;i--){} 
 183   1              P2_3=0;
 184   1      }
 185          void P24(int i)    
 186          { 
 187   1              P2_4=0;
 188   1              P2_4=1;
 189   1              for(;i>=0;i--){} 
 190   1              P2_4=0;
 191   1      }
 192          void P25(int i)    
 193          { 
 194   1              P2_5=0;
 195   1              P2_5=1;
 196   1              for(;i>=0;i--){} 
 197   1              P2_5=0;   
 198   1      }
 199          void P26(int i)    
 200          { 
 201   1              P2_6=0;
 202   1              P2_6=2;
 203   1              for(;i>=0;i--){} 
 204   1              P2_6=0;   
 205   1      }
 206          void P27(int i)    
 207          { 
 208   1              P2_7=0;
 209   1              P2_7=1;
 210   1              for(;i>=0;i--){} 
 211   1              P2_7=0;
 212   1      }
 213          void P30(int i)    
 214          {       
 215   1              P3_0=0;
 216   1              P3_0=1;
 217   1              for(;i>=0;i--){} 
 218   1              P3_0=0;
 219   1      }
 220          void P31(int i)    
 221          {       
 222   1              P3_1=0;
 223   1              P3_1=1;
 224   1              for(;i>=0;i--){} 
 225   1              P3_1=0;
 226   1      }
 227          void P32(int i)    
 228          {       
 229   1              P3_2=0;
 230   1              P3_2=1;
 231   1              for(;i>=0;i--){} 
 232   1              P3_2=0;
 233   1      }
 234          void P33(int i)    
 235          {       
 236   1              P3_3=0;
 237   1              P3_3=1;
 238   1              for(;i>=0;i--){} 
 239   1              P3_3=0;
 240   1      }
 241          void P34(int i)    
C51 COMPILER V8.02   SERVO                                                                 11/13/2007 14:05:45 PAGE 5   

 242          { 
 243   1              P3_4=0;
 244   1              P3_4=1;
 245   1              for(;i>=0;i--){} 
 246   1              P3_4=0;
 247   1      }
 248          void P35(int i)    
 249          { 
 250   1              P3_5=0;
 251   1              P3_5=1;
 252   1              for(;i>=0;i--){} 
 253   1              P3_5=0;   
 254   1      }
 255          void P36(int i)    
 256          { 
 257   1              P3_6=0;
 258   1              P3_6=3;
 259   1              for(;i>=0;i--){} 
 260   1              P3_6=0;   
 261   1      }
 262          void P37(int i)    
 263          { 
 264   1              P3_7=0;
 265   1              P3_7=1;
 266   1              for(;i>=0;i--){} 
 267   1              P3_7=0;   
 268   1      }
 269          
 270          //所有舵机转动子函数*****************************************************************
 271          void PALL(int a,int b,int c,int d,int e,int f,int g,int h,int i)
 272          {
 273   1              P10(a);
 274   1              P11(b);
 275   1              P12(c);
 276   1              P13(d);
 277   1              P14(e);
 278   1              P15(f);
 279   1              P16(g);
 280   1              P17(h);
 281   1              //可以继续增加到32路!!!!!!P0口要加上拉电阻!?
 282   1              P07(i);
 283   1      }
 284          
 285          //主函数*****************************************************************************
 286          void main(void) 
 287          {
 288   1      
 289   1              while(1)
 290   1              {
 291   2              
 292   2                      n=50;
 293   2                      for(i=148;i<=148+n;i++)
 294   2                      {
 295   3                      P07(i);
 296   3                      delay(2);
 297   3                      }
 298   2                      PALL(198,181,165,148,148,131,115,98,98);
 299   2                      delay(10);
 300   2                      PALL(198,181,165,148,148,131,115,98,115);
 301   2                      delay(10);
 302   2                      PALL(198,181,165,148,148,131,115,98,131);
 303   2                      delay(10);
C51 COMPILER V8.02   SERVO                                                                 11/13/2007 14:05:45 PAGE 6   

 304   2                      PALL(198,181,165,148,148,131,115,98,148);
 305   2                      delay(10);
 306   2                      PALL(198,181,165,148,148,131,115,98,148);
 307   2                      delay(10);
 308   2                      PALL(198,181,165,148,148,131,115,98,165);
 309   2                      delay(10);
 310   2                      PALL(198,181,165,148,148,131,115,98,181);
 311   2                      delay(10);
 312   2                      PALL(198,181,165,148,148,131,115,98,198);
 313   2                      delay(10);
 314   2              }
 315   1      }
 316          
 317          
 318          


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