社区导航

 

搜索
查看: 137|回复: 0

[资料分享] msp430单片机rc522射频的程序和与电路图

[复制链接]

3243

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2020-2-14 20:41 | 显示全部楼层 |阅读模式

单片机源程序如下:

  1. #include  <msp430x41x.h>
  2. #include "main.h"
  3. #include "mfrc522.h"
  4.  
  5. #pragma memory = constseg(TAB)
  6. unsigned char data1[16] = {0x12,0x34,0x56,0x78,0xED,0xCB,0xA9,0x87,0x12,0x34,0x56,0x78,0x01,0xFE,0x01,0xFE};
  7. //M1卡的某一块写为如下格式,则该块为钱包,可接收扣款和充值命令
  8. //4字节金额(低字节在前)+4字节金额取反+4字节金额+1字节块地址+1字节块地址取反+1字节块地址+1字节块地址取反 
  9. unsigned char data2[4]  = {0x12,0,0,0};
  10. unsigned char DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};                
  11. #pragma memory=default 
  12.             
  13. unsigned char g_ucTempbuf[20];
  14.  
  15. void main(void)
  16.      unsigned char status;
  17.      InitializeSystem();
  18.      PcdReset();
  19.      PcdAntennaOff(); 
  20.      PcdAntennaOn();  
  21.      while ( 1 )
  22.      {   
  23.          status = PcdRequest(PICC_REQALL, g_ucTempbuf);
  24.          if (status != MI_OK)
  25.          {    
  26.              LED_GREEN_OFF;
  27.              continue;
  28.          }
  29.          LED_GREEN_ON;     //检测到有卡存在
  30.          
  31.          status = PcdAnticoll(g_ucTempbuf);
  32.          if (status != MI_OK)
  33.          {    continue;    }
  34.          
  35.          status = PcdSelect(g_ucTempbuf);
  36.          if (status != MI_OK)
  37.          {    continue;    }
  38.          
  39.          status = PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);
  40.          if (status != MI_OK)
  41.          {    continue;    }
  42.          
  43.          status = PcdWrite(1, data1);
  44.          if (status != MI_OK)
  45.          {    continue;    }
  46.          
  47.          status = PcdValue(PICC_DECREMENT,1,data2);
  48.          if (status != MI_OK)
  49.          {    continue;    }
  50.          
  51.          status = PcdBakValue(1, 2);
  52.          if (status != MI_OK)
  53.          {    continue;    }
  54.          
  55.          status = PcdRead(2, g_ucTempbuf);
  56.          if (status != MI_OK)
  57.          {    continue;    }
  58.          
  59.          PcdHalt();
  60.     }
  61. }
  62.  
  63.  
  64. /////////////////////////////////////////////////////////////////////
  65. //功能:系统初始化
  66. /////////////////////////////////////////////////////////////////////        
  67. void InitializeSystem(void)
  68. {
  69.     WDTCTL = WDTPW + WDTHOLD;             //Stop watchdog timer
  70.     _DINT();
  71.      
  72.     P1DIR = 0xE8;
  73.     P1OUT = 0xFF;
  74.       
  75.     P6DIR = 0x08;
  76.     P6OUT = 0xFF;
  77. }    

回复

使用道具 举报

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

关闭

站长推荐上一条 1/3 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-4-8 00:03 , Processed in 0.077065 second(s), 18 queries , Gzip On, MemCache On.

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