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

📄 24cxx.lst

📁 EasyStudy51-II单片机开发系统的库函数源代码.包含了EasyStudy51-II硬件的全部驱动.
💻 LST
字号:
C51 COMPILER V7.06   24CXX                                                                 11/06/2008 01:10:35 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 24CXX
OBJECT MODULE PLACED IN 24cxx.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE c51\24cxx.c INCDIR(.\Target\INC\) DEBUG OBJECTEXTEND PRINT(.\24cxx.lst) OBJ
                    -ECT(24cxx.obj)

stmt level    source

   1          
   2          
   3          #include "AT89X52.h"
   4          #include "ES51_II.h"
   5          #include "ES51_II_LIB.h"
   6          
   7          #include <intrins.h>
   8          
   9          
  10          #define DELAY_1US       {_nop_();}
  11          
  12          
  13          // 操作起始
  14          void I2c_Start(void)  
  15          {
  16   1              SDA = 1;                                        //      发送起始条件的数据信号
  17   1              SCL = 1;
  18   1              DELAY_1US;
  19   1              SDA = 0;                                        //      发送起始信号
  20   1              DELAY_1US;      
  21   1              SCL = 0;                                        //      钳住I2C总线,准备发送或接收数据
  22   1      }
  23          
  24          // 操作结束
  25          void I2c_Stop(void)  
  26          {
  27   1              SDA = 0;
  28   1              DELAY_1US;
  29   1              SCL = 1;
  30   1              DELAY_1US;
  31   1              SDA = 1;                                        //      发送I2C总线结束信号
  32   1              DELAY_1US;
  33   1              SDA = 1;;                               //      
  34   1      }
  35          
  36          //写一个字节数据
  37          void I2c_WrByte(unsigned char dat)      
  38          {
  39   1              unsigned char i;
  40   1      
  41   1              for(i=0;i!=8;i++)                       // 输出8位数据
  42   1              {
  43   2                      if( dat & 0x80 ) 
  44   2                              SDA = 1;
  45   2                      else 
  46   2                              SDA = 0;
  47   2                      DELAY_1US;
  48   2                      SCL = 1;
  49   2                      dat<<=1;
  50   2                      DELAY_1US;              
  51   2                      SCL = 0;
  52   2              }
  53   1              SDA = 1;
  54   1              DELAY_1US;
C51 COMPILER V7.06   24CXX                                                                 11/06/2008 01:10:35 PAGE 2   

  55   1              SCL = 1;                                        // 接收应答
  56   1              DELAY_1US;
  57   1              SCL = 0;
  58   1      }
  59          
  60          
  61          //读一个字节数据
  62          unsigned char I2c_RdByte(void)          
  63          {
  64   1              unsigned char dat,i;
  65   1              
  66   1              SDA = 1;
  67   1              dat=0;
  68   1              for(i=0;i!=8;i++)               // 输入8位数据
  69   1              {
  70   2                      DELAY_1US;              // 可选延时
  71   2                      SCL = 1;
  72   2                      DELAY_1US;              // 可选延时
  73   2                      dat<<=1;
  74   2                      if( SDA ) 
  75   2                              dat++;                  // 输入1位
  76   2                      SCL = 0;
  77   2              }
  78   1              SDA = 1;
  79   1              DELAY_1US;
  80   1              SCL = 1;  // 发出无效应答
  81   1              DELAY_1US;
  82   1              SCL = 0;
  83   1              return(dat);
  84   1      }
  85          
  86          
  87          //
  88          void EEPROM_WrOneByte(unsigned char slave,unsigned char addr,unsigned char dat)
  89          {
  90   1              unsigned char i=200;
  91   1      
  92   1              I2c_Start();                            //      启动总线
  93   1              I2c_WrByte( slave & 0xfe );     //      写器件从地址,写器件
  94   1              I2c_WrByte( addr );                             //      写器件片内地址
  95   1              I2c_WrByte( dat );              //      发送数据
  96   1              I2c_Stop();                     //      结束总线
  97   1              while(i--);
  98   1      }
  99          
 100          //
 101          unsigned char EEPROM_RdOneByte(unsigned char slave,unsigned char addr)
 102          {
 103   1              unsigned char value, i=200;
 104   1      
 105   1              I2c_Start();                            //      启动总线
 106   1              I2c_WrByte( slave & 0xfe );     //      写器件从地址,写器件
 107   1              I2c_WrByte( addr );                             //      写器件片内地址
 108   1              //I2c_Stop();
 109   1      
 110   1              I2c_Start();
 111   1              I2c_WrByte( slave | 0x01 );             //      写器件从地址,读器件
 112   1              value = I2c_RdByte();                   //      发送数据
 113   1              I2c_Stop();                     //      结束总线
 114   1              
 115   1              while(i--);
 116   1              return value;
C51 COMPILER V7.06   24CXX                                                                 11/06/2008 01:10:35 PAGE 3   

 117   1      }


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