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

📄 i2c.lst

📁 51单片机模拟i2c完整源代码
💻 LST
字号:
C51 COMPILER V7.06   I2C                                                                   05/06/2008 19:17:32 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN i2c.OBJ
COMPILER INVOKED BY: D:\software\keilc51\C51\BIN\C51.EXE i2c.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          #define uchar unsigned char
   3          sbit scl=P3^3;
   4          sbit sda=P3^4;
   5          void delay1(uchar x)
   6          { 
   7   1        uchar i,j;
   8   1         for(i=x;i>0;i--)
   9   1          for(j=100;j>0;j--);
  10   1      
  11   1      }
  12          void delay()
  13          {;;}
  14          void start()    //开始
  15          {
  16   1        sda=1;
  17   1        delay();
  18   1        scl=1;
  19   1        delay();
  20   1        sda=0;
  21   1        delay();
  22   1      }
  23          void stop()     //停止
  24          {
  25   1        sda=0;
  26   1        delay();
  27   1        scl=1;
  28   1        delay();
  29   1        sda=1;
  30   1        delay();
  31   1      }
  32          void respons()  //应答
  33          {
  34   1        uchar i;
  35   1        scl=1;
  36   1        while(sda==1&&i<250)
  37   1          i++;
  38   1        scl=0;
  39   1        delay();
  40   1      }
  41          void init()
  42          {
  43   1      scl=1;
  44   1      sda=1;
  45   1      }
  46          void write_byte(uchar date)  //写一个字节
  47          {
  48   1         uchar temp,j;
  49   1         temp=date;
  50   1         
  51   1         for(j=0;j<8;j++)
  52   1           {
  53   2             temp=temp<<1;
  54   2             scl=0;
  55   2             delay();
C51 COMPILER V7.06   I2C                                                                   05/06/2008 19:17:32 PAGE 2   

  56   2             sda=CY;
  57   2             delay();
  58   2             scl=1;
  59   2             delay();
  60   2             ; 
  61   2           }
  62   1         scl=0;
  63   1         delay();
  64   1         sda=1;
  65   1         delay();
  66   1      }
  67          uchar read_byte()
  68          {
  69   1        uchar i,j,k;
  70   1        scl=0;
  71   1        delay();
  72   1        sda=1;
  73   1        delay();
  74   1        for(i=0;i<8;i++)
  75   1         {
  76   2           scl=1;
  77   2           delay();
  78   2           j=sda;
  79   2           k=(k<<1)|j;
  80   2           scl=0;
  81   2           delay();
  82   2          }
  83   1          return k;
  84   1      }
  85          void main()
  86          {
  87   1      init();
  88   1      
  89   1      start();
  90   1      write_byte(0xa0);
  91   1      respons();
  92   1      write_byte(3);
  93   1      respons();
  94   1      write_byte(0xA5);
  95   1      respons();
  96   1      stop();
  97   1      
  98   1      delay1(100);
  99   1      
 100   1      start();
 101   1      write_byte(0xa0);
 102   1      respons();
 103   1      write_byte(3);
 104   1      respons();
 105   1      start();
 106   1      write_byte(0xa1);
 107   1      respons();
 108   1      P0=read_byte();
 109   1      
 110   1      while(1);
 111   1      
 112   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    200    ----
   CONSTANT SIZE    =   ----    ----
C51 COMPILER V7.06   I2C                                                                   05/06/2008 19:17:32 PAGE 3   

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   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 + -