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

📄 comm.lst

📁 c8051f310xmodembootloader.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
 234   2                   break;
 235   2      
 236   2              default:
 237   2                   break;
 238   2          
 239   2        }
 240   1      
 241   1      }
C51 COMPILER V8.16   COMM                                                                  12/10/2009 11:19:18 PAGE 5   

 242          /**********************************************************************
 243          **函数原型:    PCS_r_reader()
 244          **入口参数:             none
 245          **出口参数:             none
 246          **返 回 值:    none
 247          **功能说明:             PC命令读基站参数
 248          ***********************************************************************/
 249          void PCS_r_reader()
 250          {
 251   1         uchar i;
 252   1      
 253   1         READER_PCS xdata *poreader;
 254   1         poreader=(READER_PCS xdata *)(combuf);
 255   1      
 256   1      
 257   1         memcpy(combuf+4,MyID,sizeof(MyID));
 258   1         
 259   1         
 260   1         for(i=0;i<8;i++)
 261   1         {
 262   2           if(power==pow[i])
 263   2               {
 264   3                 poreader->pcs_power=i;                 //查功率ItemIndex值
 265   3                 break;                 
 266   3               }
 267   2         }
 268   1          
 269   1         
 270   1      
 271   1         for(i=0;i<8;i++)
 272   1         {
 273   2           if(INACTIVITY_TIME==cardouttime[i])
 274   2               {
 275   3                 poreader->pcs_samecardtime=i;          //查相同卡号输出间隔时间ItemIndex值
 276   3                 break;                
 277   3               }
 278   2         }
 279   1          
 280   1      
 281   1      
 282   1         for(i=0;i<8;i++)
 283   1         {
 284   2           if(RELAY_TIME_IN ==relay_time[i])    //查继电器动作延时时间ItemIndex值
 285   2               {
 286   3                 poreader->pcs_relaytime=i;
 287   3                 break;                
 288   3               }
 289   2         }
 290   1         
 291   1      
 292   1         for(i=0;i<4;i++)
 293   1         {
 294   2           if(wiefmt==wie[i])                   //查韦根格式ItemIndex值
 295   2               {
 296   3                 poreader->pcs_wieformat=i;
 297   3                 break;                
 298   3               }
 299   2         }
 300   1      
 301   1      
 302   1         for(i=0;i<32;i++)
 303   1         {
C51 COMPILER V8.16   COMM                                                                  12/10/2009 11:19:18 PAGE 6   

 304   2          Printf_Char(combuf[i]);
 305   2         }
 306   1         BELL_ON;
 307   1         delayms(1000);
 308   1         BELL_OFF;
 309   1      
 310   1      
 311   1      }
 312          /**********************************************************************
 313          **函数原型:    tag_r_reader()
 314          **入口参数:             none
 315          **出口参数:             none
 316          **返 回 值:    none
 317          **功能说明:             tag reply 
 318          ***********************************************************************/
 319          void tag_r_reader()
 320          {
 321   1        uchar i;
 322   1        memcpy(combuf+2,rxdata+1,26);
 323   1      
 324   1         for(i=0;i<32;i++)
 325   1         { 
 326   2          Printf_Char(combuf[i]);
 327   2         }
 328   1         BELL_ON;
 329   1         delayms(1000);
 330   1         BELL_OFF;
 331   1      }
 332          /**********************************************************************
 333          **函数原型:    PCS_w_reader()
 334          **入口参数:             none
 335          **出口参数:             none
 336          **返 回 值:    none
 337          **功能说明:             PC命令写基站参数
 338          ***********************************************************************/
 339          void PCS_w_reader()
 340          {
 341   1               uchar i;
 342   1               READER_PCS xdata *pcs;
 343   1               pcs=(READER_PCS xdata *)(combuf);
 344   1      
 345   1           wiefmt=wie[pcs->pcs_wieformat];                                      //提取RAM更改参数
 346   1           power =pow[pcs->pcs_power];
 347   1           INACTIVITY_TIME=cardouttime[pcs->pcs_samecardtime];
 348   1           RELAY_TIME_IN  =relay_time[pcs->pcs_relaytime];
 349   1           RELAY_TIME_OUT =relay_time[pcs->pcs_relaytime];
 350   1           memcpy(MyID,pcs->pcs_readerid,4);                                    //赋值系统ID
 351   1           pcs->pcs_crc16=cal_crc(combuf,sizeof(READER_PCS)-2); //计算CRC
 352   1           memcpy(combuf,pcs,sizeof(READER_PCS));        //计算好的参数回COPY内存,结构体不能传递指针
 353   1           flash_save(combuf,F_ADDR,32);             //保存数据至flash;
 354   1           delayms(100);                                                 //重新配置SI芯片
 355   1           nres=0;
 356   1           delayms(100);
 357   1           nres=1;
 358   1           ia442xinit();
 359   1           spirevtwobyte();
 360   1           spisendcommand(0x8288);                        //电源管理 whole receive crystal on
 361   1           spisendcommand(0xca83);                            //FIFO COMMAND
 362   1      
 363   1      
 364   1               combuf[3]= PCS_wr_OK;
 365   1               for(i=0;i<32;i++)
C51 COMPILER V8.16   COMM                                                                  12/10/2009 11:19:18 PAGE 7   

 366   1           {
 367   2            Printf_Char(combuf[i]);                       //基站参数配置成功
 368   2           }
 369   1         BELL_ON;
 370   1         delayms(1000);
 371   1         BELL_OFF;
 372   1      }
 373          /**********************************************************************
 374          **函数原型:    PCS_w_tag()
 375          **入口参数:             none
 376          **出口参数:             none
 377          **返 回 值:    none
 378          **功能说明:             PC命令上传或者写卡参数
 379          ***********************************************************************/
 380          void PCS_rw_tag(uchar cmdm)
 381          {
 382   1          uchar i;
 383   1          ULONG idata sum;
 384   1          UINT  result;
 385   1          CMD_TAG xdata *pct;
 386   1              READER_PCS xdata *pcs;
 387   1      
 388   1          pcs=(READER_PCS xdata *)(combuf);   //pcs指针指向解析的PC命令帧
 389   1              pct=(CMD_TAG xdata *)(txdata+4);        //pct指针指向发送的命令帧
 390   1      
 391   1              memcpy(txdata, SiHead, 4);          //同步头
 392   1          pct->data_len=sizeof(CMD_TAG)-1;    //数据长度
 393   1              pct->cmd=cmdm;                                 //命令
 394   1              memcpy( pct->reader_id,pcs->pcs_readerid,4);  //4字节基站
 395   1              memcpy(pct->tag_id, pcs->pcs_tagid, 6);           //6字节卡号
 396   1      
 397   1              pct->tag_cenfre=pcs->pcs_cenfre;              //中心频率
 398   1          pct->tag_power=pcs->pcs_power;                //功率           有效
 399   1              pct->tag_bud=pcs->pcs_bud;                    //波特率
 400   1              pct->tag_flaginout=pcs->pcs_flaginout;        //进出标记
 401   1              pct->tag_tagantitime=pcs->pcs_tagantitime;        //anti
 402   1              pct->tag_tagchgflagtine=pcs->pcs_tagchgflagtine; //chgtime
 403   1      
 404   1              for(i=0;i<8;i++)
 405   1              {
 406   2               pct->tag_buf[i]=0;                                            //预留补0   
 407   2              }
 408   1      
 409   1              pct->skey[0]=0xff;                                         //处理密钥
 410   1          pct->skey[1]=0xff;
 411   1          pct->skey[2]=0xff;
 412   1          pct->skey[3]=0xff;
 413   1          sum = (ULONG)cksum(txdata+4,sizeof(CMD_TAG)-2-1);     //从长度开始算SUM
 414   1          result = (UINT)(sum + (sum >> 16));
 415   1          pct->crc=result;             
 416   1      
 417   1      
 418   1            
 419   1                 for(i=0;i<10;i++)
 420   1                 {
 421   2                     txregframe(sizeof(CMD_TAG));
 422   2                         delayms(50);   
 423   2                 }
 424   1      
 425   1              
 426   1      }
 427          
C51 COMPILER V8.16   COMM                                                                  12/10/2009 11:19:18 PAGE 8   

 428          
 429          /**********************************************************************
 430          **函数原型:    Hex2Asc
 431          **入口参数:             *chrDest  *Hex   Len
 432          **出口参数:             无
 433          **返 回 值:    无
 434          **功能说明:             十六进制转字符
 435          ***********************************************************************/
 436          
 437          /*
 438          void Hex2Asc(unsigned char *chrDest,const unsigned char *Hex,unsigned int Len)
 439          {
 440          
 441          unsigned char *ASC = chrDest ;
 442          unsigned int i,n1,n2;
 443          unsigned char chrTmp[] = "0123456789ABCDEF";
 444          
 445          for (i = 0;i < Len;i++) 
 446          { 
 447               n1 = ((*(Hex+i)) >> 4) & 0x0F ;
 448             *(ASC+i * 2) = *(chrTmp+n1) ;
 449               n2 = (*(Hex+i)) & 0x0F ;
 450             *(ASC+i * 2 + 1) = *(chrTmp+n2);
 451          } 
 452          ASC[i * 2] = '\0';
 453          return ;
 454          }
 455          */
 456          /****************************@end@*************************************/
 457          


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