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

📄 i2c.lst

📁 STC89C51控制LCD显示
💻 LST
字号:
C51 COMPILER V7.50   I2C                                                                   12/01/2007 10:47:34 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 <reg52.h>     //包括一个52标准内核的头文件
   2          //变量类型标识的宏定义
   3          #define uchar unsigned char //定义一下方便使用
   4          
   5          #define WriteDeviceAddress 0xa0   //定义器件在IIC总线中的地址
   6          #define ReadDviceAddress 0xa1
   7          
   8          sbit    SCL=P1^7;
   9          sbit    SDA=P1^6; 
  10          
  11          void DelayMs(unsigned int number);
  12          
  13          //开始总线
  14          void Start() 
  15          {
  16   1              SDA=1;
  17   1              SCL=1;
  18   1              SDA=0;
  19   1              SCL=0;
  20   1      }
  21          //结束总线
  22          void Stop() 
  23          {
  24   1              SCL=0;
  25   1              SDA=0;
  26   1              SCL=1;
  27   1              SDA=1;
  28   1      }
  29          //发ACK0
  30          void NoAck() 
  31          {
  32   1              SDA=1;
  33   1              SCL=1;
  34   1              SCL=0;
  35   1      }
  36          //测试ACK
  37          bit TestAck() 
  38          {
  39   1              bit ErrorBit;
  40   1              SDA=1;
  41   1              SCL=1;
  42   1              ErrorBit=SDA;
  43   1              SCL=0;
  44   1              return(ErrorBit);
  45   1      }
  46          //写入8个bit到24c02
  47          Write8Bit(unsigned char input) 
  48          {
  49   1              unsigned char temp;
  50   1              for(temp=8;temp!=0;temp--) 
  51   1              {
  52   2                      SDA=(bit)(input&0x80);
  53   2                      SCL=1;
  54   2                      SCL=0;
  55   2                      input=input<<1;
C51 COMPILER V7.50   I2C                                                                   12/01/2007 10:47:34 PAGE 2   

  56   2              }
  57   1      }
  58          //写入一个字节到24c02中
  59          Write24c02(uchar ch,uchar address) 
  60          {
  61   1              Start();
  62   1              Write8Bit(WriteDeviceAddress);
  63   1              TestAck();
  64   1              Write8Bit(address);
  65   1              TestAck();
  66   1      
  67   1              Write8Bit(ch);
  68   1              TestAck();
  69   1              
  70   1              Stop();
  71   1              DelayMs(10);
  72   1      }
  73          //从24c02中读出8个bit
  74          uchar Read8Bit() 
  75          {
  76   1              unsigned char temp,rbyte=0;
  77   1              for(temp=8;temp!=0;temp--) 
  78   1              {
  79   2                      SCL=1;
  80   2                      rbyte=rbyte<<1;
  81   2                      rbyte=rbyte|((unsigned char)(SDA));
  82   2                      SCL=0;
  83   2              }
  84   1              return(rbyte);
  85   1      }
  86          //从24c02中读出1个字节
  87          uchar Read24c02(uchar address) 
  88          {
  89   1              uchar ch;
  90   1      
  91   1              Start();
  92   1              Write8Bit(WriteDeviceAddress);
  93   1              TestAck();
  94   1              Write8Bit(address);
  95   1              TestAck();
  96   1              Start();
  97   1              Write8Bit(ReadDviceAddress);
  98   1              TestAck();
  99   1              ch=Read8Bit();
 100   1              NoAck();
 101   1              Stop();
 102   1              return(ch);
 103   1      }


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