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

📄 24c256.lst

📁 这是单片机实验板比较齐全的程序
💻 LST
字号:
C51 COMPILER V7.50   24C256                                                                05/27/2007 09:12:26 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 24C256
OBJECT MODULE PLACED IN 24c256.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24c256.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*---------------------------------------------
   2          读写24C256/512标准程序段 适用于地址为两个字节的IIC存储器
   3          -------------------------------------------*/
   4          #include <reg52.h>
   5          #include <intrins.h>
   6          #define uchar unsigned char
   7          #define uint unsigned int
   8          sbit SDA=P1^0;
   9          sbit SCL=P1^1;
  10          /*-----------------------------------------------
  11          调用方式:void start_bit(void)
  12          函数说明:开始位
  13          -----------------------------------------------*/
  14          void start_bit(void)
  15          {
  16   1              SCL=1;
  17   1              _nop_();
  18   1              SDA=1;
  19   1              _nop_(); 
  20   1              SDA=0;
  21   1              _nop_(); 
  22   1              SCL=0;
  23   1              _nop_(); 
  24   1      }
  25          /*-----------------------------------------------
  26          调用方式:void stop_bit(void)
  27          函数说明:停止位
  28          -----------------------------------------------*/
  29          void stop_bit(void)
  30          {
  31   1              SDA=0;
  32   1              _nop_(); 
  33   1              SCL=1;
  34   1              _nop_(); 
  35   1              SDA=1;
  36   1              _nop_(); 
  37   1      }
  38           
  39          /*-----------------------------------------------
  40          调用方式:void ack(void)
  41          函数说明:应答函数
  42          -----------------------------------------------*/
  43          void ack(void)
  44          {
  45   1              SDA=1;
  46   1              SCL=0;
  47   1              _nop_();  
  48   1              SCL=1;
  49   1              _nop_();
  50   1              //while(SDA){;}   //This may make the CPU crash. 04-3-18 17:16
  51   1              SCL=0;
  52   1              _nop_(); 
  53   1      }
  54          /*-----------------------------------------------
  55          调用方式:void no_ack(void)
C51 COMPILER V7.50   24C256                                                                05/27/2007 09:12:26 PAGE 2   

  56          函数说明:无需应答位,在读程序中用到
  57          -----------------------------------------------*/
  58          void no_ack(void)
  59          {
  60   1              SDA=1;
  61   1              _nop_(); 
  62   1              SCL=1;
  63   1              _nop_(); 
  64   1              //while(SDA){;}  //This may make the CPU crash. 04-3-18 17:16
  65   1              SCL=0;
  66   1              _nop_(); 
  67   1      }
  68          /*-----------------------------------------------
  69          调用方式:void write_8bit(uchar ch)
  70          函数说明:写一个字节(8位)数据
  71          -----------------------------------------------*/
  72          void write_8bit(uchar ch)
  73          {
  74   1              uchar i=8;
  75   1              
  76   1              SCL=0;
  77   1              _nop_();
  78   1              while(i--)
  79   1              {
  80   2                      SDA=(bit)(ch&0x80);
  81   2                      _nop_(); 
  82   2                      ch<<=1;
  83   2                      SCL=1;
  84   2                      _nop_();
  85   2                      SCL=0;
  86   2                      _nop_();  
  87   2              }
  88   1      }
  89          
  90          /*----------------------------------------------
  91          调用方式:uchar read24c16(uint address)
  92          函数说明:读24c16指定地址数据(字节读)
  93          -----------------------------------------------*/
  94          uchar ReadFm24c256(uint address)
  95          {
  96   1              uchar data rdata;
  97   1              uchar i=8;
  98   1              //EA=0;//避免与串口通讯等中断冲突
  99   1              start_bit();
 100   1              write_8bit(0xA0);
 101   1              ack();
 102   1              write_8bit(address/256);
 103   1              ack();//伪写
 104   1              write_8bit(address%256);
 105   1              ack();
 106   1              start_bit();
 107   1              write_8bit(0xA1);
 108   1              ack();
 109   1              while(i--)
 110   1              {
 111   2                      rdata<<=1;
 112   2                      SCL=0;
 113   2                      _nop_(); 
 114   2                      SCL=1;
 115   2                      if(SDA) rdata|=0x01;
 116   2              }
 117   1              no_ack();
C51 COMPILER V7.50   24C256                                                                05/27/2007 09:12:26 PAGE 3   

 118   1              stop_bit();
 119   1              //EA=1;
 120   1              return rdata;
 121   1      }
 122          
 123          /*-----------------------------------------------
 124          调用方式:void write24c16(uint address,uchar ddata)
 125          函数说明:写数据到24c16的指定地址(字节写)
 126          -----------------------------------------------*/
 127          void WriteFm24c256(uint address,uchar ddata)
 128          {
 129   1              //EA=0;  //避免与串口通讯等中断冲突
 130   1              start_bit();
 131   1              write_8bit(0xA0);
 132   1              ack();
 133   1              write_8bit(address/256);
 134   1              ack();
 135   1              write_8bit(address%256);
 136   1              ack();
 137   1              write_8bit(ddata);
 138   1              ack();   
 139   1              stop_bit();
 140   1              //EA=1;
 141   1      } 
 142          


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