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

📄 iic.lst

📁 IIC总线的读写程序
💻 LST
字号:
C51 COMPILER V7.50   IIC                                                                   03/21/2008 16:43:57 PAGE 1   


C51 COMPILER V7.50, 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          #define uchar unsigned char
   3          sbit sda=P2^7;
   4          sbit scl=P2^6;
   5          void delay()
   6          {;;}
   7          void delay1(uchar z)
   8          {
   9   1              uchar x,y;
  10   1              for(x<z;x>0;x++)
  11   1                      for(y=110;y>0;y++);
  12   1      
  13   1      }
  14          
  15          
  16          void start()
  17          {
  18   1              sda=1;
  19   1              delay();
  20   1              scl=1;
  21   1              delay();
  22   1              sda=0;
  23   1              delay();
  24   1      }
  25          
  26          
  27          void stop()
  28          {
  29   1              sda=0;
  30   1              delay();
  31   1              scl=1;
  32   1              delay();
  33   1              sda=1;
  34   1              delay();
  35   1      }
  36          
  37          
  38          void response()
  39          {
  40   1              uchar i;
  41   1              scl=1;
  42   1              delay();
  43   1              while((sda==1)&&(i<250))
  44   1                      i++;
  45   1              scl=0;
  46   1              delay();
  47   1      }
  48          
  49          
  50          void init()
  51          {
  52   1              sda=1;
  53   1              delay();
  54   1              scl=1;
  55   1              delay();
C51 COMPILER V7.50   IIC                                                                   03/21/2008 16:43:57 PAGE 2   

  56   1      }
  57          
  58          
  59          void write_Byte(uchar date)
  60          {
  61   1              uchar i,temp;
  62   1              temp=date;
  63   1      
  64   1              for(i=0;i<8;i++)
  65   1              {
  66   2                      temp=temp<<1;   
  67   2                      scl=0;
  68   2                      delay();
  69   2                      sda=CY;
  70   2                      delay();
  71   2                      scl=1;
  72   2                      delay();
  73   2                      
  74   2              }
  75   1              scl=0;
  76   1              delay();
  77   1              sda=1;
  78   1              delay();
  79   1      
  80   1      }
  81          
  82          
  83          uchar read_Byte()
  84          {
  85   1              uchar i,k;
  86   1              scl=0;
  87   1              delay();
  88   1              sda=1;
  89   1              delay();
  90   1              for(i=0;i<8;i++)
  91   1              {
  92   2                      scl=1;
  93   2                      delay();
  94   2                      k=(k<<1)|sda;
  95   2                      scl=0;
  96   2                      delay();
  97   2              }
  98   1              return k;
  99   1      
 100   1      }
 101          
 102          void write_add(uchar address,uchar date)
 103          {
 104   1              start();
 105   1              write_Byte(0xa0);
 106   1              response();
 107   1              write_Byte(address);
 108   1              response();
 109   1              write_Byte(date);
 110   1              response();
 111   1              stop();
 112   1      }
 113          
 114          uchar read_add(uchar address)
 115          {
 116   1              uchar date;
 117   1              start();
C51 COMPILER V7.50   IIC                                                                   03/21/2008 16:43:57 PAGE 3   

 118   1              write_Byte(0xa0);
 119   1              response();
 120   1              write_Byte(address);
 121   1              response();
 122   1              start();
 123   1              write_Byte(0xa1);
 124   1              response();
 125   1              date=read_Byte();
 126   1              stop();
 127   1              return date;
 128   1      }
 129          void main()
 130          {
 131   1              init();
 132   1              write_add(23,0x55);
 133   1              delay1(100);
 134   1              P0=read_add(23);
 135   1              while(1);
 136   1      }


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