📄 main.lst
字号:
629 4 SendBuffer[0]=0x02;
630 4 SendBuffer[1]=cmd;
631 4 cnt=5;
632 4
633 4 }
634 3
635 3 else
636 3 {
637 4 SendBuffer[0]=0x02;
638 4 SendBuffer[1]=~cmd;
639 4 cStatus=1;
640 4 }
641 3 }
642 2 break;
643 2
644 2 case 0x24: //读钱包
645 2 //数据内容"1字节密钥标识+1 块号+6 字节密钥”
646 2
647 2 for(cnt=0;cnt<3;cnt++)
648 2 {
649 3 cStatus =SPI_Write(g_cReceBuf); // 发送命令
650 3 delay_10ms(2); // 延时等待模块执行命令
651 3 cStatus =SPI_Read(cp); // 读取并存入到cP
652 3 if((cStatus==SUCCESS)&&(cp[1]==READ_PURSE))
653 3 {
654 4 SendBuffer[0]=0x06;
655 4 SendBuffer[1]=cmd;
656 4 memcpy(&SendBuffer[2],&cp[2],4);
657 4 cnt=5;
658 4
659 4 }
660 3
661 3 else
662 3 {
663 4 SendBuffer[0]=0x02;
664 4 SendBuffer[1]=~cmd;
665 4 cStatus=1;
666 4 }
667 3 }
668 2 break;
669 2
670 2
671 2 case 0x25: //钱包充值
672 2 //数据内容“1 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
673 2
674 2 for(cnt=0;cnt<3;cnt++)
675 2 {
C51 COMPILER V8.02 MAIN 12/27/2006 08:14:28 PAGE 12
676 3 cStatus =SPI_Write(g_cReceBuf); // 发送命令
677 3 delay_10ms(2); // 延时等待模块执行命令
678 3 cStatus =SPI_Read(cp); // 读取并存入到cP
679 3 if((cStatus==SUCCESS)&&(cp[1]==ADD_PURSE))
680 3 {
681 4 SendBuffer[0]=0x02;
682 4 SendBuffer[1]=cmd;
683 4 cnt=5;
684 4
685 4 }
686 3
687 3 else
688 3 {
689 4 SendBuffer[0]=0x02;
690 4 SendBuffer[1]=~cmd;
691 4 cStatus=1;
692 4 }
693 3 }
694 2 break;
695 2
696 2
697 2 case 0x26: //钱包扣款
698 2 //数据内容“11 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
699 2
700 2 for(cnt=0;cnt<3;cnt++)
701 2 {
702 3 cStatus =SPI_Write(g_cReceBuf); // 发送命令
703 3 delay_10ms(2); // 延时等待模块执行命令
704 3 cStatus =SPI_Read(cp); // 读取并存入到cP
705 3 if((cStatus==SUCCESS)&&(cp[1]==DEC_PURSE))
706 3 {
707 4 SendBuffer[0]=0x02;
708 4 SendBuffer[1]=cmd;
709 4 cnt=5;
710 4
711 4 }
712 3
713 3 else
714 3 {
715 4 SendBuffer[0]=0x02;
716 4 SendBuffer[1]=~cmd;
717 4 cStatus=1;
718 4 }
719 3 }
720 2 break;
721 2
722 2
723 2 default:
724 2 SendBuffer[0]=0x02;
725 2 SendBuffer[1]=0xFF;
726 2 break;
727 2
728 2 }
729 1 return cStatus;
730 1 }
731
732
733
734 /************************** main function start here *******************************/
735 void main()
736 {
737 1 uchar idata cStatus;
C51 COMPILER V8.02 MAIN 12/27/2006 08:14:28 PAGE 13
738 1
739 1
740 1 InitializeSystem(); // 初始化系统
741 1
742 1
743 1 RST_HY=0; // 复位模块 ,复位后等模块稳定再开始操作
744 1 delay_1ms(1); //延时0.5s等待模块初始化
745 1 RST_HY=1;
746 1 LED_YELLOW=0;
747 1 LED_GREEN=0;
748 1 delay_10ms(50);
749 1 // LED_YELLOW=1;
750 1 LED_GREEN=1; //LED light 0.5s
751 1
752 1 while (1)
753 1 {
754 2
755 2 LED_GREEN=sig; // detect module inturrupt ,if there is a card in ,then sig=0,unless you colse th
-e auto search.
756 2 // KeyPress(); 处理按键
757 2 // add your code here
758 2 //检查命令标志
759 2 if (g_bReceCommandOk)
760 2 {
761 3 g_bReceCommandOk = FALSE;
762 3 cStatus=uart_process();
763 3 if(cStatus)
764 3 {
765 4 cStatus=0;
766 4 if(g_cBeeps==0x10)
767 4 {
768 5 g_cBeeps+=2; //错误响2声
769 5 }
770 4 }
771 3 else
772 3 {
773 4 if(g_cBeeps==0x10)
774 4 {
775 5 g_cBeeps+=1; //正确响一声
776 5 }
777 4
778 4 }
779 3 if(g_cBeeps>0x10)
780 3 {
781 4 g_cBeepDiv0=g_cBeeps-0x10;
782 4 g_cBeeps=0x10; //add
783 4 g_cBeepDiv0<<=5;
784 4 }
785 3
786 3 UartSend(SendBuffer); // Send data to uart.
787 3 // add your code here
788 3 }
789 2
790 2 }
791 1 }
792
793
794 /*****************************************************************************
795 *system initialize
796 *UART baudrate = 19200bps, baud generator is T1
797 *****************************************************************************/
798 void InitializeSystem()
C51 COMPILER V8.02 MAIN 12/27/2006 08:14:28 PAGE 14
799 {
800 1
801 1 ET2 = 0;
802 1 T2CON = 0x04;
803 1 PCON = 0x80;
804 1 SCON = 0x70;
805 1 TMOD = 0x21; //TMOD = 0x22;
806 1
807 1 TH1 = BAUD_19200; //默认波特率
808 1 TL1 = TH1;
809 1 TR1 = TRUE; // 波特率发生器
810 1
811 1 TH0 = 0xDC;
812 1 TL0 = 0x00;
813 1 TR0 = 1;
814 1 ET0=1;
815 1
816 1 ET1=0;
817 1 EA=1;
818 1 EX0=1;
819 1 IT0 = 1;
820 1 TR2=0;
821 1 ES = TRUE;
822 1 g_bReceCommandOk=0;
823 1
824 1 }
825
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1882 ----
CONSTANT SIZE = 138 ----
XDATA SIZE = ---- ----
PDATA SIZE = 26 14
DATA SIZE = 93 1
IDATA SIZE = 5 1
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -