Rc522 Proteus Library
If you only need to test your firmware logic, simulate using a generic SPI EEPROM (e.g., 25AA1024) or a virtual terminal + custom code.
Once the library is installed, you need to wire the module correctly. The RC522 uses SPI pins. rc522 proteus library
Pseudo-sketch (conceptual):
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup()
SPI.begin();
mfrc522.PCD_Init();
void loop()
if (!mfrc522.PICC_IsNewCardPresent()) return;
if (!mfrc522.PICC_ReadCardSerial()) return;
// UID available in mfrc522.uid.uidByte[], mfrc522.uid.size
// Example: read block 4 using MIFARE auth and read
In Proteus, this firmware can be stepped through to watch SPI frames if the RC522 model returns consistent register responses. If you only need to test your firmware
Example low-level pseudocode to read UID: In Proteus, this firmware can be stepped through
spi_write(CommandReg, PCD_Idle);
spi_write(FIFOLevelReg, 0x80); // flush FIFO
spi_write(FIFODataReg, REQA); // or appropriate command sequence
spi_write(CommandReg, PCD_Transceive);
wait for IRQ or poll CommIrqReg for RxDone
read FIFO to get response (UID)