📄 main.lst
字号:
606 2
607 2 break;
608 2
609 2
610 2 case 0x25: //钱包充值
611 2 //数据内容“1 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
612 2
C51 COMPILER V8.02 MAIN 02/25/2008 12:13:54 PAGE 11
613 2
614 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
615 2 delay_10ms(5); // 延时等待模块执行命令
616 2 cStatus =SPI_Read(cp); // 读取并存入到cP
617 2 if((cStatus==SUCCESS)&&(cp[1]==ADD_PURSE))
618 2 {
619 3 g_cReceBuf[0]=0x02;
620 3 g_cReceBuf[1]=cmd;
621 3
622 3
623 3 }
624 2
625 2 else
626 2 {
627 3 g_cReceBuf[0]=0x02;
628 3 g_cReceBuf[1]=~cmd;
629 3 cStatus=1;
630 3 }
631 2
632 2 break;
633 2
634 2
635 2 case 0x26: //钱包扣款
636 2 //数据内容“11 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
637 2
638 2
639 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
640 2 delay_10ms(5); // 延时等待模块执行命令
641 2 cStatus =SPI_Read(cp); // 读取并存入到cP
642 2 if((cStatus==SUCCESS)&&(cp[1]==DEC_PURSE))
643 2 {
644 3 g_cReceBuf[0]=0x02;
645 3 g_cReceBuf[1]=cmd;
646 3
647 3
648 3 }
649 2
650 2 else
651 2 {
652 3 g_cReceBuf[0]=0x02;
653 3 g_cReceBuf[1]=~cmd;
654 3 cStatus=1;
655 3 }
656 2
657 2 break;
658 2
659 2 case 0x30: // EEPROM read max size:16
660 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
661 2 delay_10ms(2); // 延时等待模块执行命令
662 2 cStatus =SPI_Read(cp); // 读取并存入到cP
663 2 if((cStatus==SUCCESS)&&(cp[1]==READ_E2))
664 2 {
665 3 temp=g_cReceBuf[4];
666 3 g_cReceBuf[0]=g_cReceBuf[4]+2;
667 3 g_cReceBuf[1]=cmd;
668 3 memcpy(&g_cReceBuf[2],&cp[2],temp);
669 3 }
670 2 else
671 2 {
672 3 g_cReceBuf[0]=0x02;
673 3 g_cReceBuf[1]=~cmd;
674 3 cStatus=1;
C51 COMPILER V8.02 MAIN 02/25/2008 12:13:54 PAGE 12
675 3 }
676 2 break;
677 2
678 2 case 0x31: // EEPROM write max size:16
679 2 cStatus =SPI_Write(g_cReceBuf); // 发送命令
680 2 delay_10ms(2); // 延时等待模块执行命令
681 2 cStatus =SPI_Read(cp); // 读取并存入到cP
682 2 if((cStatus==SUCCESS)&&(cp[1]==WRITE_E2))
683 2
684 2 {
685 3 g_cReceBuf[0]=0x02;
686 3 g_cReceBuf[1]=cmd;
687 3
688 3 }
689 2
690 2 else
691 2 {
692 3 g_cReceBuf[0]=0x02;
693 3 g_cReceBuf[1]=~cmd;
694 3 cStatus=1;
695 3 }
696 2
697 2 break;
698 2
699 2 default:
700 2 g_cReceBuf[0]=0x02;
701 2 g_cReceBuf[1]=~cmd;
702 2 cStatus=1;
703 2 break;
704 2
705 2 }
706 1 return cStatus;
707 1 }
708
709
710 //-----Reset rf module -------//
711 void Reset_HY502(void)
712 {
713 1 RST_HY=0; //Reset HY502 复位模块
714 1 delay_10ms(50);
715 1 RST_HY=1;
716 1 }
717
718 /************************** main function start here *******************************/
719 void main()
720 {
721 1 uchar idata cStatus;
722 1
723 1
724 1 InitializeSystem(); // 初始化系统
725 1
726 1 Reset_HY502();
727 1 // LED_YELLOW=0; //test led
728 1 LED_GREEN=0;
729 1 delay_10ms(50);
730 1 // LED_YELLOW=1;
731 1 LED_GREEN=1; //LED light 0.5s
732 1 beep(2); //test buzz
733 1 //----- test key------//
734 1 if(KEY1==0) splash(1);
735 1 if(KEY2==0) splash(2);
736 1 if(KEY3==0) splash(3);
C51 COMPILER V8.02 MAIN 02/25/2008 12:13:54 PAGE 13
737 1 if(KEY4==0) splash(4);
738 1 //-----------------main loop ---------------//
739 1
740 1 while (1)
741 1 {
742 2
743 2 LED_GREEN=sig; // detect module inturrupt ,if there is a card in ,then sig=0,unless you colse th
-e auto search.
744 2 // KeyPress(); 处理按键
745 2 // add your code here
746 2 //检查命令标志
747 2 if (g_bReceCommandOk)
748 2 {
749 3 g_bReceCommandOk = FALSE;
750 3 cStatus=uart_process();
751 3 if(cStatus)
752 3 {
753 4 cStatus=0;
754 4
755 4 }
756 3
757 3 UartSend(g_cReceBuf); // Send data to uart.
758 3 // add your code here
759 3 }
760 2
761 2 }
762 1 }
763
764
765 /*****************************************************************************
766 *system initialize
767 *UART baudrate = 19200bps, baud generator is T1
768 *****************************************************************************/
769 void InitializeSystem()
770 {
771 1
772 1 ET2 = 0;
773 1 T2CON = 0x04;
774 1 PCON = 0x80;
775 1 SCON = 0x70;
776 1 TMOD = 0x21; //TMOD = 0x22;
777 1
778 1 TH1 = BAUD_19200; //默认波特率
779 1 TL1 = TH1;
780 1 TR1 = TRUE; // 波特率发生器
781 1
782 1 ET1=0;
783 1 EA=1;
784 1 EX0=0;//1;
785 1 IT0 = 1;
786 1 TR2=0;
787 1 ES = TRUE;
788 1 g_bReceCommandOk=0;
789 1 BUZ=0;
790 1 }
791
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1653 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
C51 COMPILER V8.02 MAIN 02/25/2008 12:13:54 PAGE 14
PDATA SIZE = 4 13
DATA SIZE = 30 1
IDATA SIZE = 34 1
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -