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

📄 24c00.lst

📁 IIC通讯单片机源代码,要下载的快
💻 LST
字号:
C51 COMPILER V7.50   24C00                                                                 06/07/2006 12:23:47 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 24C00
OBJECT MODULE PLACED IN 24C00.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE 24C00.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg51.h"
   2          #include "intrins.h"
   3          #include"address.h"
   4          #define uchar    unsigned char
   5          #define uint     unsigned char
   6          #define true  1
   7          #define false 0
   8          #define bool bit
   9          #define Byte unsigned char
  10          #define Word unsigned int
  11          #define read 0x80
  12          #define write 0x00
  13          
  14          //私有内部函数
  15          #define    \
  16          SomeNOP(); \
  17          _nop_();_nop_();_nop_();_nop_();
  18          
  19          //私有内部函数
  20          void IICStart(void)
  21          {
  22   1          EA = 0;
  23   1              IICDATA = 1;IICSCL = 1;SomeNOP();
  24   1              IICDATA = 0;SomeNOP(); 
  25   1              IICSCL = 0; IICDATA = 1;
  26   1      }
  27          //私有内部函数
  28          void IICStop(void)
  29          {
  30   1          IICSCL = 0;IICDATA = 0;SomeNOP();
  31   1              IICSCL = 1;SomeNOP();IICDATA = 1;
  32   1              EA = 1;
  33   1      }
  34          
  35          //私有内部函数
  36          void SendAck(void)
  37          {
  38   1          IICDATA = 0;SomeNOP();
  39   1              IICSCL = 1;SomeNOP();
  40   1              IICSCL = 0;
  41   1      }       
  42          //私有内部函数
  43          void SendNotAck(void)
  44          {
  45   1          IICDATA = 1;SomeNOP();
  46   1              IICSCL = 1;SomeNOP();
  47   1              IICSCL = 0;
  48   1      }
  49          //私有内部函数
  50          void IICSendByte(uchar ch)
  51          {
  52   1          uchar i = 8;
  53   1              while(i--)
  54   1              {
  55   2                  IICSCL = 0;_nop_();
C51 COMPILER V7.50   24C00                                                                 06/07/2006 12:23:47 PAGE 2   

  56   2                      IICDATA = (bit)(ch&0x80);ch<<=1;SomeNOP();
  57   2                      IICSCL = 1;SomeNOP();
  58   2              }
  59   1              IICSCL = 0;
  60   1      }
  61          //私有内部函数
  62          uchar IICReceiveByte(void)
  63          {
  64   1          uchar i = 8;
  65   1              uchar ddata = 0;
  66   1              IICDATA = 1;
  67   1              while(i--)
  68   1              {
  69   2                  ddata<<=1;
  70   2                      IICSCL = 0;SomeNOP();
  71   2                      IICSCL = 1;SomeNOP();
  72   2                      if(IICDATA)ddata |= 0x01;
  73   2              }
  74   1              IICSCL = 0;
  75   1              return ddata;
  76   1      
  77   1      }
  78          //私有内部函数
  79          bool WaitAck(void)
  80          {
  81   1              IICDATA = 1;SomeNOP();
  82   1              IICSCL = 1;SomeNOP();
  83   1              while(IICDATA){IICStart();      IICSendByte(0xa0);IICDATA = 1;SomeNOP();        IICSCL = 1;SomeNOP();}
  84   1              IICSCL = 0;
  85   1              return true;
  86   1      }
  87          
  88          //***********************************
  89          //**公有函数,外部接口             **
  90          //***********************************
  91          //写一个数据
  92          void Write24c02_OneByte(unsigned char addr,unsigned char ddata)
  93          {
  94   1          IICStart();
  95   1              IICSendByte(0xa0);
  96   1              WaitAck();
  97   1              IICSendByte(addr);
  98   1              WaitAck();
  99   1              IICSendByte(ddata);
 100   1              WaitAck();
 101   1              IICStop();
 102   1              SomeNOP();
 103   1      }
 104          //读一个数据
 105          unsigned char Read24c02_OneByte(unsigned char addr)
 106          {
 107   1          uchar temp;
 108   1          IICStart();
 109   1              IICSendByte(0xa0);  //先写入地址,设置写
 110   1              WaitAck();
 111   1              IICSendByte(addr);
 112   1              WaitAck();
 113   1              IICStart();
 114   1          IICSendByte(0xa1);   //设置读
 115   1              WaitAck();
 116   1              temp = IICReceiveByte();
 117   1              SendNotAck();
C51 COMPILER V7.50   24C00                                                                 06/07/2006 12:23:47 PAGE 3   

 118   1              IICStop();
 119   1              return temp;    
 120   1      }


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