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

📄 iic.lst

📁 pcf8563 51单片机
💻 LST
字号:
C51 COMPILER V7.50   IIC                                                                   02/21/2012 18:24:44 PAGE 1   


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

line level    source

   1          #include "iic.h"
   2          
   3          
   4          void delay(unsigned int time)
   5          {
   6   1       while(time--);
   7   1      
   8   1      
   9   1      }
  10          
  11          
  12          
  13          /* 功能描述:主设备发出无应答
  14             隶属模块:IIC模块
  15             函数属性:外部,供用户使用
  16             注:主设备(比如单片机)从从设备(比如PCF8563)
  17                 进行读取,就要给从设备一个NACK(即无应答) */
  18          
  19          void IIC_NAck()
  20          {
  21   1       SDA=1;
  22   1       delay(DelayTime);
  23   1       SCL=1;
  24   1       delay(DelayTime);
  25   1       SCL=0;
  26   1       delay(DelayTime);
  27   1      
  28   1      
  29   1      }
  30          
  31          /* 功能描述: IIC启动
  32             隶属模块: IIC模块
  33             函数属性: 外部,供用户使用 */
  34          
  35          void IIC_Start()
  36          {
  37   1        SDA=1;
  38   1        delay(DelayTime);
  39   1        SCL=1;
  40   1        delay(DelayTime);
  41   1        SDA=0;
  42   1        delay(DelayTime);
  43   1        SCL=0;
  44   1        delay(DelayTime);
  45   1      
  46   1      
  47   1      }
  48          
  49          //IIC结束部分
  50          void IIC_Stop()
  51          {
  52   1        SDA=0;
  53   1        delay(DelayTime);
  54   1        SCL=1;
  55   1        delay(DelayTime);
C51 COMPILER V7.50   IIC                                                                   02/21/2012 18:24:44 PAGE 2   

  56   1        SDA=1;
  57   1        delay(DelayTime);
  58   1        SCL=0;
  59   1        delay(DelayTime);
  60   1      
  61   1      
  62   1      }
  63          
  64          /* 功能描述:主设备发出应答
  65             隶属模块:IIC模块
  66             函数属性:外部,供用户使用
  67             注:主设备(比如单片机)从从设备(比如PCF8563)
  68                 进行读取,就要给从设备一个ACK(即应答) */
  69          
  70          void IIC_Ack()
  71          { 
  72   1       SDA=0;
  73   1       delay(DelayTime);
  74   1       SCL=1;
  75   1       delay(DelayTime);
  76   1       SCL=0;
  77   1       delay(DelayTime);
  78   1      
  79   1      
  80   1      }
  81          
  82          /* 功能描述:主设备检测从设备应答
  83             隶属模块:IIC模块
  84             参数说明:无
  85             返回说明:从设备的应答值
  86             注:主设备(比如单片机),向从设备(比如pcf8563)写入字节后,要检测从设备
  87                发出的应答,如果数据位SDA为0,说明向从设备成功写入*/
  88          
  89          unsigned char IIC_Get_Ack()
  90          {
  91   1       unsigned char Error;
  92   1       SDA=1;
  93   1       delay(DelayTime);
  94   1       SCL=1;
  95   1       delay(DelayTime);
  96   1       Error=SDA;
  97   1       delay(DelayTime);
  98   1       SCL=0;
  99   1       delay(DelayTime);
 100   1       return Error;
 101   1      
 102   1      
 103   1      }
 104          
 105          
 106          /* 功能描述:主设备向从设备写入一个字节
 107             隶属模块:IIC模块
 108             隶属函数:外部,供用户使用
 109             参数说明:dat:将要写入的字节
 110             返回说明:从设备的应答值
 111             注:向从设备写入一个字节,并返回从设备的应答值*/
 112           
 113          unsigned char IIC_Write_Byte(unsigned char dat)
 114          {
 115   1        unsigned char i;
 116   1        for(i=0;i<8;i++)
 117   1        {
C51 COMPILER V7.50   IIC                                                                   02/21/2012 18:24:44 PAGE 3   

 118   2      
 119   2          SDA=((dat<<i)&0x80);
 120   2          SCL=1;
 121   2          delay(DelayTime);
 122   2          SCL=0;
 123   2          delay(DelayTime);
 124   2          
 125   2        
 126   2         }
 127   1         return IIC_Get_Ack();
 128   1      
 129   1      }
 130          
 131          /* 功能描述:主设备向从设备读入一个字节
 132             隶属模块:IIC模块
 133             隶属函数:外部,供用户使用
 134             返回说明:读到的字节*/
 135          
 136          unsigned char IIC_Read_Byte()
 137          {
 138   1        unsigned char i,rbyte=0;
 139   1        SDA=1;
 140   1        for(i=0;i<8;i++)
 141   1        {
 142   2         SCL=1;
 143   2         delay(DelayTime);
 144   2         if(SDA) rbyte|=(0x80>>i);
 145   2         SCL=0;
 146   2         delay(DelayTime);
 147   2        
 148   2        }
 149   1       return rbyte;
 150   1      
 151   1      
 152   1      
 153   1      }


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