娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年11月06日(星期三)

正在發生

2019年11月06日 | 單片機讀寫RC522射頻卡上位機調試軟件及參考例程

發布者:Xiangsi 來源: 51hei關鍵字:單片機  讀寫RC522  射頻卡  上位機調試 手機看文章 掃描二維碼
隨時隨地手機看文章

下位機(單片機)電路原理圖:
 

上位機delphi源碼與說明資料:
 

IC讀寫器使用說明

一、讀寫器連接

1.1 把通訊線“DB9”端插到PC 機的串口1/2 上

1.2 把通訊線2510端插到讀寫器的插座,使讀寫器和PC 機的串口良好連接

1.2 把電源線的“圓柱”端插到讀寫器的電源座子上

1.3讀寫器上電以后可以聽到一聲風鳴器的響聲,如果沒有聽到風鳴器聲,表明讀寫器沒有正常上電.

二、啟動Demo 軟件

2.1 雙擊啟動測試軟件

2.2 如果串口良好連接的話可以聽到一聲風鳴器的響聲,如果啟動測試軟件以后并沒有聽到風鳴器聲表明串口通訊沒有連接好,請檢查串口連接線是否連接正確

三、M1卡片讀寫測試

3.1 把一張Mifare One 卡片放在天線區域范圍內

3.2 進入功能選項“低級操作”里面點擊“尋卡”,如果出現“尋卡成功!”表明尋卡正常,如果出現“執行失敗!”表明出現異常,請檢查卡片是否在尋卡范圍內,如果確認卡片沒有問題,那讀寫器有異常

3.3 點擊“防沖突”,如果出現“執行成功”表明防沖突正常,如果出現“執行失敗”表明讀寫器出現異常或者卡片沒有在天線區域范圍內

3.4 點擊“選擇”,如果出現“執行成功”表明選擇正常,如果出現“執行失敗”表明讀寫器出現異常或者卡片沒有在天線區域范

圍內

3.5 進入功能選項“密碼下載”里面下載卡片密碼,比如需要測試卡片扇區1 數據的讀寫,那么就在扇區1后面填上密碼A/B(注:卡片的初始密碼A/B 均為全‘F’),然后選擇“A 組密碼”或者“B 組密碼”,最后點擊“下載”,如果出現“密碼下載成

功”表明密碼下載成功,如果出現異常請按照錯誤提示更改后再下載一次,直至“下載成功”為止

3.6 進入功能選項“數據讀寫”里面,“請選擇扇區號”下面的可拉選項里面選擇第5步下載密碼的扇區號(比如扇區1),然后點擊“讀出”,如果提示“第*扇區數據讀出成功”表明讀數據正確。如果出現“第*扇區數據讀出失敗”表明密碼校驗出錯或者出現其他異常,請返回第5 步重新下載密碼

3.7 如果讀數據正確,在塊0、塊1、塊2 后面修改數據,比如改成

“塊0:12345678901234567890123456789012”

“塊1:23456789012345678901234567890123”

“塊2:34567890123456789012345678901234”

然后點擊“寫入”,如果出現“第*扇區數據寫入成功”表明寫入數據正確。如果出現“第*扇區寫入失敗”表明密碼校驗出錯或者出現其他異常,請返回第5 步重新下載密碼

3.8 再次點擊“讀出”鍵,然后點擊“讀出”,如果提示“第*扇區數據讀出成功”表明讀數據正確,再對比塊0、塊1、塊2 是否和第7 步寫入的數據一樣,如果數據一樣,證明寫入成功了。如果出現“第*扇區數據讀出失敗”表明密碼校驗出錯或者出現其他異常,請返回第5 步重新下載密碼。

四、Mifare One 卡片塊值測試

4.1 進入功能選項“塊值操作”里面,在“扇區號”下面的可拉選項里面選擇第3.5 步下載密碼的扇區號(比如扇區1),在“塊號”下面的可拉選項里面選擇你想測試的塊號(比如第1 塊)

4.2 在“操作值”后面填上你所希望的初始值(比如“11111111”),然后點擊“初始化”,如果出現“數據初始化成功”表明操作成功。如果出現“數據初始化失敗”表明操作失敗,請檢查密碼是否正確,返回第3.1 步重新操作一次。

4.3 點擊“讀出”,如果在“當前值”后面出現是你原來寫進去的初始值,證明操作正確,如果“數據讀出失敗”表明塊值操作有異常,請重新初始化。

4.4 在“操作值:”后面填上你所希望的操作值(比如“22222222”),然后點擊“加值”,如果出現“數值加操作成功”,表明操作成功。如果出現其他提示表明操作失敗

4.4 點擊“讀出”,如果在“當前值:”后面出現是你初始值加上加值(11111111+22222222=33333333)表明操作正確,如果是其他的值表明失敗

4.5 在“操作值:”后面填上你所希望的操作值(比如“11111111”),然后點擊“減值”,如果出現“數值減操作成功”,表明操作成功。如果出現其他提示表明操作失敗

4.6 點擊“讀出”,如果在“當前值:”后面出現是你當前值減去操作值(33333333-11111111=22222222),表明操作正確,如果是其他值表明失敗

五、修改密碼和控制位

5.1 進入功能選項“修改密碼”里面,在“扇區號”下面的可拉選項里面選擇第3.5步下載密碼的扇區號(比如扇區1)

5.2 在“密碼A”和“密碼B”后面分別寫入你想修改的密碼A 和密碼B

5.3 卡片控制位修改之前請詳細閱讀卡片資料,因為控制位修改不正確,就會導致卡片

不能再使用,請務必小心使用

5.4 在控制位后面填上該扇區的控制位

5.3 點擊“修改密碼”,如果出現“修改密碼成功”,表示操作正確,如果出現出錯提示,

請按照出錯提示做相應的處理。(注:密碼修改后請務必記住,密碼遺忘卡片就不

能再次是使用了)

六、參數設置

6.1 進入功能選項“參數設置”里面,可以設置串口通訊參數:串口號、波特率、校驗位、數據位、停止位等等,設置玩了以后點擊“修改串口”,如果出現“串口參數設置成功”,表明串口設置成功,如果出現異常,請按照提示做出改動。

6.2 設置完畢以后可以點擊“測試讀卡器”,如果出現“讀卡器連接成功”,并且聽到讀卡器的風鳴器響聲,證明串口設置正確,如果出現“讀卡器連接失敗”,表明串口設置有問題,請重新設置。

6.3 讀寫器默認參數:Com1、9600bps、N、8、1

七、調試信息

7.1 進入功能選項“調試信息”里面,在“串口信息發送與接受”處可以看到PC 機和讀卡器之間通訊的詳細過程,對調試非常有幫助



單片機(下位機)源程序如下:

#include

#include "reg52.h"

#include "main.h"

#include "mfrc522.h"

#include  

#define MAXRLEN 18                        

/////////////////////////////////////////////////////////////////////

//功    能:尋卡

//參數說明: req_code[IN]:尋卡方式

//                0x52 = 尋感應區內所有符合14443A標準的卡

//                0x26 = 尋未進入休眠狀態的卡

//          pTagType[OUT]:卡片類型代碼

//                0x4400 = Mifare_UltraLight

//                0x0400 = Mifare_One(S50)

//                0x0200 = Mifare_One(S70)

//                0x0800 = Mifare_Pro(X)

//                0x4403 = Mifare_DESFire

//返    回: 成功返回MI_OK

/////////////////////////////////////////////////////////////////////

char PcdRequest(unsigned char req_code,unsigned char *pTagType)

{

   char status;  

   unsigned int  unLen;

   unsigned char ucComMF522Buf[MAXRLEN]; 

//  unsigned char xTest ;

   ClearBitMask(Status2Reg,0x08);

   WriteRawRC(BitFramingReg,0x07);


//  xTest = ReadRawRC(BitFramingReg);

//  if(xTest == 0x07 )

//   { LED_GREEN  =0 ;}

// else {LED_GREEN =1 ;while(1){}}

   SetBitMask(TxControlReg,0x03);


   ucComMF522Buf[0] = req_code;


   status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen);

//     if(status  == MI_OK )

//   { LED_GREEN  =0 ;}

//   else {LED_GREEN =1 ;}

   if ((status == MI_OK) && (unLen == 0x10))

   {    

       *pTagType     = ucComMF522Buf[0];

       *(pTagType+1) = ucComMF522Buf[1];

   }

   else

   {   status = MI_ERR;   }

   

   return status;

}


/////////////////////////////////////////////////////////////////////

//功    能:防沖撞

//參數說明: pSnr[OUT]:卡片序列號,4字節

//返    回: 成功返回MI_OK

/////////////////////////////////////////////////////////////////////  

char PcdAnticoll(unsigned char *pSnr)

{

    char status;

    unsigned char i,snr_check=0;

    unsigned int  unLen;

    unsigned char ucComMF522Buf[MAXRLEN]; 

    


    ClearBitMask(Status2Reg,0x08);

    WriteRawRC(BitFramingReg,0x00);

    ClearBitMask(CollReg,0x80);


    ucComMF522Buf[0] = PICC_ANTICOLL1;

    ucComMF522Buf[1] = 0x20;


    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);


    if (status == MI_OK)

    {

             for (i=0; i<4; i++)

         {   

             *(pSnr+i)  = ucComMF522Buf[i];

             snr_check ^= ucComMF522Buf[i];

         }

         if (snr_check != ucComMF522Buf[i])

         {   status = MI_ERR;    }

    }

    

    SetBitMask(CollReg,0x80);

    return status;

}


/////////////////////////////////////////////////////////////////////

//功    能:選定卡片

//參數說明: pSnr[IN]:卡片序列號,4字節

//返    回: 成功返回MI_OK

/////////////////////////////////////////////////////////////////////

char PcdSelect(unsigned char *pSnr)

{

    char status;

    unsigned char i;

    unsigned int  unLen;

    unsigned char ucComMF522Buf[MAXRLEN]; 

    

    ucComMF522Buf[0] = PICC_ANTICOLL1;

    ucComMF522Buf[1] = 0x70;

    ucComMF522Buf[6] = 0;

    for (i=0; i<4; i++)

    {

            ucComMF522Buf[i+2] = *(pSnr+i);

            ucComMF522Buf[6]  ^= *(pSnr+i);

    }

    CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]);

  

    ClearBitMask(Status2Reg,0x08);


    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen);

    

    if ((status == MI_OK) && (unLen == 0x18))

    {   status = MI_OK;  }

    else

    {   status = MI_ERR;    }


    return status;

}


/////////////////////////////////////////////////////////////////////

//功    能:驗證卡片密碼

//參數說明: auth_mode[IN]: 密碼驗證模式

//                 0x60 = 驗證A密鑰

//                 0x61 = 驗證B密鑰 

//          addr[IN]:塊地址

//          pKey[IN]:密碼

//          pSnr[IN]:卡片序列號,4字節

//返    回: 成功返回MI_OK

/////////////////////////////////////////////////////////////////////               

char PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr)

{

    char status;

    unsigned int  unLen;

    unsigned char i,ucComMF522Buf[MAXRLEN]; 


    ucComMF522Buf[0] = auth_mode;

    ucComMF522Buf[1] = addr;

    for (i=0; i<6; i++)

    {    ucComMF522Buf[i+2] = *(pKey+i);   }

    for (i=0; i<6; i++)

    {    ucComMF522Buf[i+8] = *(pSnr+i);   }

//   memcpy(&ucComMF522Buf[2], pKey, 6); 

//   memcpy(&ucComMF522Buf[8], pSnr, 4); 

    

    status = PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen);

    if ((status != MI_OK) || (!(ReadRawRC(Status2Reg) & 0x08)))

    {   status = MI_ERR;   }

    

    return status;

}


/////////////////////////////////////////////////////////////////////

//功    能:讀取M1卡一塊數據

//參數說明: addr[IN]:塊地址

//          pData[OUT]:讀出的數據,16字節

//返    回: 成功返回MI_OK

///////////////////////////////////////////////////////////////////// 

char PcdRead(unsigned char addr,unsigned char *pData)

{

    char status;

    unsigned int  unLen;

    unsigned char i,ucComMF522Buf[MAXRLEN]; 


    ucComMF522Buf[0] = PICC_READ;

    ucComMF522Buf[1] = addr;

    CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);

   

    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);

    if ((status == MI_OK) && (unLen == 0x90))

//   {   memcpy(pData, ucComMF522Buf, 16);   }

    {

        for (i=0; i<16; i++)

        {    *(pData+i) = ucComMF522Buf[i];   }

    }

    else

    {   status = MI_ERR;   }

    

    return status;

}


/////////////////////////////////////////////////////////////////////

[1] [2] [3]
關鍵字:單片機  讀寫RC522  射頻卡  上位機調試 引用地址:單片機讀寫RC522射頻卡上位機調試軟件及參考例程

上一篇:nRF24L01單片機通信的總結--看了就會用了
下一篇:TM1650模塊單片機源程序(子函數)

推薦閱讀

本文作者:德州儀器 Matt Chevrier 為工業以太網器件供電需要解決工業以太網和工業應用的幾個特定問題。 標準以太網與工業以太網之間最大的區別在于拓撲結構,如圖1所示。標準以太網為星形拓撲,而工業以太網則包含線形、樹形和環形等多種不同的拓撲結構。 標準以太網拓撲結構 工業以太網拓撲結構圖 1:兩...
單片機的USB接口,通常用法,1)HID 是Human Interface Device的縮寫,由其名稱可以了解HID設備是直接與人交互的設備,例如鍵盤、鼠標與游戲桿等。不過HID設備并不一定要有人機接口,只要符合HID類別規范的設備都是HID設備。(參考百度 https://baike.baidu.com/item/USB-HID)2)CDC 虛擬串口,可與PC機直接聯機通訊,如同RS232。3)USB MSC (Mass...
雙11狂歡購物節之際,小米推出了一款擁有3D避障功能的掃拖一體機器人——米家掃拖機器人1T,售價2299元,預售100抵400,到手價1999元。傳統的掃地機器人會因為家庭環境過于復雜而發生纏繞、碰撞、或者存在打掃死角的情況,尤其會出現在打掃過程中推著家里擺放在地面的玩具、拖鞋等小物體滿屋亂跑的尷尬局面。而米家掃拖機器人1T通過搭載應用于無人駕駛領域...
近日,壁仞科技的首款通用GPU—BR100正式交付開始流片,搭載該芯片的系列通用計算產品,主要聚焦于人工智能訓練和推理、通用運算等眾多計算應用場景,將彌補人工智能應用的高速發展帶來的巨大算力缺口。在當前的多芯片集群并行計算領域,工業界普遍使用集合通信方案來實現多個節點間共享數據和傳輸數據的操作。當前的集合通信中,“節點1的芯片A發送數據給...

史海拾趣

問答坊 | AI 解惑

有人了解中磊(蘇州)研發中心

這個公司怎么樣,待遇如何?…

查看全部問答∨

射頻電路中的電感

介紹了幾種射頻電路中常見的電感形式,給出了其電感值和Q值的計算公式,可用于工程中設計和分析電感,并闡述了幾種電感的實際應用. …

查看全部問答∨

在STC89C58RD+ UCOS跑流水燈

附件是用KEIL建立的工程項目,在P3口跑了個流水燈,可以在純軟件仿真下觀察效果。 系統使用資源: Program Size: data=84.0 xdata=423 code=3263 STC89C58的資源:ROM 32K,RAM:1280 BYTE,可以容納。 從51其他型號到STC89C58RD+移植要點: ...…

查看全部問答∨

有用過轉接卡的嗎?pcmcia轉串口 在超級終端中輸入的字符混亂

使用的是華塑的pcmcia轉串口卡,XP系統自帶超級端連mini2440 波特率:115200 數據位:8 奇偶校驗:無 停止位:1 數據流控制:無 在設置中的"本地回顯鍵入的字符",沒有勾選. 可以連上mini2440,之前刷的是"缺省Linux系統",在超級終端 ...…

查看全部問答∨

請問用PIC16F57搞電子式電能表的開發,都需要用到什么軟件。

請問用PIC16F57搞電子式電能表的開發,都需要用到什么軟件。…

查看全部問答∨

ds1302的使用

各位大俠,請問怎么才能確定ds1302處于工作狀態?…

查看全部問答∨

電腦網卡燈不亮 網卡和網線都是好的

電腦網卡燈不亮,有時候還一亮一滅的閃爍,顯示本地連接打叉,不能上網,可是電腦搬到別的地方就可以,網線插別的電腦也可以,請問是什么問題啊。…

查看全部問答∨

設計管道漏水檢測裝置的想法?

最近公司接了個項目,是自來水公司的,要求研發一件產品能夠檢測出管道是否漏水(地下管道:壓力應該挺大),現在還沒有想到合適的方法,希望大家幫忙想想啊!比如說傳感器之類。可以考慮每隔多少米方一個設備也行。我想過用濕度傳感器,但是傳感器 ...…

查看全部問答∨

在調AD的時候都要注意什么問題啊?

本帖最后由 paulhyde 于 2014-9-15 09:01 編輯 我是新手,最近調了個AD574,感覺時序都沒問題,可出來的數就是不變。不知道AD這塊還要注意點什么啊?  …

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 长沙市| 东兰县| 广宗县| 健康| 丹寨县| 长汀县| 泉州市| 临沧市| 奈曼旗| 荔浦县| 同仁县| 霞浦县| 建瓯市| 西华县| 东源县| 安龙县| 喀喇| 巴林右旗| 湄潭县| 离岛区| 湘西| 阳泉市| 公主岭市| 文登市| 进贤县| 新巴尔虎左旗| 浪卡子县| 吴江市| 奈曼旗| 甘谷县| 冕宁县| 余庆县| 吉安市| 邢台县| 米易县| 金川县| 新兴县| 瑞金市| 房产| 育儿| 泸溪县|