1-硬件概述
RC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片,“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携式手持设备研发的较好选择。MFRC522利用了先进的调制和解调概念,集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。支持14443A兼容应答器信号。数字部分处理ISO014443A帧和错误检测。
2-引脚定义
3-电路原理图
4-硬件连接
5-图形化模块
1. RC522初始化,RST引脚,NSS引脚,SCK引脚,MISO引脚、MOSI引脚
2. RC522写数据
3. RC522读取数据。
6-范例代码
- #define SOFTSPI_SCK_PIN P2_5
- #define SOFTSPI_MISO_PIN P2_4
- #define SOFTSPI_MOSI_PIN P2_3
- #define RC522_RST P1_0
- #define RC522_RST_MODE {P1M1&=~0x011M0&=~0x01;}//P1_0双向IO口
- #define RC522_NSS P1_1
- #define rc522_NSS_MODE {P1M1&=~0x021M0&=~0x02;}//P1_1双向IO口
- #include <STC8HX.h>
- uint32 sys_clk = 24000000;//设置PWM、定时器、串口、EEPROM频率参数
- #include "lib/oled.h"
- #include "lib/twen_board.h"
- #include "mylib/rc522.h"
- #include "lib/delay.h"
- uint8 key[6]={0xff,0xff,0xff,0xff,0xff,0xff};
- uint8 value[16]={0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0x07,0x80,0x69,0xff,0xff,0xff,0xff,0xff,0xff};
- uint8 RFID[16];
- uint8 key1[6]={0xf7,0xf6,0xf5,0xff,0xff,0xff};
- void setup()
- {
- oled_init();//OLED初始化
- twen_board_init();//天问51初始化
- rc522_init();//RC522初始化
- }
- void loop()
- {
- rc522_read(key,8,RFID);//RC522读数据
- oled_clear();//OLED清屏
- oled_show_num(0,0,RFID[(int)(0)]);
- oled_show_num(10,0,RFID[(int)(1)]);
- oled_show_num(20,0,RFID[(int)(2)]);
- oled_show_num(30,0,RFID[(int)(3)]);
- oled_show_num(40,0,RFID[(int)(4)]);
- oled_show_num(50,0,RFID[(int)(5)]);
- oled_show_num(60,0,RFID[(int)(6)]);
- oled_show_num(70,0,RFID[(int)(7)]);
- oled_display();//OLED更新显示
- delay(100);
- }
- void main(void)
- {
- setup();
- while(1){
- loop();
- }
- }
[color=rgb(51, 102, 153) !important]复制代码
7-测试视频https://www.bilibili.com/video/BV1W64y1X7Fh?share_source=copy_web
|