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

📄 iic总线.lst

📁 iic总线的单片机C程序
💻 LST
字号:
C51 COMPILER V8.08   IIC譥线                                                               04/10/2009 11:06:43 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE IIC譥线
OBJECT MODULE PLACED IN iic总线.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE iic总线.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1           #include<reg52.h>
   2           #include<intrins.h>
   3           #define  unchar  unsigned char
   4           sbit  SCL=P1^5;
   5           sbit  SDA=P1^6;  
   6           sbit  lag=P1^4;
   7           sbit  dula=P2^0;
   8           sbit   wela=P2^1;
   9          
  10            void  delay1 (int a )
  11            {     int i,j; 
  12   1          for(i=0;i<a;i++)
  13   1            for(j=0;j<100;j++);
  14   1        }      
  15             void  delay() 
  16              { unchar i=3;
  17   1                while(i--);}
  18             void  init()
  19             { SCL=1;
  20   1           delay();
  21   1               SDA=1;
  22   1           delay();
  23   1         }
  24            void start()
  25             { 
  26   1               SCL=1;
  27   1               delay();
  28   1               SDA=0;
  29   1               delay();
  30   1               SCL=0;
  31   1               delay();
  32   1         }
  33             void stop()
  34             { 
  35   1           SDA=0;
  36   1           delay();
  37   1               SCL=1;
  38   1               delay();
  39   1               SDA=1;
  40   1               delay();
  41   1         }
  42             void response()
  43                  {   int i;
  44   1                      SCL=1;
  45   1                      delay();
  46   1                 while(SDA==1&&i<255)
  47   1                    i++;
  48   1              SCL=0;
  49   1                      delay();
  50   1                  
  51   1              }
  52             void write_byte(char  date)
  53            {     unchar  i, temp;
  54   1                 SCL=0;
  55   1                 delay();
C51 COMPILER V8.08   IIC譥线                                                               04/10/2009 11:06:43 PAGE 2   

  56   1            temp=date;
  57   1             for (i=0;i<8;i++)
  58   1                 {  temp=temp<<1;
  59   2                    SCL=0;
  60   2                        delay();
  61   2                    SDA=CY;
  62   2                        SCL=1;
  63   2                        delay();
  64   2                        SCL=0;
  65   2                        delay();
  66   2               }
  67   1                   
  68   1                  SDA=1;
  69   1                  delay();
  70   1      
  71   1               }
  72               unchar read_byte()
  73              { unchar  i,temp;
  74   1                  SCL=0;
  75   1                      delay(); 
  76   1                  SDA=1;
  77   1                  delay();
  78   1                for(i=0;i++;i<8)
  79   1                  { SCL=1;
  80   2                        delay();
  81   2                        temp=temp<<1;
  82   2                        temp=temp|SDA;
  83   2                        SCL=0;
  84   2                        delay();
  85   2                        }
  86   1             return (temp);
  87   1          }
  88                  void   write_add(unchar add,unchar  date)
  89                  {start();
  90   1          write_byte(0xa0);
  91   1              response();
  92   1              write_byte(add);  
  93   1              response();
  94   1              write_byte(date);
  95   1              response();
  96   1              stop();
  97   1               }
  98            unchar read_add(unchar add)
  99             {  unchar a;
 100   1           start();
 101   1              write_byte(0xa0);  
 102   1              response();
 103   1              write_byte(add);
 104   1              response();
 105   1      
 106   1              start();
 107   1              write_byte(0xa1);
 108   1              response();
 109   1              a=read_byte();
 110   1              stop();
 111   1              return  a;
 112   1               }
 113           main()
 114           {      lag=0;
 115   1          init();
 116   1          write_add(0x80,0x00);
 117   1              delay1(100); 
C51 COMPILER V8.08   IIC譥线                                                               04/10/2009 11:06:43 PAGE 3   

 118   1              wela=1;
 119   1              P0=read_add(0x80);
 120   1              wela=0;
 121   1              while(1);
 122   1              } 
 123          
 124          


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