K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示
- 所有资源导航
- 一、资源说明
- 二、基本参数
- 参数
- 引脚说明
 
- 三、驱动说明
- 时序:
- 对应程序:
 
- 四、部分代码说明
- 1、接线引脚定义
- 1.1、STC89C52RC+RC522射频模块
- 1.2、STM32F103C8T6+RC522射频模块
 
 
- 五、基础知识学习与相关资料下载
- 六、视频效果展示与程序资料获取
- 七、注意事项
- 八、接线说明
- STC89C52RC
- STM32F103C8T6
 

所有资源导航
其他资料目录 直戳跳转
一、资源说明
| 单片机型号 | 测试条件 | 模块名称 | 代码功能 | 
|---|---|---|---|
| STC89C52RC | 晶振11.0592M | RC522射频模块 | STC89C52RC驱动RC522射频模块 串口显示 | 
| STM32F103C8T6 | 晶振8M/系统时钟72M | RC522射频模块 | STM32F103C8T6驱动RC522射频模块 串口显示 | 
二、基本参数
参数
读写器 :支持 ISO 14443A/MIFARE
 通信方式 :SPI 通信
 工作电流:13—26mA/直流3.3V
 空闲电流:10-13mA/直流3.3V
 休眠电流:<80uA
 峰值电流:<30mA
 工作频率:13.56MHz
 数据传输速率:≤10Mbit/s
引脚说明
| RC522射频卡模块 | 引脚说明 | 
|---|---|
| VCC(+) | 正极 3.3V供电 | 
| GDN | 电源负极 | 
| RST | 复位 | 
| IRQ | 中断信号 | 
| MISO | 主进从出数据引脚 | 
| MOSI | 从进主出数据引脚 | 
| SCK | 时钟 | 
| SDA | 片选 | 
三、驱动说明
时序:

对应程序:
以51为例
/
//功    能:读RC522寄存器
//参数说明:Address[IN]:寄存器地址
//返    回:读出的值
/
unsigned char ReadRawRC(unsigned char Address)
{
     unsigned char i, ucAddr;
     unsigned char ucResult=0;
     MF522_SCK = 0;
     MF522_SDA = 0;
     ucAddr = ((Address<<1)&0x7E)|0x80;
     for(i=8;i>0;i--)
     {
         MF522_MOSI = ((ucAddr&0x80)==0x80);
         MF522_SCK = 1;
         ucAddr <<= 1;
         MF522_SCK = 0;
     }
     for(i=8;i>0;i--)
     {
         MF522_SCK = 1;
         ucResult <<= 1;
         ucResult|=(bit)MF522_MISO;
         MF522_SCK = 0;
     }
     MF522_SDA = 1;
     MF522_SCK = 1;
     return ucResult;
}
/
//功    能:写RC522寄存器
//参数说明:Address[IN]:寄存器地址
//          value[IN]:写入的值
/
void WriteRawRC(unsigned char Address, unsigned char value)
{  
    unsigned char i, ucAddr;
    MF522_SCK = 0;
    MF522_SDA = 0;
    ucAddr = ((Address<<1)&0x7E);
    for(i=8;i>0;i--)
    {
        MF522_MOSI = ((ucAddr&0x80)==0x80);
        MF522_SCK = 1;
        ucAddr <<= 1;
        MF522_SCK = 0;
    }
    for(i=8;i>0;i--)
    {
        MF522_MOSI = ((value&0x80)==0x80);
        MF522_SCK = 1;
        value <<= 1;
        MF522_SCK = 0;
    }
    MF522_SDA = 1;
    MF522_SCK = 1;
}
四、部分代码说明
1、接线引脚定义
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
1.1、STC89C52RC+RC522射频模块
//RC522射频卡模块引脚定义
sbit     MF522_SDA  = P1^7 ;				//SDA
sbit     MF522_SCK  = P1^6;         //SCK
sbit     MF522_MOSI = P1^5;         //MOSI
sbit     MF522_MISO = P1^4;         //MISO
sbit     MF522_RST  = P1^3;         //RST
1.2、STM32F103C8T6+RC522射频模块
//RC522射频卡模块引脚定义 
/*********************************** RC522 引脚定义 *********************************************/
#define               macRC522_GPIO_SDA_CLK_FUN                  RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_SDA_CLK                      RCC_APB2Periph_GPIOA
#define               macRC522_GPIO_SDA_PORT    	               GPIOA			   
#define               macRC522_GPIO_SDA_PIN		                   GPIO_Pin_4
#define               macRC522_GPIO_SDA_Mode		                 GPIO_Mode_Out_PP
#define               macRC522_GPIO_SCK_CLK_FUN                 RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_SCK_CLK                     RCC_APB2Periph_GPIOA
#define               macRC522_GPIO_SCK_PORT    	              GPIOA			   
#define               macRC522_GPIO_SCK_PIN		                  GPIO_Pin_5
#define               macRC522_GPIO_SCK_Mode		                GPIO_Mode_Out_PP
#define               macRC522_GPIO_MOSI_CLK_FUN                RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_MOSI_CLK                    RCC_APB2Periph_GPIOA
#define               macRC522_GPIO_MOSI_PORT    	              GPIOA			   
#define               macRC522_GPIO_MOSI_PIN		                GPIO_Pin_7
#define               macRC522_GPIO_MOSI_Mode		                GPIO_Mode_Out_PP
#define               macRC522_GPIO_MISO_CLK_FUN                RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_MISO_CLK                    RCC_APB2Periph_GPIOA
#define               macRC522_GPIO_MISO_PORT    	              GPIOA			   
#define               macRC522_GPIO_MISO_PIN		                GPIO_Pin_6
#define               macRC522_GPIO_MISO_Mode		                GPIO_Mode_IN_FLOATING
#define               macRC522_GPIO_RST_CLK_FUN                 RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_RST_CLK                     RCC_APB2Periph_GPIOB
#define               macRC522_GPIO_RST_PORT    	              GPIOB		   
#define               macRC522_GPIO_RST_PIN		                  GPIO_Pin_0
#define               macRC522_GPIO_RST_Mode		                GPIO_Mode_Out_PP
	
五、基础知识学习与相关资料下载
1、STC89C52RC程序下载 直戳跳转
2、STM32F103C8T6程序下载 
 (1)串口下载 直戳跳转
 (2)ST-LINK下载 直戳跳转
 (3)J-LINK下载 直戳跳转
 (4)DAP-LINK下载 直戳跳转
3、OLED0.96程序说明 直戳跳转
4、串口助手下载与使用
 (1)安信可调试助手使用 直戳跳转
 (2) sscom33串口调试助手使用 直戳跳转
 (3)STC-ISP串口调试助手使用 直戳跳转
六、视频效果展示与程序资料获取
视频连接 直戳跳转
 资料获取 ( 滑到最后添加个人号)
七、注意事项
1、VCC GND请勿接反,接反易烧
 2、OLED显示异常时,排除接线接触不良
八、接线说明
STC89C52RC
/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : RC522模块测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线
RC522-------------------------------------STC89C52RC
VCC  -------------------------------------3.3V
GND  -------------------------------------GND
RST  -------------------------------------P1.3
MISO -------------------------------------P1.4
MOSI -------------------------------------P1.5
SCK  -------------------------------------P1.6
SDA  -------------------------------------P1.7
*************************************************************************************/
STM32F103C8T6
/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : RC522模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟72M
RC522-------------------------------------STM32F103C8T6
VCC  -------------------------------------3.3V
GND  -------------------------------------GND
RST  -------------------------------------GPIOB_0
MISO -------------------------------------GPIOA_6
MOSI -------------------------------------GPIOA_7
SCK  -------------------------------------GPIOA_5
SDA  -------------------------------------GPIOA_4
*************************************************************************************/



















