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

📄 i2c.lst

📁 单片机P89V51RD2在操纵系统RTX下的各个功能
💻 LST
字号:
C51 COMPILER V8.02   I2C                                                                   10/01/2007 00:33:26 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN .\obj\i2c.obj
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE i2c.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\i2c.lst) OBJECT(.\obj\i2c.obj)

line level    source

   1          //i2c.c
   2          //
   3          
   4          #include "AppDefine.h"                 
   5          
   6          
   7          /******************************24C01*****************************/
   8          /****************************************************************/
   9          void start24(void)
  10          {
  11   1              _nop_();SCL=0;SDA=1;SCL=1;_nop_();SDA=0;_nop_();SCL=0;
  12   1      }
  13          /****************************************************************/
  14          void stop24(void)
  15          {
  16   1              SDA=0;SCL=1;_nop_();SDA=1;
  17   1      }
  18          /****************************************************************/
  19          unsigned char read24(void)
  20          {
  21   1              SDA=1;
  22   1              SCL=1;acc7=SDA;SCL=0;
  23   1              SCL=1;acc6=SDA;SCL=0;
  24   1              SCL=1;acc5=SDA;SCL=0;
  25   1              SCL=1;acc4=SDA;SCL=0;
  26   1              SCL=1;acc3=SDA;SCL=0;
  27   1              SCL=1;acc2=SDA;SCL=0;
  28   1              SCL=1;acc1=SDA;SCL=0;
  29   1              SCL=1;acc0=SDA;SCL=0;
  30   1              SDA=1;SCL=1;SCL=0;
  31   1              return(ACC);
  32   1      }
  33          /****************************************************************/
  34          void write24(unsigned char dd)
  35          {
  36   1              ACC=dd;
  37   1              SDA=acc7;SCL=1;SCL=0;
  38   1              SDA=acc6;SCL=1;SCL=0;
  39   1              SDA=acc5;SCL=1;SCL=0;
  40   1              SDA=acc4;SCL=1;SCL=0;
  41   1              SDA=acc3;SCL=1;SCL=0;
  42   1              SDA=acc2;SCL=1;SCL=0;
  43   1              SDA=acc1;SCL=1;SCL=0;
  44   1              SDA=acc0;SCL=1;SCL=0;
  45   1              SDA=1;SCL=1;
  46   1      }
  47          /****************************************************************/
  48          /*  这里是随机读数据,其过程是先写数据地址,再读出数据
  49          address是数据存放地址,cdata是返回数据*/
  50          unsigned char xbRead24(unsigned int address)
  51          {
  52   1              unsigned char device;
  53   1              unsigned char cdata;
  54   1              /*24C01的地址为1010,000,0即硬件上A0A1A2为000,这里是R/W=1*/
  55   1              device=0xa1;
C51 COMPILER V8.02   I2C                                                                   10/01/2007 00:33:26 PAGE 2   

  56   1              start24();write24(0xa0);SCL=0;write24(address);SCL=0;
  57   1              start24();write24(0xa1);SCL=0;cdata=read24();stop24();return(cdata);
  58   1      }
  59          /****************************************************************/
  60          /*address是数据存放地址,cdata是数据*/
  61          void xbWrite24(unsigned int address,unsigned char cdata)
  62          {
  63   1              unsigned char device;
  64   1              unsigned char time;
  65   1              /*24C01的地址为1010,000,0即硬件上A0A1A2为000,这里是R/W=0*/
  66   1              device=0xa0;
  67   1              start24();write24(device);SCL=0;write24(address);SCL=0;write24(cdata);SCL=0;stop24();
  68   1              time=0; /*time为定时器时间参考,time增加1代表1ms,如果没有用定时器,取消该行*/
  69   1              while (1) {
  70   2                      start24();
  71   2                      write24(device);/*write24(0xa0|ddd);*/
  72   2                      SDA=1;
  73   2                      if (SDA==0)
  74   2                              break;
  75   2                      /*if (time>10)
  76   2                              break;*/        /*此行防止由于eeprom器件损坏后的死循环*/
  77   2                      SCL=0;
  78   2              }
  79   1      }


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