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

📄 new_zong.lst

📁 本程序为单片机对四相步进电机的控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   NEW_ZONG                                                             05/19/2009 13:16:15 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE NEW_ZONG
OBJECT MODULE PLACED IN new_zong.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE new_zong.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1                  #include <reg51.h>
   2          #include <stdio.h>
   3          #define uchar unsigned char 
   4          #include <math.h> 
   5          
   6          unsigned int tick,step;
   7          uchar key_all=0;
   8          uchar in_number=0;
   9          
  10          uchar data12[9]={0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f};
  11          int speed=4;int jieju;
  12          int speed1;
  13          const uchar data_void[9]={0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f};
  14          
  15          unsigned char     anticlock[8]={0xf4,0xf6,0xf2,0xf3,0x01,0xf9,0xf8,0xfc}; 
  16          
  17          unsigned char     clock[8]={0xf8,0xf9,0x01,0xf3,0xf2,0xf6,0xf4,0xfc}; 
  18          
  19          
  20          uchar in_status;
  21          unsigned int  pos;
  22           unsigned  int temp;
  23             uchar m;
  24          
  25          sbit DIN=P3^5;
  26          sbit LOAD=P3^6;
  27          sbit CLP=P3^7;
  28          
  29          sbit P1_0=P1^0;   //主线机的方向控制
  30          sbit P1_1=P1^1;   //主线机的脉冲
  31          
  32          sbit P1_6=P1^6;   //排线机方向控制
  33          sbit P1_7=P1^7;    //排线机脉冲输入
  34          bit yes;
  35          //sbit my=P1^7;
  36          
  37          
  38          void delay(void);
  39          void send(uchar add,uchar );
  40          void s_seg(uchar *p);
  41          void  keyscan(void);      //键盘扫描函数
  42          void clear_all(void);
  43          void my_delay(void);
  44          
  45          void zhengzhuan(int);
  46          void fanzhuan(int) ;
  47          void key_process(void);
  48          void  initt1(void) ;
  49              void es_isr0 (void) ;
  50          
  51          void main()
  52          {  
  53   1       //uchar key_get=15;
  54   1      
  55   1       int i;
C51 COMPILER V8.05a   NEW_ZONG                                                             05/19/2009 13:16:15 PAGE 2   

  56   1        in_status=0;
  57   1        initt1();
  58   1        tick=0;
  59   1        pos=0;
  60   1      
  61   1        step=1;
  62   1      while(1)
  63   1      {
  64   2              keyscan();
  65   2              key_process();
  66   2      //      if(yes){        zhengzhuan(speed1);      yes=0;}
  67   2      
  68   2              
  69   2        /* for (i=0;i<8;i++)
  70   2         {
  71   2               P0=clock[i]; 
  72   2                my_delay();
  73   2              }
  74   2      
  75   2        */
  76   2      } 
  77   1      }
*** WARNING C280 IN LINE 55 OF NEW_ZONG.C: 'i': unreferenced local variable
  78          
  79           void  initt1(void) 
  80           {
  81   1                      P1_0 =1;
  82   1              P1_1 =1;
  83   1              TMOD=0X11;
  84   1               TH0=0Xdd;
  85   1              TL0=0X00;
  86   1      
  87   1               TR0=1;
  88   1               ET0=1;
  89   1      
  90   1               EA=0;
  91   1      
  92   1       }
  93          
  94          
  95          void key_process(void)
  96            {
  97   1      
  98   1              //  in_number=0;
  99   1        
 100   1        
 101   1        if((key_all==13       )||( key_all==14)) 
 102   1      {
 103   2               if(key_all==13) in_status=1;
 104   2               else   in_status= 2;  
 105   2               clear_all();
 106   2       }
 107   1              if((in_status!=0)&&(key_all>=1)&&(key_all<=10)) 
 108   1              {
 109   2                      for(m=8;m>1;m--)
 110   2              {
 111   3                  data12[m]=data12[m-1];
 112   3              }       
 113   2                        data12[1]=key_all-1;
 114   2               
 115   2                                       in_number++;
 116   2      
C51 COMPILER V8.05a   NEW_ZONG                                                             05/19/2009 13:16:15 PAGE 3   

 117   2                                      s_seg(data12);
 118   2      
 119   2      
 120   2              if(     in_number >7 )    in_number=0;
 121   2      
 122   2              }
 123   1              if(key_all==11) 
 124   1              {
 125   2                 //    EA=1;
 126   2      
 127   2                      temp=0;
 128   2      
 129   2              for(m=1;m<=in_number;m++)
 130   2                      {
 131   3              temp+=data12[m]*pow(10,(m-1));
 132   3              tick=temp;
 133   3      
 134   3                      //      temp=data12[1];
 135   3                      }
 136   2      
 137   2                      switch(temp)
 138   2                      {
 139   3                              case 20: tick=0; if(0==(pos/2)) {P1_0=1;step=pos/2;EA=0;} if(0<(pos/2))  {P1_0=0;step=pos/2;EA=1;} brea
             -k;
 140   3                              case 26: tick=0; if(14>(pos/2)) {P1_0=1;step=14-pos/2;EA=1;}if(14<(pos/2)) {P1_0=0;step=pos/2-14;EA=1;}
             -  break;
 141   3                              case 34: tick=0; if(28>(pos/2)) {P1_0=1;step=28-pos/2;EA=1;}if(28<(pos/2)) {P1_0=0;step=pos/2-28;EA=1;}
             -  break;
 142   3                              case 40: tick=0; if(42>(pos/2)) {P1_0=1;step=42-pos/2;EA=1;}if(42<(pos/2)) {P1_0=0;step=pos/2-42;EA=1;}
             -  break;
 143   3                              case 47: tick=0; if(56>(pos/2)) {P1_0=1;step=56-pos/2;EA=1;}if(56<(pos/2)) {P1_0=0;step=pos/2-56;EA=1;}
             -  break;
 144   3                              case 52: tick=0; if(70>(pos/2)) {P1_0=1;step=70-pos/2;EA=1;}if(70<(pos/2)) {P1_0=0;step=pos/2-70;EA=1;}
             -  break;
 145   3                              case 60: tick=0; if(84>(pos/2)) {P1_0=1;step=84-pos/2;EA=1;}if(84<(pos/2)) {P1_0=0;step=pos/2-84;EA=1; 
             -}break;
 146   3                              case 65: tick=0; if(98>(pos/2)) {P1_0=1;step=98-pos/2;EA=1;}if(98<(pos/2)) {P1_0=0;step=pos/2-98;EA=1;}
             -  break; 
 147   3                              case 70: tick=0; if(112>(pos/2)) {P1_0=1;step=112-pos/2;EA=1;}if(112<(pos/2)) {P1_0=0;step=pos/2-112;EA
             -=1;} break; 
 148   3                              case 77: tick=0; if(126>(pos/2)) {P1_0=1;step=126-pos/2;EA=1;}if(126<(pos/2)) {P1_0=0;step=pos/2-126;EA
             -=1;}  break; 
 149   3                              case 83: tick=0; if(140>(pos/2)) {P1_0=1;step=140-pos/2;EA=1;}if(140<(pos/2)) {P1_0=0;step=pos/2-140;EA
             -=1;} break; 
 150   3                              case 89: tick=0; if(154>(pos/2)) {P1_0=1;step=154-pos/2;EA=1;}if(154<(pos/2)) {P1_0=0;step=pos/2-154;EA
             -=1;}  break; 
 151   3                              case 95: tick=0; if(168>(pos/2)) {P1_0=1;step=168-pos/2;EA=1;}if(168<(pos/2)){P1_0=0;step=pos/2-168;EA=
             -1;} break; 
 152   3                              case 100:  tick=0; if(182>(pos/2)) {P1_0=1;step=182-pos/2;EA=1;}if(182<(pos/2)) {P1_0=0;step=pos/2-182;
             -EA=1;} break; 
 153   3                              case 105:  tick=0; if(196>(pos/2)) {P1_0=1;step=196-pos/2;EA=1;}if(196<(pos/2)) {P1_0=0;step=pos/2-196;
             -EA=1;} break; 
 154   3                              case 112:  tick=0; if(210>(pos/2)) {P1_0=1;step=210-pos/2;EA=1;}if(210<(pos/2)) {P1_0=0;step=pos/2-210;
             -EA=1;}  break; 
 155   3                              case 118:  tick=0; if(224>(pos/2)) {P1_0=1;step=224-pos/2;EA=1;}if(224<(pos/2)) {P1_0=0;step=pos/2-224;
             -EA=1;}  break; 
 156   3                              case 120:  tick=0; if(238>(pos/2)) {P1_0=1;step=238-pos/2;EA=1;}if(238<(pos/2)) {P1_0=0;step=pos/2-238;
             -EA=1;}  break; 
 157   3                              case 127:  tick=0; if(252>(pos/2)) {P1_0=1;step=252-pos/2;EA=1;}if(252<(pos/2)) {P1_0=0;step=pos/2-252;
             -EA=1;} break; 
 158   3                              case 133:  tick=0; if(266>(pos/2)) {P1_0=1;step=266-pos/2;EA=1;}if(266<(pos/2)) {P1_0=0;step=pos/2-266;
             -EA=1;}  break; 
C51 COMPILER V8.05a   NEW_ZONG                                                             05/19/2009 13:16:15 PAGE 4   

 159   3                              case 138:  tick=0; if(280>(pos/2)) {P1_0=1;step=280-pos/2;EA=1;}if(280<(pos/2)) {P1_0=0;step=pos/2-280;
             -EA=1;} break; 
 160   3                              case 143: tick=0; if(294>(pos/2)) {P1_0=1;step=294-pos/2;EA=1;}if(294<(pos/2)) {P1_0=0;step=pos/2-294;E
             -A=1;} break; 
 161   3                              case 148: tick=0; if(308>(pos/2)) {P1_0=1;step=308-pos/2;EA=1;}if(308<(pos/2)) {P1_0=0;step=pos/2-308;E
             -A=1;} break; 
 162   3                              case 155:  tick=0; if(322>(pos/2)) {P1_0=1;step=322-pos/2;EA=1;}if(322<(pos/2)) {P1_0=0;step=pos/2-322;
             -EA=1;} break; 
 163   3                              default: break;
 164   3      
 165   3                      }
 166   2                      
 167   2              }
 168   1                      if(key_all==12) 
 169   1                      {
 170   2                      clear_all();
 171   2      
 172   2                      }
 173   1      
 174   1      }
 175          void clear_all(void)
 176          {
 177   1                      uchar j;
 178   1      
 179   1              in_number=0;
 180   1              for( j=1;j<9;j++)
 181   1              {
 182   2                      data12[j]=0x0f; 
 183   2      
 184   2              }       
 185   1      
 186   1                      s_seg(data_void);
 187   1      
 188   1      }
 189              void delay(void)    //延时函数
 190            {
 191   1              int i;
 192   1                  for (i=4800;i>0;i--);
 193   1         }
 194          
 195          void keyscan(void)        //键盘扫描函数
 196             {
 197   1               uchar scan,tep;
 198   1      
 199   1                       key_all=0;
 200   1      //               EA=0;
 201   1      
 202   1                       P2=0xf0;
 203   1                   if((P2&0xf0)!=0xf0)          //若有键盘按下
 204   1                       {
 205   2                                delay();
 206   2                            if((P2&0xf0)!=0xf0)         //若有键盘按下
 207   2      
 208   2                              {
 209   3                               P2=0xfe;                  // 发全0扫描码
 210   3               
 211   3                     if((P2&0xf0)!=0xf0)        //若有键盘按下
 212   3                      { 
 213   4                                delay();
 214   4                            if((P2&0xf0)!=0xf0)         //若有键盘按下
 215   4                          {
 216   5                                         scan=P2&0xf0;
C51 COMPILER V8.05a   NEW_ZONG                                                             05/19/2009 13:16:15 PAGE 5   

⌨️ 快捷键说明

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