STM32+RC522+微型舵机实现智能开关门

该代码实现了一个基于STM32微控制器和RC522RFID模块的门禁系统。当M1卡识别成功时,LCD显示开门,LED亮起,舵机转向;未识别则显示关门,LED熄灭,舵机反向。系统包括LCD初始化、PWM设置以及RFID卡的寻卡、防冲撞功能。
摘要由CSDN通过智能技术生成

识别M1卡——LCD液晶屏显示开门—LED亮—舵机转向

未识别M1卡——LCD液晶屏显示关门—LED灭—舵机反向

参考链接:

M1卡介绍 - ivantang - 博客园 (cnblogs.com)

【MFRC522】STM32 MFRC522 IC读卡 程序及原理图_rc522模块原理图_yiquhui666的博客-CSDN博客

主程序

	/*
    管脚接线图:
	RST---PF4
	MISO---PF3
	MOSI---PF2
	SCK---PF1
	NSS(SDA)--PF0
    */


#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "tftlcd.h"
#include "RC522.h"
#include "time.h"
#include "pwm.h"


unsigned char g_ucTempbuf[20];

int main()
{

	unsigned char status,i;
	unsigned int temp;
	
	SysTick_Init(72);
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
	LED_Init();
	USART1_Init(9600);
	TFTLCD_Init();			//LCD初始化
	
	TIM3_CH2_PWM_Init(199,7199); //频率是50Hz
	TIM3_Change_PWM();
	
	RC522_Init();
	PcdReset();
 	PcdAntennaOff(); 
	delay_ms(10);
 	PcdAntennaOn();
	delay_ms(10);
	
	TIM4_Init(1000,7199);
	
	FRONT_COLOR=GREEN;
	LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,16,"PRECHIN STM32F1");
	LCD_ShowString(10,30,tftlcd_data.width,tftlcd_data.height,16,"www.prechin.net");
	LCD_ShowString(10,50,tftlcd_data.width,tftlcd_data.height,16,"RFID-RC522 Test");
	FRONT_COLOR=RED;
	LCD_ShowString(10,110,tftlcd_data.width,tftlcd_data.height,16,"Close Door...");
	
	printf("Start \r\n");
	
	while ( 1 )
  {   
		 status = PcdRequest(PICC_REQALL, g_ucTempbuf);//寻卡
		 if (status != MI_OK)//寻卡不成功
		 {
			  LED2=1;
				Close_door();					 
				PcdReset();
				PcdAntennaOff(); 
				PcdAntennaOn(); //重置
				continue;
		 }		     
		 printf("卡的类型:");
	   for(i=0;i<2;i++)
		 {
			 temp=g_ucTempbuf[i];
			 printf("%X",temp);
		 }	
		 status = PcdAnticoll(g_ucTempbuf);//防冲撞
		 if(status != MI_OK)
		 { 	
				continue;    
		 }
	
		 printf("卡序列号:");	//超级终端显示,
		 for(i=0;i<4;i++)
		 {
				temp=g_ucTempbuf[i];
				printf("%X",temp);
		 }

		 if(g_ucTempbuf[0]==0xBC&&g_ucTempbuf[1]==0xCC&&g_ucTempbuf[2]==0x54&&g_ucTempbuf[3]==0x18)
		 {
				LED2=0;
				FRONT_COLOR=RED;
				LCD_ShowString(10,110,tftlcd_data.width,tftlcd_data.height,16,"Open Door...  ");//开门
				Open_door();
		 }
		 else
		 {	
				LED2=1;	
				FRONT_COLOR=RED;
				LCD_ShowString(10,110,tftlcd_data.width,tftlcd_data.height,16,"Open Fail...  ");
				Close_door();
		 }
		 
		 printf("\n");
		 PcdHalt();//卡片休眠
  }
}		 

视频

RFID-RC522门禁控制系统--STM32F1程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值