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

📄 key.lst

📁 本程序为单片机对四相步进电机的控制
💻 LST
字号:
C51 COMPILER V8.05a   KEY                                                                  05/08/2009 19:14:20 PAGE 1   


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

line level    source

   1          #include <reg51.h>
   2          #include <stdio.h>
   3          #define uchar unsigned char 
   4          
   5          
   6          unsigned char  key_scan(void );
   7          void send(uchar add,uchar );
   8          void s_seg(uchar,uchar ,uchar,uchar,uchar,uchar,uchar , uchar);
   9          
  10           uchar vo[];                      //  输入速度存储区
  11           uchar length[];                  //  输入间距存储区
  12           bit enterflag;                  //       确认键按下与否标志
  13          
  14            void delay(void)      //延时函数
  15            {
  16   1              uchar i;
  17   1                  for (i=300;i>0;i--);
  18   1         }
  19             uchar Peyscan(void)    //键盘扫描函数
  20             {
  21   1               uchar scan,tep;
  22   1      
  23   1                       P1=0xf0;                  // 发全0扫描码
  24   1               
  25   1                     if((P1&0xf0)==0xf0)        //若有键盘按下
  26   1                      { 
  27   2                                       delay();         //延时函数
  28   2      
  29   2                                       if((P1&0xf0)==0xf0)   //再判断一次,去除抖动
  30   2                                       {
  31   3                           scan=0xfe;
  32   3                               while((scan&0x10)!=0)   //      顺行扫描
  33   3                                {
  34   4                                     P1=scan;                  //输出行扫描码
  35   4      
  36   4                                         if((P1&0xf0)!=0xf0)   //本行有键按下
  37   4                                         {
  38   5                                              tep = (P1&0xf0)|0x0f;
  39   5      
  40   5                                               return((~scan)+(~tep));
  41   5                                      }
  42   4      
  43   4                                       else scan=(scan<<1)|0x01;                      //行扫描码左移一位
  44   4                                 }
  45   3                            }
  46   2                    }                                                                                            //无键按下,返回值0
  47   1                     return(0);
  48   1           }
  49          
  50          
  51               uchar getcode(uchar i)
  52               {
  53   1              uchar P;
  54   1      
  55   1                    switch(i)
C51 COMPILER V8.05a   KEY                                                                  05/08/2009 19:14:20 PAGE 2   

  56   1                       {
  57   2                          case 0:                           /* 0 */
  58   2                                   P=0x3f;
  59   2                               break;
  60   2      
  61   2                              case  1:                          /*  1  */
  62   2                                    P=0x06;
  63   2                                    break;
  64   2      
  65   2                              case  2:                          /*  2  */
  66   2                                   P=0x5B;
  67   2                                   break;
  68   2      
  69   2                              case 3:                           /*  3 */
  70   2                               P=0x4f;
  71   2                                   break;
  72   2                                                                                      
  73   2                               case 4:                         
  74   2                                    P=0x66;             /*  4  */
  75   2                                    break;
  76   2      
  77   2                                case 5:                 
  78   2                                    P=0x6D;              /*  5  */
  79   2                                    break;
  80   2      
  81   2                                 case 6:                
  82   2                                     P=0x7D;             /*  6  */
  83   2                                 break;
  84   2                                                                              
  85   2                                 case 7:                        /*  7 */
  86   2                                     P=0x07;
  87   2                                 break;
  88   2      
  89   2                                  case 8:               /*   8  */
  90   2                                     P=0x7F;
  91   2                                     break;
  92   2      
  93   2                                  case 9:                /*  9  */
  94   2                                     P=0x67;
  95   2                                     break;
  96   2      
  97   2                                  case 10:                    /*  A  */
  98   2                                     P=0x77;      
  99   2                                     break;
 100   2      
 101   2                               case 11:                /*  B  */
 102   2                                     P=0x7c;
 103   2                                     break;
 104   2      
 105   2                                   case 12:           /*  C  */
 106   2                                     P=0x39;
 107   2                                     break;
 108   2      
 109   2                                   case 13:            /*  D  */
 110   2                                     P=0x5E;
 111   2                                     break;
 112   2      
 113   2                                    case 14:           /*  E  */
 114   2                                      P=0x79;
 115   2                                      break;
 116   2      
 117   2                                    case 15:           /*  F  */
C51 COMPILER V8.05a   KEY                                                                  05/08/2009 19:14:20 PAGE 3   

 118   2                                      P=0x71;
 119   2                                      break;
 120   2                             
 121   2                              default:
 122   2                                  break;
 123   2                      }
 124   1                                      return(P);
 125   1                        }
 126          
 127                              P1 = 0xf0;                                   // 发全0扫描码
*** ERROR C231 IN LINE 127 OF KEY.C: 'P1': redefinition
*** ERROR C231 IN LINE 127 OF KEY.C: 'P1': redefinition
 128                                                                              
 129                                while((P1&0xf0)!=0xf0) 
*** ERROR C141 IN LINE 129 OF KEY.C: syntax error near 'while'
*** ERROR C141 IN LINE 129 OF KEY.C: syntax error near '&', expected ')'
 130                                                                      //若没松开按键
 131                                {
 132                                   P1 = 0xf0;
*** ERROR C279 IN LINE 132 OF KEY.C: 'P1': multiple initialization
*** ERROR C231 IN LINE 132 OF KEY.C: 'P1': redefinition
*** ERROR C231 IN LINE 132 OF KEY.C: 'P1': redefinition
 133                            }
*** ERROR C141 IN LINE 133 OF KEY.C: syntax error near '}'
 134                          
 135                     
 136                     
 137                          /*   主电机转动    */  
 138          
 139                    int x
 140          
 141                    unsigned  char  output[6]     ={0x08,0x24,0x16,0x48,0x32,0x40}
*** ERROR C129 IN LINE 141 OF KEY.C: missing ';' before 'unsigned'
 142          
 143                    unsigned  i=0
 144          
 145                    while  x>0
 146                    {
 147                         P1=output[i]     ;
 148          
 149                             Delay();
 150          
 151                             i++;
 152                          if(i==6) i=0;
 153                     }
 154          
 155          
 156                       /*   排电机转动    */  
 157          
 158          
 159             void send(uchar add,uchar dat)
 160          {
 161                  uchar ADS,i,j;
 162                  CLP=0;
 163                  LOAD=0;
 164                  DIN=0;
 165                  i=4;
 166                  while(i<16)
 167                  {
 168                   if(i<8)
 169                          {
 170                                  ADS=add;
C51 COMPILER V8.05a   KEY                                                                  05/08/2009 19:14:20 PAGE 4   

 171                          }
 172                    else
 173                          {
 174                                  ADS=dat;
 175                          }
 176                    for(j=8;j>=1;j--)
 177                          {
 178          
 179                                  if((ADS&0x80)==0)
 180                                  {       DIN=0 ;}
 181                                  else 
 182                                  {       DIN=1;}
 183                                  ADS=ADS<<1;
 184                          
 185                          CLP=1;
 186                          CLP=0;  
 187                           }
 188                    i=i+8;
 189             }
 190             LOAD=1;
 191          }
 192          
 193          void s_seg(uchar X1,uchar X2,uchar X3,uchar X4,uchar X5,uchar X6,uchar X7, uchar X8)
 194          {
 195                   send(0x0c,0x01);//正常状态
 196             send(0x0b,0x07);//设置扫描范围DIG0-7
 197                   send(0x0a,0x05);//设置亮度11/32
 198             send(0x09,0xff);//采用译码方式
 199          
 200             send(0x01,X1);
 201             send(0x02,X2);
 202             send(0x03,X3);
 203             send(0x04,X4);
 204             send(0x05,X5);
 205             send(0x06,X6);
 206             send(0x07,X7);
 207             send(0x08,X8);       
 208          }
 209          
 210          
 211          
 212          
 213          
 214          
 215          

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

⌨️ 快捷键说明

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