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

📄 subp.lst

📁 51单片机与SL811HST做从机的PS3手柄程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.20   SUBP                                                                  01/30/2007 16:37:15 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE SUBP
OBJECT MODULE PLACED IN subp.OBJ
COMPILER INVOKED BY: F:\keil\C51\BIN\C51.EXE subp.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <sl811.h>
   2          #include <des.h>
   3          #include <reg51.h>
   4          #include <varial.h>
   5          
   6          
   7          //--------------------------------
   8           // wait  usb reset  5ms
   9           //-------------------------------
  10          void Delay(void)
  11          {
  12   1        unsigned char   i,u;
  13   1       for(u=40;u>0;u--)
  14   1       {
  15   2       i=255;
  16   2       while(i--);
  17   2       }
  18   1       }
  19          //*****************************************************************************************
  20          //  unsigned char Read from SL811H
  21          // a = register address
  22          // return = data in register
  23          //*****************************************************************************************
  24           unsigned char SL811Read( unsigned char a)
  25          {  
  26   1              SL811H_ADDR = a;                        
  27   1              return (SL811H_DATA);
  28   1      }
  29          
  30          //*****************************************************************************************
  31          //  unsigned char Write to SL811H
  32          // a = register address
  33          // d = data to be written to this register address
  34          //*****************************************************************************************
  35          void SL811Write( unsigned char a,  unsigned char d)
  36          {  
  37   1              SL811H_ADDR = a;        
  38   1              SL811H_DATA = d;
  39   1         
  40   1      }
  41          
  42          //*****************************************************************************************
  43          // Buffer Read from SL811H
  44          // addr = buffer start address
  45          // s    = return buffer address where data are to be save/read
  46          // c    = buffer data length
  47          //*****************************************************************************************
  48          void SL811BufRead( unsigned char addr,  unsigned char *s,  unsigned char c)
  49          {       
  50   1              SL811H_ADDR = addr;     
  51   1              while (c--) 
  52   1                      *s++ = SL811H_DATA;
  53   1      }
  54          
  55          //*****************************************************************************************
C51 COMPILER V7.20   SUBP                                                                  01/30/2007 16:37:15 PAGE 2   

  56          // Buffer Write  to SL811H
  57          // addr = buffer start address
  58          // s    = buffer address where data are to be written
  59          // c    = buffer data length
  60          //*****************************************************************************************
  61          void SL811BufWrite( unsigned char addr,  unsigned char *s,  unsigned char c)
  62          {//      unsigned char i;
  63   1              SL811H_ADDR = addr;     
  64   1              while (c--) 
  65   1              SL811H_DATA = *s++;
  66   1      
  67   1              // for(i=0;i<c;i++)
  68   1          //   SL811H_DATA = *(s+i);
  69   1      }
  70          
  71          //*****************************************************************************************
  72          // Swap high and low  unsigned char 
  73          //*****************************************************************************************
  74          unsigned short WordSwap(unsigned short input)
  75          {
  76   1              return(((input&0x00FF)<<8)|((input&0xFF00)>>8));
  77   1      }
  78          
  79          //*****************************************************************************************
  80          // Audio Control Key Scanning Routine 
  81          //*****************************************************************************************
  82          void audio_key_scan(void)
  83          {
  84   1              //Audio_Keys = (~P1) & AUDIO_KEYS;                              // Mute/Vol Up/Vol Down Keys
  85   1      //      if(Audio_Keys != Prev_Audio_Keys)                               // Detect for any changes
  86   1           
  87   1      //      {   
  88   1               key_temp=P1;
  89   1                   if((key_temp&0xff)!=0xff)
  90   1                          {  Delay();
  91   2                                 Delay();
  92   2                                key_temp=P1;
  93   2                    if((key_temp&0xff)!=0xff)
  94   2                                  { Delay();
  95   3                                    Delay();
  96   3                        switch(~key_temp)
  97   3                                           {case 1 : ++kc1;
  98   4                                     if(kc1==1)      key[2]=0x01;
  99   4                                     else if(kc1==2) key[2]=0x02;
 100   4                                     else if(kc1==3) key[2]=0x04;
 101   4                                     else if(kc1==4) key[2]=0x08;
 102   4                                     else  kc1=0;          
 103   4                                         break; 
 104   4                                                case 2 : ++kc2;
 105   4                                     if(kc2==1)      key[2]=0x10;
 106   4                                     else if(kc2==2) key[2]=0x20;
 107   4                                     else if(kc2==3) key[2]=0x40;
 108   4                                     else if(kc2==4) key[2]=0x80;
 109   4                                     else  kc2=0;
 110   4                                     break;  
 111   4                                    case 4 : ++kc3;
 112   4                                     if(kc3==1)      key[3]=0x01;
 113   4                                     else if(kc3==2) key[3]=0x02;
 114   4                                     else if(kc3==3) key[3]=0x04;
 115   4                                     else if(kc3==4) key[3]=0x08;
 116   4                                     else  kc3=0;
 117   4                                                         break;
C51 COMPILER V7.20   SUBP                                                                  01/30/2007 16:37:15 PAGE 3   

 118   4                                    case 8 : ++kc4;
 119   4                                     if(kc4==1)      key[3]=0x10;
 120   4                                     else if(kc4==2) key[3]=0x20;
 121   4                                     else if(kc4==3) key[3]=0x40;
 122   4                                     else if(kc4==4) key[3]=0x80;
 123   4                                     else if(kc4==5) key[4]=0x01;
 124   4                                     else if(kc4==6) key[4]=0x02;
 125   4                                     else if(kc4==7) key[4]=0x04;
 126   4                                     else    kc4=0;
 127   4                                                         break;
 128   4                                                case 0x10 :  
 129   4                                                         key[6]=0xff;key[7]=0xff;
 130   4                                                         break;
 131   4                                                case 0x20 :
 132   4                                                          key[6]=0x00;key[7]=0x00;
 133   4                                                                      break;
 134   4                                                case 0x40 :key[8]=0xff;key[9]=0xff;

⌨️ 快捷键说明

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