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

📄 24c02.lst

📁 这是一本在网上很难找到的教程了
💻 LST
字号:
C51 COMPILER V7.07   24C02                                                                 07/07/2006 03:55:51 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24c02.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE 24c02.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #define uchar unsigned char //定义一下方便使用
   2          #define uint  unsigned int
   3          #define ulong unsigned long
   4          #include <reg52.h>     //包括一个52标准内核的头文件
   5          
   6          #define WriteDeviceAddress 0xa0   //定义器件在IIC总线中的地址
   7          #define ReadDviceAddress 0xa1
   8          sbit    SCL=P2^7;
   9          sbit    SDA=P2^6;
  10          
  11          sbit    P10=P1^0;
  12          /*
  13          //定时函数
  14          void DelayMs(unsigned int number) 
  15          {
  16                  unsigned char temp;
  17                  for(;number!=0;number--) 
  18                  {
  19                          for(temp=112;temp!=0;temp--) ;
  20                  }
  21          }
  22          */
  23          //开始总线
  24          void Start() 
  25          {
  26   1              SDA=1;
  27   1              SCL=1;
  28   1              SDA=0;
  29   1              SCL=0;
  30   1      }
  31          
  32          //结束总线
  33          void Stop() 
  34          {
  35   1              SCL=0;
  36   1              SDA=0;
  37   1              SCL=1;
  38   1              SDA=1;
  39   1      }
  40          
  41          
  42          //发ACK0
  43          void NoAck() 
  44          {
  45   1              SDA=1;
  46   1              SCL=1;
  47   1              SCL=0;
  48   1      }
  49          
  50          //测试ACK
  51          bit TestAck() 
  52          {
  53   1              bit ErrorBit;
  54   1              SDA=1;
  55   1              SCL=1;
C51 COMPILER V7.07   24C02                                                                 07/07/2006 03:55:51 PAGE 2   

  56   1              ErrorBit=SDA;
  57   1              SCL=0;
  58   1              return(ErrorBit);
  59   1      }
  60          
  61          //写入8个bit到24c02
  62          Write8Bit(unsigned char input) 
  63          {
  64   1              unsigned char temp;
  65   1              for(temp=8;temp!=0;temp--) 
  66   1              {
  67   2                      SDA=(bit)(input&0x80);
  68   2                      SCL=1;
  69   2                      SCL=0;
  70   2                      input=input<<1;
  71   2              }
  72   1      }
  73          /*
  74          //写入一个字节到24c02中
  75          void Write24c02(uchar ch,uchar address) 
  76          {
  77                  Start();
  78                  Write8Bit(WriteDeviceAddress);
  79                  TestAck();
  80                  Write8Bit(address);
  81                  TestAck();
  82          
  83                  Write8Bit(ch);
  84                  TestAck();
  85                  
  86                  Stop();
  87                  DelayMs(10);
  88          }
  89           */
  90          //从24c02中读出8个bit
  91          uchar Read8Bit() 
  92          {
  93   1              unsigned char temp,rbyte=0;
  94   1              for(temp=8;temp!=0;temp--) 
  95   1              {
  96   2                      SCL=1;
  97   2                      rbyte=rbyte<<1;
  98   2                      rbyte=rbyte|((unsigned char)(SDA));
  99   2                      SCL=0;
 100   2              }
 101   1              return(rbyte);
 102   1      }
 103          
 104          //从24c02中读出1个字节
 105          uchar Read24c02(uchar address) 
 106          {
 107   1              uchar ch;
 108   1      
 109   1              Start();
 110   1              Write8Bit(WriteDeviceAddress);
 111   1              TestAck();
 112   1              Write8Bit(address);
 113   1              TestAck();
 114   1              Start();
 115   1              Write8Bit(ReadDviceAddress);
 116   1              TestAck();
 117   1              ch=Read8Bit();
C51 COMPILER V7.07   24C02                                                                 07/07/2006 03:55:51 PAGE 3   

 118   1              NoAck();
 119   1              Stop();
 120   1              return(ch);
 121   1      }


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