標(biāo)題: STM32+rc522 RFID刷卡開門程序 [打印本頁]

作者: 張杰1228    時間: 2018-11-21 17:24
標(biāo)題: 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;//按鍵防止重復(fù)
  15. u8 i;
  16. unsigned char UID[5];                        //讀取到的卡號
  17. unsigned char Temp[4] ;        

  18. unsigned int relayLater =0 ;//延時計數(shù)
  19. unsigned char reportFlag = 0; //上報標(biāo)志

  20. int main(void)
  21. {         
  22.         delay_init();                     //延時函數(shù)初始化         
  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();//復(fù)位RC522
  34.   PcdAntennaOn();//開啟天線發(fā)射

  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;}//防止按鍵重復(fù)操作
  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)//計時操作標(biāo)志
  65.                 {
  66.                         reportFlag = 0;                //清空標(biāo)志
  67.                         if(relayLater>0){relayLater--;relay1=1;}//倒計時
  68.                         else{relay1 = 0;}                        
  69.                 }
  70.                                                   
  71.         }                                                                                            
  72. }        
復(fù)制代碼

所有資料51hei提供下載:
stm32-20、程序20181023.rar (315.26 KB, 下載次數(shù): 146)



作者: ben0148    時間: 2020-1-12 23:09
謝謝分享。。!
作者: jackman0925    時間: 2020-2-2 22:14
這個如果加入網(wǎng)絡(luò)功能應(yīng)該更好,app也方便控制!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1