标题: STM32+rc522 RFID刷卡开门程序 [打印本页]

作者: 张杰1228    时间: 2018-11-21 17:24
标题: STM32+rc522 RFID刷卡开门程序

单片机源程序如下:
  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)



作者: ben0148    时间: 2020-1-12 23:09
谢谢分享!!!!
作者: jackman0925    时间: 2020-2-2 22:14
这个如果加入网络功能应该更好,app也方便控制!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1