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

📄 iic.lst

📁 单片机密码-24c01-12864-4x4按键扫描 初始密码是123456,按#确认 进入后,按*修改密码
💻 LST
字号:
C51 COMPILER V8.02   IIC                                                                   06/21/2008 15:17:32 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE IIC
OBJECT MODULE PLACED IN IIC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE IIC.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include<intrins.h>
   3          #include"IIC.h"
   4          //#include"common.h"
   5          
   6          void mDelay(uint t) //延时
   7          {
   8   1          uchar i;
   9   1          while(t--)
  10   1          {
  11   2              for(i=0;i<125;i++)
  12   2              {
  13   3                  ;
  14   3              }
  15   2          }
  16   1      }
  17          
  18          
  19          void Nop(void)            //空操作
  20          {
  21   1          _nop_();
  22   1          _nop_();
  23   1          _nop_();
  24   1          _nop_();
  25   1      }
  26          
  27          
  28          /*起始条件*/
  29          
  30          void Start(void)
  31          {
  32   1          Sda=1;
  33   1          Scl=1;
  34   1          Nop();
  35   1          Sda=0;
  36   1          Nop();
  37   1      }
  38          
  39          
  40          /*停止条件*/
  41          
  42          void Stop(void)
  43          {
  44   1          Sda=0;
  45   1          Scl=1;
  46   1          Nop();
  47   1          Sda=1;
  48   1          Nop();
  49   1      }
  50          
  51          /*应答位*/
  52          
  53          void Ack(void)
  54          {
  55   1          Sda=0;
C51 COMPILER V8.02   IIC                                                                   06/21/2008 15:17:32 PAGE 2   

  56   1          Nop();
  57   1          Scl=1;
  58   1          Nop();
  59   1          Scl=0;
  60   1      }
  61          
  62          /*反向应答位*/
  63          
  64          void NoAck(void)
  65          {
  66   1          Sda=1;
  67   1          Nop();
  68   1          Scl=1;
  69   1          Nop();
  70   1          Scl=0;
  71   1      }
  72          
  73          /*发送数据子程序,Data为要求发送的数据*/
  74          void Send(uchar Data)
  75          {
  76   1          uchar BitCounter=8;
  77   1          uchar temp;
  78   1          do
  79   1          {
  80   2              temp=Data;
  81   2              Scl=0;
  82   2              Nop();
  83   2              if((temp&0x80)==0x80)
  84   2              Sda=1;
  85   2              else 
  86   2              Sda=0;
  87   2              Scl=1;
  88   2              temp=Data<<1;
  89   2              Data=temp;
  90   2              BitCounter--;
  91   2          }
  92   1          while(BitCounter);
  93   1          Scl=0;
  94   1      }
  95          
  96          /*读一字节的数据,并返回该字节值*/
  97          uchar Read(void)
  98          {
  99   1          uchar temp=0;
 100   1          uchar temp1=0;
 101   1          uchar BitCounter=8;
 102   1          Sda=1;
 103   1          do
 104   1          {
 105   2              Scl=0;
 106   2              Nop();
 107   2              Scl=1;
 108   2              Nop();
 109   2              if(Sda)
 110   2              temp=temp|0x01;
 111   2              else
 112   2              temp=temp&0xfe;
 113   2              if(BitCounter-1)
 114   2              {
 115   3                  temp1=temp<<1;
 116   3                  temp=temp1;
 117   3              }
C51 COMPILER V8.02   IIC                                                                   06/21/2008 15:17:32 PAGE 3   

 118   2              BitCounter--;
 119   2          }
 120   1          while(BitCounter);
 121   1          return(temp);
 122   1      }
 123          
 124          void WrToROM(uchar Data[],uchar Address,uchar Num)
 125          {
 126   1          uchar i;
 127   1          uchar *PData;
 128   1          PData=Data;
 129   1          for(i=0;i<Num;i++)
 130   1          {
 131   2              Start();
 132   2              Send(0xa0);
 133   2              Ack();
 134   2              Send(Address+i);
 135   2              Ack();
 136   2              Send(*(PData+i));
 137   2              Ack();
 138   2              Stop();
 139   2              mDelay(20);
 140   2          }
 141   1      }
 142          
 143          
 144          void RdFromROM(uchar Data[],uchar Address,uchar Num)
 145          {
 146   1          uchar i;
 147   1          uchar *PData;
 148   1          PData=Data;
 149   1          for(i=0;i<Num;i++)
 150   1          {
 151   2              Start();
 152   2              Send(0xa0);
 153   2              Ack();
 154   2              Send(Address+i);
 155   2              Ack();
 156   2              Start();
 157   2              Send(0xa1);
 158   2              Ack();
 159   2              *(PData+i)=Read();
 160   2              Scl=0;
 161   2              NoAck();
 162   2              Stop();
 163   2          }
 164   1      }


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