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

📄 e25045.lst

📁 矿工定位系统单端
💻 LST
字号:
C51 COMPILER V7.05   E25045                                                                07/08/2005 11:42:14 PAGE 1   


C51 COMPILER V7.05, COMPILATION OF MODULE E25045
OBJECT MODULE PLACED IN E25045.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E25045.C BROWSE MODDP2 DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          
   3          #include "e25045.h"
   4          sbit CS                 = P1^0;                 //EEPROM及看门狗片选
   5          sbit SI                 = P1^6;                 //串行数据输入
   6          sbit SCK                = P1^5;                 //串行时钟
   7          sbit SO                 = P1^1;                 //串行数据输出
   8          
   9          
  10          
  11          
  12          /***********************************************************************
  13          *    I2c BUS Related       sbit SCL= P1^0;  sbit SDA  = P1^1;          *
  14          ***********************************************************************/
  15          void    Delay5(void)            // 5 us
  16          {       unsigned char idata i; for(i=0;i<100;i++);
  17   1      }
  18          //******************************************************
  19          void Watch_dog(void)
  20          {
  21   1          CS=1;
  22   1          CS=0;
  23   1          Delay5(); 
  24   1          CS=1;
  25   1      }
  26          //初始化X25043/25045
  27          /********************************************************************************
  28           _______________________________
  29          | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |   BL1         BL0            WD1  WD0
  30           --------------------------------    0     0     None     0      0  1.4Seconds
  31          | x | x |WD1|WD0|BL1|BL0|WEL|WIP|    0     1   180--1FF   0    1  600Milliseconds
  32          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     1     0   100--1FF   1    0  200Milliseconds
  33                                                   1     1   000--1FF   1    1  Disabled
  34          *********************************************************************************/
  35          void Init_X25045(unsigned char STATUS)
  36          {
  37   1              CS=0;
  38   1              SO=1;
  39   1              SCK=0;
  40   1              SI=0;
  41   1              Wrsr_Cmd(STATUS);
  42   1      }
  43          
  44          //设置写使能锁
  45          void Wren_Cmd(void)
  46          {
  47   1              SCK=0;
  48   1              CS=0;
  49   1              OutByte(WREN_INST);
  50   1              SCK=0;
  51   1              CS = 1;
  52   1      }
  53          
  54          //读状态寄存器
  55          unsigned char Rdsr_Cmd(void)
C51 COMPILER V7.05   E25045                                                                07/08/2005 11:42:14 PAGE 2   

  56          {
  57   1              unsigned char RetCode;
  58   1              SCK = 0;
  59   1              CS = 0;
  60   1              OutByte(RDSR_INST);
  61   1              RetCode = InByte();
  62   1              SCK = 0;
  63   1              CS  = 1;
  64   1              return RetCode;
  65   1      }
  66          
  67          //写状态寄存器
  68          /*******************************************
  69           ___________________________________________
  70          | X | X | WD1 | WD0 | BL1 | BL0 | WEL | WIP |
  71           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  72                                                  0                       0(1400) 0                       0(None)
  73                                                  0                       1(600)  0                       1($180-$1FF)
  74                                                  1                       0(200)  1                       0($100-$1FF)
  75                                                  1                       1       Disa    1                       1($000-$1FF)
  76          ********************************************/
  77          
  78          void Wrsr_Cmd(unsigned char STATUS)
  79          {
  80   1              if((Rdsr_Cmd()&0x01)==1) return;
  81   1              CS = 0;
  82   1              Wren_Cmd();
  83   1              SCK = 0;
  84   1              CS = 1;
  85   1              CS = 0;
  86   1        OutByte(WRSR_INST);
  87   1              OutByte(STATUS);
  88   1              SCK = 0;
  89   1              CS  = 1;
  90   1              //Wip_Poll();
  91   1      }
  92          
  93          //写一个字节
  94          void Byte_Write(unsigned int Addr,unsigned char wbyte)
  95          {
  96   1              unsigned char data HAddr,LAddr,Temp;
  97   1              while((Rdsr_Cmd()&0x01)==1);
  98   1              CS = 0;
  99   1              Wren_Cmd();
 100   1              SCK = 0;
 101   1              CS = 1;
 102   1              CS = 0;
 103   1              LAddr = (unsigned char)Addr;
 104   1              HAddr = Addr>>8;
 105   1              Temp = (WRITE_INST&0xF7)|((HAddr<<3)&0x08);
 106   1              OutByte(Temp);
 107   1              OutByte(LAddr);
 108   1              OutByte(wbyte);
 109   1              SCK = 0;
 110   1              CS  = 1;
 111   1              //Wip_Poll();
 112   1      }
 113          
 114          //读一个字节
 115          unsigned char Byte_read(unsigned int Addr)
 116          {
 117   1              unsigned char data HAddr,LAddr,Temp;
C51 COMPILER V7.05   E25045                                                                07/08/2005 11:42:14 PAGE 3   

 118   1              while((Rdsr_Cmd()&0x01)==1); 
 119   1              SCK = 0;
 120   1              CS = 0;
 121   1              LAddr = (unsigned char)Addr;
 122   1              HAddr = Addr>>8;
 123   1              Temp = (READ_INST&0xF7)|((HAddr<<3)&0x08);
 124   1              OutByte(Temp);
 125   1              OutByte(LAddr);
 126   1              Temp = InByte();
 127   1              SCK= 0;
 128   1              CS  = 1;
 129   1              //Wip_Poll();
 130   1              return Temp;
 131   1      }
 132          
 133          
 134          /*****************************************************************/
 135          //对串行FLASH进行读校验
 136          /*******************************************************************/
 137          unsigned char ByteRead_Check (unsigned int addrR)
 138          {
 139   1        unsigned char TempVar,TempVar1,TempVar2;
 140   1        TempVar2=0;
 141   1        TempVar=Byte_read(addrR);
 142   1        do
 143   1        {
 144   2                      TempVar1=Byte_read(addrR);
 145   2              if(TempVar==TempVar1)
 146   2                 {
 147   3              TempVar2++;
 148   3                      }
 149   2              else 
 150   2                      {  
 151   3                              TempVar2=0;
 152   3                  TempVar=TempVar1;           
 153   3                      }
 154   2        }
 155   1        while(TempVar2<=3);
 156   1        return(TempVar);  
 157   1      }
 158          /************************************************/
 159          //对串行FLASH进行写校验
 160          /*************************************************************/
 161          void ByteWrite_Check (unsigned int addrW ,unsigned char VarTemp)
 162          {
 163   1              Byte_Write(addrW,VarTemp);    
 164   1        while(VarTemp!=Byte_read(addrW))
 165   1                      Byte_Write(addrW,VarTemp);      
 166   1      }
 167          
 168          //送一个字节到EEPROM
 169          void    OutByte(unsigned char b)
 170          {
 171   1              unsigned char i;
 172   1              unsigned char bb=0x80;
 173   1              for(i=0;i<8;i++)
 174   1              {
 175   2                      //SCK=0;
 176   2                      SI=b&bb;
 177   2                      bb>>=1;
 178   2                      SCK=0;
 179   2                      Delay5();
C51 COMPILER V7.05   E25045                                                                07/08/2005 11:42:14 PAGE 4   

 180   2                      SCK=1;
 181   2                      Delay5();
 182   2              }       
 183   1      }
 184          
 185          //从EEPROM接收一个字节
 186          unsigned char InByte(void)
 187          {
 188   1              unsigned char i;
 189   1              unsigned char b=0;
 190   1              for(i=0;i<8;i++)
 191   1              {
 192   2                      Delay5();
 193   2                      SCK=1;
 194   2                      SCK=0;
 195   2                      Delay5();
 196   2                      b=2*b+(unsigned char)SO;
 197   2              }
 198   1              return b;       
 199   1      }


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