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

📄 iic.lst

📁 本程序演示 :以非利普TEA5767 为核心的
💻 LST
字号:
C51 COMPILER V7.50   IIC                                                                   05/12/2009 22:59:43 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE IIC
OBJECT MODULE PLACED IN iic.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE iic.c LARGE OPTIMIZE(7,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #define uchar unsigned char
   2          #define uint  unsigned int
   3          #define ulong unsigned long
   4          #include <reg52.h>
   5          #include <absacc.h>
   6          #include "intrins.h"
   7          #define iicadd 0x10;
   8          sbit da=P1^6;
   9          sbit cl=P1^7;
  10          void delaym(uint time)
  11          {
  12   1         for(;time!=0;time--)
  13   1         ;
  14   1      }
  15          void sta()       //启动总线传输
  16           {
  17   1         da=1;
  18   1         delaym(20);
  19   1         cl=1;
  20   1         delaym(20);
  21   1         da=0;
  22   1         delaym(20);
  23   1         cl=0;
  24   1         delaym(20);
  25   1       }
  26          void stop()     //结束总线传输
  27          {
  28   1        da=0;
  29   1        delaym(20);
  30   1        cl=1;
  31   1        delaym(20);
  32   1        da=1;
  33   1        delaym(20);
  34   1        da=0;
  35   1        delaym(20);
  36   1        cl=0;
  37   1        delaym(20);
  38   1      }
  39          void mack()//发送应答位
  40          {
  41   1         da=0;
  42   1         delaym(20);
  43   1         cl=1;
  44   1         delaym(20);
  45   1         cl=0;
  46   1         delaym(20);
  47   1         da=1;
  48   1      }
  49          /*
  50          void nmack()//发送非应答位
  51          {
  52            da=1;
  53            delaym(20);
  54            cl=1;
  55            delaym(20);
C51 COMPILER V7.50   IIC                                                                   05/12/2009 22:59:43 PAGE 2   

  56            cl=0;
  57            delaym(20);
  58            da=0;
  59          
  60          }
  61          bit cack() //发送状态检测
  62          {
  63            bit a=0;
  64            da=1;
  65            delaym(20);
  66            cl=1;
  67            if(da==0)
  68             {
  69             delaym(20);
  70             cl=0;
  71             return(0);
  72             }
  73            else
  74             {
  75             delaym(20);
  76             cl=0;
  77             return(1);
  78             }
  79          }
  80          */
  81          void wr1(void)//写数据1
  82          {
  83   1         da=1;
  84   1         delaym(20);
  85   1         cl=1;
  86   1         delaym(20);
  87   1         cl=0;
  88   1         delaym(20);
  89   1         da=0;
  90   1         delaym(20);
  91   1      }
  92          void wr0()//写数据0
  93          {
  94   1        da=0;
  95   1        delaym(20);
  96   1        cl=1;
  97   1        delaym(20);
  98   1        cl=0;
  99   1        delaym(20);
 100   1      }
 101          wrbyt(uchar byt)//写一个字节的数据到总线上
 102          {
 103   1        uchar temp=0x00;
 104   1        uchar count;
 105   1        for(count=0;count<8;count++)
 106   1          {
 107   2            if((byt<<count)&0x80)
 108   2              wr1();
 109   2            else
 110   2              wr0();
 111   2           }
 112   1      }
 113          uchar rdbyt() //从总线上读取一个字节的数据
 114          {
 115   1        uchar a=0,i=0;
 116   1        for(i=0;i<8;i++)
 117   1         {
C51 COMPILER V7.50   IIC                                                                   05/12/2009 22:59:43 PAGE 3   

 118   2           da=1;
 119   2           cl=1;
 120   2           if(da==1)
 121   2            {
 122   3                 a=(a<<1)+1;
 123   3             cl=0;
 124   3            }
 125   2           else if(da==0)
 126   2           {
 127   3             a=a<<1;
 128   3             cl=0;
 129   3           }
 130   2         }
 131   1          return(a);
 132   1      }
 133          bit iic_testack() 
 134          {
 135   1      
 136   1        bit a=0;
 137   1        da=1;
 138   1        delaym(20);
 139   1        cl=1;
 140   1        delaym(20);
 141   1        if(da==0)
 142   1         {
 143   2         delaym(20);
 144   2         cl=0;
 145   2         return(0);
 146   2         }
 147   1        else
 148   1         {
 149   2         delaym(20);
 150   2         cl=0;
 151   2         return(1);
 152   2         }
 153   1      }
 154          
 155          


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


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

⌨️ 快捷键说明

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