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

📄 hal.lst

📁 采用811芯片实现单片机读写U盘的源代码
💻 LST
字号:
C51 COMPILER V7.00  HAL                                                                    09/22/2005 17:15:31 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE HAL
OBJECT MODULE PLACED IN .\out\HAL.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE HAL.C LARGE BROWSE DEBUG OBJECTEXTEND OBJECT(.\out\HAL.obj)

stmt level    source

   1          #define HAL_FILE
   2          #include "include.h"
   3          
   4          //unsigned char xdata SL811H_ADDR _at_ SL811_ADDR_PORT;
   5          //unsigned char xdata SL811H_DATA _at_ SL811_DATA_PORT;
   6          
   7          //unsigned char idata ttt[20];
   8          //extern unsigned char xdata DBUF[BUFFER_LENGTH];
   9          
  10          uchar getkey(void)
  11          {
  12   1              uchar i,j,temp=0;
  13   1              
  14   1              while(1){
  15   2                      i=P1;
  16   2                      i=((~(i>>4))&0x0f);
  17   2                      if(!i) break;
  18   2                      if(i==temp){ j++; if(j>6) break;}
  19   2                      else { temp=i; j=0;}
  20   2         }
  21   1         if(i){
  22   2              if(i==1) return 1;
  23   2              if(i==2) return 2;
  24   2              if(i==4) return 3;
  25   2              if(i==8) return 4;
  26   2         }
  27   1         return 0;
  28   1      }
  29                          
  30          unsigned char SL811Read(unsigned char a)
  31          {  
  32   1              unsigned char nVal;
  33   1              SL811H_ADDR=a;
  34   1              nVal=SL811H_DATA;
  35   1              return nVal;
  36   1      }
  37          
  38          void SL811Write(unsigned char a, unsigned char d)
  39          {  
  40   1              SL811H_ADDR=a;
  41   1              SL811H_DATA=d;
  42   1      }
  43          
  44          void SL811BufRead(unsigned char addr, unsigned char *s, unsigned char c)
  45          {       
  46   1              unsigned char i;
  47   1              SL811H_ADDR=addr;
  48   1              
  49   1              for(i=0;i<c;i++)
  50   1                      {
  51   2                      *s++ =SL811H_DATA;
  52   2                      }
  53   1      }
  54          
  55          void SL811BufWrite(unsigned char addr, unsigned char *s, unsigned char c)
C51 COMPILER V7.00  HAL                                                                    09/22/2005 17:15:31 PAGE 2   

  56          {       
  57   1              
  58   1              SL811H_ADDR=addr;
  59   1              
  60   1              while (c--) 
  61   1                      {
  62   2                      SL811H_DATA = *s++;
  63   2                      }       
  64   1      }
  65          
  66          unsigned short WordSwap(unsigned short input)
  67          {
  68   1              return(((input&0x00FF)<<8)|((input&0xFF00)>>8));
  69   1      }
  70          
  71          void DelayMs(unsigned char nFactor)
  72          {
  73   1              unsigned char data i;
  74   1              unsigned int data j;
  75   1      
  76   1              for(i=0; i<nFactor; i++)
  77   1                      {
  78   2              //子循环共14000个指令周期,24MHZ下为7MS          
  79   2      //              MCU_LED2=0;
  80   2                      for(j=0;j<1000;j++)
  81   2                                j=j;
  82   2      //              MCU_LED2=1;
  83   2                      }
  84   1      }
  85          
  86          void DelayUs(unsigned char nFactor)
  87          {
  88   1              unsigned char i;
  89   1              unsigned int j;
  90   1      
  91   1              for(i=0; i<nFactor; i++)
  92   1                      for(j=0;j<10;j++)
  93   1                                j=j;
  94   1      }
  95          unsigned long SwapINT32(unsigned long dData)
  96          {
  97   1          dData = (dData&0xff)<<24|(dData&0xff00)<<8|(dData&0xff000000)>>24|(dData&0xff0000)>>8;
  98   1              return dData;
  99   1      }
 100          
 101          unsigned int SwapINT16(unsigned int dData)
 102          {
 103   1          dData = (dData&0xff00)>>8|(dData&0x00ff)<<8;
 104   1              return dData;
 105   1      }
 106          
 107          uchar BitNum(uchar date)
 108          {
 109   1              switch(date){
 110   2                      case 1: 
 111   2                              return 0;
 112   2                              break;
 113   2                      case 2: 
 114   2                              return 1;
 115   2                              break;          
 116   2                      case 4: 
 117   2                              return 2;
C51 COMPILER V7.00  HAL                                                                    09/22/2005 17:15:31 PAGE 3   

 118   2                              break;
 119   2                      case 8: 
 120   2                              return 3;
 121   2                              break;
 122   2                      case 16: 
 123   2                              return 4;
 124   2                              break;
 125   2                      case 32: 
 126   2                              return 5;
 127   2                              break;
 128   2                      case 64: 
 129   2                              return 6;
 130   2                              break;
 131   2                      case 128: 
 132   2                              return 7;
 133   2                              break;
 134   2                      default:
 135   2                              break;
 136   2              }               
 137   1              return 0xff;
 138   1      }       
 139          
 140          void memcpy_cur(void *dector,void *source,uint len)
 141          {
 142   1              uchar *p,*q;
 143   1              p=(uchar *)source;
 144   1              q=(uchar *)dector;
 145   1              while(len){
 146   2                      *q=*p;
 147   2                      q++;p++;
 148   2                      len--;
 149   2              }       
 150   1      }
 151          
 152          void memset_cur(void *source,uchar temp,uint len)
 153          {
 154   1              uchar *p;
 155   1              p=(uchar *)source;
 156   1              while(len){
 157   2                      *p=temp;
 158   2                      p++;len--;
 159   2              }
 160   1      }
 161          
 162          char memcmp_cur(void *source,void *dector,uint len)
 163          {
 164   1              uchar *p,*q;
 165   1              p=(uchar *)source;
 166   1              q=(uchar *)dector;
 167   1              while(len){
 168   2                      if(*p!=*q){
 169   3                              if(*p>*q) return -1;
 170   3                              if(*p<*q) return 1;
 171   3                      }       
 172   2                      q++;p++;
 173   2                      len--;
 174   2              }       
 175   1              return 0;
 176   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.00  HAL                                                                    09/22/2005 17:15:31 PAGE 4   

   CODE SIZE        =    843    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      49
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       3
   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 + -