单片机学习小组
直播中

李慧芳

7年用户 192经验值
私信 关注

mps430与rc522模块程序下载

主程序
    IC-S50数据手册.PDF  


    MFRC522数据手册.pdf  


    S50非接触式IC卡性能简介(M1).doc  


                                                                       //
//===========================================================================//
#include "msp430x14x.h"
#include "PIN_DEF.H"
#include "RC522.H"
#include "UART0_Func.c"
#include "ctype.h"
#include "BoardConfig.h"
unsigned char UID[5],Temp[4]                                       ;
unsigned char RF_Buffer[18]                                        ;
unsigned char Password_Buffer[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}   ; // Mifare One 缺省密码
char          MBRX[30]                                             ;
char          MBKeyTP[30]                                          ;
char          Event                                                ;
unsigned char DISP_MODE,i                                            ; // 编辑控件显示模式
unsigned char des_on       = 0                                     ; // DES加密标志
void Key_TP_Task(void)                                             ;
//***************************************************************************//
//                                                                           //
//                 初始化主时钟: MCLK = XT1×(FLL_FACTOR+1)                  //
//                                                                           //
//***************************************************************************//
void Init_CLK(void)
{
   unsigned int qq;
   WDTCTL     = WDTPW + WDTHOLD                                     ; // 关看门狗
   BCSCTL1 &= ~XT2OFF;           //打开XT2高速晶体振荡器  
   do
   {
     IFG1 &= ~OFIFG;           //Clear oscFault flag清除振荡器失效标志
     for(qq=0xff;qq>0;qq--);
   }while((IFG1&OFIFG));       //oscFault flag still set
   
   BCSCTL2 |= SELM_2;          //MCLK=XT2
   //BCSCTL2 |= DIVM_0;        //控制MCLK不分频,默认
   
   BCSCTL2 |= SELS;            //SMCLK=XT2
   //BCSCTL2 |= DIVS_0;        //控制SMCLK不分频,默认
}
void Delay(unsigned int time)
{
   unsigned int i,k                             ;
   for(i=0;i<255;i++)
     for(k=0;k        _NOP()                                   ;   
}
void Auto_Reader(void)
{
   while(1)
   {
     if(PcdRequest(0x52,Temp)==MI_OK)
     {
       if(Temp[0]==0x04&&Temp[1]==0x00)  
           PutString("MFOne-S50");
         else if(Temp[0]==0x02&&Temp[1]==0x00)
           PutString("MFOne-S70");
         else if(Temp[0]==0x44&&Temp[1]==0x00)
           PutString("MF-UltraLight");
         else if(Temp[0]==0x08&&Temp[1]==0x00)
           PutString("MF-Pro");
         else if(Temp[0]==0x44&&Temp[1]==0x03)
           PutString("MF Desire");
         else
           PutString("Unknown");
       if(PcdAnticoll(UID)==MI_OK)
       {
         PutString0("Card Id is:");
         tochar(UID[0]);
         tochar(UID[1]);
         tochar(UID[2]);
         tochar(UID[3]);
         while (!(IFG1 & UTXIFG0));
         TXBUF0 = 'n';                              //发送换行指令
                        
         RED_LED_ON                                            ;
         Delay(200)                                           ;
         RED_LED_OFF                                           ;
         Delay(200)                                           ;
       }
     }
   else GRE_LED_OFF                                            ;
   }
}
void Find_Card(void)
{
     if(PcdRequest(0x52,Temp)==MI_OK)
     {
       if(Temp[0]==0x04&&Temp[1]==0x00)  
           PutString("MFOne-S50");
         else if(Temp[0]==0x02&&Temp[1]==0x00)
           PutString("MFOne-S70");
         else if(Temp[0]==0x44&&Temp[1]==0x00)
           PutString("MF-UltraLight");
         else if(Temp[0]==0x08&&Temp[1]==0x00)
           PutString("MF-Pro");
         else if(Temp[0]==0x44&&Temp[1]==0x03)
           PutString("MF Desire");
         else
           PutString("Unknown");
         PutString("SUCCESS!");
     }
     else PutString("Faile!");                                             
}
void Init_Port(void)
{
   P4DIR   =   RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT                     ;
   P2DIR |= BIT0+RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT;
   P1DIR   =   RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT                     ;
}
/*******************************************
函数名称:HandleConfigMenu
功    能:处理PC的配置函数
参    数:inputvalue--接收到的来自PC机的字符
返回值  :无
********************************************/
void HandleConfigMenu(uchar inputvalue)
{
     switch(toupper(inputvalue))
     {
     case 'A':
               Auto_Reader();
               break;
     case 'F':
               Find_Card();
               break;
     default:
               DisplayConfigMenu();  
     }
}

void main( void )
{
   WDTCTL     = WDTPW + WDTHOLD                                     ; // 关看门狗
   BoardConfig(0xf0);
   Init_Port();
   InitUART();
   _EINT()                                            ;
   PcdReset();//复位RC522
   PcdAntennaOn();//开启天线发射
   DisplayConfigMenu();
   while(1)
   {
         Send1Char('>');
         Send1Char('n');
         i=Get1Char();
         HandleConfigMenu(i);
   }
}

        8-M1卡的安全问题及华东师大的应对策略.pdf

   
        13.56MHz天线设计.pdf
  
        13.56M设计规范.pdf

        Dismantling MIFARE Classic.pdf

   
        ht-ide3000.pdf
  
   
        MSP430 单片机与CPU 卡接口函数设计.pdf
  XX比较.pdf
  
        RFID读写器天线的研究与设计.pdf

        RFID天线研究与设计.pdf
   
        低功耗无磁水表中射频卡读写器的设计.pdf
  
   
        高速和资源节约型数据加密算法设计.pdf

   
        基于MF RC500的RFID读写器的天线及匹配电路设计.doc

        基于TRF7960 读写器硬件部分设计中应注意的地方.pdf
  
        近耦合射频识别系统的工作原理及天线设计.pdf

   
        设计MF RC500 的匹配电路和天线的应用指南.pdf
  
   
        无源电子标签读卡器防冲突检测及天线设计.pdf
  
   
        远距离RFID天线设计.doc
  
   
        阻抗匹配.doc
  

更多回帖

发帖
×
20
完善资料,
赚取积分