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

📄 key.lst

📁 电机驱动!四相五线的步进电机用C8051F020驱动
💻 LST
字号:
C51 COMPILER V7.50   KEY                                                                   04/10/2009 16:27:31 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<C8051F020.h>
   2          #include <stdio.h>
   3          #define uchar unsigned char
   4          #define uint  unsigned int
   5          extern void xspdelay(unsigned int x);
   6          extern char key;
   7          char oldkey,rekey;    
   8          extern uchar read_lcd(uint i);
   9          extern void wlcdi(uchar i);
  10          extern void wlcdd(uchar i);
  11          extern uchar rlcdd(void);
  12          extern void bwlcdi(uchar i);
  13          extern void bwlcdd(uchar i);
  14          
  15          extern void line(uint x,y,x1,y1,bit WR);
  16          
  17          
  18          
  19          //-----------------------------------------------------------------------------
  20          // 16-bit SFR Definitions for 'F02x
  21          //-----------------------------------------------------------------------------
  22          
  23          sfr16 DP       = 0x82;                 // data pointer
  24          sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
  25          sfr16 TMR3     = 0x94;                 // Timer3 counter
  26          sfr16 ADC0     = 0xbe;                 // ADC0 data
  27          sfr16 ADC0GT   = 0xc4;                 // ADC0 greater than window
  28          sfr16 ADC0LT   = 0xc6;                 // ADC0 less than window
  29          sfr16 RCAP2    = 0xca;                 // Timer2 capture/reload
  30          sfr16 T2       = 0xcc;                 // Timer2
  31          sfr16 RCAP4    = 0xe4;                 // Timer4 capture/reload
  32          sfr16 T4       = 0xf4;                 // Timer4
  33          sfr16 DAC0     = 0xd2;                 // DAC0 data
  34          sfr16 DAC1     = 0xd5;                 // DAC1 data
  35          
  36          //-----------------------------------------------------------------------------
  37          // Global CONSTANTS
  38          //-----------------------------------------------------------------------------
  39          
  40          
  41          
  42          
  43          
  44          //-----------------------------------------------------------------------------
  45          // Function PROTOTYPES
  46          //-----------------------------------------------------------------------------
  47          
  48          
  49          void key_Init (void);
  50          void key_PORT_Init(void);
  51          uchar kbscan(void);
  52          void disp_key (void);
  53          
  54          
  55          
C51 COMPILER V7.50   KEY                                                                   04/10/2009 16:27:31 PAGE 2   

  56          
  57          void key_PORT_Init (void)
  58          {
  59   1      
  60   1         
  61   1         P2MDOUT |= 0xf0;//suo doing
  62   1         P3MDOUT &= 0xff;//0xbf;
  63   1         P74OUT  |= 0x02;//0x02
  64   1         P4&=0xef;//0xeff
  65   1         
  66   1      }
  67          
  68          
  69          void key_Init(void)
  70          {
  71   1        key_PORT_Init();
  72   1        
  73   1        P3IF=0x04;//0x04;
  74   1        EIE2|=0x10;
  75   1        P2=0xff;
  76   1        P2=0x0f;
  77   1        P3|=0xe0;//0xf0
  78   1      }
  79          
  80          void key_ISR (void) interrupt 18
  81          
  82          {
  83   1        
  84   1      int keydata;
  85   1      EA=0;
  86   1      
  87   1      P3IF&=0xbf;
  88   1      keydata=kbscan();
  89   1      if (keydata==0x42) key=1;
  90   1      if (keydata==0x82) key=2;
  91   1      if (keydata==0x41) key=3;
  92   1      if (keydata==0x81) key=4;
  93   1      if (keydata==0x48) key=5;
  94   1      if (keydata==0x88) key=6;
  95   1      if (keydata==0x44) key=7;
  96   1      if (keydata==0x84) key=8;
  97   1      if (keydata==0x24) key=9;
  98   1      if (keydata==0x14) key=10;
  99   1      
 100   1      if (keydata==0x28) key=11;
 101   1      if (keydata==0x18) key=12;
 102   1      if (keydata==0X21) key=13;
 103   1      if (keydata==0x11) key=14;
 104   1      if (keydata==0x22) key=15;
 105   1      if (keydata==0x12) key=16;
 106   1      
 107   1      
 108   1      
 109   1      
 110   1       P2=0xff;//?
 111   1       P2=0x0f;//?
 112   1      
 113   1       if (keydata==0)
 114   1       {
 115   2         rekey++;
 116   2         if (rekey<4) P3IF|=0x40;
 117   2         else rekey=0;
C51 COMPILER V7.50   KEY                                                                   04/10/2009 16:27:31 PAGE 3   

 118   2       } 
 119   1       else 
 120   1        rekey=0;
 121   1       EA=1;
 122   1      }
 123          
 124          
 125          
 126          
 127          uchar kbscan(void)
 128          { 
 129   1        uchar sccode,recode;
 130   1       
 131   1        P2=0x0f;
 132   1        
 133   1        xspdelay(1000);
 134   1        P4|=0x20;
 135   1       
 136   1        if((P2&0x0f)!=0x0f)
 137   1          { P4|=0x20;//on spack 
 138   2                xspdelay(500);
 139   2            if((P2&0x0f)!=0x0f)
 140   2              {
 141   3                       sccode=0xef;
 142   3               while((sccode&0x01)!=0)
 143   3                 {P2=sccode;
 144   4                   xspdelay(500);
 145   4                  if((P2&0x0f)!=0x0f)
 146   4                    {recode=(P2&0x0f)|0xf0;
 147   5                     xspdelay(100000);
 148   5                     xspdelay(100000);
 149   5                    P4&=0xdf;//off spack 
 150   5                                return((~sccode)+(~recode));
 151   5                    }
 152   4                  
 153   4                  else
 154   4                  sccode=(sccode<<1)|0x01;
 155   4                              if (sccode==0xff)sccode=0xfe;
 156   4                }
 157   3             }
 158   2          }
 159   1         P4&=0xdf;//off spack
 160   1              return(0);
 161   1      }


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