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

📄 24c04.lst

📁 一个通过8051来控制8019上网的程序 该程序已经通过并成功用于键盘
💻 LST
字号:
C51 COMPILER V7.06   24C04                                                                 06/26/2004 13:41:27 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 24C04
OBJECT MODULE PLACED IN 24c04.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24c04.c LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <string.h>
   2          #include <stdlib.h>
   3          #include <stdio.h>
   4          #include <reg89C58.h>
   5          #include <intrins.h>
   6          
   7          #include "net.h"
   8          #include "24c04.h"
   9          
  10          sbit SDA=P3^5;
  11          sbit SCL=P3^4;
  12          
  13          
  14          
  15          void delay1(UINT  x)
  16          {
  17   1      UCHAR  j;
  18   1      while(x--){
  19   2                      for(j=0;j<150;j++)
  20   2                              {;}
  21   2                        }
  22   1      }
  23          
  24          
  25          void wrbyt0()
  26          {SDA=0;SCL=1;_nop_();_nop_();SCL=0;}
  27          void wrbyt1()
  28          {SDA=1;SCL=1;_nop_();_nop_();SCL=0;SDA=0;}
  29          
  30          
  31          
  32          
  33          
  34          
  35          UCHAR  rdbyt()
  36          {       
  37   1              UCHAR nn=0xff,mm=0x80,uu=0x7f;
  38   1              UCHAR j;
  39   1              UINT q=0;
  40   1              for(j=0;j<8;j++)
  41   1              {SDA=1;SCL=1;
  42   2              if(SDA==0)
  43   2              {nn=(nn&uu);
  44   3              nn=_crol_(nn,1);
  45   3              SCL=0;
  46   3              }
  47   2              else
  48   2              {nn=(nn|mm);
  49   3              nn=_crol_(nn,1);
  50   3              SCL=0;}
  51   2              }
  52   1      return(nn);
  53   1      }
  54          
  55          
C51 COMPILER V7.06   24C04                                                                 06/26/2004 13:41:27 PAGE 2   

  56          
  57          
  58          
  59          
  60          
  61          
  62          void sta()               ////1-STAR IIC BUS
  63          {       SDA=1;
  64   1              SCL=1;
  65   1              while(SCL==0){;}
  66   1              _nop_(); 
  67   1              SDA=0;
  68   1              _nop_(); 
  69   1              _nop_(); 
  70   1              SCL=0;
  71   1      }
  72          void stop()               /////2-STOP IIC BUS 
  73          {
  74   1              SDA=0;
  75   1              SCL=1;
  76   1              while(SCL==0){;}
  77   1              _nop_(); 
  78   1              SDA=1;
  79   1              _nop_(); 
  80   1              _nop_(); 
  81   1              SCL=0;
  82   1      }
  83          void mack()
  84          {
  85   1              SDA=0;
  86   1              SCL=1;
  87   1              _nop_(); 
  88   1              _nop_(); 
  89   1              SCL=0;
  90   1              SDA=1;
  91   1      }
  92          void mnack()
  93          {SDA=1; SCL=1;_nop_(); _nop_();SCL=0;SDA=0;}
  94          void cack()
  95          {       SDA=1;SCL=1;F0=0;
  96   1              if(SDA==0)
  97   1              {SCL=0;_nop_();_nop_();}
  98   1              else
  99   1              {F0=1;SCL=0;_nop_();_nop_(); }
 100   1      }
 101          void wrbyt(UCHAR shu)
 102          {UCHAR i;
 103   1              if((shu&0x80)>0)
 104   1              {SDA=1;}
 105   1              else
 106   1              {SDA=0;}
 107   1              SCL=1;
 108   1              while(SCL==0){;}
 109   1              _nop_();SCL=0;SDA=0;
 110   1              shu=_crol_(shu,1);
 111   1              for(i=1;i<8;i++)
 112   1              {       if((shu&0x80)>0)
 113   2                      {wrbyt1();}
 114   2                      else
 115   2                      {wrbyt0();}
 116   2                      shu=_crol_(shu,1);
 117   2              }
C51 COMPILER V7.06   24C04                                                                 06/26/2004 13:41:27 PAGE 3   

 118   1      }       
 119          void wrnbyta(UCHAR slaw,UCHAR gg[],UCHAR n)
 120          {
 121   1      do{
 122   2              sta();
 123   2              wrbyt(slaw);
 124   2              cack();
 125   2              }while(F0==1);
 126   1              wrbyt(gg[n]);
 127   1              cack();
 128   1      }
 129          void wrnbyt(UCHAR slaw,UCHAR number,UCHAR ff[])
 130          {
 131   1      UCHAR  k;
 132   1      do{
 133   2              sta();
 134   2              wrbyt(slaw);
 135   2              cack();
 136   2              }while(F0==1);
 137   1              for(k=0;k<number;k++)
 138   1              {
 139   2              wrbyt(ff[k]);
 140   2              cack();
 141   2              while(F0==1)
 142   2              {
 143   3              wrnbyta(slaw,ff,k);
 144   3              }
 145   2              }
 146   1              stop();
 147   1              delay1(600);
 148   1      }
 149          void rdnbyt(UCHAR number,UCHAR slar,UCHAR qq[])
 150          {
 151   1      UCHAR data0,l;
 152   1      do{
 153   2              sta();
 154   2              wrbyt(slar);
 155   2              cack();
 156   2              }while(F0==1);
 157   1      for(l=0;l<number;l++)
 158   1      {
 159   2      data0=rdbyt();
 160   2      qq[l]=data0;
 161   2              if(l<(number-1))
 162   2              {mack();}
 163   2              }
 164   1              mnack();
 165   1              stop();
 166   1      }
 167          
 168          void read_temp(UCHAR qrdaddr,UCHAR readlen,UCHAR QHYTEMP[])     //起始地址读出的长度和存储的字节
 169          {                                                                    //超如地址
 170   1                                                                                                                                              //讯出字节的长充
 171   1                                                                                                                                              //存储读出的数据
 172   1              UCHAR QTEMP[2];
 173   1              UCHAR rdaddr[2];
 174   1              QTEMP[0]=0Xa0;
 175   1              QTEMP[1]=0Xa1;
 176   1              rdaddr[0]=qrdaddr;
 177   1              wrnbyt(QTEMP[0],1,rdaddr);
 178   1              rdnbyt(readlen,0xa1,QHYTEMP);
 179   1      
C51 COMPILER V7.06   24C04                                                                 06/26/2004 13:41:27 PAGE 4   

 180   1      }
 181          void write_temp(UCHAR WRADDR,UCHAR SLAW,UCHAR WRTEMP[])
 182          {       UCHAR i;
 183   1              UCHAR temp[18]; 
 184   1              UCHAR HTEMP[2];
 185   1              
 186   1              HTEMP[0]=0Xa0;
 187   1              temp[0]=WRADDR;
 188   1                      for (i=1;i<=SLAW;i++)
 189   1                      {
 190   2                      temp[i]=WRTEMP[i-1];
 191   2                      }
 192   1              wrnbyt(HTEMP[0],SLAW+1,temp);
 193   1      
 194   1      }
 195          
 196          
 197          


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