找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4256|回复: 2
收起左侧

STM32+rc522 RFID刷卡开门程序

[复制链接]
ID:430699 发表于 2018-11-21 17:24 | 显示全部楼层 |阅读模式

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "lcd.h"
  6. #include <stdio.h>
  7. #include "timer.h"
  8. #include "lcd1602.h"
  9. #include "key.h"
  10. #include "rc522.h"

  11. /**************/
  12. unsigned char idCard[4]={0x51,0xd5,0xc1,0x2e};                //有效卡号
  13. /**************/

  14. u8 rekey = 0;//按键防止重复
  15. u8 i;
  16. unsigned char UID[5];                        //读取到的卡号
  17. unsigned char Temp[4] ;        

  18. unsigned int relayLater =0 ;//延时计数
  19. unsigned char reportFlag = 0; //上报标志

  20. int main(void)
  21. {         
  22.         delay_init();                     //延时函数初始化         
  23.         uart_init(9600);                 //串口初始化为9600
  24.   TIM3_Int_Init(499,7199);//50ms           
  25.         LED_Init();                                  //初始化与LED连接的硬件接口
  26.         KEY_Init();                        //初始化按键
  27.         
  28.         relay1 = 1;  
  29.         delay_ms(200);
  30.         relay1 =0 ;
  31.         
  32.   Rc522IoInit();
  33.   PcdReset();//复位RC522
  34.   PcdAntennaOn();//开启天线发射

  35.          while(1)
  36.         {
  37.                 if(key1==0)                 //检测到按键按下
  38.                 {
  39.                         delay_ms(10);   //小抖动
  40.                         if(rekey==0)
  41.                         {
  42.                                 if(key1==0)    //检测是否按下
  43.                                 {
  44.                                         rekey=1;        
  45.                                         relay1 =1;//打开继电器
  46.                                         relayLater = 30;                //延时3s                                                               
  47.                                 }        
  48.                         }
  49.                 }
  50.                 else
  51.                 {rekey = 0;}//防止按键重复操作
  52.     if(PcdRequest(0x52,Temp)==MI_OK)//读取到卡
  53.     {
  54.       if(PcdAnticoll(UID)==MI_OK)//卡号获取成功
  55.       {
  56.                                 if((UID[0]==idCard[0])&&(UID[2]==idCard[2])&&(UID[3]==idCard[3]))//匹配卡号
  57.                                 {
  58.                                         relay1 =1;//打开继电器
  59.                                         relayLater = 30;                //延时3s                        
  60.                                 }               
  61.                                 delay_ms(10);
  62.       }
  63.     }
  64.                 if(reportFlag == 1)//计时操作标志
  65.                 {
  66.                         reportFlag = 0;                //清空标志
  67.                         if(relayLater>0){relayLater--;relay1=1;}//倒计时
  68.                         else{relay1 = 0;}                        
  69.                 }
  70.                                                   
  71.         }                                                                                            
  72. }        
复制代码

所有资料51hei提供下载:
stm32-20、程序20181023.rar (315.26 KB, 下载次数: 146)
回复

使用道具 举报

ID:544005 发表于 2020-1-12 23:09 | 显示全部楼层
谢谢分享!!!!
回复

使用道具 举报

ID:689322 发表于 2020-2-2 22:14 | 显示全部楼层
这个如果加入网络功能应该更好,app也方便控制!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表