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

📄 i2c.lst

📁 24CXX的读写代码,适用于51单片机.
💻 LST
字号:
C51 COMPILER V7.06   I2C                                                                   11/05/2008 23:48:00 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN I2C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE I2C.c BROWSE INCDIR(C:\EZST\EasyStudy51\ES51-II\Target\INC\) DEBUG OBJECTEX
                    -TEND

stmt level    source

   1          
   2          /*
   3           File:  I2C.c
   4           说明:  IIC总线操作
   5           Author:wolfe
   6           Data:  2008.10 
   7          */
   8          
   9          #include "at89x52.h"
  10          #include "ES51_II.h"
  11          #include "es51_ii_lib.h"
  12          #include <intrins.h>
  13          
  14          
  15          #define DELAY_1US       {_nop_();}
  16          
  17          
  18          // 操作起始
  19          void I2c_Start(void)  
  20          {
  21   1              SDA = 1;                                        //      发送起始条件的数据信号
  22   1              SCL = 1;
  23   1              DELAY_1US;
  24   1              SDA = 0;                                        //      发送起始信号
  25   1              DELAY_1US;      
  26   1              SCL = 0;                                        //      钳住I2C总线,准备发送或接收数据
  27   1      }
  28          
  29          // 操作结束
  30          void I2c_Stop(void)  
  31          {
  32   1              SDA = 0;
  33   1              DELAY_1US;
  34   1              SCL = 1;
  35   1              DELAY_1US;
  36   1              SDA = 1;                                        //      发送I2C总线结束信号
  37   1              DELAY_1US;
  38   1              SDA = 1;;                               //      
  39   1      }
  40          
  41          //写一个字节数据
  42          void I2c_WrByte(unsigned char dat)      
  43          {
  44   1              unsigned char i;
  45   1      
  46   1              for(i=0;i!=8;i++)                       // 输出8位数据
  47   1              {
  48   2                      if( dat & 0x80 ) 
  49   2                              SDA = 1;
  50   2                      else 
  51   2                              SDA = 0;
  52   2                      DELAY_1US;
  53   2                      SCL = 1;
  54   2                      dat<<=1;
C51 COMPILER V7.06   I2C                                                                   11/05/2008 23:48:00 PAGE 2   

  55   2                      DELAY_1US;              
  56   2                      SCL = 0;
  57   2              }
  58   1              SDA = 1;
  59   1              DELAY_1US;
  60   1              SCL = 1;                                        // 接收应答
  61   1              DELAY_1US;
  62   1              SCL = 0;
  63   1      }
  64          
  65          
  66          //读一个字节数据
  67          unsigned char I2c_RdByte(void)          
  68          {
  69   1              unsigned char dat,i;
  70   1              
  71   1              SDA = 1;
  72   1              dat=0;
  73   1              for(i=0;i!=8;i++)               // 输入8位数据
  74   1              {
  75   2                      DELAY_1US;              // 可选延时
  76   2                      SCL = 1;
  77   2                      DELAY_1US;              // 可选延时
  78   2                      dat<<=1;
  79   2                      if( SDA ) 
  80   2                              dat++;                  // 输入1位
  81   2                      SCL = 0;
  82   2              }
  83   1              SDA = 1;
  84   1              DELAY_1US;
  85   1              SCL = 1;  // 发出无效应答
  86   1              DELAY_1US;
  87   1              SCL = 0;
  88   1              return(dat);
  89   1      }
  90          


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