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

📄 fx1n.lst

📁 PLC源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.16   FX1N                                                                  10/10/2009 14:43:37 PAGE 1   


C51 COMPILER V8.16, COMPILATION OF MODULE FX1N
OBJECT MODULE PLACED IN FX1N.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE FX1N.c LARGE WARNINGLEVEL(1) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "system.h"
   2          
   3          //=======================================================================================================
   4          // 函数名称: hextoasc
   5          //
   6          // 功能描述:  HEX 转 ASCII
   7          //
   8          // 输 入:  unsigned char hexdata
   9          //          
  10          // 输 出:  unsigned int
  11          //         
  12          // 全局变量:  
  13          // 调用模块: 无
  14          //
  15          // 作 者:  卢明君
  16          // 日 期:  2009年9月15日
  17          // 备  注:  
  18          //-------------------------------------------------------------------------------------------------------
  19          // 修改人:
  20          // 日 期:
  21          // 备  注: 
  22          //-------------------------------------------------------------------------------------------------------
  23          //=======================================================================================================
  24          unsigned int hextoasc(unsigned char hexdata)
  25          {
  26   1              unsigned char ucdata=0;
  27   1              unsigned int  backdata=0;
  28   1              unsigned int  tempdata=0;
  29   1              ucdata     = hexdata & 0x0f;
  30   1              backdata   = (ucdata<10)?(ucdata+0x30):(ucdata+0x41-0x0a);
  31   1              hexdata  >>= 4;
  32   1              ucdata     = hexdata & 0x0f;
  33   1              tempdata   = (ucdata<10)?(ucdata+0x30):(ucdata+0x41-0x0a);
  34   1              tempdata <<= 8;
  35   1              backdata  |= tempdata;
  36   1              return backdata;
  37   1      }
  38          //=======================================================================================================
  39          // 函数名称: asctohex
  40          //
  41          // 功能描述:  ASCII 转 HEX
  42          //
  43          // 输 入:  unsigned char *ascdata
  44          //          
  45          // 输 出:  unsigned char
  46          //         
  47          // 全局变量:  
  48          // 调用模块: 无
  49          //
  50          // 作 者:  卢明君
  51          // 日 期:  2009年9月15日
  52          // 备  注:  输入unsigned char *ascdata,函数内,使用到的为*ascdata和*(ascdata+1).
  53          //-------------------------------------------------------------------------------------------------------
  54          // 修改人:
  55          // 日 期:
C51 COMPILER V8.16   FX1N                                                                  10/10/2009 14:43:37 PAGE 2   

  56          // 备  注: 
  57          //-------------------------------------------------------------------------------------------------------
  58          //=======================================================================================================
  59          unsigned char asctohex(unsigned char *ascdata)
  60          {
  61   1              unsigned char backdata=0;
  62   1              unsigned char tempdata=0;
  63   1              if(*ascdata<0x3a)
  64   1                      backdata = *ascdata-0x30;
  65   1              else if(*ascdata>0x40)  
  66   1                      backdata = *ascdata-0x41+0x0a;
  67   1              if(*(ascdata+1)<0x3a)
  68   1                      tempdata = *(ascdata+1)-0x30;
  69   1              else if(*(ascdata+1)>0x40)      
  70   1                      tempdata = *(ascdata+1)-0x41+0x0a;
  71   1              backdata <<= 4;
  72   1              backdata  |= tempdata;
  73   1              return backdata;
  74   1      }
  75          //=======================================================================================================
  76          // 函数名称: ascto0F
  77          //
  78          // 功能描述:  将ASCII 转换成0~F
  79          //
  80          // 输 入:  unsigned char ucdata
  81          //          
  82          // 输 出:  unsigned char
  83          //         
  84          // 全局变量:  
  85          // 调用模块: 无
  86          //
  87          // 作 者:  卢明君
  88          // 日 期:  2009年9月15日
  89          // 备  注:  ascto0F.F旁边的是数字0
  90          //-------------------------------------------------------------------------------------------------------
  91          // 修改人:
  92          // 日 期:
  93          // 备  注: 
  94          //-------------------------------------------------------------------------------------------------------
  95          //=======================================================================================================
  96          unsigned char ascto0F(unsigned char ucdata)
  97          {
  98   1              if(ucdata<0x3a)ucdata=ucdata-0x30;
  99   1              else if(ucdata>0x40)ucdata=ucdata-0x41+0x0a;
 100   1              else while(1);          //      错误处理
 101   1              return ucdata;
 102   1      }
 103          //=======================================================================================================
 104          // 函数名称: WriteFlash
 105          //
 106          // 功能描述:  HEX 转 ASCII
 107          //
 108          // 输 入:  unsigned int WriteAddr,unsigned char *Buf,unsigned int WriteLen
 109          //          
 110          // 输 出:  void
 111          //         
 112          // 全局变量:  
 113          // 调用模块: IAPFlashProgremMode
 114          //
 115          // 作 者:  卢明君
 116          // 日 期:  2009年9月15日
 117          // 备  注:  WriteAddr为写地址;*Buf为待写存储区的指针;WriteLen为写的长度大小.
C51 COMPILER V8.16   FX1N                                                                  10/10/2009 14:43:37 PAGE 3   

 118          //-------------------------------------------------------------------------------------------------------
 119          // 修改人:
 120          // 日 期:
 121          // 备  注: 
 122          //-------------------------------------------------------------------------------------------------------
 123          //=======================================================================================================
 124          void WriteFlash(unsigned int WriteAddr,unsigned char *Buf,unsigned int WriteLen)
 125          {
 126   1              unsigned int i;
 127   1              unsigned char wrdata=0;
 128   1              for(i=0;i<WriteLen*2;i+=2)      //      由原来的每页写512字节,改为每页写256个字节.存储地址不连续; 由原来存储ASCII码
             -格式,改为存储HEX格式.
 129   1              {
 130   2                      wrdata=asctohex((unsigned char *)(Buf+i));
 131   2                      IAPFlashProgremMode(WriteAddr++,wrdata);
 132   2              }
 133   1      }
 134          //=======================================================================================================
 135          // 函数名称: ErasurePLC
 136          //
 137          // 功能描述:  PLC擦除IAP空间
 138          //
 139          // 输 入:  unsigned char allorcode
 140          //          
 141          // 输 出:  void
 142          //         
 143          // 全局变量:  
 144          // 调用模块: IAPFlashErasureMode ; IAPFlashProgremMode ; IAPFlashReadMode ; 
 145          //
 146          // 作 者:  卢明君
 147          // 日 期:  2009年9月15日
 148          // 备  注:  
 149          //-------------------------------------------------------------------------------------------------------
 150          // 修改人:
 151          // 日 期:
 152          // 备  注: 
 153          //-------------------------------------------------------------------------------------------------------
 154          //=======================================================================================================
 155          void ErasurePLC(unsigned char allorcode)
 156          {
 157   1              unsigned int i;
 158   1              unsigned char ucdata=0;
 159   1              if(allorcode==ErasureALL)
 160   1              {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -