51单片机rc522rfid读卡程序
时间: 2023-08-06 18:08:37 浏览: 108
以下是基于51单片机和RC522模块的RFID读卡程序:
```c
#include<reg52.h>
#include<rc522.h>
#define uchar unsigned char
#define uint unsigned int
uchar code tabel[16] = {0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uchar cardid[5];
uchar i;
init_rc522();
while(1)
{
if(search_card(0x01,cardid)==0)
{
if(antiblock(cardid)==0)
{
for(i=0;i<4;i++) write_data(0x08+i,cardid[i]); //将卡号写入扇区0
write_data(0x3,0x40); //将扇区0设置为密码验证模式
write_data(0x7,0xff); //将密码设置为全F
while(search_card(0x01,cardid)==0); //等待卡离开
}
}
}
}
```
说明:
- `init_rc522()`:初始化RC522模块。
- `search_card(0x01,cardid)`:搜索并读取RFID卡,返回值为0表示成功。
- `antiblock(cardid)`:检查卡是否已被写入卡号,返回值为0表示未被写入卡号。
- `write_data(0x08+i,cardid[i])`:将卡号写入扇区0。
- `write_data(0x3,0x40)`:将扇区0设置为密码验证模式。
- `write_data(0x7,0xff)`:将密码设置为全F。
注意:以上代码仅供参考,具体实现还需要根据自己的需求进行修改。
阅读全文