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

📄 i2c.lst

📁 这是USBD12芯片与PC机通讯的单片机固件程序
💻 LST
字号:
C51 COMPILER V7.50   I2C                                                                   10/31/2005 08:39:21 PAGE 1   


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

line level    source

   1          #include <reg922.h>
   2          
   3          bit ack = 0;                                    /*应答标志位*/
   4          void I2cInit()
   5          {
   6   1              /* I2CON */
   7   1              I2CON &= 0;
   8   1              I2SCLH = 7;
   9   1              I2SCLL = 8;
  10   1      }
  11          void DisableI2c()
  12          {
  13   1              I2EN = 0;
  14   1      } 
  15          void EnableI2c()
  16          {
  17   1              I2EN = 1;
  18   1      } 
  19          /********************************************        
  20          名称:       Start_I2c();  
  21          功能:       启动I2C总线,即发送I2C起始条件.
  22          *********************************************/
  23          void Start_I2c()
  24          {
  25   1         
  26   1      }
  27          /******************************************           
  28          * 名称:     Stop_I2c();  
  29          功能:       结束I2C总线,即发送I2C结束条件.
  30          *******************************************/
  31          void Stop_I2c()
  32          {
  33   1      }
  34          /************************************************************************            
  35          名称:       SendByte(uchar c);
  36          功能:       将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对
  37                      此状态位进行操作.(不应答或非应答都使ack=0 假)     
  38                      发送数据正常,ack=1; ack=0表示被控器无应答或损坏。
  39          *************************************************************************/
  40          void  SendByte(unsigned char c)
  41          {
  42   1         I2DAT = c;
  43   1         STA=1;
  44   1         STO=1;
  45   1      
  46   1      }
  47          /*******************************************************************            
  48          名称:       RcvByte()
  49          功能:       用来接收从器件传来的数据,并判断总线错误(不发应答信号),
  50                      发完后请用应答函数。  
  51          ********************************************************************/   
  52          unsigned char  RcvByte()
  53          {
  54   1      }
*** WARNING C173 IN LINE 54 OF I2C.C: missing return-expression
C51 COMPILER V7.50   I2C                                                                   10/31/2005 08:39:21 PAGE 2   

  55          /********************************************************
  56          名称:       Ack_I2c()
  57          功能:       主控器进行应答信号,(可以是应答或非应答信号)
  58          ********************************************************/
  59          void Ack_I2c(bit a)
  60          {  
  61   1      }
*** WARNING C280 IN LINE 59 OF I2C.C: 'a': unreferenced local variable
  62          /***********************************************************************            
  63          名称:       ISendByte();  
  64          功能:       从启动总线到发送地址,数据,结束总线的全过程,从器件地址sla.
  65                      如果返回1表示操作成功,否则操作有误。
  66          注意:      使用前必须已结束总线。
  67          ************************************************************************/
  68          bit ISendByte(unsigned char sla,unsigned char c)
  69          {
  70   1          Start_I2c();                            /*启动总线*/
  71   1          SendByte(sla);                          /*发送器件地址*/
  72   1          if(ack==0) return(0);
  73   1          SendByte(c);                            /*发送数据*/
  74   1          if(ack==0) return(0);
  75   1          Stop_I2c();                             /*结束总线*/ 
  76   1          return(1);
  77   1      }
  78          /**********************************************************************             
  79          名称:       IRcvByte(uchar sla,ucahr *c);  
  80          功能:       从启动总线到发送地址,读数据,结束总线的全过程,从器件地
  81                      址sla,返回值在c.
  82                      如果返回1表示操作成功,否则操作有误。
  83          注意:      使用前必须已结束总线。
  84          ***********************************************************************/
  85          bit IRcvByte(unsigned char sla,unsigned char *c)
  86          {
  87   1          Start_I2c();                            /*启动总线*/
  88   1          SendByte(sla+1);                        /*发送器件地址*/
  89   1          if(ack==0) return(0);
  90   1          *c=RcvByte();                           /*读取数据*/
  91   1          Ack_I2c(1);                             /*发送非就答位*/
  92   1          Stop_I2c();                             /*结束总线*/ 
  93   1          return(1);
  94   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     86    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  2 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -