找回密码
 立即注册

QQ登录

只需一步,快速开始

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

RC522 RFID模块在msp430和51单片机上的程序示例及资料(已调试)

[复制链接]
跳转到指定楼层
楼主
已经过调试,而且具有上位机,可配合调试



说明资料:

单片机源程序如下:
  1.                                                                         //
  2. //===========================================================================//

  3. #include "msp430x14x.h"
  4. #include "PIN_DEF.H"
  5. #include "RC522.H"
  6. #include "UART0_Func.c"
  7. #include "ctype.h"
  8. #include "BoardConfig.h"

  9. unsigned char UID[5],Temp[4]                                       ;
  10. unsigned char RF_Buffer[18]                                        ;
  11. unsigned char Password_Buffer[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}   ; // Mifare One 缺省密码

  12. char          MBRX[30]                                             ;
  13. char          MBKeyTP[30]                                          ;
  14. char          Event                                                ;
  15. unsigned char DISP_MODE,i                                            ; // 编辑控件显示模式
  16. unsigned char des_on       = 0                                     ; // DES加密标志
  17. void Key_TP_Task(void)                                             ;

  18. //***************************************************************************//
  19. //                                                                           //
  20. //                 初始化主时钟: MCLK = XT1×(FLL_FACTOR+1)                  //
  21. //                                                                           //
  22. //***************************************************************************//
  23. void Init_CLK(void)
  24. {
  25.   unsigned int qq;
  26.   WDTCTL     = WDTPW + WDTHOLD                                     ; // 关看门狗
  27.   BCSCTL1 &= ~XT2OFF;           //打开XT2高速晶体振荡器  
  28.   do
  29.   {
  30.     IFG1 &= ~OFIFG;           //Clear oscFault flag清除振荡器失效标志
  31.     for(qq=0xff;qq>0;qq--);
  32.   }while((IFG1&OFIFG));       //oscFault flag still set
  33.   
  34.   BCSCTL2 |= SELM_2;          //MCLK=XT2
  35.   //BCSCTL2 |= DIVM_0;        //控制MCLK不分频,默认
  36.   
  37.   BCSCTL2 |= SELS;            //SMCLK=XT2
  38.   //BCSCTL2 |= DIVS_0;        //控制SMCLK不分频,默认
  39. }

  40. void Delay(unsigned int time)
  41. {
  42.   unsigned int i,k                             ;
  43.   for(i=0;i<255;i++)
  44.     for(k=0;k<time;k++)
  45.       _NOP()                                   ;         
  46. }

  47. void Auto_Reader(void)
  48. {
  49.   while(1)
  50.   {
  51.     if(PcdRequest(0x52,Temp)==MI_OK)
  52.     {
  53.       if(Temp[0]==0x04&&Temp[1]==0x00)  
  54.           PutString("MFOne-S50");
  55.         else if(Temp[0]==0x02&&Temp[1]==0x00)
  56.           PutString("MFOne-S70");
  57.         else if(Temp[0]==0x44&&Temp[1]==0x00)
  58.           PutString("MF-UltraLight");
  59.         else if(Temp[0]==0x08&&Temp[1]==0x00)
  60.           PutString("MF-Pro");
  61.         else if(Temp[0]==0x44&&Temp[1]==0x03)
  62.           PutString("MF Desire");
  63.         else
  64.           PutString("Unknown");
  65.       if(PcdAnticoll(UID)==MI_OK)
  66.       {
  67.         PutString0("Card Id is:");
  68.         tochar(UID[0]);
  69.         tochar(UID[1]);
  70.         tochar(UID[2]);
  71.         tochar(UID[3]);
  72.         while (!(IFG1 & UTXIFG0));
  73.         TXBUF0 = '\n';                              //发送换行指令
  74.                         
  75.         RED_LED_ON                                            ;
  76.         Delay(200)                                           ;
  77.         RED_LED_OFF                                           ;
  78.         Delay(200)                                           ;
  79.       }
  80.     }
  81.   else GRE_LED_OFF                                            ;
  82.   }
  83. }

  84. void Find_Card(void)
  85. {
  86.     if(PcdRequest(0x52,Temp)==MI_OK)
  87.     {
  88.       if(Temp[0]==0x04&&Temp[1]==0x00)  
  89.           PutString("MFOne-S50");
  90.         else if(Temp[0]==0x02&&Temp[1]==0x00)
  91.           PutString("MFOne-S70");
  92.         else if(Temp[0]==0x44&&Temp[1]==0x00)
  93.           PutString("MF-UltraLight");
  94.         else if(Temp[0]==0x08&&Temp[1]==0x00)
  95.           PutString("MF-Pro");
  96.         else if(Temp[0]==0x44&&Temp[1]==0x03)
  97.           PutString("MF Desire");
  98.         else
  99.           PutString("Unknown");
  100.         PutString("SUCCESS!");
  101.     }
  102.     else PutString("Faile!");                                             
  103. }

  104. void Init_Port(void)
  105. {
  106.   P4DIR   =   RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT                     ;
  107.   P2DIR |= BIT0+RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT;
  108.   P1DIR   =   RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT                     ;
  109. }
  110. /*******************************************
  111. 函数名称:HandleConfigMenu
  112. 功    能:处理PC的配置函数
  113. 参    数:inputvalue--接收到的来自PC机的字符
  114. 返回值  :无
  115. ********************************************/
  116. void HandleConfigMenu(uchar inputvalue)
  117. {
  118.     switch(toupper(inputvalue))
  119.     {
  120.     case 'A':
  121.               Auto_Reader();
  122.               break;
  123.     case 'F':
  124.               Find_Card();
  125.               break;
  126.     default:
  127.               DisplayConfigMenu();  
  128.     }
  129. }


  130. void main( void )
  131. {
  132.   WDTCTL     = WDTPW + WDTHOLD                                     ; // 关看门狗
  133.   BoardConfig(0xf0);
  134.   Init_Port();
  135.   InitUART();
  136.   _EINT()                                            ;
  137.   PcdReset();//复位RC522
  138.   PcdAntennaOn();//开启天线发射
  139.   DisplayConfigMenu();
  140.   while(1)
  141.   {
  142.         Send1Char('>');
  143.         Send1Char('\n');
  144.         i=Get1Char();
  145.         HandleConfigMenu(i);
  146.   }
  147. }
复制代码

所有资料51hei提供下载:
RFID在MSP430和51.rar (1.11 MB, 下载次数: 56)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:504416 发表于 2019-4-8 19:35 | 只看该作者
感谢,学习下
回复

使用道具 举报

板凳
ID:409988 发表于 2019-4-8 21:40 | 只看该作者
厉害厉害,学习
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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