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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2635|回復: 0
打印 上一主題 下一主題
收起左側

msp430f5529 RC522射頻卡程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:404619 發表于 2019-9-3 11:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*
波特率設置為9600
特別說明:
單片機與PC的通訊:
    PC與單片機的連接:需要一個usb轉ttl調試器B,B的RXD接P4.5口,TXD接4.4口,VCC接5v電壓,GND接地即可。
    PC端使用的串口調試助手是X—COM,將調試器B連接好單片機。單片機的數據線接到電腦上,編譯好程序后,點擊CCS上的開始調試。
然后將調試器插入電腦,在X-COM中 設置波特率為9600,停止位1,數據位8,串口選擇調試器B的usb接口!(這步很重要)打開串口,即可開始串口調試。
此刻能實現的功能:
1.PC發送除A, F外的字符,單片機發送給電腦菜單信息。
單片機與RC522的通訊:
    SDA p2.2
    SCK P2.7
    MOSI P3.3
    MISO p3.4
    IRQ 不接
    RST p2.3
連接好上述引線后,能實現以下功能:
1.PC發送字符A,讀出卡的型號和UID信息。
2.PC發送字符F,單次尋卡模式,接觸一次顯示一次卡的型號信息。
*/

#include "msp430.h"
#include "PIN_DEF.H"
#include "RC522.H"
#include "UART_Func.h"//串口已修改
#include "ctype.h"

unsigned char UID[5],Temp[4]; /*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)                                             ;
void function1(void)
{
    ;
}


//***************************************************************************//
//                                                                           //
//                 初始化主時鐘: MCLK = XT1×(FLL_FACTOR+1)                  //
//                  我自己打的時鐘,能成功。
//                                                                           //
//***************************************************************************//
void Init_CLK(void)
{
  P5SEL |= BIT2 + BIT3;//P5.2和P5.3選擇XT2晶振功能
  UCSCTL6 &= ~XT2OFF;//使能XT2
  UCSCTL3 |= SELREF_2;//FLL模塊的參考時鐘源選擇REFO
  UCSCTL4 |= SELA_2;
  do
  {
      UCSCTL7 &= ~(XT2OFFG+XT1LFOFFG+DCOFFG);//清除XT2,XT1,DCO故障失效標志位
      SFRIFG1 &= ~OFIFG;//清除晶振故障失效中斷標志位
  }while(SFRIFG1&OFIFG);//測試晶振故障失效中斷標志位
  UCSCTL6 &= ~XT2DRIVE0;//減少XT2驅動能力,降低功耗
  UCSCTL4 |= SELS_5 + SELM_5;//SMCLK=MCLK=XT2
}

void Delay(unsigned int time)
{
    volatile int i,k;
    for(i=0;i<255;i++)
        for(k=0;k<time;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 (!(UCA1IFG & UCTXIFG));//等待上一個字符發送完成
                UCA1TXBUF = '\n';                              //發送換行指令
                RED_LED_ON;
                Delay(200);
                RED_LED_OFF;
                Delay(200);//綠燈交替亮滅
            }
            function1();//可以在這里編寫一下如何區別使用UID信息的函數。
         }
    else GRE_LED_OFF;
        Delay(100);//延時一端時間
    }
}

void Find_Card(void)
{
    while(1)
    {
        if(PcdRequest(0x52,Temp)==MI_OK)
        {
            RED_LED_OFF;//紅燈熄滅
          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!");
            break;//如果滿足條件,退出循環
        }
        else PutString("Faile!");
        GRE_LED_OFF;//綠燈熄滅
        Delay(1000);//延時一端時間
    }
}
/*************************
端口初始化
************************/
void Init_Port(void)
{
    P4DIR  |=  BIT7;//P4.7輸出,控制led
    P3DIR  |=  BIT3;
    P3DIR  &= ~BIT4;//P3.4設為輸入
    P2DIR  |=  BIT2+BIT3+BIT7;
    P1DIR  |=  BIT0;//控制led
}
/*******************************************
函數名稱: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; // 關看門狗
  Init_Port();//這里是引腳的配置函數,想要知道怎么連,就看這里
  InitUART();//初始化串口通信
  _EINT();//使能全局中斷
  PcdReset();//復位RC522
  PcdAntennaOn();//開啟天線發射
  DisplayConfigMenu();//向PC發送菜單信息
  while(1)
  {
        Send1Char('>');
        Send1Char('\n');
        i=Get1Char();//i暫存電腦發來的數據,已驗證
        HandleConfigMenu(i);//本函數用于數據分析
  }
}

在此只顯示部分內容,更多內容請下載后查看

proj 5529 RC522.zip

180.88 KB, 下載次數: 16, 下載積分: 黑幣 -5

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女久久久久久久网站 | 伊人影院在线观看 | 欧美激情综合 | 美国a级毛片免费视频 | 日日夜夜精品免费视频 | 欧美激情视频网站 | 能免费看的av | 久久久免费少妇高潮毛片 | 69堂永久69tangcom | 欧美一区二区黄 | 一级片在线观看 | 精品乱子伦一区二区三区 | 国产色婷婷精品综合在线手机播放 | 国产精品美女 | 久久久久99| 亚洲国产aⅴ成人精品无吗 综合国产在线 | 日韩免费一区二区 | 精品视频一区二区 | 欧美日产国产成人免费图片 | 天天玩天天干天天操 | 中文字幕精品一区久久久久 | 九九热精品视频在线观看 | 精品国产18久久久久久二百 | 精品国产一区久久 | 久久国产精品一区二区三区 | 精品亚洲一区二区三区 | av黄色免费在线观看 | 免费看91 | 天天干狠狠操 | 中文字幕一区二区三区日韩精品 | 麻豆精品国产91久久久久久 | 一级片在线免费播放 | 天天综合亚洲 | 日韩欧美精品在线 | 日本黄视频在线观看 | 91av在线免费观看 | 超碰男人天堂 | 天天干天天玩天天操 | 欧美激情视频一区二区三区免费 | 欧美一区二区三区的 | 中文字幕av第一页 |