📄 main.lst
字号:
401 3 g_cReceBuf[1]=~cmd;
402 3 cStatus=1;
403 3 }
404 2 break;
405 2 case 0x11: // 软件掉电模式 ,1字节数据,非0退出软件掉电模式,0x00进入软件掉电
406 2 //任何一条对卡的操作命令或自动寻卡被设置后都将终止掉电模式
407 2
408 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
409 2 delay_1ms(2); // 延时等待模块执行命令
410 2 cStatus =SPI_Read(cp); // 读取并存入到cP
411 2 if((cStatus==SUCCESS)&&(cp[1]==SOFTDOWN))
412 2 {
413 3 g_cReceBuf[0]=0x02;
414 3 g_cReceBuf[1]=cmd;
415 3
416 3 }
417 2 else
418 2 {
419 3 g_cReceBuf[0]=0x02;
420 3 g_cReceBuf[1]=~cmd;
421 3 cStatus=1;
422 3 }
423 2 break;
424 2
425 2 case 0x12: // Idle the card //卡休眠
426 2
C51 COMPILER V8.02 MAIN 02/25/2008 12:13:54 PAGE 8
427 2 cStatus =SPI_Write(g_cReceBuf);
428 2 delay_1ms(2); // 延时等待模块执行命令
429 2 cStatus =SPI_Read(cp); // 保存到数组cP
430 2 if((cStatus==SUCCESS)&&(cp[1]==HALT_CARD))
431 2 {
432 3 g_cReceBuf[0]=0x02;
433 3 g_cReceBuf[1]=cmd;
434 3
435 3 }
436 2
437 2 else
438 2 {
439 3 g_cReceBuf[0]=0x02;
440 3 g_cReceBuf[1]=~cmd;
441 3 }
442 2
443 2 break;
444 2
445 2 case 0x13: // 自动寻卡 ,1字节数据,0x01 开启自动寻卡,0x00关闭
446 2
447 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
448 2 delay_1ms(2); // 延时等待模块执行命令
449 2 cStatus =SPI_Read(cp); // 读取并存入到cP
450 2 if((cStatus==SUCCESS)&&(cp[1]==AUTOSEARCH))
451 2 {
452 3 g_cReceBuf[0]=0x02;
453 3 g_cReceBuf[1]=cmd;
454 3
455 3 cStatus=0;
456 3 }
457 2 else
458 2 {
459 3 g_cReceBuf[0]=0x02;
460 3 g_cReceBuf[1]=~cmd;
461 3 cStatus=1;
462 3 }
463 2 break;
464 2
465 2
466 2 case 0x19://读卡类型 //无数据 返回卡类型(2 bytes)
467 2
468 2
469 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
470 2 delay_1ms(2); // 延时等待模块执行命令
471 2 cStatus =SPI_Read(cp); // 读取并存入到cP
472 2 if((cStatus==SUCCESS)&&(cp[1]==CARD_TYPE))
473 2 {
474 3 g_cReceBuf[0]=4;
475 3 g_cReceBuf[1]=cmd;
476 3 g_cReceBuf[2]=cp[2];
477 3 g_cReceBuf[3]=cp[3];
478 3
479 3 }
480 2
481 2 else
482 2 {
483 3 g_cReceBuf[0]=0x02;
484 3 g_cReceBuf[1]=~cmd;
485 3 cStatus=1;
486 3 }
487 2
488 2 break;
C51 COMPILER V8.02 MAIN 02/25/2008 12:13:54 PAGE 9
489 2
490 2
491 2 case 0x20: // Request,Anticoll,Select,return CardSerialNo(4 bytes)
492 2 // 寻卡,防冲突,选择卡 返回卡系列号(4 bytes)
493 2
494 2 cStatus =SPI_Write(g_cReceBuf); // 发送寻卡命令
495 2 delay_1ms(5); // 延时等待模块执行命令
496 2 cStatus =SPI_Read(cp); // 读取卡号并存入到cP
497 2 if((cStatus==SUCCESS)&&(cp[1]==CARD_SN))
498 2 {
499 3 g_cReceBuf[0]=6;
500 3 g_cReceBuf[1]=cmd;
501 3 memcpy(&g_cReceBuf[2],&cp[2],4);
502 3
503 3
504 3 }
505 2
506 2 else
507 2 {
508 3 g_cReceBuf[0]=0x02;
509 3 g_cReceBuf[1]=~cmd;
510 3 cStatus=1;
511 3 }
512 2
513 2 break;
514 2
515 2 case 0x21: //读块
516 2 //数据内容 1 字节密钥标识+1 块号+6 字节密钥
517 2
518 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
519 2 delay_10ms(5); // 延时等待模块执行命令
520 2 cStatus =SPI_Read(cp); // 读取并存入到cP
521 2 if((cStatus==SUCCESS)&&(cp[1]==READ_BLOCK))
522 2 {
523 3 g_cReceBuf[0]=0x12;
524 3 g_cReceBuf[1]=cmd;
525 3 memcpy(&g_cReceBuf[2],&cp[2],16);
526 3
527 3 }
528 2 else
529 2 {
530 3 g_cReceBuf[0]=0x02;
531 3 g_cReceBuf[1]=~cmd;
532 3 cStatus=1;
533 3 }
534 2
535 2 break;
536 2
537 2 case 0x22 : //写块
538 2 //1 字节密钥标识+1 块号+6 字节密钥+16 字节写入数据
539 2
540 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
541 2 delay_10ms(5); // 延时等待模块执行命令
542 2 cStatus =SPI_Read(cp); // 读取并存入到cP
543 2 if((cStatus==SUCCESS)&&(cp[1]==WRITE_BLOCK))
544 2 {
545 3 g_cReceBuf[0]=0x02;
546 3 g_cReceBuf[1]=cmd;
547 3
548 3
549 3 }
550 2
C51 COMPILER V8.02 MAIN 02/25/2008 12:13:54 PAGE 10
551 2 else
552 2 {
553 3 g_cReceBuf[0]=0x02;
554 3 g_cReceBuf[1]=~cmd;
555 3 cStatus=1;
556 3 }
557 2
558 2
559 2 break;
560 2
561 2 case 0x23 : //初始化钱包
562 2 //数据内容“1 字节密钥标识+1 块号+6 字节密钥+4 字节钱包”
563 2
564 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
565 2 delay_10ms(5); // 延时等待模块执行命令
566 2 cStatus =SPI_Read(cp); // 读取并存入到cP
567 2 if((cStatus==SUCCESS)&&(cp[1]==INIT_PURSE))
568 2 {
569 3 g_cReceBuf[0]=0x02;
570 3 g_cReceBuf[1]=cmd;
571 3
572 3
573 3 }
574 2
575 2 else
576 2 {
577 3 g_cReceBuf[0]=0x02;
578 3 g_cReceBuf[1]=~cmd;
579 3 cStatus=1;
580 3 }
581 2
582 2 break;
583 2
584 2 case 0x24: //读钱包
585 2 //数据内容"1字节密钥标识+1 块号+6 字节密钥”
586 2
587 2
588 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
589 2 delay_10ms(5); // 延时等待模块执行命令
590 2 cStatus =SPI_Read(cp); // 读取并存入到cP
591 2 if((cStatus==SUCCESS)&&(cp[1]==READ_PURSE))
592 2 {
593 3 g_cReceBuf[0]=0x06;
594 3 g_cReceBuf[1]=cmd;
595 3 memcpy(&g_cReceBuf[2],&cp[2],4);
596 3
597 3
598 3 }
599 2
600 2 else
601 2 {
602 3 g_cReceBuf[0]=0x02;
603 3 g_cReceBuf[1]=~cmd;
604 3 cStatus=1;
605 3 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -