1,求教rc522模块怎么读出校园一卡通

玩点别的多好,例如给宿舍厕所装上RFID门禁。
不明白啊 = =!

求教rc522模块怎么读出校园一卡通

2,RF卡读写的识别区里只能有一张卡吗

yes.这也只是大概。

RF卡读写的识别区里只能有一张卡吗

3,我实在想不透我的rc522为什么读不了卡

RC522不能读卡或许是卡的原因换一个新的看看
先看看能不能读id一步步往下看,验证密码,读扇区

我实在想不透我的rc522为什么读不了卡

4,RC522芯片怎么读CPU卡

楼主你好,最近我也在搞CPU卡,但是一点眉目也没有,请楼主帮忙行吗?

5,求rc522读卡程序我是淘宝买的读卡器不过他提供的程序在单片机

你好!那就改一下程序,如果连续读入的卡号相同,就被禁止使用
少了头文件#include#include 端口定义不正确

6,RC522门禁系统 刷卡只能记录一张卡怎么解决

系统 新注册卡保存问题,覆盖了原来的记录。修改系统的注册新卡的保存方法。

7,求STC单片机的RC522读卡程序通过串口发送卡号即可

<p>我有stc11f32xe读取RC522的上位机程序,你看看能用吗。</p> <p>通过串口发送卡号什么意思,可以通过串口读取卡号。</p> <p>如果需要下载到单片机中的程序也可以提供。</p>

8,求一个rc522读卡程序 单片机stc12c5a60s289c52 要求只需读到的卡

由STC12C5A60S2+RC522构成的IC卡读卡器 读出的卡号从串口返回 RC522 非接触式IC卡读卡模块 采用I2C接口通信...论坛里有
stc12c52a60s2:这个型号不存在,肯定是写错了后者是stc的5v一款双串口单片机

9,rfid rc522可以写卡吗

应该是时序的问题吧?STC11是1T的单片机,而89系列的是12T的,速度不一样,你最好好好检查一下程序,看时序是否有问题。
rc522是一款nxp 公司的支持iso14443a协议的高频的射频芯片,pn532这个款芯片是支持nfc功能一款射频芯片,也是nxp公司的。 至于125k指的是低频。

10,RC522芯片怎么读CPU卡

CPU卡没有写COS吧,就相当于电脑没有按照系统,怎么开机也进不了系统一样的道理。
什么意思?#include #define rst 1 << 8 // p0.7控制rc522复位,低电平复位/************************************************************************************************************ 函数名称 :rc522_rst()** 函数功能 :复位rc522** 调试说明 :需将跳线jp5和rst连接。**********************************************************************************************************/int rc522_rst (void) io0dir = rst; // 设置rst控制口为输出 io0set = rst; // p0.7置高 delayns(10); // 延时 io0clr = rst; // p0.7置低 delayns(3); io0set = rst; return 0;}/*********************************************************************************************************** 函数名称:readrawrc()** 函数功能:读mf522寄存器** 参数说明:address[in]:寄存器地址** 返 回 值:读出的值*********************************************************************************************************/unsigned char readrawrc(unsigned char address) unsigned char ucaddr; unsigned char ucresult = 0; ucaddr = ((address<<1)&0x7e)|0x80;ucresult = mspi_senddata (ucaddr);return ucresult;}/********************************************************************************************************** 函数名称:writerawrc()** 函数功能:写mf522寄存器** 参数说明:address[in]:寄存器地址** value[in]:写入的值** 返 回 值:无********************************************************************************************************/void writerawrc(unsigned char address,unsigned char value) unsigned char ucaddr; ucaddr = ((address<<1)&0x7e);mspi_senddata(ucaddr); mspi_senddata(value);return 0;}/********************************************************************************************************** 函数名称:setbitmask()** 函数功能:置mf522寄存器位** 参数说明:reg[in]:寄存器地址** mask[in]:置位值** 返 回 值:无********************************************************************************************************/void setbitmask(unsigned char reg,unsigned char mask) char tmp = 0x0; tmp = readrawrc(reg); writerawrc(reg,tmp | mask); return 0;}/********************************************************************************************************** 函数名称:clearbitmask()** 函数功能:清mf522寄存器位** 参数说明:reg[in]:寄存器地址** mask[in]:清位值** 返 回 值:无********************************************************************************************************/void clearbitmask(unsigned char reg,unsigned char mask) char tmp = 0x0; tmp readrawrc(reg); writerawrc(reg,tmp & ~mask);return 0;}/********************************************************************************************************** 函数名称:pcdantennaon()** 函数功能:开启天线** 函数说明:每次开启或关闭天线发射之间至少有1ms的间隔** 返 回 值:无********************************************************************************************************/void pcdantennaon() unsigned char i; i = readrawrc(txcontrolreg); if (!(i & 0x03)) setbitmask(txcontrolreg,0x03);}return 0;}/********************************************************************************************************** 函数名称:pcdantennaoff()** 函数功能:关闭天线** 函数说明:每次开启或关闭天线发射之间至少有1ms的间隔** 返 回 值:无********************************************************************************************************/void pcdantennaoff() clearbitmask(txcontrolreg,0x03);}/********************************************************************************************************** 函数名称:pcdcommf522()** 函数功能:通过rc522和iso14443卡通讯** 函数说明:command[in]:rc522命令字** pindata[in]:通过rc522发送到卡片的数据** inlenbyte[in]:发送数据的字节长度** poutdata[out]:接收到的卡片返回数据** *poutlenbit[out]:返回数据的位长度** 返 回 值:成功返回 mi_ok********************************************************************************************************/char pcdcommf522(unsigned char command, unsigned char *pindata, unsigned char inlenbyte, unsigned char *poutdata, unsigned int *poutlenbit) char status = mi_err; unsigned char irqen = 0x00; unsigned char waitfor = 0x00; unsigned char lastbits; unsigned char n; unsigned int i; switch (command) case pcd_authent: irqen = 0x12; waitfor = 0x10; break; case pcd_transceive: irqen = 0x77; waitfor = 0x30; break; default: break; } writerawrc(comienreg,irqen|0x80); clearbitmask(comirqreg,0x80); writerawrc(commandreg,pcd_idle); setbitmask(fifolevelreg,0x80); for (i=0; i{ writerawrc(fifodatareg, pindata[i]); } writerawrc(commandreg, command); if (command == pcd_transceive) { setbitmask(bitframingreg,0x80); } i = 600;//根据时钟频率调整,操作m1卡最大等待时间25ms do { n = readrawrc(comirqreg); i--; } while ((i!=0) && !(n&0x01) && !(n&waitfor)); clearbitmask(bitframingreg,0x80); if (i!=0) { if(!(readrawrc(errorreg)&0x1b)) { status = mi_ok; if (n & irqen & 0x01) { status = mi_notagerr; } if (command == pcd_transceive) { n = readrawrc(fifolevelreg); lastbits = readrawrc(controlreg) & 0x07; if (lastbits) { *poutlenbit = (n-1)*8 + lastbits; } else { *poutlenbit = n*8; } if (n == 0) { n = 1; } if (n > maxrlen) { n = maxrlen; } for (i=0; i { poutdata[i] = readrawrc(fifodatareg); } } } else { status = mi_err; } } setbitmask(controlreg,0x80); // stop timer now writerawrc(commandreg,pcd_idle); return status; }2007-8-11 22:33:00 jianjian1981 等级:初中二年级 文章:51 积分:1461 门派:无门无派 注册:2006年4月19日第 2 楼 -------------------------------------------------------------------------------- /* ******************************************************************************************************* ** 函数名称:pcdrequest() ** 函数功能:寻卡 ** 函数说明: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]; clearbitmask(status2reg,0x08); writerawrc(bitframingreg,0x07); setbitmask(txcontrolreg,0x03); uccommf522buf[0] = req_code; status = pcdcommf522(pcd_transceive,uccommf522buf,1,uccommf522buf,&unlen); if ((status == mi_ok) && (unlen == 0x10)) { *ptagtype = uccommf522buf[0]; *(ptagtype+1) = uccommf522buf[1]; } else { status = mi_err; } return status; }/* ******************************************************************************************************* ** 函数名称:pcdanticoll() ** 函数功能:防冲撞 ** 函数说明: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; }/* ******************************************************************************************************* ** 函数名称:pcdselect() ** 函数功能:选定卡片 ** 函数说明: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; }

文章TAG:rc522可以读取多少张卡可以  读取  多少  
下一篇