RC522模块原理图与PCB图,含51单片机和430单片机测试程序

[复制链接]
查看30 | 回复0 | 2021-12-16 01:38:47 | 显示全部楼层 |阅读模式
pcb和sch工程文件: rc522.zip (15.4 KB, 售价: 10 E币)
51和430单片机源码: 源代码.zip (66.11 KB, 售价: 5 E币)
RC522数据手册(英文版): RC522_data sheet.pdf (1.3 MB, 售价: 10 E币)
pcb和sch图片:工程文件见附件
2.jpg 1.jpg
51单片机测程序部分片段:(完整源码见附件)
  1. #include "lpcreg.h"
  2. #include "main.h"
  3. #include "mfrc522.h"

  4. unsigned char code data1[16] = {0x12,0x34,0x56,0x78,0xED,0xCB,0xA9,0x87,0x12,0x34,0x56,0x78,0x01,0xFE,0x01,0xFE};
  5. //M1卡的某一块写为如下格式,则该块为钱包,可接收扣款和充值命令
  6. //4字节金额(低字节在前)+4字节金额取反+4字节金额+1字节块地址+1字节块地址取反+1字节块地址+1字节块地址取反
  7. unsigned char code data2[4]  = {0x12,0,0,0};
  8. unsigned char code DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};


  9. unsigned char g_ucTempbuf[20];                        

  10. void main( )
  11. {   
  12.      unsigned char status;
  13.      InitializeSystem( );
  14.      PcdReset();
  15.      PcdAntennaOff(); //关闭天线
  16.      PcdAntennaOn();  //开启天线
  17.      while ( 1 )
  18.      {   
  19.          status = PcdRequest(PICC_REQALL, g_ucTempbuf);       #define PICC_REQIDL 0x26    //寻天线区内未进入休眠状态
  20. ////////////////////////////////////////////////////////////////////////////////
  21.          if (status != MI_OK)
  22.          {
  23.               LED_GREEN = 1;
  24.               continue;
  25.          }
  26. /////////////////////////////////////////////////////////////////////
  27.          LED_GREEN = 0;
  28.          status = PcdAnticoll(g_ucTempbuf);
  29. //////////////////////////////////////////////////////////////////////
  30.          if (status != MI_OK)
  31.          {
  32.              continue;   
  33.          }
  34. /////////////////////////////////////////////////////////////////////
  35.          status = PcdSelect(g_ucTempbuf);
  36.          if (status != MI_OK)
  37.          { //////////////////////////////////
复制代码

430单片机测程序部分片段:(完整源码见附件)
  1. #include  <msp430x41x.h>
  2. #include "main.h"
  3. #include "mfrc522.h"

  4. #pragma memory = constseg(TAB)
  5. unsigned char data1[16] = {0x12,0x34,0x56,0x78,0xED,0xCB,0xA9,0x87,0x12,0x34,0x56,0x78,0x01,0xFE,0x01,0xFE};
  6. //M1卡的某一块写为如下格式,则该块为钱包,可接收扣款和充值命令
  7. //4字节金额(低字节在前)+4字节金额取反+4字节金额+1字节块地址+1字节块地址取反+1字节块地址+1字节块地址取反
  8. unsigned char data2[4]  = {0x12,0,0,0};
  9. unsigned char DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};               
  10. #pragma memory=default
  11.             
  12. unsigned char g_ucTempbuf[20];

  13. void main(void)
  14. {
  15.      unsigned char status;
  16.      InitializeSystem();
  17.      PcdReset();
  18.      PcdAntennaOff();
  19.      PcdAntennaOn();  
  20.      while ( 1 )
  21.      {   
  22.          status = PcdRequest(PICC_REQALL, g_ucTempbuf);
  23.          if (status != MI_OK)
  24.          {   
  25.              LED_GREEN_OFF;
  26.              continue;
  27.          }
  28.          LED_GREEN_ON;     //检测到有卡存在
  29.          
  30.          status = PcdAnticoll(g_ucTempbuf);
  31.          if (status != MI_OK)
  32.          {    continue;    }
  33.          
  34.          status = PcdSelect(g_ucTempbuf);
  35.          if (status != MI_OK)
  36.          {    continue;    }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则