1328|0

2015

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

msp430单片机rc522射频的程序和与电路图 [复制链接]

单片机源程序如下:

  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. }    
 
点赞 关注

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表