标题: MFRC522 IC卡号识别 寻卡与单片机通信程序及中文手册下载 [打印本页]

作者: wangyong1983    时间: 2017-8-23 11:12
标题: MFRC522 IC卡号识别 寻卡与单片机通信程序及中文手册下载
RFID-RC522+STC89C52+IC卡号识别教程
by小伍子
一、将排针焊到板子上,切记要焊好,不要虚焊,如下图:

二、    识别模块与单片机之间通过SPI进行通信,硬件引脚与程序中引脚的对应情况如下:
SDA——MF522_NSS
SCK——MF522_SCK
MOSI——MF522_SI
MISO——MF522_SO
RST——MF522_RST
单片机IO口引脚与程序中引脚对应关系可在MAIN.H文件中修改,位置如下:
三、    RC522模块的电源问题(笔者曾经因为这个问题被困扰了很久)
电压最大不能超过3.6V,单片机供电为5V,切记不要直接供电,否则会出现不识卡的情况,可以使用“稳压LM1117-3.3”这个原件,或者这样:
四、    本人程序中设置RC522与单片机的连接如下:
五、    程序中设置好的串口通信波特率为4800,当寻卡成功后io口ff连着的LED灯或者蜂鸣器发光或者发声,同时通过串口传输4个字节的数据,数据内容如下:

如果不使用十六进制解析的话,得到的可能是乱码,使用十六进制得到的就是8个字符。

六、本人也是菜鸟,如果有写的不好的地方,还请谅解!


MFRC522中文手册目录:


MFRC522单片机源程序如下(主程序):
  1. #include<reg52.h>
  2. #include<main.h>
  3. #include<mfrc522.h>
  4. unsigned char UID[5],Temp[4];

  5. void feeb(){ //寻卡成功响应函数
  6.         ff=0;
  7.         delay_10ms(1);
  8.         ff=1;
  9.         delay_10ms(1);
  10. }

  11. void Auto_Reader(void){
  12.   while(1){
  13.     if(PcdRequest(0x52,Temp)==MI_OK){  //寻卡,成功后Temp数组为卡类型
  14.       if(PcdAnticoll(UID)==MI_OK){          //防冲突,UID数组数据为卡序列号
  15.            CALL_isr_UART();                          //开串口中断将UID数组前四个字节上传到串口调试助手
  16.                    feeb();                    //调用蜂鸣器提示           
  17.       }
  18.     }else ff = 0;//寻卡失败
  19.   }
  20. }

  21. void InitializeSystem(){
  22.         SCON=0X50;                        //设置为工作方式1
  23.         TMOD=0X21;                        //设置计数器工作方式2
  24.         PCON=0X80;                        //波特率加倍
  25.         TH1=0XF3;                    //计数器初始值设置,注意波特率是4800的
  26.         TL1=0XF3;
  27.         REN = 1;
  28.         ES=1;                                                //打开接收中断
  29.         EA=1;                                                //打开总中断
  30.         TR1=1;               
  31.         ff = 0;
  32.     PcdReset();
  33.     PcdAntennaOff();
  34.     PcdAntennaOn();  
  35.         M500PcdConfigISOType( 'A' );
  36. }

  37. void isr_UART(void) interrupt 4 using 1{
  38.     unsigned char i;
  39.         if(TI){
  40.                 TI=0;
  41.                 for(i=0;i<4;i++){
  42.                         SBUF=UID[i];
  43.                         while(!TI);
  44.                         TI=0;                       
  45.                 }
  46.                 REN=1;
  47.         }
  48. }

  49. void main( ){   
  50.     InitializeSystem( );
  51.         Auto_Reader();
  52. }
复制代码


所有资料51hei提供下载:
RC522 STC89C52 串口通信.zip (9.35 MB, 下载次数: 1122)




作者: faridzled    时间: 2017-8-24 22:01
thanks for sharing
作者: yiguo    时间: 2017-8-25 22:21
最近也在搞这个rc522模块. 但是一直没成功.  连最基本的刷卡亮灯都没调试出来. 帮我加个分下载的看看
作者: luzhichao    时间: 2017-9-14 18:45
只能识别S50,白卡没有识别成功

作者: 的花朵    时间: 2017-11-12 20:02
这个模块把我搞得有点头大,顶楼主
作者: 天黑黑    时间: 2018-1-1 22:42
感谢分享
作者: xujianwei11    时间: 2018-1-11 18:08
不寻卡怎么回事啊,电源没有问题
作者: biao169    时间: 2018-1-22 20:55
感谢分享,等待试验成功
作者: qjzyx    时间: 2018-1-22 21:26
谢谢分享!
作者: biao169    时间: 2018-1-22 23:57
qjzyx 发表于 2018-1-22 21:26
谢谢分享!

请问你做成功了吗?我现在寻不了卡
作者: 星月star_moons    时间: 2018-1-31 22:37
现在头也好大,RC522好难调,总是没反应
作者: a9069776    时间: 2018-2-22 21:33
真想学习一下!
作者: yywudi    时间: 2018-3-24 13:21
也不知道为什么 ,换一台电脑灯都不亮了
作者: 0501    时间: 2018-4-1 17:19
祖国的花朵 发表于 2017-11-12 20:02
这个模块把我搞得有点头大,顶楼主

您好!能给我发一份吗

作者: pmsjzj    时间: 2018-4-16 21:39
希望可以用
作者: pmsjzj    时间: 2018-4-16 22:12
为什么下载不下来  重复扣分?
作者: jx6012    时间: 2018-4-26 12:00
求支持5黑币下载资料,谢谢大家
作者: avanyway    时间: 2018-5-6 17:13
简单 粗暴  有效率的程序
作者: avanyway    时间: 2018-5-6 17:14
很赞  下载了  慢慢研究
作者: jackyle6    时间: 2018-5-9 22:31
学习的有点晚了,赞一个。
作者: 2100598336    时间: 2018-5-11 19:57
学习一下
作者: aj8714523    时间: 2018-5-12 12:39
最近正在研究,小白一个,学习了!
作者: aa2962985    时间: 2018-5-13 10:35
不行啊,一直用不了
作者: zhishen80    时间: 2018-5-13 11:56
感谢分享
作者: dong1998    时间: 2018-5-13 19:35
刚接触  求大佬带

作者: chen0108    时间: 2018-5-14 15:29
这人可以做打卡机吧!
作者: 107415890    时间: 2018-5-16 16:14
这个模块确实有点麻烦
作者: 107415890    时间: 2018-5-16 16:15
这个模块好磨人啊
作者: 1258305043    时间: 2018-5-23 16:30
谢谢分享,得好好研究一番

作者: 简简单单♂    时间: 2018-5-30 08:27
感谢!!!
作者: 213333    时间: 2018-6-3 19:32
biao169 发表于 2018-1-22 23:57
请问你做成功了吗?我现在寻不了卡

我现在可以和读卡器连接成功 但是读不了卡   我用的是S50白卡和异形卡都不行。
作者: leisure168    时间: 2018-6-12 14:50
感谢分享!
作者: mingle123    时间: 2018-6-12 15:40
能不能4黑币,这样第二天就能下载

作者: lidechun0    时间: 2018-7-6 22:42
正好卡在这个地方,下回去看看
作者: 51懂    时间: 2018-7-14 17:06
lidechun0 发表于 2018-7-6 22:42
正好卡在这个地方,下回去看看

能加一个吗,我也在弄,就是没反应。
作者: TEACHER33    时间: 2018-8-3 09:55
感谢分享,下回来试试
作者: lbl021    时间: 2018-9-14 16:29
谢谢分享
作者: lcl1260519806    时间: 2018-10-1 16:46
很好,正好在学,谢谢lz
作者: syd666    时间: 2018-10-9 22:59
NB厉害牛逼
作者: 18207748450    时间: 2018-10-10 15:02
我有点疑惑,就是程序里面的串口程序在哪里?我找不到,小白刚入门,请赐教
作者: phy0292    时间: 2018-10-12 20:35
不错,谢谢!
作者: fengjunjie    时间: 2018-10-29 21:07
不错不错不错 模块就是有点难搞
作者: dufangyidfy    时间: 2018-11-2 11:48
可以用。谢谢了
作者: LEOYIHO    时间: 2018-11-4 22:20
写的很好,补充一下,mfrc522对电源要求很高,电源不行就读不出卡式读数不对
作者: 电子爱好666    时间: 2018-11-7 12:11
压缩文件损坏什么鬼
作者: 25Hzzz    时间: 2018-11-18 00:01
感谢分享,小白一个希望能通过多看别人的源码来提高自己的能力
作者: 数码小叶    时间: 2018-11-18 12:42
下下来看看


作者: 609763691    时间: 2018-12-5 13:39
楼主你好,问一下你的这个能够实现些什么功能呢,比如扣款,充值,注册卡等一些高级点的功能程序有没,我现在很想要这些参考程序,识别卡的我已经搞出来了。
作者: happyydm    时间: 2018-12-12 11:28
感谢楼主,正是我想要的。寻不到卡的原因是电源没用3.3v
作者: SHIQIANG    时间: 2018-12-19 19:52
很好,赞一个
作者: fgl123    时间: 2018-12-20 10:37
赞一个
作者: 忍无心恋    时间: 2018-12-25 15:12
好巧,正需要,感谢
作者: softman    时间: 2019-1-17 10:35
写的很好,下载不了。
作者: linziol    时间: 2019-2-4 14:37
太好了,谢谢分享!
作者: Beat0small0Han    时间: 2019-2-24 20:38
楼主真的是太赞了,找了半天。终于找到一个能用又适合入门的了
作者: 389992315    时间: 2019-3-4 01:12
支持楼主
作者: 15936895147    时间: 2019-3-5 22:15
谢谢.........
作者: 快乐眼泪    时间: 2019-3-6 19:40
非常感谢!
作者: cc小菜    时间: 2019-3-8 15:35
请问这个程序是直接下载到51,然后通过串口助手就可以看见现象是吗??
作者: wsadjkln    时间: 2019-3-21 14:17
显示读卡器连接失败,什么原因
作者: zqz1201135    时间: 2019-3-21 17:23
谢谢分享,学习一下
作者: qq2275765    时间: 2019-3-30 16:52
求下载调试好久了一直不成功
作者: 270497470    时间: 2019-3-31 21:45
烧录后还没卡指示灯就一直闪?为什么?
烧录后是不是用"IC卡调试程序"来测试?用此程序也寻不到卡?麻烦,有人指导一下?电源已用3.3V
作者: 1376837    时间: 2019-4-1 19:06
这个模块搞得我好头疼》》》》》》》》》
作者: 安东诺夫卡    时间: 2019-4-2 16:58
分享一个RC522测试芯片的例程,包括上位机工具,按照程序引脚定义连接好后,打开串口工具,不过需要更改一下COM口,详细的方法楼主已经提供,在此不赘述。
作者: 安东诺夫卡    时间: 2019-4-2 16:59
18207748450 发表于 2018-10-10 15:02
我有点疑惑,就是程序里面的串口程序在哪里?我找不到,小白刚入门,请赐教

在头文件里面有定义的,你可以根据自己的需求更改引脚
作者: 年少的少年    时间: 2019-4-3 19:50
谢谢哎,最近特别需要这个
作者: hustjzr    时间: 2019-4-3 20:47
学习一下
作者: 瞬间1    时间: 2019-12-1 10:44
为什么会出现乱码呢?按照楼主说的做了,可是看现象是能够接收了,但显示的乱码。头痛,哪位大神能否指点下,感激不尽
作者: 562969678    时间: 2019-12-7 08:56
试一试,看能不能行
作者: 981372392    时间: 2019-12-30 14:22
有没有好兄弟分享以下
作者: bobo2051    时间: 2020-5-27 15:57
都没有选卡?
作者: oursky2003    时间: 2021-2-2 17:32
好帖子,非常感谢。
作者: 1208857710    时间: 2021-4-17 11:42
感谢,程序是可以用的,已经读出卡号了
作者: dzc3458    时间: 2021-9-11 10:24
pmsjzj 发表于 2018-4-16 22:12
为什么下载不下来  重复扣分?

我看别人也经常下载不了,都是我还没遇到过,我下载到了,你要吗
作者: 大一王    时间: 2021-9-13 15:57
谢谢坛友分享,学习一下,感激不尽
作者: lmtgd    时间: 2022-4-21 22:13
RC522---单片机(例如:STC89C52)----USB转TTL---电脑,主要是单片机与RC522这部分通讯一般爱好者有困难,一是硬件连线,因为各人编写的程序定义单片机I/O口不同,另外就是指定的外接晶振不同(都在在MAIN.H上体现)我在某一个宝上拍RC522,就是晶振与程序不一致走了弯路.见图

00.JPG (121.24 KB, 下载次数: 664)

00.JPG

0.jpg (3.66 MB, 下载次数: 638)

0.jpg

1.JPG (37.36 KB, 下载次数: 672)

1.JPG

2.JPG (37.06 KB, 下载次数: 673)

2.JPG

3.JPG (42.14 KB, 下载次数: 677)

3.JPG

作者: lmtgd    时间: 2022-4-21 22:21
com口也要选择正确,中文测试的只有COM1和COM2,不在这两个内的要在高级里改,或用里面的英文版测试.
作者: dgkbxs    时间: 2022-4-27 16:30
lmtgd 发表于 2022-4-21 22:13
RC522---单片机(例如:STC89C52)----USB转TTL---电脑,主要是单片机与RC522这部分通讯一般爱好者有困难,一是 ...

可以给我指导一下吗,我是新手才接触这个,我的课题是用rc522来识别不同的卡号做出不同判断,我用某一个宝给的test程序通过串口调试助手调试就得到乱码,ic卡连接也失败了,我的想法是找得到uid序列号,然后在主程序里面防冲突这一步进行判断,如果如果是识别对应的uid就执行对应的操作,如果可以就给我回复,谢谢
作者: 李军军军    时间: 2022-5-14 17:39
学习了学习了,楼主的帖子使我受益匪浅
作者: sp2hk    时间: 2022-11-16 22:22
这个挺好啊。,正需要呢,··
作者: 张明211    时间: 2024-5-28 09:37
最近在折腾这个
作者: wangwing    时间: 2024-12-3 21:26
如果使用STC8,需要改哪些内容?

作者: wangwing    时间: 2024-12-12 18:31
这个有读卡成功的吗?未联系




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1