找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4466|回復(fù): 2
收起左側(cè)

STC89C52RC+RFID RC522 刷卡開鎖程序

[復(fù)制鏈接]
ID:246248 發(fā)表于 2017-11-5 15:53 | 顯示全部樓層 |閱讀模式
#include "reg52.h"
#include "main.h"
#include "mfrc522.h"

#define DataPort P0 //定義數(shù)據(jù)端口
unsigned char UID[5],Temp[4];
unsigned char UID1[4]={188,96,184,121};        //鑰匙1
unsigned char UID2[4]={158,101,169,84};

unsigned char mn,num;
unsigned char KeyScan(void);//鍵盤掃描

sbit KEY1=P3^5;
sbit KEY2=P3^6;
sbit KEY3=P3^7;

void feeb() //蜂鳴器函數(shù)
{
        ff=0;
        delay_10ms(1);
        ff=1;
        delay_10ms(1);
}

void Auto_Reader(void)
{

  while(1)
  {
  num=KeyScan();
   switch(num)
       {
            case 1:LED6=1; break;//觸發(fā)KEY1關(guān)閉到位
                   case 2:LED6=1; break;
                case 3:LED6=1; break;
            default:break;
           }

    if(PcdRequest(0x52,Temp)==MI_OK)  //尋卡,成功后Temp數(shù)組為卡類型
    {
      if(PcdAnticoll(UID)==MI_OK)          //防沖突,UID數(shù)組數(shù)據(jù)為卡序列號
      {
            CALL_isr_UART();                          //開串口中斷將UID數(shù)組前四個字節(jié)上傳到串口調(diào)試助手                  
                 feeb();   
                       
                if (mn==4)
                   {
                LED6=0;
                mn=0;
                   }
                           
      }
    }
  }               
}

void InitializeSystem()         //祲始化
{
        TMOD=0x20;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;       
        EA=1;
        ES=1;
    PcdReset();         //復(fù)位RC522
    PcdAntennaOff();   //關(guān)閉天線
    PcdAntennaOn();    //開啟天線  
        M500PcdConfigISOType( 'A' );  //設(shè)置RC632的工作方式
}

void isr_UART(void) interrupt 4 using 1
{
    unsigned char i;

        if(TI)
        {
                TI=0;
                for(i=0;i<4;i++)
                {
                        SBUF=UID[i];
                        while(!TI);
                        TI=0;
                if (UID[i]==UID1[i]||UID[i]==UID2[i])
                   {
                mn++;               
                   }                                                                
                }
                REN=1;
        }       
}

/*------------------------------------------------
            按鍵掃描函數(shù),返回掃描鍵值
------------------------------------------------*/
unsigned char KeyScan(void)
{

if(!KEY1)
    {
         delay_10ms(1);
     if(!KEY1)     
           {
        while(!KEY1);
               {
                   return 1;
                         }
           }
        }

else if(!KEY2)
    {
         delay_10ms(1);
     if(!KEY2)   
           {
        while(!KEY2);
               {
                   return 2;
                         }
           }
        }

else if(!KEY3)  
    {
         delay_10ms(1);
     if(!KEY3)     
           {
        while(!KEY3);
               {
                   return 3;
                         }
           }
        }


    return 0;
}

void main( )
{   

    InitializeSystem( );
        Auto_Reader();
       
}

回復(fù)

使用道具 舉報

ID:470242 發(fā)表于 2020-4-17 15:35 | 顯示全部樓層
刷不了卡
回復(fù)

使用道具 舉報

ID:71421 發(fā)表于 2018-11-16 12:38 | 顯示全部樓層
感謝分享。!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表