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

📄 main.lst

📁 十几个proteus的仿真实例
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  08/14/2007 21:41:11 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include<intrins.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          sbit SCL=P2^0;
   6          sbit SDA=P2^1;
   7          
   8          //void delay(uchar n)
   9          //      {
  10          //      uint i;
  11          //      uchar j;
  12          //      for(j=0;j<n;j++)
  13          //              for(i=0;i<6000;i++);
  14          //      }
  15          //
  16          ///*启动I2C总线*/
  17          //void sta()
  18          //      {
  19          //      SDA=1;
  20          //      SCL=1;
  21          //      _nop_();
  22          //      SDA=0;
  23          //      _nop_();
  24          //      SCL=0;
  25          //      }
  26          //
  27          //void stop( )/*停止I2C总线*/
  28          //      {
  29          //      SDA=0;
  30          //      SCL=1;
  31          //      delay(1);
  32          //      SDA=1;
  33          //      delay(1);
  34          //      }
  35          //
  36          //void mack( )/*发送应答位*/
  37          //      {
  38          //      SDA=0;
  39          //      SCL=1;
  40          //      _nop_();
  41          //      SCL=0;
  42          //      SDA=1;
  43          //      }
  44          //
  45          //void mnack( )/*发送非应答位*/
  46          //      {
  47          //      SDA=1;
  48          //      SCL=1;
  49          //      _nop_();
  50          //      SCL=0;
  51          //      SDA=0;
  52          //      }
  53          //
  54          //void cack( )/*应答位检查*/
  55          //      {
C51 COMPILER V8.02   MAIN                                                                  08/14/2007 21:41:11 PAGE 2   

  56          //      SDA=1;
  57          //      SCL=1;
  58          //      F0=0;
  59          //      if(SDA==1)
  60          //      F0=1;
  61          //      SCL=0;
  62          //      _nop_( );
  63          //      }
  64          //
  65          ///*向虚拟I2C总线上发送1个数据字节*/
  66          //void wrbyt(uchar shu)
  67          //      {
  68          //      uchar i;
  69          //      for(i=0;i<8;i++)
  70          //              {
  71          //              if((shu&0x80)>0)
  72          //                      {
  73          //                      SDA=1;
  74          //                      SCL=1;
  75          //                      _nop_();
  76          //                      SCL=0;
  77          //                      SDA=0;
  78          //                      }
  79          //              else
  80          //                      {
  81          //                      SDA=0;
  82          //                      SCL=1;
  83          //                      _nop_();
  84          //                      SCL=0;
  85          //                      }
  86          //              shu=shu<<1;
  87          //              }
  88          //      }
  89          //
  90          ///*从I2C总线上读取1个数据字节*/
  91          //uchar rdbyt( )
  92          //      {
  93          //      uchar nn=0xff,mm=0x80,uu=0x7f;
  94          //      uchar j;
  95          //      for(j=0;j<8;j++)
  96          //              {
  97          //              SDA=1;
  98          //              SCL=1;
  99          //              if(SDA==0)
 100          //                      {nn=(nn&uu);}
 101          //              else
 102          //                      {nn=(nn|mm);}
 103          //              nn=_crol_(nn,1);
 104          //              SCL=0;
 105          //              }
 106          //      return(nn);
 107          //      }
 108          //
 109          //void wrnbyta(uchar slaw,uchar gg[],uchar n)
 110          //      {
 111          //      do
 112          //              {
 113          //              sta( );
 114          //              wrbyt(slaw);
 115          //              cack( );
 116          //              }
 117          //      while(F0==1);
C51 COMPILER V8.02   MAIN                                                                  08/14/2007 21:41:11 PAGE 3   

 118          //              wrbyt(gg[n]);
 119          //              cack( );
 120          //      }
 121          //
 122          ///*向虚拟I2C总线上发送n个字节的数据
 123          //参数:写命令字、需要写到总线的数据、写数据长度
 124          //ff[]:前两个字节分别为高地址、低地址、接着是数据,其中数据长度=地址+数据
 125          //*/
 126          //void wrnbyt(uchar slaw,uchar ff[],uchar number)
 127          //      {
 128          //      uchar idata k;
 129          //      do
 130          //              {
 131          //              sta( );
 132          //              wrbyt(slaw);
 133          //              cack( );
 134          //              }
 135          //      while(F0==1);
 136          //      for(k=0;k<number;k++)
 137          //              {
 138          //              wrbyt(ff[k]);
 139          //              cack( );
 140          //              while(F0==1)
 141          //              wrnbyta(slaw,ff,k);
 142          //              }
 143          //      stop( );
 144          //      }
 145          //
 146          ///*从虚拟I2C总线上读取n个字节的数据
 147          //前提:已初始化读取的首地址
 148          //参数:读命令字、保存数组、读取字节数
 149          //*/
 150          //void rdnbyt(uchar slar,uchar qq[],uchar number)
 151          //      {
 152          //      uchar idata data0,l;
 153          //      do
 154          //              {
 155          //              sta( );
 156          //              wrbyt(slar);
 157          //              cack( );
 158          //              }
 159          //      while(F0==1);
 160          //      for(l=0;l<number-1;l++)
 161          //              {
 162          //              data0=rdbyt( );
 163          //              qq[l]=data0;
 164          //              mack( );
 165          //              }
 166          //      data0=rdbyt( );
 167          //      qq[l]=data0;
 168          //      mnack( );
 169          //      stop( );
 170          //      }
 171          //
 172          ////读任意地址单元数据
 173          ////参数:高地址、低地址
 174          //char eeprom_read(uchar addr_h,uchar addr_l)
 175          //      {
 176          //      char a[2],temp[1];
 177          //      a[0]=addr_h;
 178          //      a[1]=addr_l;
 179          //      wrnbyt(0xa0,a,2);
C51 COMPILER V8.02   MAIN                                                                  08/14/2007 21:41:11 PAGE 4   

 180          //      rdnbyt(0xa1,temp,1);
 181          //      return(temp[0]);
 182          //      }
 183          //
 184          ////写一字节到任意单元
 185          //void eeprom_write(uchar addr_h,uchar addr_l,uchar data1)
 186          //      {
 187          //      char a[3];
 188          //      a[0]=addr_h;
 189          //      a[1]=addr_l;
 190          //      a[2]=data1;
 191          //      wrnbyt(0xa0,a,3);
 192          //      }
 193          
 194          void main()
 195                  {
 196   1      //      char out[]={0x00,0x00,0x01,0x02,0x03};//将0x01,0x02,0x03写到以0x0000为首地址eeprom中
 197   1      //      char intd[5];   //连续读数据缓存数组
 198   1      //      wrnbyt(0xa0,out,5);//将0x01,0x02,0x03写到以0x0000为首地址eeprom中
 199   1      //      wrnbyt(0xa0,out,2);//初始化首地址,如果不是0x0000,须将out数组初始化
 200   1      //      rdnbyt(0xa1,intd,3);//从初始化地址中读3个字节到intd数组中
 201   1      //      eeprom_write(0x00,0x10,0xaa);//将0xaa写到0x0010地址中去
 202   1      //      P0=eeprom_read(0x00,0x10);//读取0x0010地址中的数据
 203   1      //      while(1);
 204   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =      1    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   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 + -