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

📄 i2c.lst

📁 多点温度检测系统
💻 LST
字号:
C51 COMPILER V7.02b   I2C                                                                  11/12/2004 14:52:13 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN I2C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE I2C.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1           #include <reg52.h>
   2           #include <INTRINS.H>
   3           #include "i2c.h"
   4           
   5           void I2CSomeNOP(void)
   6           {
   7   1              _nop_();_nop_();_nop_();
   8   1              _nop_();_nop_();_nop_();
   9   1       }
  10          
  11           void I2CStart(void)
  12           {
  13   1       EA=0;
  14   1       I2CSDA=1; I2CSCL=1; I2CSomeNOP();//INI
  15   1       I2CSDA=0; I2CSomeNOP(); //START
  16   1       I2CSCL=0;
  17   1       }
  18          
  19           void I2CStop(void)
  20           {
  21   1       I2CSCL=0; I2CSDA=0; I2CSomeNOP(); //INI
  22   1       I2CSCL=1; I2CSomeNOP(); I2CSDA=1; //STOP
  23   1       EA=1;
  24   1       }
  25          
  26           bit I2CWaitAck(void)
  27           {
  28   1       unsigned char errtime=255;//因故障接收方无ACK,超时值为255。
  29   1       I2CSDA=1;I2CSomeNOP();
  30   1       I2CSCL=1;I2CSomeNOP();
  31   1       while(I2CSDA) {errtime--; if (!errtime) {I2CStop();return false;}}
  32   1       I2CSCL=0;
  33   1       return true;
  34   1       }
  35          
  36           void I2CSendAck(void)
  37           {
  38   1       I2CSDA=0; I2CSomeNOP();
  39   1       I2CSCL=1; I2CSomeNOP();
  40   1       I2CSCL=0;
  41   1       }
  42          
  43           void I2CSendNotAck(void)
  44           {
  45   1       I2CSDA=1; I2CSomeNOP();
  46   1       I2CSCL=1; I2CSomeNOP();
  47   1       I2CSCL=0;
  48   1       }
  49          
  50           void I2CSendByte(unsigned char ch)
  51           {
  52   1       unsigned char i=8;
  53   1       while (i--)
  54   1               {
  55   2               I2CSCL=0;_nop_();
C51 COMPILER V7.02b   I2C                                                                  11/12/2004 14:52:13 PAGE 2   

  56   2               I2CSDA=(bit)(ch&0x80); ch<<=1; I2CSomeNOP();
  57   2               I2CSCL=1; I2CSomeNOP();
  58   2               }
  59   1       I2CSCL=0;
  60   1       }
  61          
  62           unsigned char I2CReceiveByte(void)
  63           {
  64   1       unsigned char i=8;
  65   1       unsigned char ddata=0;
  66   1       I2CSDA=1;
  67   1       while (i--)
  68   1               {
  69   2               ddata<<=1;
  70   2               I2CSCL=0;I2CSomeNOP();
  71   2               I2CSCL=1;I2CSomeNOP();
  72   2               ddata|=I2CSDA;
  73   2               }
  74   1       I2CSCL=0;
  75   1       return ddata;
  76   1       }


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