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

📄 data.lst

📁 抄水表手持POS代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.23a  DATA                                                                  01/13/2006 09:40:04 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE DATA
OBJECT MODULE PLACED IN Data.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Data.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "_POS.h"
   2          #include "AppSjk.h"
   3          #include "AppData.h"
   4          
   5          extern uint UCardBal_0;//交易金额
   6          uchar SBH[2];
   7          extern void display(char line,uchar *buff);
   8          extern uchar Get_Money(uchar *buff);//输入钱数
   9          
  10          bit sbhflag=NOK;
  11          bit ZBHFlag=NOK;
  12          bit GLKFlag=NOK;
  13          uchar XLFlag;
  14          
  15          extern uint LineNum;
  16          extern uchar BusNum[2];//车辆自编号
  17          extern uchar OpCardNum[2];//承包人编号
  18          extern uchar GLCardNum[3];//管理卡发行卡号
  19          extern bit ReadUCInc();
  20          
  21          long ReadLen()
  22          {
  23   1      uchar xdata ret1,ret2,buff[9],buff1[9];
  24   1      int i;
  25   1      long len=0;
  26   1      for(i=0;i<8;i++) buff[i]=_FlashByteRead(LENPAGE ,LSZLENADDR+i );
  27   1      ret1=ValidData(buff);
  28   1      for(i=0;i<8;i++) buff1[i]=_FlashByteRead(LENPAGEBAK ,LSZLENADDR+i );
  29   1      ret2=ValidData(buff1);
  30   1      if((ret1==OK)&&(ret2==OK)) {len=buff[2]+buff[3]*0x100;}//TTTTTTTT
  31   1      else if((ret1==OK)&&(ret2!=OK)){len=buff[2]+buff[3]*0x100;_FlashSectormodfiy(LENPAGEBAK,buff,LSZLENADDR,8)
             -;}
  32   1      else if((ret1!=OK)&&(ret2==OK)){len=buff1[2]+buff1[3]*0x100;_FlashSectormodfiy(LENPAGE,buff1,LSZLENADDR,8)
             -;}
  33   1      else len=-1;//{len=FixLen();sprintf(str,"len=%02ld        ",len);_Display(0,0,str,11);_GetChar();}
  34   1      //sprintf(str,"len=%02ld        ",len);_Display(0,0,str,11);_GetChar();
  35   1      return len; 
  36   1      }
  37          /*
  38          uint FixLen()
  39          {
  40          uint xdata len,i,j,n;
  41          uchar xdata page;
  42          uchar xdata buffer[33];
  43          ulong xdata beg_addr;
  44          uchar xdata buff[32]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  45                                0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  46                                                                   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  47                                                                   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
  48          
  49          len=9000;
  50          for (n=0;n<len;n++)
  51           {
  52            i=9000-n;
  53            for(j=0;j<32;j++){page=(i*32+j)/PAGELENGTH+LSZPAGE;beg_addr=(i*32+j)%PAGELENGTH;buffer[j]=_FlashByteRead
C51 COMPILER V6.23a  DATA                                                                  01/13/2006 09:40:04 PAGE 2   

             -(page ,beg_addr );}
  54            if(memcmp(buffer,buff,32)==0)
  55             {for(j=0;j<32;j++){page=(i*32+j)/PAGELENGTH+LSZPAGEBAK;beg_addr=(i*32+j)%PAGELENGTH;buffer[j]=_FlashByt
             -eRead(page ,beg_addr );}
  56                   if(memcmp(buffer,buff,32)!=0)return i+1;}
  57            else return i+1;
  58           }
  59          }
  60          */
  61          uchar WriteLen(uint len) 
  62          {
  63   1      uchar xdata tmp[9];
  64   1      uchar i,j;
  65   1      
  66   1      memset(tmp,0,8);
  67   1      tmp[CC_PHPB]=CC_PB1;tmp[CC_PHPB+1]=CC_PB2;
  68   1      tmp[2]=(uchar)len;
  69   1      tmp[3]=(uchar)(len>>8);
  70   1      _Calc_crc(CRC16, 6, tmp, tmp+6);
  71   1      for(i=0;i<3;i++){if(_FlashSectormodfiy(LENPAGE,tmp,LSZLENADDR,8)==TRUE)break;}
  72   1      for(j=0;j<3;j++){if(_FlashSectormodfiy(LENPAGEBAK,tmp,LSZLENADDR,8)==TRUE)break;}
  73   1      if((i==3)&&(j==3))return NOK;
  74   1      else return OK;
  75   1      }
  76          
  77          /*uchar ReadLSZ(uchar pagelen,uint beginaddr,uchar *buffer)
  78          {
  79          uchar xdata ret1,ret2,buff[33],buff1[33];
  80          _FlashRead(LSZPAGE+pagelen,beginaddr,32,buff);
  81          ret1=ValidFlow(buff);
  82          if(ret1==OK){memcpy(buffer,buff,32);return OK;}
  83          /*else
  84          {
  85           _FlashRead(LSZPAGEBAK+pagelen,beginaddr,32,buff1);
  86           ret2=ValidFlow(buff1);if(ret2==OK){memcpy(buffer,buff1,32);return OK;}
  87           else {memset(buff1,0xff,32);memcpy(buffer,buff1,32);return NOK;}
  88          }*/
  89          //}
  90          
  91          uchar WriteLSZ(uchar *buff,ulong beginaddr, uint length)
  92          {
  93   1      uint i,j,m,beg_addr;
  94   1      uchar page1,page2;
  95   1      //FlashSectorerase(20);
  96   1      for(i=0;i<length;i++)
  97   1      {
  98   2       page1=(beginaddr+i)/PAGELENGTH+LSZPAGE;
  99   2       page2=(beginaddr+i)/PAGELENGTH+LSZPAGEBAK;
 100   2       beg_addr=(beginaddr+i)%PAGELENGTH;
 101   2       for(j=0;j<3;j++){if(_FlashByteWrite(page1,beg_addr,buff[i])==TRUE)break;}
 102   2       for(m=0;m<3;m++){if(_FlashByteWrite(page2,beg_addr,buff[i])==TRUE)break;}
 103   2      }
 104   1      if((j==3)&&(m==3))return NOK;
 105   1      else return OK;
 106   1      }
 107          
 108          uchar InitLSZ()
 109          {
 110   1       uchar xdata i;
 111   1       long xdata len;
 112   1       for (i=0;i<3;i++)
 113   1       {
C51 COMPILER V6.23a  DATA                                                                  01/13/2006 09:40:04 PAGE 3   

 114   2        WriteLen(0);
 115   2        len=ReadLen();
 116   2        if(len==0) break;
 117   2       }
 118   1       if((i==3)&&(len!=0))return NOK;
 119   1       for(i=0;i<5;i++) {if(_FlashSectorErase(LSZPAGE+i)!=TRUE) return NOK;_delay_1ms(50);}
 120   1       for(i=0;i<5;i++) {if(_FlashSectorErase(LSZPAGEBAK+i)!=TRUE) return NOK;_delay_1ms(50);}
 121   1       Clear_GLKFlag();
 122   1       return OK;
 123   1      }
 124          /*
 125          uchar InitLSZ()
 126          {
 127           uchar i;
 128          
 129          
 130           _FlashSectorErase(LENPAGE);_FlashSectorErase(LENPAGEBAK);
 131           _FlashSectorErase(HMDPAGE);_FlashSectorErase(HMDPAGEBAK);
 132           for(i=0;i<5;i++) {if(_FlashSectorErase(LSZPAGE+i)!=TRUE) return NOK;_delay_1ms(50);}
 133           for(i=0;i<5;i++) {if(_FlashSectorErase(LSZPAGEBAK+i)!=TRUE) return NOK;_delay_1ms(50);}
 134           return OK;
 135          }*/
 136          
 137          uchar ValidData(uchar *buff)
 138          {
 139   1      uchar xdata crc[2];
 140   1      
 141   1      _Calc_crc(CRC16,6,buff,crc);
 142   1      if((crc[0]!=buff[ 6])||(crc[1]!=buff[ 7])) return NOK;
 143   1      if(buff[CC_PHPB]!=CC_PB1)return NOK;
 144   1      if(buff[CC_PHPB+1]!=CC_PB2)return NOK;
 145   1      return OK; 
 146   1      }
 147          
 148          uchar ValidFlow(uchar *tm)//检测CRC
 149          {
 150   1      uchar xdata crc[2]; //check CRC
 151   1      _Calc_crc(CRC16,14,tm,crc);
 152   1      if((crc[0]!=tm[14])||(crc[1]!=tm[15])) return NOK;
 153   1      return OK;
 154   1      }
 155          
 156          void re_crc(uchar *crc,uchar *buffer,uint length, uchar *out)
 157          {
 158   1       uint len;
 159   1       uchar xdata buff[35]; //max==100
 160   1       len=length/LSZLENGTH;
 161   1       buff[0]=crc[0];
 162   1       buff[1]=crc[1];
 163   1       memcpy(buff+2,buffer,32);
 164   1       _Calc_crc(CRC16,34,buff,out);
 165   1      }
 166          
 167          uchar InitJHLSZ()
 168          {
 169   1       if(_FlashSectorErase(JHPAGE)!=TRUE) return NOK;
 170   1       return OK;
 171   1      }
 172          
 173          
 174          uchar WriteJHLSZ(uchar page,uchar *buff,uint beginaddr, uint length)
 175          {
C51 COMPILER V6.23a  DATA                                                                  01/13/2006 09:40:04 PAGE 4   

 176   1      uint i,j,m,beg_addr;
 177   1      for(i=0;i<length;i++)
 178   1      {
 179   2       beg_addr=beginaddr+i;
 180   2       for(j=0;j<3;j++){if(_FlashByteWrite(page,beg_addr,buff[i])==TRUE)break;}
 181   2      }
 182   1      if(j==3) return NOK;
 183   1      else return OK;
 184   1      }
*** WARNING C280 IN LINE 176 OF DATA.C: 'm': unreferenced local variable
 185          
 186          void DownLoad()
 187          {
 188   1      ulong i;
 189   1      uint  j,beginaddr,len;
 190   1      uchar xdata key,uret,page;
 191   1      
 192   1      _pRecBuf=0;i=0;_Clr();
 193   1       while(1) 
 194   1       {
 195   2        _Display(0,1,"正在连接主机    ",16);_Display(0,2,"按取消键退出    ",16);
 196   2        key=_GetKey(111);if(key==KeyB_No)return;
 197   2        uret = _ComR232();
 198   2        if(uret==CC_TONGXUN_2){if(_R232Buf[CC_ADDRINF+1]==0x02)break;}
 199   2        i++;if(i>20){_pRecBuf=0;i=0;}
 200   2       }
 201   1       len=(uint)_R232Buf[CC_ADDRINF+4]+(uint)_R232Buf[CC_ADDRINF+5]*0x100;
 202   1      // page=_R232Buf[CC_ADDRINF+11]; if((page<1)||(page>8))page=0; else page--;
 203   1       _S232Buf[CC_ADDRINF]=CC_TONGXUN_2;_S232Buf[CC_ADDRINF+1]=2;_S232Buf[CC_ADDRINF+2]=0;_S232Buf[CC_ADDRINF+3
             -]=0;
 204   1       _ComS232(4);_pRecBuf=0;i=0;
 205   1       _Clr();display(2, "正在下载...      ");
 206   1       if(InitJHLSZ()==NOK){_Clr();display(2, "初始化失败        ");display(3, "请重新下载        ");_GetChar();
             -return;}
 207   1       for(j=0;j<len;j++)
 208   1       {
 209   2        while(1)
 210   2        {
 211   3         uret = _ComR232();
 212   3              if(uret==CC_TONGXUN_2)
 213   3              {
 214   4               //beginaddr=(uint)page*32*16+((uint)_R232Buf[CC_ADDRINF+2]-1)*0x20;
 215   4               beginaddr=(((uint)_R232Buf[CC_ADDRINF+2]+(uint)_R232Buf[CC_ADDRINF+3]*0x100-1)*JHLENGTH)%PAGELENGTH;
 216   4               page=JHPAGE+(((uint)_R232Buf[CC_ADDRINF+2]+(uint)_R232Buf[CC_ADDRINF+3]*0x100-1)*JHLENGTH)/PAGELENGTH;
 217   4               WriteJHLSZ(page,_R232Buf+CC_ADDRINF+4,beginaddr,JHLENGTH);
 218   4               _S232Buf[CC_ADDRINF]=CC_TONGXUN_2;_S232Buf[CC_ADDRINF+1]=2;_S232Buf[CC_ADDRINF+2]=_R232Buf[CC_ADDRINF+2]

⌨️ 快捷键说明

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