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

📄 i2c.lst

📁 一个IC总线的驱动包
💻 LST
字号:
C51 COMPILER V8.05a   I2C                                                                  03/26/2009 14:01:07 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN I2C.OBJ
COMPILER INVOKED BY: D:\学习\Keil 3\C51\BIN\C51.EXE I2C.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //**********************************************************
   2          //               I2C总线驱动程序源文件
   3          //**********************************************************
   4          #include<reg52.h>
   5          #include<intrins.h>
   6          #include<I2C.h>
   7          
   8          void Start(void)              //IC2总线开始信号
   9          {
  10   1              SDA = 1;                      //发送起始条件的数据信号
  11   1              SCL = 1;
  12   1              _nop_();
  13   1              SDA = 0;                                          //发送起始信号                                                                
  14   1              SCL = 0;
  15   1              _nop_();                                          //钳住I2C总线准备发送或接收数据       
  16   1      }
  17          
  18          void Stop(void)               //I2C总线结束信号
  19          {
  20   1      
  21   1              SCL = 0;
  22   1              SDA = 0;                                          //发送结束条件的数据信号
  23   1              SCL = 1;
  24   1              _nop_();                                                
  25   1              SDA = 1;
  26   1              _nop_();                                          //发送结束信号
  27   1      }
  28          
  29          void Ack()                                                //主机发送应答信号                            
  30          {
  31   1              SDA=0;
  32   1              _nop_();
  33   1              SCL=0;
  34   1              SCL=1;
  35   1              _nop_();
  36   1              SCL=0;
  37   1              SDA=1;
  38   1      }
  39          
  40          void NoAck()                                      //主机发送不应答信号
  41          {
  42   1              SDA=1;
  43   1              SCL=0;
  44   1              SCL=1;
  45   1              SCL=0;
  46   1              SDA=0;
  47   1      }
  48          
  49          bit Test_Ack(void)                                //主器件接收应答信号                  
  50          {
  51   1              bit Error;
  52   1              SDA = 1;                                          //释放数据总线,准备接收应答位
  53   1              SCL = 1;                                          //置时钟线为高电平,使数据线上数据有效
  54   1              Error=SDA;
  55   1              SCL = 0;
C51 COMPILER V8.05a   I2C                                                                  03/26/2009 14:01:07 PAGE 2   

  56   1              return Error;                                                                                                                                                                                                                                                                                           
  57   1      }
  58          
  59          void Write_OneByte(unsigned char Data) //主机向I2C器件写一字节数据
  60          {
  61   1              uchar i;
  62   1              for(i=8 ; i ; --i)
  63   1              {
  64   2                      SDA=(bit)(Data&0x80);
  65   2                      SCL=0;
  66   2                      SCL=1;
  67   2                      SCL=0;          
  68   2                      Data <<= 1;
  69   2              }       
  70   1      }
  71          
  72          unsigned char Read_OneByte(void)   //主机从I2C总线上读一字节数据
  73          {
  74   1              uchar i;
  75   1              uchar Data = 0;
  76   1              for( i=8 ; i ; --i)
  77   1              {
  78   2                      SCL = 0;
  79   2                      SCL = 1;                                           //置时钟线为高电平,使数据线上数据有效
  80   2                      Data <<= 1;
  81   2                      Data=Data|((unsigned char)(SDA));
  82   2                      SCL = 0;                                                                                
  83   2              }
  84   1              return Data;    
  85   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    101    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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