单片机解密51单片机读写RC522卡
单片机解密单片机源程序如下:
- 单片机解密#include "reg52.h"
- 单片机解密#include "main.h"
- 单片机解密#include "mfrc522.h"
- 单片机解密#include "LCD12864.h"
- 单片机解密#include <string.h>
- 单片机解密#include <stdio.h>
- sbit BEEP=P0^1 ;
- #define SET_BEEP BEEP = 0
- #define CLR_BEEP BEEP = 1
- //M1卡的某一块写为如下格式,则该块为钱包,可接收扣款和充值命令
- //4字节金额(低字节在前)+4字节金额取反+4字节金额+1字节块地址+1字节块地址取反+1字节块地址+1字节块地址取反
- unsigned char code data2[4] = {0x12,0,0,0};
- unsigned char code DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
- //unsigned char g_ucTempbuf[20];
- unsigned char idata MLastSelectedSnr[4];
- unsigned char idata RevBuffer[30];
- //unsigned char data SerBuffer[20];
- bit CmdValid;
- unsigned char code ASCII_NUM[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
- unsigned char idata LastKeyA[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};//NO.2卡
- unsigned char idata NewKeyA[6]={0x19,0x84,0x07,0x15,0x76,0x14};//NO.2卡
- unsigned char idata NewKey[16]={0x19,0x84,0x07,0x15,0x76,0x14,
- 0xff,0x07,0x80,0x69,
- 0x19,0x84,0x07,0x15,0x76,0x14};
- unsigned char idata Read_Data[16]={0x00};
- //unsigned char idata RevBuffer[30];
- //unsigned char idata MLastSelectedSnr[4];
- unsigned char data OperationCard;
- uchar data bWarn,bPass;
- #define REGCARD 0xa1
- #define CONSUME 0xa2
- #define READCARD 0xa3
- #define ADDMONEY 0xa4
- void KeyScan(void)
- {
- if(REGCARDBTN == 0)//注册
- {
- delay_10ms(1);
- if(REGCARDBTN == 0 )
- OperationCard = REGCARD;
- LCD_PutString(0,3,"注册:");
- }
- if(CONSUMEBTN == 0)//消费
- {
- delay_10ms(1);
- if(CONSUMEBTN == 0 )
- OperationCard = CONSUME;
- LCD_PutString(0,3,"消费: ");
- }
- if(ADDMONEYBTN == 0)//充值
- {
- delay_10ms(1);
- if(ADDMONEYBTN == 0 )
- OperationCard = ADDMONEY;
- LCD_PutString(0,3,"充值: ");
- }
- if(READCARDBTN == 0)//读卡信息
- {
- delay_10ms(1);
- if(READCARDBTN == 0 )
- OperationCard = READCARD;
- LCD_PutString(0,3,"查询: ");
- }
- }

芯片解密