找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2732|回复: 0
打印 上一主题 下一主题
收起左侧

msp430单片机rc522射频的程序和与电路图

[复制链接]
跳转到指定楼层
楼主
rc522射频刷卡


单片机源程序如下:
  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;    }
  37.          
  38.          status = PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);
  39.          if (status != MI_OK)
  40.          {    continue;    }
  41.          
  42.          status = PcdWrite(1, data1);
  43.          if (status != MI_OK)
  44.          {    continue;    }
  45.          
  46.          status = PcdValue(PICC_DECREMENT,1,data2);
  47.          if (status != MI_OK)
  48.          {    continue;    }
  49.          
  50.          status = PcdBakValue(1, 2);
  51.          if (status != MI_OK)
  52.          {    continue;    }
  53.          
  54.          status = PcdRead(2, g_ucTempbuf);
  55.          if (status != MI_OK)
  56.          {    continue;    }
  57.          
  58.          PcdHalt();
  59.     }
  60. }


  61. /////////////////////////////////////////////////////////////////////
  62. //功能:系统初始化
  63. /////////////////////////////////////////////////////////////////////       
  64. void InitializeSystem(void)
  65. {
  66.     WDTCTL = WDTPW + WDTHOLD;             //Stop watchdog timer
  67.     _DINT();
  68.      
  69.     P1DIR = 0xE8;
  70.     P1OUT = 0xFF;
  71.       
  72.     P6DIR = 0x08;
  73.     P6OUT = 0xFF;
  74. }   
复制代码

所有资料51hei提供下载:
51单片机rc522 射频的程序和与电路图.rar (2.66 MB, 下载次数: 24)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表