久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4172|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

利用MSP430單片機(jī)編寫的RC522的例程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
利用MSP-430編寫的RC522的例程

完整源碼下載:
MSP430F149讀寫卡參考例程.7z (47.33 KB, 下載次數(shù): 15)


部分單片機(jī)代碼預(yù)覽:
  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加密標(biāo)志
  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                                     ; // 關(guān)看門狗
  27.   BCSCTL1 &= ~XT2OFF;           //打開XT2高速晶體振蕩器  
  28.   do
  29.   {
  30.     IFG1 &= ~OFIFG;           //Clear oscFault flag清除振蕩器失效標(biāo)志
  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不分頻,默認(rèn)
  36.   
  37.   BCSCTL2 |= SELS;            //SMCLK=XT2
  38.   //BCSCTL2 |= DIVS_0;        //控制SMCLK不分頻,默認(rèn)
  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';                              //發(fā)送換行指令
  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. 函數(shù)名稱:HandleConfigMenu
  112. 功    能:處理PC的配置函數(shù)
  113. 參    數(shù):inputvalue--接收到的來自PC機(jī)的字符
  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                                     ; // 關(guān)看門狗
  133.   BoardConfig(0xf0);
  134.   Init_Port();
  135.   InitUART();
  136.   _EINT()                                            ;
  137.   PcdReset();//復(fù)位RC522
  138.   PcdAntennaOn();//開啟天線發(fā)射
  139.   DisplayConfigMenu();
  140.   while(1)
  141.   {
  142.         Send1Char('>');
  143.         Send1Char('\n');
  144.         i=Get1Char();
  145.         HandleConfigMenu(i);
  146.   }
  147. }
復(fù)制代碼


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人午夜视频在线观看 | 国产精品久久久久久久久久妞妞 | 在线观看中文字幕av | 中国一级特黄真人毛片免费观看 | caoporn国产| av免费成人 | 欧美成人一区二区 | 日韩一区二区三区在线 | 一级黄色片在线免费观看 | 午夜欧美一区二区三区在线播放 | 日韩一区二区三区在线看 | 亚洲精品9999 | 波多野结衣av中文字幕 | 欧美日韩中文字幕在线 | 久久久久一区二区三区 | 亚州成人 | 国产在线观看一区二区 | 久久久久久免费毛片精品 | 午夜一区二区三区 | 成人免费看电影 | 欧美亚洲国产日韩 | 久久美女网| 在线观看视频91 | 国产目拍亚洲精品99久久精品 | 欧美男人天堂 | 日本成人福利视频 | 日韩欧美在线一区 | 黄色在线网站 | 亚洲欧美日韩精品久久亚洲区 | 美女一级a毛片免费观看97 | 亚洲精品在线看 | 欧美国产精品久久久 | 国产精品观看 | 国产97人人超碰caoprom | 亚洲国产精品久久久久 | 91福利在线观看 | 毛片av免费看 | 欧美日韩亚洲一区 | 久久久久久久久国产成人免费 | www.久久.com | 精品久久香蕉国产线看观看亚洲 |