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

📄 temp.lst

📁 一个基于XMODEM协议的下载字库的程序
💻 LST
字号:
C51 COMPILER V7.50   TEMP                                                                  04/15/2006 16:14:46 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TEMP
OBJECT MODULE PLACED IN temp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE temp.c LARGE OPTIMIZE(5,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2           #include "config.h"
   3                
   4          typedef  unsigned char  BYTE;    //无符号字符型(或者字节型)
   5          typedef           char  SBYTE;   //有符号字节型(或者字节型)
   6          typedef  unsigned int   WORD;    //无符号整型(或者字型)
   7          typedef           int   SWORD;   //有无符号整型(或者字型)
   8          typedef  unsigned long  DWORDS;   //无符号长整型(或者双字型)
   9          typedef           long  SDWORD;  //有符号长整型(或者双字型)
  10          typedef           float FSDWORD; //浮点型
  11          typedef          double DSDWORD; //双精度浮点型
  12          
  13          
  14          extern PSD_REGS uPSD32;
  15          
  16          #define CS1 uPSD32.DATAOUT_A |= 0x40;
  17          #define CS0     uPSD32.DATAOUT_A &= 0xBF;
  18          
  19          
  20          //void SPI_SendChar(INT8U ch)
  21          void vSendByte(INT8U ch)
  22          {
  23   1              INT8U data i=8;
  24   1              
  25   1              while(i--)
  26   1              {
  27   2                      SCK = 0;
  28   2                      if((ch & 0x80) == 0x80) SI = 1;
  29   2                      else                                    SI = 0;
  30   2                      SCK = 1;
  31   2                      ch <<= 1;
  32   2              }
  33   1      }
  34          /********************************************************************************************
  35          **函数名:      bGetByte
  36          **功能简介:    从X25645(SPI EEPROM)得到一字节数据
  37          **参数说明:    bTemp-得到的数据返回
  38          **调用函数:    无
  39          **全局变量:    无
  40          **函数返回:    无
  41          **最后修改时间:2003-07-21
  42          **********************************************************************************************/
  43          /*BYTE bGetByte(void)
  44          {
  45             BYTE bI=8,bTemp=0;
  46              
  47              while(bI--)
  48              {  
  49                  bTemp <<= 1;
  50                  SCK = 1;
  51                  SCK = 0;
  52                  //ch=|SO;
  53                  if(SO == 1)bTemp |= 0x01;
  54                  if(SO == 0)bTemp &= 0xfe;
  55                  }
C51 COMPILER V7.50   TEMP                                                                  04/15/2006 16:14:46 PAGE 2   

  56          
  57                  SCK = 1;//new add-2003-09-02
  58          
  59                  return(bTemp);
  60          }        */
  61          
  62          //INT8U SPI_ReadChar(void)
  63          BYTE bGetByte(void)
  64          {
  65   1              INT8U data i=8, ch=0;
  66   1              
  67   1              while(i--)
  68   1              {
  69   2                      ch <<= 1;
  70   2                      SCK = 1;
  71   2                      SCK = 0;
  72   2                      
  73   2                      if(SO == 1)     ch |= 0x01;
  74   2                      else            ch &= 0xFE;
  75   2              }
  76   1              SCK = 1;
  77   1              
  78   1              return ch;
  79   1      }
  80          
  81          
  82          
  83          /********************************************************************************************
  84          **函数名:      bReadStatus
  85          **功能简介:    为检查忙标志,读X25645(SPI EEPROM)的状态寄存器
  86          **参数说明:    无
  87          **调用函数:    vSendByte,bGetByte
  88          **全局变量:    无
  89          **函数返回:    bTemp-读出的状态字节
  90          **最后修改时间:2003-07-21
  91          **********************************************************************************************/
  92          /*
  93          BYTE bReadStatus(void) 
  94          {
  95            BYTE bTemp;
  96            WORD wTemp;
  97            DWORDS dwI=0;
  98              
  99                  //CS = 0;
 100                  CS0;
 101              vSendByte(RDSR_INST);
 102              wTemp = 0xffff;
 103              ////wTemp = 0xa0;
 104              
 105              do
 106              {
 107                  bTemp = bGetByte();
 108              }while((bTemp & 0x01) == 0x01);
 109                  //CS = 1;
 110                  CS1;
 111              return(bTemp);
 112          }  */
 113           
 114          //INT8U SPI_ReadStatus(void)
 115          BYTE bReadStatus(void)
 116          {
 117   1              INT8U data ch;
C51 COMPILER V7.50   TEMP                                                                  04/15/2006 16:14:46 PAGE 3   

 118   1              
 119   1              CS0;
 120   1      //      SPI_SendChar(RDSR_INST);
 121   1              vSendByte(RDSR_INST);
 122   1      JREAD_STATUS0:
 123   1      //      ch = SPI_ReadChar();
 124   1              ch = bGetByte();
 125   1              if((ch & 0x01) == 1)    goto JREAD_STATUS0;
 126   1              CS1;
 127   1              
 128   1              return ch;
 129   1      }
 130          
 131          /********************************************************************************************
 132          **函数名:      vProgramStatus
 133          **功能简介:    编程X25645(SPI EEPROM)的状态寄存器
 134          **参数说明:    bCh-需编程的数据
 135          **调用函数:    vSendByte
 136          **全局变量:   
 137          *函数返回:    无
 138          **最后修改时间:2003-07-21
 139          **********************************************************************************************/
 140          void vProgramStatus(BYTE bCh) 
 141          {
 142   1              //CS = 0;
 143   1              CS0;
 144   1          vSendByte(PRSR_INST);
 145   1          vSendByte(bCh);
 146   1              //CS = 1;
 147   1              CS1;
 148   1      }
 149          
 150          
 151          
 152          
 153          /********************************************************************************************
 154          **函数名:      bReadByte
 155          **功能简介:    读X25645(SPI EEPROM)某地址的单字节数据
 156          **参数说明:    wAddr-需要读的地址
 157          **调用函数:    vSendByte,bGetByte
 158          **全局变量:    无?
 159          **函数返回:    bTemp-读出的该地址的单字节数据                                                    .
 160          **最后修改时间:2003-07-21
 161          **********************************************************************************************/
 162          BYTE bReadByte(WORD wAddr)
 163          {
 164   1       BYTE bTemp,bAddrh,bAddrl;
 165   1             
 166   1          bAddrl = (BYTE)wAddr;
 167   1          wAddr >>= 8;
 168   1          bAddrh = (BYTE)wAddr;
 169   1              //CS = 0;
 170   1              CS0;
 171   1          vSendByte(READ_INST);
 172   1          vSendByte(0x00);
 173   1          vSendByte(bAddrh);
 174   1          vSendByte(bAddrl);
 175   1          bTemp = bGetByte(); 
 176   1              //CS = 1;
 177   1              CS1;
 178   1          return(bTemp);
 179   1      }
C51 COMPILER V7.50   TEMP                                                                  04/15/2006 16:14:46 PAGE 4   

 180          /********************************************************************************************
 181          **函数名:      vProgramEnable
 182          **功能简介:    X25645(SPI EEPROM)编程使能
 183          **参数说明:    无
 184          **调用函数:    vSendByte
 185          **全局变量:    无
 186          **函数返回:    无
 187          **最后修改时间:2003-07-21
 188          **********************************************************************************************/
 189          void vProgramEnable(void)
 190          {
 191   1              //CS = 0;
 192   1              CS0;
 193   1          vSendByte(PREN_INST);
 194   1              //CS = 1;
 195   1              CS1;
 196   1      }
 197          
 198          
 199          /********************************************************************************************
 200          **函数名:      vProgramDisable
 201          **功能简介:    X25645(SPI EEPROM)编程失效复位
 202          **参数说明:    无
 203          **调用函数:    vSendByte
 204          **全局变量:    无?
 205          **函数返回:    无
 206          **最后修改时间:2003-07-21
 207          **********************************************************************************************/
 208          void vProgramDisable(void)
 209          {
 210   1              //CS = 0;
 211   1              CS0;
 212   1          vSendByte(PRDI_INST);
 213   1              //CS = 1;
 214   1              CS1;
 215   1      }
 216            
 217          /********************************************************************************************
 218          **函数名:      vBulkErase
 219          **功能简介:    擦除nx25p40
 220          **参数说明:    无
 221          **调用函数:    vProgramEnable,vSendByte,bReadStatus
 222          **全局变量:    无
 223          **函数返回:    无
 224          **最后修改时间:2004-06-15
 225          **********************************************************************************************/
 226          void SPI_EraseBulk1(void)
 227          {
 228   1              //CS = 0;
 229   1              vProgramEnable();
 230   1              CS0;
 231   1          vSendByte(BULK_ERASE);
 232   1              //CS = 1;
 233   1              CS1;
 234   1              bReadStatus();
 235   1      }
 236            
 237          /********************************************************************************************
 238          **函数名:      vSectorErase
 239          **功能简介:    扇区擦除nx25p40
 240          **参数说明:    bSecNum扇区号0~7
 241          **调用函数:    vProgramEnable,vSendByte,bReadStatus
C51 COMPILER V7.50   TEMP                                                                  04/15/2006 16:14:46 PAGE 5   

 242          **全局变量:    无?
 243          **函数返回:    无
 244          **最后修改时间:2004-06-15
 245          **********************************************************************************************/
 246          void vSectorErase(BYTE bSecNum)
 247          {
 248   1              //CS = 0;
 249   1              vProgramEnable();
 250   1              CS0;
 251   1          vSendByte(SECTOR_ERASE);
 252   1          vSendByte(bSecNum);
 253   1          vSendByte(0x00);
 254   1          vSendByte(0x00);
 255   1              //CS = 1;
 256   1              CS1;
 257   1              bReadStatus();
 258   1              
 259   1      }
 260          
 261          
 262          /********************************************************************************************
 263          **函数名:      vProgramByte
 264          **功能简介:    编程X25645(SPI EEPROM)单字节到某地址
 265          **参数说明:    wAddr-需编程的地址,bCh-写入的字节数据
 266          **调用函数:    vProgramEnable,vSendByte,bReadStatus,vProgramDisable
 267          **全局变量:    无
 268          **函数返回:    无
 269          **最后修改时间:2003-07-21
 270          **********************************************************************************************/
 271          void vProgramByte(WORD wAddr,BYTE bCh)
 272          {
 273   1        BYTE bAddrh,bAddrl;
 274   1             
 275   1          vProgramEnable();
 276   1          
 277   1          bAddrl = (BYTE)wAddr;
 278   1          wAddr >>= 8;
 279   1          bAddrh = (BYTE)wAddr;
 280   1              //CS = 0;
 281   1              CS0;
 282   1          vSendByte(PROGRAM_INST);
 283   1          vSendByte(0x00);
 284   1          vSendByte(bAddrh);
 285   1          vSendByte(bAddrl);
 286   1          vSendByte(bCh);
 287   1              //CS = 1;
 288   1              CS1;
 289   1          bReadStatus();
 290   1          vProgramDisable();
 291   1      }
 292          
 293          
 294          
 295          
 296          
 297                  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    331    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.50   TEMP                                                                  04/15/2006 16:14:46 PAGE 6   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   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 + -