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

📄 iic.lst

📁 keil c open
💻 LST
字号:
C51 COMPILER V7.06   IIC                                                                   01/06/2005 14:37:21 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE IIC
OBJECT MODULE PLACED IN F:\存档\HEX\IIC.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\源文件\IIC.C LARGE DEBUG OBJECTEXTEND PRINT(.\IIC.lst) OBJECT(F:\存档\HE
                    -X\IIC.obj)

stmt level    source

   1          /*
   2          *********************************************************************************************************
   3          *                                               iic.c
   4          *                                               实时内核
   5          *
   6          *                        (c) Copyright 2003-9-10:  pearmani
   7          *                                               版权所有
   8          *
   9          *                                            MCU-51 专用代码
  10          *                                           KEIL C51大模式编译
  11          *
  12          * 文件名:ii.c
  13          * 作者   :caochengfu
  14          * 改编   :
  15          *********************************************************************************************************
  16          */
  17          
  18          /*0755-83241559孙九安*/
  19          #include "extern.h"
  20          /*
  21          简单的延时
  22          */
  23          /*
  24          *********************************************************************************************************
  25          *名称:延时8微秒
  26          * 输入参数:无
  27          *输出参数:无
  28          *处理的数据:无
  29          *调用的函数:无
  30          *创建人:       DaiWei
  31          *创建时间:2003-8-16 10:51
  32          *修改时间:
  33          *********************************************************************************************************
  34          */
  35          void    dly8u(void)
  36           {
  37   1      
  38   1              _Nop();
  39   1              _Nop();
  40   1              _Nop();
  41   1              _Nop();
  42   1              _Nop();
  43   1              _Nop();
  44   1              _Nop();
  45   1              _Nop();
  46   1              _Nop();
  47   1              _Nop();
  48   1              _Nop();
  49   1              return;
  50   1        }
  51            /*
  52          *********************************************************************************************************
  53          *名称:void     f_iic_start(void)
  54          *功能:启动通信
C51 COMPILER V7.06   IIC                                                                   01/06/2005 14:37:21 PAGE 2   

  55          * 输入参数:无
  56          *输出参数:无
  57          *处理的数据:无
  58          *调用的函数:dly8u()
  59          *创建人:       DaiWei
  60          *创建时间:2003-8-16 10:51
  61          *修改时间:
  62          *********************************************************************************************************
  63          */
  64          
  65          void    f_iic_start(void)
  66          {
  67   1      /*启动I2C总线的函数,当SCL为高电平时使SDA产生一个负跳变 */
  68   1              SCL=0;
  69   1              dly8u();
  70   1              SDA=1;
  71   1              dly8u();
  72   1              SCL=1;
  73   1              dly8u();
  74   1              SDA=0;
  75   1              dly8u();
  76   1              SCL=0;
  77   1              dly8u();
  78   1      }
  79          /*
  80          *********************************************************************************************************
  81          *名称:void     f_iic_stop(void)
  82          *功能:停止iic通信
  83          * 输入参数:无
  84          *输出参数:无
  85          *处理的数据:无
  86          *调用的函数:dly8u();
  87          *创建人:       DaiWei
  88          *创建时间:2003-8-16 10:51
  89          *修改时间:
  90          *********************************************************************************************************
  91          */
  92          
  93          void    f_iic_stop(void)
  94          {
  95   1      /*终止I2C总线,当SCL为高电平时使SDA产生一个正跳变*/
  96   1          SCL=0;
  97   1          dly8u();
  98   1              SDA=0;
  99   1          dly8u();
 100   1              SCL=1;
 101   1          dly8u();
 102   1              SDA=1;
 103   1          dly8u();
 104   1      }
 105          /*
 106          *********************************************************************************************************
 107          *名称:void     f_check_ack_iic(void)
 108          *功能:校验本次通信
 109          * 输入参数:无
 110          *输出参数:无
 111          *处理的数据:无
 112          *调用的函数:dly8u()
 113          *创建人:       DaiWei
 114          *创建时间:2003-8-16 10:51
 115          *修改时间:
 116          *********************************************************************************************************
C51 COMPILER V7.06   IIC                                                                   01/06/2005 14:37:21 PAGE 3   

 117          */
 118          
 119          void    f_check_ack_iic(void)
 120          {
 121   1      /*发送完一个字节后检验设备的应答信号*/
 122   1              SCL=0;
 123   1          dly8u();
 124   1              SDA=1;
 125   1          dly8u();
 126   1              SCL=1;
 127   1          dly8u();
 128   1              F0=SDA;
 129   1          SCL=0;
 130   1      }
 131          /*
 132          *********************************************************************************************************
 133          *名称:void     f_sendone_byte(uchar    b)
 134          *功能:发送一个字节
 135          * 输入参数:需要发送的数据,一个字节
 136          *输出参数:无
 137          *处理的数据:无
 138          *调用的函数:dly8u()
 139          *创建人:       DaiWei
 140          *创建时间:2003-8-16 10:51
 141          *修改时间:
 142          *********************************************************************************************************
 143          */
 144          void    f_sendone_byte(uchar    b)
 145          {
 146   1              uchar i;
 147   1          dly8u();
 148   1              for(i=0;i<8;i++)
 149   1              if((b<<i)&0x80)
 150   1              {
 151   2              SDA=1;
 152   2              dly8u();
 153   2              dly8u();
 154   2              SCL=1;
 155   2              dly8u();
 156   2              SCL=0;
 157   2              }
 158   1              else
 159   1              {
 160   2              SDA=0;
 161   2              dly8u();
 162   2              dly8u();
 163   2              SCL=1;
 164   2              dly8u();
 165   2              SCL=0;
 166   2              }
 167   1      }
 168          /*
 169          *********************************************************************************************************
 170          *名称:void     f_sendbytes(void)
 171          *功能:发送一个数据包
 172          * 输入参数:无
 173          *输出参数:无
 174          *处理的数据:sendone,sendtwo,sendthree
 175          *调用的函数:   f_iic_start();
 176                          f_sendone_byte(0xf0);
 177                          f_check_ack_iic();
 178                          f_iic_stop();
C51 COMPILER V7.06   IIC                                                                   01/06/2005 14:37:21 PAGE 4   

 179          *创建人:       DaiWei
 180          *创建时间:2003-8-16 10:51
 181          *修改时间:
 182          *********************************************************************************************************
 183          */
 184          void    f_sendbytes(void)
 185          {
 186   1              uchar   data    i;
 187   1              uchar   data    sendbuff[4];
 188   1              sending_flag=1;
 189   1              sendbuff[0]=0xf8;
 190   1              sendbuff[1]=sendtwo;
 191   1              sendbuff[2]=sendthree;
 192   1              sendbuff[3]=sendfour;
 193   1                EA=0;
 194   1              for(i=0;i<4;i++)
 195   1              {
 196   2                      f_iic_start();
 197   2                      f_sendone_byte(0xf0);
 198   2                      f_check_ack_iic();
 199   2                      f_sendone_byte(sendbuff[i]);
 200   2                      f_check_ack_iic();
 201   2                      f_iic_stop();
 202   2          }
 203   1      
 204   1                      EA=1;
 205   1                      return;
 206   1      }
 207          void    f_sendbytes1234(void)
 208          {
 209   1              uchar   data    i;
 210   1              uchar   data    sendbuff[4];
 211   1              sendbuff[0]=0xf8;
 212   1              sendbuff[1]=sendtwo;
 213   1              sendbuff[2]=sendthree;
 214   1              sendbuff[3]=sendfour;
 215   1                EA=0;
 216   1              for(i=0;i<4;i++)
 217   1              {
 218   2                      f_iic_start();
 219   2                      f_sendone_byte(0xf0);
 220   2                      f_check_ack_iic();
 221   2                      f_sendone_byte(sendbuff[i]);
 222   2                      f_check_ack_iic();
 223   2                      f_iic_stop();
 224   2          }
 225   1                      EA=1;
 226   1                      return;
 227   1      }
 228          
 229          os_INT0_isp()   interrupt       0
 230          {
 231   1      //      SI=0;
 232   1              IE0=0;
 233   1              EA=1;
 234   1              ET0=1;
 235   1              TR0=1;
 236   1              TR1=1;
 237   1      
 238   1      }
 239          os_INT1_isp()   interrupt       2
 240          {
C51 COMPILER V7.06   IIC                                                                   01/06/2005 14:37:21 PAGE 5   

 241   1      //      SI=0;
 242   1              IE1=0;
 243   1              EA=1;
 244   1              ET0=1;
 245   1              TR0=1;
 246   1              TR1=1;
 247   1      }
 248          
 249          
 250          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    235    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      10
   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 + -