📄 main.lst
字号:
603 2 {
604 3 SendBuffer[0]=0x02;
605 3 SendBuffer[1]=~cmd;
606 3 cStatus=1;
607 3 }
608 2
609 2 break;
610 2
611 2 case 0x24: //读钱包
612 2 //数据内容"1字节密钥标识+1 块号+6 字节密钥”
C51 COMPILER V8.02 MAIN 01/26/2007 15:08:37 PAGE 11
613 2
614 2 cStatus =IicSendHY502(g_cReceBuf); // 发送命令
615 2 cStatus =IicReadHY502(cp); // 读取并存入到cP
616 2 if((cStatus==SUCCESS)&&(cp[1]==READ_PURSE))
617 2 {
618 3 SendBuffer[0]=0x06;
619 3 SendBuffer[1]=cmd;
620 3 memcpy(&SendBuffer[2],&cp[2],4);
621 3
622 3 }
623 2
624 2 else
625 2 {
626 3 SendBuffer[0]=0x02;
627 3 SendBuffer[1]=~cmd;
628 3 cStatus=1;
629 3 }
630 2
631 2 break;
632 2
633 2
634 2 case 0x25: //钱包充值
635 2 //数据内容“1 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
636 2
637 2 cStatus =IicSendHY502(g_cReceBuf); // 发送命令
638 2 cStatus =IicReadHY502(cp); // 读取并存入到cP
639 2 if((cStatus==SUCCESS)&&(cp[1]==ADD_PURSE))
640 2 {
641 3 SendBuffer[0]=0x02;
642 3 SendBuffer[1]=cmd;
643 3
644 3 }
645 2
646 2 else
647 2 {
648 3 SendBuffer[0]=0x02;
649 3 SendBuffer[1]=~cmd;
650 3 cStatus=1;
651 3 }
652 2
653 2 break;
654 2
655 2
656 2 case 0x26: //钱包扣款
657 2 //数据内容“11 字节密钥标识+1 块号+6 字节密钥+4 字节增加值(低字节在前)”
658 2
659 2 cStatus =IicSendHY502(g_cReceBuf); // 发送命令
660 2 cStatus =IicReadHY502(cp); // 读取并存入到cP
661 2 if((cStatus==SUCCESS)&&(cp[1]==DEC_PURSE))
662 2 {
663 3 SendBuffer[0]=0x02;
664 3 SendBuffer[1]=cmd;
665 3
666 3 }
667 2
668 2 else
669 2 {
670 3 SendBuffer[0]=0x02;
671 3 SendBuffer[1]=~cmd;
672 3 cStatus=1;
673 3 }
674 2
C51 COMPILER V8.02 MAIN 01/26/2007 15:08:37 PAGE 12
675 2 break;
676 2
677 2
678 2 default:
679 2 SendBuffer[0]=0x02;
680 2 SendBuffer[1]=0xFF;
681 2 break;
682 2
683 2 }
684 1 return cStatus;
685 1 }
686
687
688 /************************** main function start here *******************************/
689 void main()
690 {
691 1 uchar idata cStatus;
692 1
693 1 InitializeSystem(); // 初始化系统
694 1
695 1 //设置IIC地址:0xA2
696 1 //IIC地址设置说明:单字节,高四位固定为A;低四位为:a2 a1 a0 R/W
697 1 //设置IIC地址后,需要一定时间的延时,等待读卡器配置完成。
698 1 a0=1;
699 1 a1=0;
700 1 a2=0;
701 1
702 1
703 1 RST_HY=0; // 复位模块 ,复位后等模块稳定再开始操作
704 1 delay(500); //延时等待模块初始化
705 1 RST_HY=1;
706 1 LED_YELLOW=0;
707 1 LED_GREEN=0;
708 1 delay(500);
709 1 LED_YELLOW=1;
710 1 LED_GREEN=1;
711 1
712 1
713 1 while (1)
714 1 {
715 2 LED_GREEN=sig; // detect module inturrupt ,if there is a card in ,then sig=0,unless you colse th
-e auto search.
716 2 // KeyPress(); 处理按键
717 2 // add your code here
718 2
719 2 //检查命令标志
720 2 if (g_bReceCommandOk)
721 2 {
722 3 g_bReceCommandOk = FALSE;
723 3 cStatus=uart_process();
724 3 if(cStatus)
725 3 {
726 4 cStatus=0;
727 4 if(g_cBeeps==0x10)
728 4 {
729 5 g_cBeeps+=2; //错误响2声
730 5 }
731 4 }
732 3 else
733 3 {
734 4 if(g_cBeeps==0x10)
735 4 {
C51 COMPILER V8.02 MAIN 01/26/2007 15:08:37 PAGE 13
736 5 g_cBeeps+=1; //正确响一声
737 5 }
738 4
739 4 }
740 3 if(g_cBeeps>0x10)
741 3 {
742 4 g_cBeepDiv0=g_cBeeps-0x10;
743 4 g_cBeeps=0x10;
744 4 g_cBeepDiv0<<=5;
745 4 }
746 3
747 3 UartSend(SendBuffer); // Send data to uart.
748 3 // add your code here
749 3 }
750 2
751 2 }
752 1 }
753
754
755 /*****************************************************************************
756 *system initialize
757 *UART baudrate = 19200bps, baud generator is T1
758 *****************************************************************************/
759 void InitializeSystem()
760 {
761 1
762 1 ET2 = 0;
763 1 T2CON = 0x04;
764 1 PCON = 0x80;
765 1 SCON = 0x70;
766 1 TMOD = 0x21; //TMOD = 0x22;
767 1
768 1 TH1 = BAUD_19200; //默认波特率
769 1 TL1 = TH1;
770 1 TR1 = TRUE; // 波特率发生器
771 1
772 1 TH0 = 0xDC;
773 1 TL0 = 0x00;
774 1 TR0 = 1;
775 1 ET0=1;
776 1
777 1 ET1=0;
778 1 EA=1;
779 1 EX0=0;//1;
780 1 IT0 = 1;
781 1 TR2=0;
782 1 ES = TRUE;
783 1 g_bReceCommandOk=0;
784 1 BUZ=0;
785 1 }
786
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1496 ----
CONSTANT SIZE = 152 ----
XDATA SIZE = ---- ----
PDATA SIZE = 22 13
DATA SIZE = 93 3
IDATA SIZE = 5 1
BIT SIZE = 5 ----
END OF MODULE INFORMATION.
C51 COMPILER V8.02 MAIN 01/26/2007 15:08:37 PAGE 14
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -