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

📄 dvs-eeprom.lst

📁 电话报警主机AT89S52单片机并带有网络模块通信协议
💻 LST
字号:
C51 COMPILER V7.06   DVS_EEPROM                                                            02/27/2009 16:14:57 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DVS_EEPROM
OBJECT MODULE PLACED IN dvs-eeprom.OBJ
COMPILER INVOKED BY: D:\Program Files\keil2.0\C51\BIN\C51.EXE dvs-eeprom.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //dvs-eeprom.C
   2          //===========================================================================================
   3          //24c02用于存放开机密码和本机编码
   4          //0,1开机标致,23456是密码 (6为设置标致)
   5          //7振铃次数的设置标致的地址
   6          //8为警笛时间定时
   7          //9球机定时间地址
   8          //10   315解码后的首地址
   9          
  10          //46   防区标志首地址
  11          //55   电话号码,每组号码20位,每组第1位为设置标致位
  12          //===========================================================================================
  13          #include "DVS-V1.0.H"
  14          #include   <intrins.h> 
  15          
  16          bit ErrorBit ;                                                                                          //读写错误标志  ,1错误  0 正确 
  17          
  18          //========================================== 函数定义 ========================================
  19          void Delay1Ms(unsigned int auc_time);                                           //延时1ms*auc_time
  20          void WrEEPROM(unsigned char address,unsigned char indata);      //写EEPROM
  21          unsigned char RdEEPROM(unsigned char address);                          //读EEPROM
  22          //============================================================================================
  23          
  24          
  25          
  26          //============================================================================================
  27          //语法格式:Delay1Ms
  28          //实现功能:延时1ms*auc_time
  29          //参数:        需要延时的时间
  30          //1表示1ms
  31          //返回值:      无
  32          //创建时间:2008-12-01          修改时间:
  33          //创建人员:                    修改人员:
  34          //============================================================================================
  35          void Delay1Ms(unsigned int auc_time)
  36          {
  37   1              unsigned int idata luc_i,luc_j;
  38   1              for(luc_j = 0 ;luc_j < auc_time ; luc_j++)
  39   1              {
  40   2                      for(luc_i=0;luc_i<310;luc_i++)
  41   2                      {
  42   3                      //      ClearWatchDog();
  43   3                      }
  44   2              }
  45   1      }
  46          
  47          
  48          
  49          
  50          
  51          //============================================================================================
  52          //语法格式:Delay4us
  53          //实现功能:延时4us
  54          //参数:        无
  55          //返回值:      无
C51 COMPILER V7.06   DVS_EEPROM                                                            02/27/2009 16:14:57 PAGE 2   

  56          //创建时间:2008-12-01          修改时间:
  57          //创建人员:                    修改人员:
  58          //============================================================================================
  59          void Delay4Us()
  60          {
  61   1              unsigned char idata luc_i;
  62   1              for(luc_i=0;luc_i<8;luc_i++)
  63   1              {
  64   2                      ;
  65   2                      //ClearWatchDog();
  66   2              }
  67   1      }
  68          
  69          
  70          
  71          
  72          //============================================================================================
  73          //语法格式:Start()
  74          //实现功能:EEPROM读写的开始
  75          //参数:        无
  76          //返回值:      无
  77          //创建时间:2008-12-01          修改时间:
  78          //创建人员:                    修改人员:
  79          //============================================================================================
  80          void Start()
  81          {
  82   1              EEROM_SCL=0;                                                                                    //低电平改变DA线
  83   1              EEROM_SDA=1;
  84   1              EEROM_SCL=1;
  85   1              Delay4Us();
  86   1              EEROM_SDA=0;
  87   1              Delay4Us();
  88   1              EEROM_SCL=0;
  89   1      }
  90          
  91          
  92          
  93          
  94          
  95          
  96          //============================================================================================
  97          //语法格式:Stop()
  98          //实现功能:EEPROM读写的停止
  99          //参数:        无
 100          //返回值:      无
 101          //创建时间:2008-12-01          修改时间:
 102          //创建人员:                    修改人员:
 103          //============================================================================================
 104          void Stop()
 105          {
 106   1              EEROM_SCL=0;
 107   1              EEROM_SDA=0;
 108   1              EEROM_SCL=1;
 109   1              Delay4Us();
 110   1              EEROM_SDA=1;
 111   1              Delay4Us();
 112   1              EEROM_SCL=0;
 113   1      }
 114          
 115          
 116          
 117          //============================================================================================
C51 COMPILER V7.06   DVS_EEPROM                                                            02/27/2009 16:14:57 PAGE 3   

 118          //语法格式:RdOperation()
 119          //实现功能:EEPROM读1字节
 120          //参数:        无
 121          //返回值:      无
 122          //创建时间:2008-12-01          修改时间:
 123          //创建人员:                    修改人员:
 124          //============================================================================================
 125          unsigned char RdOperation(void)
 126          {
 127   1              unsigned char idata luc_time;                                           // 一个字节
 128   1              unsigned char idata luc_DataIn=0;                                       // 读进来的数据
 129   1              for(luc_time=0;luc_time<8;luc_time++)
 130   1              {
 131   2                      EEROM_SCL=0;
 132   2                      Delay4Us();
 133   2                      EEROM_SCL=1;
 134   2                      Delay4Us();
 135   2                      luc_DataIn=(luc_DataIn<<1)|EEROM_SDA;
 136   2              }
 137   1              EEROM_SCL=0;
 138   1              Delay4Us();
 139   1              EEROM_SDA=1;
 140   1              Delay4Us();
 141   1              EEROM_SCL=1;
 142   1              return luc_DataIn;
 143   1      }
 144          
 145          //============================================================================================
 146          //语法格式:WrOperation()
 147          //实现功能:EEPROM写1字节
 148          //参数:        写入的数
 149          //返回值:      无
 150          //创建时间:2008-12-01          修改时间:
 151          //创建人员:                    修改人员:
 152          //============================================================================================
 153          void WrOperation(unsigned char DataOut)
 154          {
 155   1              unsigned char idata luc_i ;                                             //一个字节 
 156   1              for(luc_i = 0 ; luc_i < 8 ; luc_i ++)   
 157   1              {   
 158   2                      EEROM_SDA   =   DataOut   &   0x80;                 //送数据到数据线上   
 159   2                      DataOut   <<=   1;   
 160   2                      _nop_();                 
 161   2                      EEROM_SCL   =   1;                                     //置时钟信号为高电平,使数据有效   
 162   2                      Delay4Us();          
 163   2                      EEROM_SCL   =   0;   
 164   2                      _nop_();   
 165   2                      _nop_();                   
 166   2              }   
 167   1              EEROM_SDA   =   1;   
 168   1              _nop_();   
 169   1              _nop_();   
 170   1              EEROM_SCL   =   1;   
 171   1              Delay4Us();    
 172   1              ErrorBit   =   EEROM_SDA;   
 173   1              EEROM_SCL   =   0;             
 174   1      }
 175          
 176          //============================================================================================
 177          //语法格式:WrEEPROM()
 178          //实现功能:     写EEPROM
 179          //参数:        
C51 COMPILER V7.06   DVS_EEPROM                                                            02/27/2009 16:14:57 PAGE 4   

 180          //address 写入的地址
 181          //indata  写入的数据
 182          //返回值:      无
 183          //创建时间:2008-12-01          修改时间:
 184          //创建人员:                    修改人员:
 185          //============================================================================================
 186          void WrEEPROM(unsigned char address,unsigned char indata)
 187          {
 188   1              //ClearWatchDog();
 189   1              Start();                                                                        //开始
 190   1              WrOperation(0xa0);                                                      //写器件地址
 191   1              WrOperation(address);                                           //写EEPROM地址
 192   1              WrOperation(indata);                                            //写数据
 193   1              Stop();                                                                         //停止
 194   1              Delay1Ms(8);                                                            //延时,EEPROM内部操作
 195   1              while(0);
 196   1      }
 197          
 198          //============================================================================================
 199          //语法格式:RdEEPROM(
 200          //实现功能:     读EEPROM
 201          //参数:        
 202          //address       读出的地址
 203          //返回值:      读出的数据
 204          //创建时间:2008-12-01          修改时间:
 205          //创建人员:                    修改人员:
 206          //============================================================================================
 207          unsigned char RdEEPROM(unsigned char address)
 208          {
 209   1              unsigned char idata luc_x;
 210   1              //ClearWatchDog();
 211   1              Start();
 212   1              WrOperation(0xa0);                                                      //写器件地址
 213   1              WrOperation(address);
 214   1              Start();
 215   1              WrOperation(0xa1);                                                      //写EEPROM地址(读)
 216   1              luc_x=RdOperation();
 217   1              Stop();
 218   1              return luc_x;
 219   1      }


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